Rollback and operations
Tarsail keeps operations close to Docker Compose. The commands are wrappers around a stable remote layout and predictable Compose invocations.
Status
Section titled “Status”Show remote Compose status:
tarsail statusWith explicit config and key:
tarsail --config tarsail.production.yml --identity-file ~/.ssh/my-app-deploy-key statusThis runs a remote command equivalent to:
cd /opt/my-appdocker compose -p my-app --env-file current/.tarsail.env --env-file shared/.env -f current/compose.yaml psShow recent logs:
tarsail logsShow logs for one service:
tarsail logs webControl line count:
tarsail logs --tail 500 webFollow logs:
tarsail logs -f web--tail must be between 1 and 10000.
Service names may contain letters, numbers, dot, underscore, and hyphen.
Rollback
Section titled “Rollback”Roll back to the previous release:
tarsail rollbackRollback:
- lists releases under
<target.path>/releases; - detects the current release from the
currentsymlink; - selects the previous release;
- reloads bundled images from the previous release;
- updates
current; - runs
docker compose up -d; - prints status.
Rollback does not ask for confirmation in Phase 0.
Rollback limitations
Section titled “Rollback limitations”Rollback does not restore:
- databases;
- Docker volumes;
- bind-mounted directories outside
current; shared/files;- DNS;
- certificates;
- cloud firewall rules;
- external service state.
If a failed deployment ran a destructive migration, tarsail rollback cannot undo the database change. Keep migration safety and backup policy in the application deployment plan.
Prune releases
Section titled “Prune releases”Preview and confirm old release deletion:
tarsail pruneSkip confirmation:
tarsail prune --yesGlobal --yes also applies:
tarsail --yes prunePrune keeps the current release and keeps the newest releases according to deploy.keep_releases.
What prune deletes
Section titled “What prune deletes”Prune deletes old release directories under:
<target.path>/releases/It does not delete:
- the current release;
incoming/bundles;shared/;- Docker images;
- Docker volumes;
- databases;
- files outside the Tarsail target path.
Manual remote inspection
Section titled “Manual remote inspection”When debugging, it is often useful to inspect the remote layout:
cd /opt/my-appls -lals -la releasesreadlink currentdocker compose -p my-app --env-file current/.tarsail.env --env-file shared/.env -f current/compose.yaml psTo see the active release manifest:
cat current/manifest.jsonTo confirm the release ID Compose received:
cat current/.tarsail.envOperational checklist
Section titled “Operational checklist”For routine maintenance:
- run
doctorafter changing server access, Docker installation, config paths, or secret provisioning; - run
statusafter every deployment; - inspect service logs before rollback;
- keep
deploy.keep_releaseshigh enough for your rollback needs; - prune only after confirming recent releases are healthy;
- keep database backup and migration strategy outside Tarsail;
- document application-specific ports, health checks, and recovery steps.