Release statusVersion 0.2.0-alpha.2 is an alpha release for private-network evaluation. Features marked “Next release” are not included in the published images. See version availability for details.
Choose the right page
Page
Use it for
Do not assume
Overview
Check the workspace summary and reported health.
Healthy does not mean every server or pending operation is ready.
Users
Create accounts, invite people, manage keys and account lifecycle.
A website administrator is not automatically a server administrator.
Access
Connect people groups to server groups through SSH policies.
SSH login permission does not grant sudo.
Servers
Enroll machines, organize them and inspect agent/group information.
Enabled does not mean connected.
Permissions
Manage Linux group membership or inspect/change file ownership and permissions.
These are separate from SSH access policies.
Audit trail
Review recorded administrative actions and results.
An action being requested is not proof that it finished.
My account
See your authorized connections, public keys and security settings.
Adding a key alone does not grant a server connection.
Administrators see the management pages. Ordinary website users use My account for their own access and security.
Appearance
Next release: use Appearance to select Light, Dark or System. System follows your device’s color preference. Your choice is saved in this browser and applies to sign-in, setup and workspace pages. Dark uses charcoal surfaces, soft white text and green accents, with the same layout and branding as Light. Terminal colors stay optimized for console use.
02 / DEPLOY
From Compose to a running website.
Use a Linux host with Docker Engine and Docker Compose 2.34 or newer, on amd64. Allocate capacity for the services, container images, logs and backups.
1
Save the deployment file
Create an empty directory and save the compose.yaml inside it. It lists all five services and uses published images only. Registry authentication and source builds are not required.
mkdir accesshub
cd accesshub
# Save the downloaded compose.yaml here.
2
Start the stack
docker compose up -d
docker compose ps
The first start downloads images and initializes the installation. Wait for the services to become healthy.
3
Open the website
Default address: https://localhost:8444. Configure the website hostname and bind address for your deployment, then complete certificate trust and administrator setup.
Controller interface IP reachable from managed servers. Also becomes the default web bind address and host when set.
ACCESSHUB_CLIENT_NETWORKS
Allowed, reachable client network CIDR(s); use the network you actually manage.
ACCESSHUB_WEB_HOST
Website hostname, without https:// or a path. DNS must resolve to this installation.
ACCESSHUB_WEB_PORT
Host HTTPS port. Default 8444; use 443 if appropriate and available.
ACCESSHUB_WEB_ORIGIN
Exact browser origin, including https:// and a non-default port, if used.
ACCESSHUB_WEB_BIND_ADDRESS
Optional web-only interface override. Set 127.0.0.1 to keep the website loopback-only even when a private controller address is configured.
Set the controller address, allowed client networks and website origin for your environment. Review container subnets for network conflicts.
After changing settings, run docker compose up -d again. Changing an established hostname or identity/trust configuration requires planning; it is not a substitute for a tested migration.
Network paths you need
From
To
Purpose
Your browser
Controller · HTTPS port
Website and browser console
Managed server
Controller · TCP 8443
Private enrollment / agent communication
Managed server
Controller · TCP 389
LDAP with verified StartTLS
Controller / console gateway
Managed server · TCP 22
SSH console connection
Keep LDAP and enrollment private. Do not expose ports 389 or 8443 to the public internet.
Managed servers require network connectivity to the controller and individual enrollment.
Next release: short and security-isolated Compose
Both standalone files run the same five services and use the same five named volumes. The short Compose mounts consolidated AccessHub state once in each participating service, relying on read-only mounts, service UIDs and filesystem permissions. The security-isolated Compose uses selective Docker subpath mounts so the database, directory and console gateway do not receive unrelated AccessHub state. Choose the isolated file when stronger container-compromise boundaries matter more than brevity. Do not combine the files as overlays.
No environment file is required for a loopback installation: the defaults use https://localhost:8444 and bind enrollment and LDAP to 127.0.0.1. Add deployment values directly in Compose or through the optional simple .env example when the controller needs a private address, hostname, custom port or client networks. For a remote hostname, set ACCESSHUB_WEB_ORIGIN to the exact browser origin; omit :443 when the browser uses standard HTTPS. This origin is also enforced for console WebSocket connections. The database uses the unmodified official PostgreSQL image, and LDAP initializes automatically.
The five named volumes are website data, website configuration, PostgreSQL data, LDAP data and AccessHub state. Choose the storage layout before installation. Moving an existing project between layouts requires a complete backup, restore and validation procedure.
Not yet available as a published release. These files require new AccessHub images; their proposed tags are not available yet. The official database image also requires security-review resolution. Continue using the published alpha.2 download above for the released deployment.
03 / FIRST SIGN-IN
Trust the installation. Claim the administrator.
1. Export the public website CA certificate
The default HTTPS certificate is issued by an installation-managed private certificate authority. Run this from the deployment directory:
docker compose exec -T web cat /data/caddy/pki/authorities/local/root.crt > accesshub-root-ca.crt
Transfer this public certificate securely to your browser device and trust it in the appropriate OS/browser certificate store after verifying it belongs to your installation. Never export or share the CA private key. Public-domain HTTPS is a separate configuration task; the default does not provide it.
2. Get the private installation setup code
docker compose exec api cat /run/secrets/installation_setup_token
Use the code in the initial setup screen to create your administrator account. It proves access to the Docker host and authorizes administrator creation. Keep it private; do not paste it into an issue or chat.
3. Sign in normally
After the installation is claimed, use your website username and password. Configure an authenticator where supported. A website password is not an SSH key, and is not automatically a Linux sudo password.
FIRST VISIT
Accept your invitation
Open the private invitation supplied by your administrator.
Create your password. Follow the password requirements shown on the page.
If wanted or required, set up an authenticator: scan the QR code in your app and enter a fresh code to confirm.
If recovery codes appear, use Copy codes or Download codes and store them privately. Confirm that you have saved them.
Continue to sign in. Enter your username and password, then the authenticator code when requested.
The sign-in form stays hidden until account setup is complete. Recovery codes are shown once; each works once with your password. Never share your invitation, password, QR secret or recovery codes.
Next release: new passwords require at least 15 characters, a lowercase letter (a–z), an uppercase letter (A–Z) and a special character such as !, @ or #. Live checkmarks show these requirements and whether passwords match. The maximum length is 128 characters. Existing passwords remain valid for sign-in. Requirements are enforced when creating or changing a password. Passwords are not sent to a breach-check service.
Invitation expired, already used, or no longer available?
Before the owner creates a password, an administrator can choose Users → Open → Profile → Renew invitation. The new link is valid for 20 minutes and replaces the previous link. Share it privately with the account owner. Accounts with a password already created use the password reset action instead. A new invitation does not by itself grant server access.
A Linux user's default group for identity and file ownership. New Linux users receive a private primary group automatically.
User profile and file ownership; it is not an SSH permission.
Server-local Linux group
An operating-system group such as sudo, docker or an application group, on a particular machine.
Permissions → Linux group permissions; Servers → OS groups.
Giving an AccessHub group the name “docker” does not create Docker's operating-system group or grant Docker access. The type of rule and its selected server/group determine what happens.
USERS
Create the right kind of account
Open Users → New user.
Choose the account type: website only, Linux identity only, or linked Website + Linux identity.
Enter the username and optional display name. For website accounts, choose the website role.
For a Linux identity, optionally select SSH access groups. Leave them empty if no server access is needed yet.
Create the user. If an invitation is generated, share it privately with the account owner.
A linked account connects website sign-in to a specific Linux identity. Matching names alone do not create that link. A website-only account cannot receive Linux group membership without a linked Linux identity.
Read a user's details
Profile: website/Linux usernames, role, UID, primary group and identity link.
Server access: effective SSH paths and whether enforcement is confirmed.
SSH keys: add a public key or revoke an existing key. Never upload a private key.
Website security: review website sessions, sign out sessions, or reset account setup.
Lifecycle: control website sign-in and Linux login separately, and review archive/deletion requirements.
Disable the correct access
Action
Effect
What stays separate
Disable website sign-in
Prevents website sign-in and revokes website sessions.
SSH keys and Linux group permissions are not removed.
Disable Linux login
Denies new Linux/SSH access after enforcement updates.
An active website account can still sign in again.
Reset website password and authenticator
Starts setup again and signs out existing website sessions.
It does not erase the Linux user's files.
Archive user
Hides disabled identities from the current list after the required disable steps.
UID records, home directories and audit history are retained.
Linked passwords need extra care.
Where shared website/sudo authentication is enabled, disabling or resetting website sign-in also revokes that account's sudo password until setup is completed again. Disabling Linux login does not unlink the account or disable its active website sign-in. Existing external SSH sessions are not automatically terminated.
For deletion or restoration, read the confirmation scope carefully. Deleting website sign-in and disabling Linux login are separate choices; restoration does not automatically restore access.
ACCESS
Grant SSH access to a server
Make sure the person has an active Linux identity and an appropriate public SSH key.
In Access, create or open an access group and add the person.
Put the enrolled server in a server group. Use the server-group management view to add or remove servers.
Create an access policy connecting that people group to that server group. Review the selected groups before enabling it.
Wait for enforcement, then check the person's Server access or their My account → Server access.
The effective-access view explains which group → server-group paths grant access. If no path is available, check all parts of the rule rather than adding the same person repeatedly.
Revoke access
Remove the person from the access group, remove the server from the server group, or disable the relevant SSH policy. Check the effective result afterward. Managed console sessions are subject to revocation; unrelated external SSH sessions may remain open.
Delete a group
Open its management view and read Deletion blockers. Remove members and referencing policies—including disabled references—before deleting an eligible empty group. Deleting a group does not delete people, servers or their files.
SERVERS
Add and enroll a server
Open Servers and create the server record using its intended Linux/server name.
Open that server's Enrollment dialog.
Use Copy command. Run that exact command on the Ubuntu server you are enrolling, with administrator permission—not in the controller's terminal.
Use Issue token, copy the one-time token privately, and paste it only at the command's hidden token prompt.
Confirm the server/controller details requested by the tool. Wait for enrollment to finish.
Return to Servers and check authenticated agent contact. Add the server to the intended server group, then grant SSH access separately.
The website does not ask for a server's SSH password to push-install the tool. A server administrator runs the generated command. Obtain it only from your trusted AccessHub website; do not edit out its verification steps.
Enabled is not connected.
The server can be administratively enabled before it has ever contacted AccessHub. Unobserved means authenticated agent contact has not been seen. Agent readiness and console readiness are separate checks. Enrollment alone grants no user SSH or sudo access.
If the command or token expires
Reopen Enrollment to copy a fresh command. Issue a fresh token if required; a replacement invalidates earlier outstanding tokens. Keep tokens out of shell commands, screenshots and chat. If enrollment partially completed, follow the tool's resume guidance rather than deleting its protected receipt or creating duplicate server records.
Inspect operating-system groups
Open the server's OS groups view to review its reported local groups and operations. The separate Create local group action is for supported application groups. Check the name carefully before queuing it, then verify the server's result; protected or conflicting names are refused. A Linux group permission policy never silently creates a missing group.
If enrollment cannot connect, ask the installation administrator to check networking and trust. The operator reference covers those prerequisites. Do not bypass a browser certificate warning to obtain a command.
PERMISSIONS → LINUX GROUP PERMISSIONS
Add a person to a server's Linux group
Open Permissions → Linux group permissions → New group permission.
Give the policy a descriptive name.
Choose the people group, server group and existing Linux group name—for example, sudo.
Use Preview affected servers. Check who is affected and whether the Linux group exists on each server. Missing or unverified groups are not ready to apply.
Save the draft. A draft grants nothing.
Open Review and apply, inspect the proposed changes, and confirm activation.
Open View results. Wait for the server's membership result, not just an Active policy badge.
Result
Meaning / next step
Draft / Active policy
The rule is saved / enabled. Neither is proof that every server operation finished.
Pending add
The membership change is waiting for the agent or its report.
Owned
AccessHub confirmed the membership it manages.
External membership
The membership already exists outside AccessHub's ownership. AccessHub preserves it rather than claiming removal rights.
Failed / uncertain
Read the operation result before taking another action. Do not assume permission was granted.
Remove or stop managing membership
Disable the permission and check its cleanup results. AccessHub removes only memberships it owns; another policy may still require the same membership. Keep membership and stop managing leaves it on the server but relinquishes AccessHub's ownership of its removal.
Sudo and Docker are powerful.
The server must already have the required group and software configuration. Membership in docker can give root-level control without a sudo password. After a new membership is confirmed, open a new console/SSH session to pick it up.
PERMISSIONS → FILE PERMISSIONS
Inspect first. Change only what you intend.
Name/ID suggestions and recursive scope are next-release features. Published alpha.2 uses owner/group dropdowns and changes the selected path only.
Select the Server workspace.
Enter the absolute file/directory path, such as /opt/example/uploads.
Leave Include directory contents off for this path only. Turn it on before inspection if you want a recursive change.
Click Inspect path. Check the path, observed owner/group, permissions, and whether editing is allowed.
Type the owner and owning group. Suggestions contain names reported by this server. A unique numeric UID/GID turns into its name when you leave the field. Unknown or ambiguous identities cannot proceed.
Set the Owner, Group and Others checkboxes. For recursive scope, set directory permissions and file permissions separately.
Click Review changes. Check every proposed ownership/mode change and any skipped paths. Confirm only the intended scope, then apply once.
Wait for the server-confirmed result. Inspect again to confirm the actual current state.
The owner field changes the file's owner; it does not add an extra per-user permission entry. These settings do not grant SSH login or sudo.
Permission
File
Directory
Read
Read file contents.
List entry names.
Write
Modify file contents.
Create/remove entries, usually together with traversal permission.
Execute / Enter
Run the file as a program.
Traverse the directory to reach entries.
Owner, Group and Others are different permission classes. Being able to read a file also depends on access through its parent directories. AccessHub inspects metadata; it does not read or edit the file's contents.
Recursive changes: directory and contents
The preview lists included and skipped paths. One owner/group is proposed for all included items, with a separate mode for directories and for files. File execute permission is not automatically enabled just because directories need traversal. Mixed file modes default to a proposed 0644; review whether that suits your application before applying.
Off by default. Changing the scope requires a fresh inspection.
Limit: 64 entries including skipped items, 16 directory levels, and bounded preview size/time. Oversized trees are refused, not silently truncated.
Links, protected paths, special files and nested mounts are skipped without entering them.
Unsafe included entries—such as extended ACLs, special bits, hard links or untrusted parents—block the whole apply.
Changes are not atomic: interruption can leave some items changed. AccessHub does not automatically retry or roll back the operation.
Inspection only or uncertain result?
Supported targets are application paths below /srv, /opt, /var/www or /home—not those bare roots. Parent directories must initially be root-owned and not writable by their group/others. Protected identities and credential/configuration paths are restricted. Do not change a user's home ownership just to bypass a safety check.
For an uncertain operation, wait for the old execution to settle, then inspect the same scope again. Recursive uncertainty needs a new recursive inspection. Acknowledge current state records that review; it does not replay, undo or complete the original change. Decide any correction from the fresh observations.
Recent inspections and changes keeps past requests and results. Old observations can be stale; do not treat viewing history as a new inspection.
MY ACCOUNT
Manage your own connections and security
Server access
Open My account → Server access to see your permitted servers and connection options. Open only the server you intend to use and verify the Linux username. If a server is missing, ask an administrator to check your Linux identity, groups, policy and enforcement status.
SSH keys
Open the SSH keys tab.
Enter a useful label and paste the public key in the supported format.
Add it and check its fingerprint. Revoke a key you no longer trust.
Public keys identify your SSH credential; never upload the private half. A registered key does not create a new access policy.
Security
Use this tab to change your password, configure or disable your authenticator, and manage recovery options. Enter the current password and any requested verification factor. Save newly issued recovery codes privately when the page offers them.
Where the linked website/sudo password feature is enabled, changing your website password changes the password used for sudo too. MFA still protects the website; an authenticator code is not a Linux sudo password.
Lost authenticator or recovery codes?
Use an unused recovery code with your password if offered during website sign-in. Otherwise contact an administrator for account recovery/reset. Do not send passwords, authenticator secrets or recovery codes in chat or a support ticket.
BROWSER CONSOLE
Open a terminal on an authorized server
Authenticator-only console confirmation is a next-release feature; published versions may request both password and authenticator verification.
In My account → Server access, choose the intended server's console.
If you have an authenticator enabled, enter a fresh six-digit code. Otherwise confirm your website password.
Connect, then verify the server prompt and Linux username before entering commands.
Use Close console when finished.
A code used to sign in cannot be reused for a console confirmation; wait for the next code. Recovery codes are not accepted for console confirmation.
Exiting the shell with exit or Ctrl+D closes the console and returns to the page beneath it. The console has a 15-minute idle limit and a 60-minute maximum session. After it expires or loses its connection, choose New console session and verify again. It opens a new session, not the old terminal. If your website session expired, sign in normally first.
Which password does sudo need?
Where shared authentication is enabled for a linked account, enter your current website password at the Linux sudo prompt—not your authenticator code. The server must also have granted sudo permission. Website-only accounts have no Linux sudo password, and installations without shared authentication must be checked separately.
Click inside the terminal to focus it. Selection is for copying text; be careful not to paste a command accidentally. New Linux group membership takes effect in a new console/SSH session, not necessarily the one already open.
AUDIT TRAIL
Check what was requested and what finished
Open Audit trail to review recorded administrative actions and their outcomes. Read the Time, Action, Target, Result and Correlation columns. Compare timestamps and target details to the user, server or policy you were changing; related records can share a correlation identifier.
For a queued server action, also open its per-server operation result. “Requested” or an Active policy is not the same as a successful agent result. Audit history is retained when an eligible policy or identity is removed; deletion is not a way to erase the record.
Audit records are not a complete shell transcript. Check the specific operation rather than assuming all terminal activity appears here.
READ THE RESULT
Live updates do not mean instant completion
Automatic updates are a next-release feature. Published alpha.2 uses manual Refresh.
The dashboard updates automatically when server results change, typically within about 5–15 seconds after the result is reported. Agent work may take longer. The indicator near Refresh shows whether live updates are connected, paused or using slower polling.
Updates pause while editing, in dialogs, on private-code screens and while the page is in the background.
If live updates are unavailable, slower polling is used. Manual Refresh remains available.
After an application update, reload the website once to load its new scripts; refreshing data alone does not replace an old page.
Expired or revoked website sessions require sign-in again.
What you see
What it tells you
Enabled / Active server
The administrator permits the server record. Not proof of connectivity.
Unobserved
No authenticated agent contact has been observed.
Agent ready
Recent agent contact/capability is available. Console readiness is separate.
Active policy
The rule is enabled; check membership or enforcement results.
Pending add / queued
Work or its report is outstanding. Permission is not yet confirmed.
Owned
AccessHub confirmed membership it manages.
Inspection complete
Metadata was observed; nothing was changed by inspection.
Applied / server verified
The agent reported the requested result. Check path/scope and observation time.
Uncertain
A partial change is possible. Fresh inspection and explicit review are required.
OPERATE SAFELY
Keep the data and the trust together.
The stack stores more than a SQL database: LDAP, credentials, signing keys, MFA material, certificates and console state also matter. Back up every named volume together, and retain the exact Compose file, deployment settings and image versions.
Never use docker compose down -v for an upgrade.
The -v option deletes named volumes. Losing credentials or CA keys can break an otherwise intact database and enrolled clients.
Stopped-stack backup
The supplied backup helper stops the stack, archives all named volumes with an integrity manifest and restarts it. Schedule a maintenance window. It requires Python 3 and permission to use Docker.
# Save backup.py beside compose.yaml first.
# The backup directory must be new, with a private parent.
sudo install -d -m 700 /var/backups/accesshub
sudo python3 backup.py backup \
--project accesshub-five \
--file compose.yaml \
--directory /var/backups/accesshub/before-upgrade
If you use a custom project name, extra Compose files or an explicit environment file, pass those same inputs to the helper (--file can be repeated; --env-file .env is optional). Use a new destination for each backup. Archives contain secrets: protect, encrypt and store an off-host copy. Check that the helper reports a complete backup; a partial directory is not a valid recovery set.
Restore & upgrade checklist
Test restoration into a new, stopped project using the backup's original Compose and complete image set. The helper refuses to overwrite existing volumes.
Review ports and Docker subnet conflicts before starting a restored copy; don't run it alongside the original with the same network bindings.
For an upgrade, keep the old Compose/settings and a complete backup, pull the chosen versioned images, stop services, then recreate using the same project name and existing volumes.
Verify health, normal sign-in, identities, enrollment trust and a permitted console connection before ending maintenance.
Review the target release’s migration and rollback requirements before upgrading. Schema changes may require restoring the complete backup to roll back.
Private LDAP / enrollment certificate renewal
docker compose exec api python /app/portable/init_tls.py --renew
# After verifying renewal succeeded:
docker compose restart api directory
docker compose up -d --wait
This renews private service certificates through the API initializer. The web proxy manages its own HTTPS certificates. Keep both sets of persistent trust volumes; this command does not configure public ACME certificates.
Useful read-only health checks
docker compose ps
docker compose logs --tail=100 api
docker compose logs --tail=100 directory
docker compose logs --tail=100 web
Review logs locally. Redact invitation links, enrollment tokens, passwords and private identifiers before sharing diagnostic output.
COMMON QUESTIONS
What should I do next?
I cannot see a server in My account
Check with an administrator: active Linux identity, intended access-group membership, server-group membership, active SSH policy, usable public key and enforcement result. A website role alone does not grant server access.
Permission is still Pending add
Open View results or Review operations. Check agent readiness and the reported result. Make sure the page has loaded the current app version and live updates are not paused. Refresh once; do not create duplicate rules before checking the actual server state.
The group name is missing or unverified
Inspect the server's OS groups and report time. The group must exist locally on every affected server. A policy title or people-group name is not proof that the OS group exists.
“Failed to fetch” or connection lost
The browser did not receive a usable response; the change might still have completed. Restore connectivity, check trusted HTTPS and inspect the current result before retrying. Contact the installation administrator if it keeps happening.
“Authentication required”
Sign in again, then retry the inspection or read. Previously displayed data may be stale. Do not assume a failed authentication response means an earlier change was undone.
File permissions are inspection-only
Read the listed safety reason. ACLs, protected paths, hard links, special bits and unsafe parents can prevent editing. Choose an appropriate application path or ask a server administrator to review it; do not bypass the guard.
Sudo rejects my password
Do not enter an MFA code. Check that you are using the intended Linux user, its membership is confirmed, and the installation uses shared website/sudo authentication. Ask the administrator to check the account link and server authentication; do not enable passwordless sudo as a workaround.
Docker still says permission denied after membership was added
Check that the result is Owned or otherwise confirmed, then open a new console/SSH session. Existing sessions may still have their previous group list.
The browser shows a certificate warning
Stop and contact your installation administrator to verify the website address and certificate trust. Do not bypass the warning before entering credentials or copying an enrollment command.
I need installation, networking or backup instructions
Next release: choose Report a bug to send feedback to AccessHub’s developer. Reporting is available only when your installation has a configured support destination and you are signed in.
Take a screenshot, record a short screen clip, upload an existing file, or continue without an attachment.
Enter a summary and describe what happened, what you expected, and how to reproduce it.
Review the report and attachment for private information, then choose Submit bug report.
The browser asks which screen, window or tab to capture. A screenshot captures one frame; recording stops after 30 seconds and has no microphone audio. Attachments must be PNG, JPEG, WebP, WebM or MP4, up to 5 MB. Remove an attachment to discard it. Closing the dialog stops capture.
AccessHub does not automatically collect logs, credentials or screenshots. Do not include passwords, setup tokens, recovery codes or private keys. If submission is not confirmed, check with support before resubmitting to avoid duplicates. Reporting requires a reachable support service; a configured destination alone does not guarantee delivery. Reports are not silently queued or sent to a fallback destination.
Operator configuration
Configure ACCESSHUB_SUPPORT_ENDPOINT with the developer-controlled HTTPS report endpoint. Optional ACCESSHUB_SUPPORT_TOKEN_FILE references a private, process-owned token file (no group/world permissions). Credentials stay on the server. The endpoint accepts JSON with title, description and an optional attachment containing type and base64 content. Redirects are not followed. Leave the endpoint unset to disable submission.
Use a verified public support destination before public release. The reporting service and its production hosting are separate from an individual AccessHub installation.
First-time setup screen
In the next release, first-time setup verifies your private setup token before showing administrator username and password fields. Choose Continue to setup, create the administrator, then sign in. Token verification alone creates no account. Existing installations continue to sign-in without repeating setup.
Reviewing reports in the developer inbox
The separate support inbox is for the AccessHub developer. Sign in with the inbox password, search or filter reports, and select a report to read it. Screenshots open in the page and can be enlarged; screen recordings play directly with video controls. No attachment download is required.
Use New, Reviewing and Resolved to track progress. The Cloudflare support version also includes Ready: the developer has tested the fix and included it in a production image. That version is prepared for deployment and is not yet a live public service. The visible inbox checks for new reports automatically. Report lists and attachment previews require an operator session; a submission credential cannot read them. Signing out ends access to previews.
RELEASE & SOURCE
Versions and availability
The published deployment package is 0.2.0-alpha.2. It is an alpha release for private-network evaluation, not a production-stable release.
Feature
Availability
Five-container deployment, enrollment, SSH policies and selected-path file permissions
Published alpha.2
Automatic dashboard updates; streamlined invitation and console verification screens
Next release
Name/ID completion and recursive file-permission changes
Next release; recursive changes require an upgraded agent
Shared website/sudo password configuration described in this guide
Next release; not enabled in the published deployment defaults
SOURCE REPOSITORY
SaiedAwad / accesshub
The repository is currently private; GitHub permission is required to view its source. Published container images are public and can be pulled without registry sign-in.
accesshub-database:0.1.0-alpha.1 · pinned by digest
All images use the ghcr.io/saiedawad namespace. Components are versioned independently: an unchanged dependency does not need a new tag for every release.