Files
sencho/docs/features/atomic-deployments.mdx
T
Anso ba9c4f4aa6 fix(compose): move atomic backup out of stack folder, silence stale stats 404s (#498)
The Skipper/Admiral atomic deploy/update path used to create
.sencho-backup/ inside the user's stack folder, which silently failed
with EACCES whenever a container had chowned the bind mount (swag,
tautulli, linuxserver/* images, etc). That broke auto-rollback and the
manual rollback endpoint for those stacks. Stack backups now live under
<DATA_DIR>/backups/<stackName>/ next to sencho.db, which is always
writable by the Sencho user.

While stress-testing the same scenario, MonitorService also flooded the
error log with "Error parsing stats for container ... 404 no such
container" because per-container stats polls (30s tick) raced with
docker compose recreating containers. The 404 case is now skipped
silently; non-404 stats failures still log at error level.
2026-04-10 20:06:17 -04:00

40 lines
2.1 KiB
Plaintext

---
title: Atomic Deployments
description: Zero-downtime deployments with automatic rollback for Skipper and Admiral users.
---
<Note>
Atomic Deployments require a **Sencho Skipper** or **Admiral** license. Community Edition uses standard deployments without backup or rollback.
</Note>
Sencho wraps every deployment in a safety net on Skipper and Admiral tiers. Before applying changes, it backs up your current configuration. If the deployment fails, it automatically rolls back to the previous working state.
## How it works
1. **Backup** - Before a deploy or update, Sencho copies your `compose.yaml` and `.env` files to a safe internal location
2. **Deploy** - Sencho runs the requested compose operation (up, pull + recreate, etc.)
3. **Health probe** - After deployment, Sencho waits briefly, then checks whether any containers exited with a non-zero exit code
4. **Auto-rollback** - If a crash is detected, Sencho restores the backed-up files and re-deploys automatically
This entire sequence happens transparently. You see a single deploy action; Sencho handles the safety logic behind the scenes.
## Which operations are protected
Atomic deployments apply to:
- **Deploy** from the stack editor (compose down + up)
- **Update** from the stack editor (pull latest images + recreate)
- **Webhook triggers** for deploy and pull actions
- **Scheduled tasks** that perform deploys or updates
- **App Store installs** when deploying a new stack
## Manual rollback
You can manually roll back to the previous deployment at any time by clicking the **Rollback** button in the stack editor's action bar. The button only appears when a backup exists from a prior deployment.
Hover over the Rollback button to see a tooltip with the timestamp of the last backup. Clicking it restores the backed-up `compose.yaml` and `.env` files, then re-deploys the stack with the restored configuration.
## Community Edition behavior
Community users continue to use the standard deploy flow: no backup is created and no rollback is available. Upgrading to Skipper or Admiral enables atomic deployments immediately with no configuration required.