Run on the server host (systemd + root).

Command Description
seikan-server run [flags] Run the server process in the foreground. This is what systemd's ExecStart=seikan-server run invokes; use it directly for non-systemd setups (e.g. containers). The bare seikan-server just prints help.
seikan-server install [--admin-host H …] Set up the hardened systemd service (creates the user, state dir, env file, unit, setcap, enables it) but leaves it stopped. Non-interactive — this is what the install.sh bootstrap invokes (alias exec-install; accepts --bin <dir>). The admin host is optional here: pass --admin-host / SEIKAN_ADMIN_HOST, or set it later with configure. Re-running upgrades the binary in place (restarting only if it was running). Accepts the SEIKAN_* env vars as flags; --no-service/--bin/--unit-dir for non-standard targets.
seikan-server configure [--set K=V …] [--no-restart] Set env values. --set SEIKAN_ADMIN_HOST=… --set SEIKAN_ACME_EMAIL=… (repeatable) edits the env file non-interactively — no editor — for scripted installs; with no --set it opens $EDITOR. On save it applies the change live if the service is running; a stopped (freshly-installed) service is left stopped — start it next.
seikan-server start | stop | restart | status Manage the installed systemd service — thin systemctl <action> seikan-server wrappers. start/restart refuse to run until SEIKAN_ADMIN_HOST is configured; the one-time admin API key prints on first start.
seikan-server uninstall [--purge] Stop + remove the service, unit and env file (alias exec-uninstall); --purge also removes the state dir, system user and binary.
seikan-server logs [-f] [-n 100] Stream the service journal (journalctl -u seikan-server); -f follows, -n sets line count.
seikan-server verbose on|off|status Toggle per-request access logging on the running process — live, no restart.
seikan-server version | help Print version / show help.

The first-time flow is install → configure → start:

curl -fsSL https://seikan.okonomi.cloud/server/install.sh | sudo bash        # install (service stopped)
sudo seikan-server configure --set SEIKAN_ADMIN_HOST=admin.example.com        # or run with no --set to open $EDITOR
sudo seikan-server start              # start; prints the one-time admin API key

To update, re-run the installer, or sudo seikan-server install with a newer binary in hand: the binary is swapped, the unit refreshed, the env file backfilled with any new settings, and the service restarted only if it was running — your config is preserved.