Documentation
Admin over SSH and CLI
The SSH admin surface is the implemented Everlock control plane today.
It is provided by:
frontend-sshbackend-admin-ssh
This is a line-based admin REPL, not a shell. Commands begin with / and act
on Everlock resources such as users, groups, backends, sites, OCI registries,
DNS zones and records, and mail domains.
When backend-ai-ssh is enabled, the same session also accepts free-text AI
prompts:
/...remains command input- plain text becomes AI prompt input
//...sends a slash-prefixed prompt to the model
Session model
Typical flow:
- start Everlock with
frontend-sshandbackend-admin-ssh - connect with
ssh - authenticate as an Everlock user
- use slash commands inside the admin session
The session accepts:
/help- resource commands such as
/users ...,/site ...,/oci ... /quitor/exit
Access model
Two command tiers exist today:
- any authenticated user:
/help/users list/users grants <login>/groups list/git list/site list/calendar list/contacts list/oci list/dns zones list/dns records list [<zone>]
- access-path governed commands:
/dns ...usesssh/dns/*andssh/dns/<zone>
- system administrators only:
- backend enable/disable
- user and group changes
- site, OCI, and mail configuration changes
System administrator here means Owner on */*/*.
Command layout
The command families are:
/help/users/groups/git/dns/site/calendar/contacts/oci/mail/jobs/backends/quit/exit
Bare scope commands show scope help where implemented:
/site/calendar/contacts/oci/mail/git/dns
Command reference
Help and session
/help /quit /exit
Users
/users list /users add <login> <password> /users passwd <login> <password> /users grant <login> <path> <role> /users revoke <login> <path> /users grants <login>
Notes:
<role>is one ofreader,writer, orowner<path>is an Everlock access path such ashttp/site/docsorhttp/oci/default
Groups
/groups list /groups add <name> /groups assign <group> <login> /groups grant <group> <path> <role> /groups revoke <group> <path>
Git
/git repo list /git repo create <name> /git repo gc <name> /git branch list <repo> /git branch delete <repo> <branch> /git pr list <repo> /git pr open <repo> <slug> <target> <branch-or-oid> /git pr merge <repo> <slug> <target> /git pr close <repo> <slug> <target>
DNS
/dns /dns zones list /dns zones create <zone> /dns zones delete <zone> /dns records list /dns records list <zone> /dns records create <zone> name=<name> type=<type> value=<value> [ttl=<ttl>] /dns records set <zone> <name> <type> value=<value> [ttl=<ttl>] /dns records delete <zone> <name> <type> /dns reload
Notes:
/dns zones create <zone>requiresOwneronssh/dns/*- zone inspection uses
Readeronssh/dns/<zone> - zone mutation uses
Writeronssh/dns/<zone> - zone deletion uses
Owneronssh/dns/<zone> /dns records listshows effective records and whether they arederived,explicit, orexplicit-override
Sites
/site /site list /site create <name> [store=<name>] [mode=html|markdown] [auth=public|private] [vhost=<host>] /site set <name> auth=public|private /site set <name> mode=html|markdown /site set <name> vhost=<host> /site unset <name> vhost=<host> /site delete <name>
Notes:
store=defaults to the site namemode=defaults to the backend default if omitted at creation timeauth=publicgrantsReadertoanononhttp/site/<name>auth=privaterevokes thatanongrant- multiple
vhost=values can be added over time by repeatedset
OCI
/oci /oci list /oci create <name> [store=<name>] vhost=<host> [vhost=<host>...] /oci set <name> store=<name> /oci set <name> vhost=<host> [vhost=<host>...] /oci unset <name> vhost=<host> [vhost=<host>...] /oci delete <name>
Notes:
vhost=is required at creation timestore=defaults to the registry name if omitted at creation time
Calendar
/calendar /calendar list /calendar create <name> [store=<name>] vhost=<host> [vhost=<host>...] /calendar set <name> store=<name> /calendar set <name> vhost=<host> [vhost=<host>...] /calendar unset <name> vhost=<host> [vhost=<host>...] /calendar delete <name>
Notes:
vhost=is required at creation timestore=defaults to the instance name if omitted at creation time- calendars and events inside the instance are managed through CalDAV, not the admin shell
Contacts
/contacts /contacts list /contacts create <name> [store=<name>] vhost=<host> [vhost=<host>...] /contacts set <name> store=<name> /contacts set <name> vhost=<host> [vhost=<host>...] /contacts unset <name> vhost=<host> [vhost=<host>...] /contacts delete <name>
Notes:
vhost=is required at creation timestore=defaults to the instance name if omitted at creation time
/mail /mail domains list /mail domains list <domain> /mail domains create <domain> [submission=on|off] [auth=on|off] [dkim=on|off] [hostname=<name>] /mail domains set <domain> <key=value>... /mail domains delete <domain> /mail mailboxes list /mail mailboxes list <domain> /mail mailboxes list <domain> <mailbox> /mail rules list
Currently documented mail domain settings:
submission=on|offauth=on|offdkim=on|offhostname=<name>
Creation supports the same keys as set, so you can create a domain with its intended submission and DKIM settings in one command.
submission=on also enables the SMTP submission listener (default port 587): the setting is persisted in the frontend config and the listener binds in the running process, staying enabled across restarts.
TLS visibility:
/mail domains listincludes the derived SMTP host plus TLS status and expiry summary/mail domains list <domain>shows the derivedmail.<domain>hostname, certificate source and status, expiry and renewal timestamps, and the last ACME error when present
Jobs
/jobs /jobs list /jobs run <kind> /jobs show <id>
Backends
/backends /backends list /backends enable <name> [<name>...] /backends disable <name> [<name>...]
Common backend names include:
ai-sshgit-sshimage-httpdns-dnsadmin-sshadmin-httpsite-httpmail-smtpcalendar-httpcontacts-httpoci-httpoauth-http
Argument styles
Two argument styles are used.
Positional arguments
Examples:
/users add alice secret123 /users grant alice http/site/docs reader /groups assign editors alice /git create project-docs
key=value arguments
Examples:
/site create docs vhost=docs.example.com auth=private /site set docs vhost=docs.internal.example.com /oci create main vhost=registry.example.com store=everlock-oci-main /mail domains set example.com submission=on auth=on
Behavior notes
siteandocichanges persist to config files and may require a restart depending on the operation- mail configuration is persisted in the system store and mail-store metadata
- backend enable/disable changes persist config and trigger restart behavior
- the SSH admin surface is the main documented operator workflow