Troubleshooting
“requires root privileges”
Error: 'fleet start' requires root privileges. Run with sudo.Commands that manage services, secrets, or nginx need root. Prefix with sudo:
sudo fleet start myappRead-only commands (status, list, health, logs, deps status, tui) work without root.
App shows “down” but containers are running
Fleet checks container names from the registry. If your docker-compose.yml changed container names since registration, fleet won’t find them.
Fix: Re-register the app or update the registry:
sudo fleet remove myappsudo fleet add myapp /path/to/compose --port 3000Systemd service won’t start
Check the service logs:
journalctl -u fleet-myapp.service -n 50 --no-pagerCommon causes:
- Compose file not found — the
WorkingDirectoryin the service file doesn’t match. Runsudo fleet patch-systemd myapp. - Port conflict — another service is using the same port. Check with
ss -tlnp | grep <port>. - Docker not running — the service depends on
docker.service. Checksystemctl status docker.
Secrets won’t unseal
Error: vault is not initializedRun sudo fleet secrets init first. This creates the age key at /etc/fleet/age.key and the vault directory.
Error: age key not found at /etc/fleet/age.keyThe encryption key is missing. If you have a backup, restore it. If not, you’ll need to re-import all secrets.
Drift detected
sudo fleet secrets driftIf this shows “drifted”, the runtime secrets in /run/fleet-secrets/ don’t match the vault. This happens when:
- Someone edited runtime files directly (don’t do this)
- The vault was re-sealed with changes but not unsealed again
Fix: Re-unseal to sync:
sudo fleet secrets unsealNginx config test fails
sudo fleet nginx add myapp# Error: nginx configuration test failedCheck the full error:
sudo nginx -tCommon causes:
- Duplicate
server_name— another config already claims that domain - Syntax error in a manually edited config file
- Missing SSL certificate referenced in an existing config
Docker compose build fails during deploy
sudo fleet deploy myapp# Error: docker compose build failedCheck the build output:
cd /path/to/app && docker compose build --no-cache 2>&1Common causes:
- Dockerfile syntax error
- Missing build context files
- Network issues pulling base images
TUI won’t launch
sudo fleet# Error or blank screenThe TUI requires a terminal that supports ANSI escape codes. It won’t work in:
- Non-interactive shells (cron, CI)
- Terminals with
TERM=dumb
Health check shows “degraded” with HTTP error
The HTTP check hits http://127.0.0.1:<port>/health directly. If your app:
- Doesn’t have a
/healthendpoint — set a custom path:fleet add myapp --health-path /api/ping - Requires HTTPS — the check uses HTTP only (it’s localhost, no TLS needed)
- Takes time to start — the 5-second timeout may not be enough for slow-starting apps
Getting more help
# View fleet helpfleet --help
# Check versionfleet --version
# View all registered appsfleet list