Skip to content

CLI

All commands use the --config flag for server config (default: /etc/simpledeploy/config.yaml). Remote commands use the active context from ~/.simpledeploy/config.yaml.

Start the SimpleDeploy server.

Terminal window
simpledeploy serve --config /etc/simpledeploy/config.yaml

Starts: reverse proxy (Caddy), management API, reconciler watcher, metrics collector, backup scheduler, alert evaluator.

Generate a default config file.

Terminal window
simpledeploy init --config /etc/simpledeploy/config.yaml

Deploy apps from compose files.

Terminal window
# Single app
simpledeploy apply -f docker-compose.yml --name myapp
# All apps in directory
simpledeploy apply -d ./apps/

Copies the compose file to the server’s apps directory and triggers deployment.

FlagShortRequiredDescription
--file-fwith —nameCompose file path
--dir-dalt to -fDirectory of app subdirectories
--namewith -fApp name/slug

Remove a deployed app.

Terminal window
simpledeploy remove --name myapp

Stops containers, removes network, deletes from store and apps directory.

List deployed apps with status.

Terminal window
simpledeploy list

Output:

NAME STATUS DOMAIN
myapp running myapp.example.com
postgres running

Stream container logs.

Terminal window
simpledeploy logs myapp
simpledeploy logs myapp --follow=false --tail 50 --service db
FlagShortDefaultDescription
--follow-ftrueFollow log output
--tail100Number of historical lines
--servicewebCompose service name

See Remote management for context, pull, diff, and sync usage.

Trigger an immediate backup.

Terminal window
simpledeploy backup run --app myapp

List backup runs for an app.

Terminal window
simpledeploy backup list --app myapp

Restore from a backup.

Terminal window
simpledeploy restore --app myapp --id 42

Manage users (requires direct database access).

Terminal window
# Create user
simpledeploy users create --username admin --password secret --role super_admin
# List users
simpledeploy users list
# Delete user
simpledeploy users delete --id 2

Roles: super_admin (full platform + all apps), manage (write access to granted apps only, no platform mgmt, cannot create or delete apps), viewer (read-only on granted apps).

Manage API keys.

Terminal window
# Create key (prints plaintext once)
simpledeploy apikey create --name "claude-code" --user-id 1
# List keys
simpledeploy apikey list --user-id 1
# Revoke key
simpledeploy apikey revoke --id 3

API keys authenticate CLI and API requests via Authorization: Bearer sd_... header.

Manage private container registry credentials.

Terminal window
# Add a registry
simpledeploy registry add --name ghcr-org --url ghcr.io --username myuser --password mytoken
# List registries
simpledeploy registry list
# Remove a registry
simpledeploy registry remove ghcr-org
SubcommandDescription
addAdd registry credentials (encrypted with master_secret)
listList configured registries with decrypted usernames
removeRemove a registry by name
FlagRequiredDescription
--nameYesRegistry identifier (referenced in config/labels)
--urlYesRegistry URL (e.g., ghcr.io, 123456.dkr.ecr.us-east-1.amazonaws.com)
--usernameYesRegistry username
--passwordYesRegistry password or token

Credentials are encrypted with AES-256-GCM using the master_secret from config.

Print version, commit hash, and build date.

Terminal window
simpledeploy version
# simpledeploy 1.2.0 (commit: abc1234, built: 2026-04-08T18:00:00Z)
FlagDefaultDescription
--config/etc/simpledeploy/config.yamlServer config file path
--helpShow help