Overview
Backup Dashboard

Snapshot, schedule, and restore your server in minutes

The Backup page is one screen — no tabs. Stat tiles at the top, a snapshot trend chart, GFS retention breakdown, storage quota, the auto-backup scheduler, capture scope and the restore-points table. Manual snapshots take seconds; restores are previewed before anything is touched.

Path
DashboardServerBackup
Module
Backup
Required permission
backup.view

Before you make a backup

Backup is a Pro feature. The whole page renders an upgrade prompt instead of cards if your server is not on the right tier or the module is off.

  • Backup module enabled in Server Settings (or guild is on Custom-Host).
  • Server is on Pro tier — the page header carries a PRO chip.
  • You hold the backup.view capability (default: every member can see), backup.create / backup.restore for action buttons.
  • Storage quota has free space. The page enforces 5 GB per server; restore points are pruned by retention before quota is hit.
No tabs, just sections
Unlike most other dashboard pages, Backup has no tab strip. Every concern lives on a single scrollable page so you can configure schedule and scope, then watch new restore points appear in the table below.

Section 1 — Stat tiles, top of the page

Five tiles summarise your backup posture in numbers.

What each tile reports

  • Total restore points — every snapshot you currently have, manual and automatic combined.
  • Last backup — relative time since the most recent successful snapshot.
  • Dedupe ratio — how much storage SYNTHET is saving by sharing unchanged objects across snapshots. 3.2× is healthy.
  • Unique objects — how many distinct items (roles, channels, emojis) live across all your snapshots. Adds context to dedupe.
  • Storage used — total bytes consumed against the 5 GB quota.

Section 2 — Snapshot trend chart

A small line chart under the tiles showing how many restore points existed each day for the last 30 days.

What it tells you

  • A flat line means your retention is stable — keepDaily/keepWeekly/keepMonthly are doing their job.
  • A staircase climb means automatic backups are running but retention is not pruning. Check Section 5 settings.
  • A sudden drop means you (or an admin) bulk-deleted snapshots from the table. Audit log will confirm.

Section 3 — GFS tier breakdown

GFS = Grandfather/Father/Son. SYNTHET keeps three tiers of snapshots and prunes them on different schedules.

daily
Every successful auto-snapshot becomes a daily until the keepDaily count is hit. Default 7. Used for "yesterday I broke something" recovery.
weekly
Once per week the latest daily is promoted to a weekly. Default keepWeekly is 4. Used for "we redesigned a category last month" recovery.
monthly
Once per month the latest weekly is promoted to a monthly. Default keepMonthly is 12. Used for compliance and long-term audit.
Manual snapshots are pinned
Snapshots you create with the Create Backup button are not part of the GFS rotation — they are pinned and never auto-pruned. Delete them from the restore-points table when you no longer need them.

Section 4 — Storage quota

A horizontal bar showing bytes used vs the 5 GB cap. Hovering reveals the breakdown by tier.

What to do when it gets full

  • Open the restore-points table and delete pinned manual snapshots you no longer need (auto ones get pruned automatically).
  • Lower keepDaily / keepWeekly / keepMonthly in Section 5 — pruning runs the next time auto-backup fires.
  • Reduce capture scope (see Section 7) — turn off includeMessages if you have it on; it accounts for >80% of size when enabled.
  • Upgrade to Custom-Host — the 5 GB cap goes away.

Section 5 — Auto-backup schedule

The card that turns on automatic snapshots and decides when they run.

Controls in this card

enabledToggle

Master switch. When off, no auto-snapshots ever fire and the rest of the card is greyed out.

Example: On

tier preset buttonsDropdown

Three quick presets: Daily-only (light), GFS standard (recommended), Aggressive (everything). Sets cron and retention together.

Example: GFS standard

cronText input

Five-field cron expression in your guild timezone. Edit directly if you need a custom schedule.

Example: 0 3 * * *

last run / next runText input

Read-only timestamps showing when the scheduler last fired and when it next will.

Default cron is 03:00 in guild timezone
A daily 3am run is gentle on the bot's overall load and finishes well before peak server hours. Stick with it unless you have a specific reason — rate-limiting Discord during a snapshot is much more disruptive than the snapshot itself.

Section 6 — Retention

Three numbers and one toggle. Together they decide which snapshots survive pruning.

SettingTypeDefaultDescription
keepDailynumber7How many daily snapshots to retain before promoting/discarding.
keepWeeklynumber4How many weekly snapshots to retain.
keepMonthlynumber12How many monthly snapshots to retain.
autoPrunetoggleOnWhen off, retention numbers are advisory and SYNTHET keeps everything until you delete manually. Use only for forensics windows.

Section 7 — Capture scope

A collapsible card listing what each snapshot captures. Open it once when you set up the page; you rarely need to revisit.

Always-on scopes

  • Roles — including hierarchy and per-role permission overwrites.
  • Channels — name, topic, type, position, slowmode.
  • Categories — and which channels live under them.
  • Emojis and stickers — including custom uploads.
  • Webhooks — name and channel binding (tokens are NEVER captured for security).
  • Automod rules — every Discord-side automod entry.
  • Channel and category permission overwrites.
  • Guild settings — name, icon, banner, locale, AFK timeout.

Optional scopes

includeMessagesToggle

If on, captures the most recent N messages per channel. Vastly increases snapshot size and transfer time.

Example: Off

encryptAtRestToggle

When on, snapshots are encrypted with a server-specific key before being stored. Adds a few hundred milliseconds to capture and restore.

Example: On

includeChannelsMulti-select

Optional whitelist. Empty = capture every channel. Useful for partial backups of sensitive content.

excludeChannelsMulti-select

Channels skipped during capture. Wins over includeChannels when both are set.

excludeRolesMulti-select

Roles skipped during capture. Useful when a third-party bot manages a role you do not want versioned.

includeMessages is the size multiplier
Turning on message capture can multiply snapshot size 10-100x depending on your server volume. The 5 GB quota fills fast. Only enable if you have a specific compliance reason — the GFS retention will not save you if a single snapshot exceeds quota.

Section 8 — Restore points table

The biggest card on the page. A paginated table of every snapshot SYNTHET holds for your server.

Columns

  • Type — chip showing manual / daily / weekly / monthly.
  • Created — absolute timestamp in your guild timezone.
  • Size — bytes consumed by this snapshot's unique data after dedupe.
  • Scope — small icons indicating which scopes were captured.
  • Author — Discord user for manual; "Auto" for scheduled.
  • Actions — Preview restore, Restore now, Delete.

Restore preview modal

  • Side-by-side diff of current server vs the snapshot.
  • Counts of items added / changed / removed by tier (roles, channels, emojis, etc.).
  • A scope picker — uncheck any tier you do not want to restore.
  • Two buttons: Cancel (close) and Restore (execute).
Restores are not transactional across Discord
Discord rate limits long restore operations into chunks. If a restore is interrupted halfway through (rare, but possible) your server is in a partial state. Run the same restore again — SYNTHET picks up where it left off based on object identity.

Common tasks

1

Set up auto-backup for the first time

Open DashboardServerBackup.

  • Section 5 → toggle "Enabled" on.
  • Click the "GFS standard" preset button — it fills cron 0 3 * * * and retention 7/4/12.
  • Section 7 → leave includeMessages off unless you really need it.
  • Section 7 → leave encryptAtRest on (default).
  • Wait until 3am tomorrow, then refresh the page; a new restore point will appear in Section 8.
2

Take a manual snapshot before a big change

  • Click the green Create Backup button at the top of the page.
  • Optionally name it (e.g., "Before category cleanup").
  • Confirm. The snapshot completes in a few seconds for most servers.
  • It appears in Section 8 marked Manual — pinned, so retention will never auto-prune it.
  • Run your big change. If it goes badly, restore from this exact pin.
3

Roll back a misconfiguration without losing recent work

  • Section 8 → find the most recent good snapshot, click Preview restore.
  • In the modal, uncheck any scope you want to keep current. Common: keep Roles current, restore only Channels.
  • Click Restore. SYNTHET shows a progress indicator; do not navigate away.
  • When done, refresh Discord. Verify the restored items are correct.
  • If the result is wrong, restore again from a different snapshot — the operation is idempotent.

Troubleshooting

Storage bar is full and snapshots are failing
Pruning has not caught up, or you have many pinned manual snapshots. Open Section 8, sort by size, delete pinned snapshots you no longer need. If the table is mostly auto-snapshots, lower keepDaily/keepWeekly in Section 6.
Auto-backup says enabled but never runs
Cron is in your guild timezone. If your timezone changed (or was misconfigured) the next run could be days away. Check Section 5 → next run; if it is wrong, set guildTimezone in your server-wide settings, then save Section 5 again to recompute.
Restore complains about missing roles
You restored channels but excluded roles. Channel permission overwrites reference role IDs that no longer exist. Either restore roles too, or accept that overwrites for missing roles are dropped — SYNTHET cannot invent role IDs.
Webhook URLs are gone after restore
By design — webhook tokens are never captured because they are credentials. Recreate the webhooks (the channel binding is restored) and update the consumers. SYNTHET emits a small report of webhooks that need re-issuing at the end of restore.