Documentation

Backups & Restore

AdminUpdated Sep 20, 2026

Backups & Restore

Full server snapshots including channels, roles, permissions, emojis, stickers, automod rules, server settings, messages, and member roles. Schedule automatic backups and restore to any server.

Overview

Restore Hub backups capture a comprehensive snapshot of your Discord server's structure and content. Unlike simple channel list exports, Restore Hub backs up everything needed to fully recreate a server from scratch — including permission overwrites, automod rules, and (plan-limited) message history.

Backups are stored securely on Restore Hub's infrastructure and can be restored to the same server or a completely different one. This makes them valuable for disaster recovery, server migration, and template creation.

What Gets Backed Up

A Restore Hub backup includes the following data, captured via Discord's REST API at the time of backup creation:

  • Channels — All channel types: text, voice, announcement, forum, stage, and categories. Includes channel name, topic, position, NSFW flag, rate limit (slowmode), bitrate (voice), user limit (voice), default auto-archive duration, available tags (forum), and parent category.

  • Roles — Every role in the server: name, color (hex), permissions bitfield, position in hierarchy, hoist flag (displayed separately), mentionable flag, and role icon (if any).

  • Permission overwrites — Per-channel role and member permission overrides. For each channel, the backup stores which roles/members have specific allow/deny permission overwrites.

  • Emojis — All custom emojis: name, animated flag, and CDN URL for recreation. When restoring, emojis are re-uploaded from the CDN URL.

  • Stickers — All custom stickers: name, description, format type (PNG/APNG/Lottie), tags, and image URL.

  • Automod rules — All AutoMod rules: trigger type, trigger metadata (keyword lists, regex patterns, presets), actions (block, alert, timeout), exempt roles, and exempt channels.

  • Server settings — Server name, icon URL, banner URL, splash URL, description, verification level, default notification setting, explicit content filter, AFK channel, AFK timeout, system channel, and system channel flags.

  • Messages — Recent messages from text channels (plan-limited). Each message stores: content, author info (ID, username, avatar), embeds, attachment URLs, timestamp, and edited timestamp. Messages are captured in reverse chronological order up to the plan's limit per channel.

  • Member roles — A mapping of Discord user ID to array of role IDs. This records which members had which roles at the time of backup, enabling role restoration during a restore operation.

Tip: Backups are point-in-time snapshots. They capture the server's state at the exact moment the backup runs. Changes made after the backup are not included.

Creating a Backup

  1. From the dashboard — Navigate to your server in the dashboard. Click "Backups" in the sidebar, then "Create Backup". The backup is queued and processed in the background by the backup worker. You will see the status update in real time.

  2. From Discord (Premium+) — Use the /backup command in your Discord server. The bot will confirm the backup has been queued and DM you when it is complete.

  3. Via the API — Send a POST request to /api/v1/servers/:id/backups. The response includes the backup ID and a "queued" status. Poll GET /api/v1/servers/:id/backups to check progress.

The backup worker runs asynchronously. For a large server with many channels and messages, a backup can take anywhere from a few seconds to several minutes. The worker fetches all data from Discord's REST API, respecting rate limits.

Scheduled Backups (Premium+)

On Premium and above, you can schedule automatic backups at a regular interval. The scheduler runs independently and creates backups without any manual intervention.

| Setting | Description | Default |
|---|---|---|
| Interval (days) | How often a backup is created (e.g., every 1 day, every 7 days) | 1 day |
| Max backups | Maximum number of scheduled backups to keep. Older ones are auto-pruned. | 5 |
| Active | Whether the schedule is currently running | Yes |

Tip: Auto-pruning only affects scheduled backups. Manual backups are never auto-deleted. If you have 5 scheduled backups and the max is 5, the oldest scheduled backup is deleted when a new one is created.

Plan Limits

| Plan | Max Backups | Messages per Channel | Scheduled Backups |
|---|---|---|---|
| Free | 3 | 50 | No |
| Premium | 10 | 200 | Yes |
| Business | 30 | 500 | Yes |
| Enterprise | 50 | 2,000 | Yes |

Warning: The message limit is per channel, not per backup. A Free plan backup of a server with 20 text channels captures up to 50 messages from each channel (1,000 messages total).

Restoring a Backup

Restoring rebuilds a server's structure from a backup snapshot. You can restore to the same server (to revert changes) or to a different server (to clone or migrate).

  1. Select the backup — In the dashboard, go to Backups and click "Restore" on the backup you want to restore. Or use the /restore command in Discord, or POST to /api/v1/servers/:id/backups/:backupId/restore.

  2. Choose a target server — By default, the backup restores to the same server. You can optionally specify a different target server ID. The bot must be in the target server with the required permissions.

  3. Choose what to restore — You can selectively restore: channels (default on), roles (default on), permission overwrites (default on), emojis (default off), server settings (default off), and member roles (default off).

  4. Confirm and execute — The restore job is queued and processed by the backup worker. Restore Hub creates roles first (to establish the hierarchy), then channels with their permission overwrites, then emojis/stickers, then server settings.

Warning: Restoring channels DELETES all existing channels in the target server and recreates them from the backup. This is destructive and cannot be undone. Member roles restore only works for members who are currently in the server.

How Restore Handles Role IDs

When a backup is created, role IDs are captured as they exist at that moment. When restoring to a different server, those role IDs do not exist. Restore Hub handles this by creating new roles with the same name, color, and permissions, then mapping old role IDs to new role IDs internally.

This role ID mapping is used for: permission overwrites (channel permissions reference roles by ID), member role restoration (re-assigning roles to members), and channel-level permission overrides.

Using Backups Across Different Servers

Backups are not locked to the server they were created from. You can restore any backup to any server where your bot has the required permissions. Common use cases:

  • Server templates — Create a backup of a perfectly configured server and restore it to new servers as a starting point.

  • Migration — Back up your old server, create a new one, and restore the entire structure.

  • Disaster recovery — If your server is nuked or compromised, restore from the most recent backup.

  • Testing — Restore to a test server to experiment with changes without affecting your live server.

The Backup Worker

Backups and restores run asynchronously through a background worker (BullMQ job queue). When you create a backup or restore, a job is added to the queue. The worker picks it up, processes it (fetching data from Discord or creating resources), and updates the backup record in the database.

The worker respects Discord's REST API rate limits. For large servers, the worker may take several minutes to complete. You can monitor progress through the dashboard, which polls for status updates.

Was this page helpful?