mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-07-26 20:00:08 +00:00
ba9c4f4aa6
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.
40 lines
2.1 KiB
Plaintext
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.
|