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 currently implemented 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
/git list
/git create <name>
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.
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>...]
Known backend names currently include:
ai-sshgit-sshimage-httpdns-dnsadmin-sshadmin-httpsite-httpmail-smtpcalendar-httpcontacts-httpoci-httpoauth-http
Argument styles
Two argument styles are currently 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
Current behavior notes
siteandocichanges currently 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 source of truth for current operator workflows in the public docs