---
title: Backups
slug: backups
description: Schedule daily encrypted database backups, download restore points, and roll the site back when you need to.
productSlug: cedros
productLabel: Cedros
sectionKey: tools
sectionLabel: Tools
---
# Backups

The Backups page is where you schedule daily encrypted backups, download retained backup points, and restore the site when you need to roll back. Every backup is a single encrypted `.zip` bundle, and the page walks you through a one-time setup before any backups run.

## What's on this page

### Header

The page title is **Backups**, with the subtitle "Schedule daily database backups, download retained backup points, and restore the site when you need to roll back." If you lack backup permissions, a read-only indicator ("Requires backup permissions") appears. Top-right has two buttons: **Schedule** and **Backup Now**. Both are disabled while a backup is in progress.

### Setup wizard (first time only)

Before backups can run, you set an encryption phrase once. The setup card is titled **Backup encryption phrase required** with the prompt "Create a new encryption phrase, or enter the existing phrase from a previous deployment." Two choices:

- **Create new** — Generates a fresh phrase for this site.
- **Use existing phrase** — Lets you paste the phrase from a previous deployment so you can upload and restore older bundles afterward.

After you pick one, a phrase card shows the warning "Store this phrase in a password manager or other offline recovery location. Without it, encrypted backup artifacts cannot be restored." Check **I have saved this encryption phrase somewhere safe** to enable the **Finish Setup** button. While the wizard is open, the Schedule and Backup Now buttons, the upload card, and the restore UI are hidden.

### Available backups list

After setup, a card lists your retained backup points. Each row shows the bundle name (`cedros-backup-YYYY-MM-DD-HH-MM-SS.zip`), creation timestamp, size, retention tier (Daily / Approx. 2 weeks / Approx. 1 month), origin (Local only / Remote only / Local + remote), and contents (Postgres dump, Vault data and native mail when configured, manifest). Each row has download, restore, and delete actions.

The subtitle reads "Each backup is a single .zip bundle containing the encrypted Postgres dump, vault tarball, and manifest." If vault isn't configured: "Vault data is not configured for this site, so it is not included." When there are no backups, you'll see **No retained backups yet** with "Run a backup now or wait for the daily schedule to create the first restore point." During loading it shows "Refreshing backup inventory...".

If remote storage isn't set up, a triangle warning icon offers "Backups are only stored on this server. Configure remote object storage to upload encrypted backups offsite," with an **Open storage settings** link.

### Restore form

Selecting **Restore** on a row opens a card titled **Restore [bundle name]** with the subtitle "This will replace the live Cedros database and/or vault data with the selected backup." A warning notes "Restore is destructive. Use it only when you want to roll the site back to this exact backup point." A **Backup point:** line confirms which restore point is selected, showing its timestamp, retention tier, and origin. You pick which artifacts to restore (Postgres, Vault) via checkboxes, type **RESTORE** in the **Type RESTORE to confirm** field, then click **Restore Backup**. **Cancel** dismisses the form.

If the bundle was encrypted on another deployment with a phrase Cedros does not already have, enter it in **Backup encryption phrase override (optional)**. The phrase is used for this restore only. If the bundle includes Vault or native mail data, you must confirm that its service has been stopped before restoring it. Vault and native mail artifacts are disabled when their target directory is not configured on the current deployment; configure the target before restoring that artifact.

### Progress banners

- **Backup in progress** — Shown while a backup runs: "Creating an encrypted backup point. Large databases can take a few minutes." A scheduled run shows "Scheduled backup in progress."
- **Restore status** — After a restore starts, a status notice shows progress (running, completed, or failed) along with the backup ID, artifacts, timestamps, and any error.

### Schedule dialog

The **Schedule** button opens **Daily backup schedule**: "Cedros runs one encrypted backup each day. We keep the last 7 daily snapshots, plus one from ~2 weeks ago and one from ~1 month ago for longer-term recovery." Controls:

- **Automatic daily backups** — Toggle. Hint: "Cedros creates one full, encrypted backup each day at the time set below."
- **Daily backup time** — Time input (HH:MM).
- **Timezone** — Defaults to your timezone. Hint: "Runs daily in the timezone saved with this backup schedule."

A summary aside lists Contents, **Offsite storage** (provider/bucket or "Not configured (local-only)"), **Vault snapshot**, **Native mail snapshot**, and **Selected restore** (backup ID or "None selected"). The footer has **Rotate encryption passphrase** and **Close**.

### Upload card

**Upload an existing backup** lets you restore a bundle from another deployment: "Drop the cedros-backup .zip file here; it will be registered alongside locally-scheduled backups." The card starts collapsed with a **Get started** button; click it to reveal the file picker. After a successful upload, open it from the list and click **Restore**. Cedros first tries the stored current and historical phrases; use the optional phrase override when the uploaded bundle was encrypted with a different phrase.

## Common things you can do here

### Run a backup right now

Click **Backup Now**. The button shows "Backing up..." while it runs, and the in-progress banner appears. This requires backup operations access.

### Set up the daily schedule

Click **Schedule**, turn on **Automatic daily backups**, then set **Daily backup time** and **Timezone**. Changes save automatically. This requires backup settings access.

### Download a backup

Click the **Download** icon on any row to save its `.zip` bundle. Requires backup operations access.

### Restore the site to a backup

Click the **Restore** icon on the row you want, pick the artifacts, check the vault confirmation if vault is included, type **RESTORE**, and click **Restore Backup**. Restore replaces live data — use it only to roll back.

### Upload a backup from another deployment

In **Upload an existing backup**, choose the `cedros-backup-...zip` file. Once registered, open it from the list and click **Restore**. Enter an override in the restore form if the bundle uses a phrase this deployment does not store.

### Rotate the encryption passphrase

Open the **Schedule** dialog and click **Rotate encryption passphrase**. The new phrase is shown one time only — record it offline immediately. Existing backups stay restorable.

### Delete a backup

Click the **Delete** icon. A **Delete this backup?** dialog asks you to confirm; click **Delete backup** to remove it or **Keep backup** to cancel. Once deleted, the backup is permanently removed from local storage and any remote copy. This can't be undone.

## Tips

- **Save your phrase offline.** Without the encryption phrase, no encrypted backup can be restored. Keep it in a password manager. The phrase is shown only once after creation or rotation.
- **Retention is automatic.** Cedros keeps the last 7 daily snapshots, plus one from about 2 weeks ago and one from about a month ago.
- **Stop the vault first.** If a backup includes vault data, stop the Cedros Vault service before restoring to avoid corrupting the restored data.
- **Stop native mail first.** If a backup includes native mail data, stop the mail service before restoring so IMAP and LMTP cannot modify Maildir concurrently.
- **Configure remote storage for offsite safety.** Local-only backups live on this one server. Set up remote object storage so encrypted copies go offsite.
- **Autosave for the schedule.** Schedule changes save on their own; you don't need a Save button. Auto-refresh pauses while you have unsaved settings.

## Troubleshooting

- **The page is read-only?** You need backup permissions. Schedule changes, setup, and passphrase rotation require backup settings access; running, uploading, downloading, restoring, and deleting require backup operations access. Ask an admin.
- **Schedule and Backup Now are missing or buttons are disabled?** During first-time setup the buttons are hidden until you finish the wizard. Both buttons also disable while a backup is in progress.
- **"A daily backup is overdue right now."** The scheduled time has passed without a run. Cedros will run it on the next scheduler pass.
- **My uploaded backup won't restore?** Cedros tries this site's stored current and historical phrases first. If the bundle came from another deployment with a different phrase, enter that phrase in the restore override field.
- **Restore Backup button won't work?** You must type **RESTORE** exactly in the confirmation field, and if the bundle includes vault data, check **I have stopped the Cedros Vault service** first.
- **A warning triangle shows on the backups list?** Remote storage isn't configured, so backups are local-only. Click **Open storage settings** to set up offsite storage.
