Appearance
Commands
exodus
The magic command. Runs connect → init → build → deploy as needed.
bash
exodus [cwd]| Flag | Description |
|---|---|
-d, --dirty | Use working directory instead of latest git commit |
-m, --method <method> | Build method: local, hybrid, remote, auto |
--skip-health-check | Skip health check after container start |
--no-env | Skip all env injection |
--no-secrets | Skip server secrets injection |
bash
# Deploy current working directory
exodus --dirty
# Force remote build
exodus --method remoteexodus connect
Connect and provision a new VPS. Interactive prompts for SSH credentials.
bash
exodus connectInstalls Docker, Caddy, configures firewall. Credentials stored in ~/.config/exodus/config.yml.
exodus init
Initialize a project for deployment.
bash
exodus init [cwd]| Flag | Description |
|---|---|
-F, --force | Overwrite existing exodus.yml |
Creates exodus.yml in your project root.
exodus build
Build and push your app image to the server.
bash
exodus build [cwd]| Flag | Description |
|---|---|
-d, --dirty | Use working directory instead of latest git commit |
-m, --method <method> | Build method: local, hybrid, remote, auto |
--no-env | Skip all env injection |
--no-secrets | Skip fetching server secrets |
bash
# Build from current files (not git)
exodus build --dirty
# Build on server
exodus build --method remoteexodus deploy
Deploy a built image. Requires exodus build first.
bash
exodus deploy [cwd]| Flag | Description |
|---|---|
--skip-health-check | Skip health check after container start |
exodus ssh
SSH into a connected server.
bash
exodus ssh [server]Opens interactive SSH session. If no server specified, prompts for selection.
exodus ps
List running containers for the current project.
bash
exodus ps [cwd]exodus logs
View container logs.
bash
exodus logs [cwd]| Flag | Description |
|---|---|
-f, --follow | Follow log output (like tail -f) |
-n, --lines <number> | Number of lines to show (default: 100) |
bash
# Follow logs
exodus logs -f
# Last 50 lines
exodus logs -n 50exodus restart
Restart running containers.
bash
exodus restart [cwd]Restarts all running containers for the project. Useful after updating secrets.
exodus rollback
Rollback to a previous deployment.
bash
exodus rollback [cwd]| Flag | Description |
|---|---|
-v, --version <version> | Specific version (container name or image tag) |
bash
# Interactive selection
exodus rollback
# Rollback to specific version
exodus rollback -v exodus-myapp-1234567890exodus dns
Check and verify DNS configuration for custom domains.
bash
exodus dnsInteractive wizard to verify A records point to your server. Supports Cloudflare proxy detection.
exodus secrets
Manage environment secrets on the server.
bash
exodus secretsInteractive mode when called without subcommand.
secrets list
bash
exodus secrets list| Flag | Description |
|---|---|
-d, --dir <path> | Project directory |
secrets set
bash
exodus secrets set [KEY=VALUE...]| Flag | Description |
|---|---|
-d, --dir <path> | Project directory |
-f, --from-env <file> | Import from .env file |
bash
# Set single secret
exodus secrets set DATABASE_URL=postgres://...
# Set multiple
exodus secrets set API_KEY=xxx STRIPE_KEY=yyy
# Import from file
exodus secrets set -f .env.productionsecrets unset
bash
exodus secrets unset [keys...]| Flag | Description |
|---|---|
-d, --dir <path> | Project directory |
bash
exodus secrets unset API_KEY STRIPE_KEYsecrets pull
Download server secrets to local file.
bash
exodus secrets pull| Flag | Description |
|---|---|
-d, --dir <path> | Project directory |
-o, --output <file> | Output file (default: .env.exodus) |
-f, --force | Overwrite without prompting |
secrets push
Upload local env file to server.
bash
exodus secrets push| Flag | Description |
|---|---|
-d, --dir <path> | Project directory |
-i, --input <file> | Input file (default: .env.exodus) |
-f, --force | Push without confirmation |
--dry-run | Show changes without applying |
bash
# Preview changes
exodus secrets push --dry-run
# Force push
exodus secrets push -f