Operations
Lifecycle commands for a running sfp server. Every command takes --tenant (lowercase letters, numbers, hyphens) and --base-dir (default ./sfp-server). Add --ssh-connection and --identity-file when running remotely from your workstation, or omit them when running directly on the server.
Registry credentials
Most lifecycle commands read the Docker registry credentials from environment variables, not from the tenant .env that init wrote (.env holds image/domain config, not registry secrets). sfp server start and sfp server update need them to log in and pull images. New shell session = re-export.
export DOCKER_REGISTRY="source.flxbl.io"
export DOCKER_REGISTRY_TOKEN="your-source-flxbl-pat"
# optional: export DOCKER_REGISTRY_USERNAME="USERNAME" # for token-only registriesstop, status, logs, and scale do not pull images and do not need them. If start runs without them it logs a warning and proceeds — image pulls may then fail during compose startup.
Commands
Start the server (creates volumes, pulls images, runs migrations)
sfp server start --tenant <t> --base-dir /opt/sfp-server
Stop the server (drains active workflows first)
sfp server stop --tenant <t>
Show service status
sfp server status --tenant <t> (append --json)
Check health
curl https://sfp.yourcompany.com/health
Tail combined server + worker logs
sfp server logs --tenant <t>
Tail one service
sfp server logs --tenant <t> --service worker --tail 200 --follow
Scale workers
sfp server scale --tenant <t> --workers 3
Update image / run migrations
sfp server update --tenant <t> (see Updating sfp server)
start flags: --restart|-r, --no-browser, --daemon, --config-file, --secrets-provider. stop flags: --force|-f (skip waiting for workflows), --drain-timeout <sec> (default 3600). update flags: --cadence|-r <production|beta|development|latest> (default latest), --docker-tag <tag>, --skip-backup, --continue-on-db-migration-failure, --force, --drain-timeout. scale --workers <1-10>. All take the SSH and secrets-provider flags.
logs flags
--service <app|worker|caddy>
combined server hatchet-worker
Restrict to one service. worker → compose service hatchet-worker; caddy → caddy.
--follow, -f
off
docker compose logs --follow
--tail <n>
100
Lines retrieved per service
The
appservice option currently maps to a compose service namedapp, which does not exist in this stack (the API service isserver). Use--service workeror--service caddy; logs for the API default toserver hatchet-worker.
Verify it is running
sfp server status prints one row per container with Service / State / Health / Ports and an overall verdict (healthy, unhealthy, or stopped) derived from the compose state. The /health endpoint reports 200 with status: healthy and a components map; see Step 3 for its semantics.
Reading logs
sfp server logs streams the combined server and hatchet-worker logs by default. Add --follow to tail live and --tail <n> to bound the lines per service. Raw container logs are available from the tenant directory:
Getting help
Logs
See commands above
Status / health
sfp server status; see Step 3 for /health shape + 503 semantics
Support
Your sfp support channel
Last updated
Was this helpful?