The Backups tab lets you create a complete snapshot of your Minecraft server folder with a single click. ServerPilot compresses the entire server directory — including your world, plugins, and configuration files — into a ZIP archive stored inside the server folder itself. You can browse your backup history and restore any previous snapshot just as easily.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/GKExpo/ServerPilot/llms.txt
Use this file to discover all available pages before exploring further.
How Backup Creation Works
Clicking Backup Server (or the Backup button on the Dashboard) calls thebackups:create IPC handler. The handler:
- Resolves the server’s folder path and creates the
backups/subdirectory if it doesn’t exist - Generates a timestamped filename by slugifying the server name and appending an ISO timestamp with colons and dots replaced by hyphens:
- Format:
{server-name-slug}-{ISO-timestamp}.zip - Example:
My-Paper-Server-2024-01-15T10-30-00-000Z.zip
- Format:
- Creates a writable stream to the output ZIP path and pipes it through
archiverwithzlibcompression level 9 (maximum compression) - Uses
archive.glob('**/*', { cwd: server.folderPath, ignore: ['backups/**'] })so thebackups/subfolder itself is never included in any backup (preventing recursive growth) - Calls
archive.finalize()and waits for the output stream to close - Fires a desktop toast notification: “Backup completed — {server name} backup is ready.”
busy state) while creation is in progress.
Where Backups Are Stored
All ZIP files are stored in thebackups/ subfolder inside your server folder:
Backup History List
The Backups tab callsbackups:list on mount and after every new backup is created. The handler reads the backups/ directory, filters for .zip files, stats each one, and returns them sorted by creation date — newest first. Each entry in the list shows:
- Filename — the full backup ZIP name
- Created — the file creation timestamp formatted with
toLocaleString() - Size — the ZIP file size formatted as a human-readable value (e.g.
1.2 GB)
Restoring a Backup
Clicking Restore next to any backup entry prompts for confirmation (“Restore {name}? This overwrites matching server files.”). If confirmed, thebackups:restore IPC handler:
- Validates that the
backupPathis inside the server’sbackups/subdirectory using a strictpath.dirnamecheck — no other paths can be extracted - Calls
extract-zipto unzip the archive back into the server folder root, overwriting any files that exist with the same relative paths - Fires a desktop notification: “Backup restored — {server name} was restored from {filename}.”
Triggering a Backup from the Dashboard
You do not need to open the Backups tab to create a backup. The Backup button in the Dashboard header callsbackups:create directly. This is useful when you want to snapshot the server quickly before a risky operation without navigating away from the Dashboard.
Managing Backup Storage
ServerPilot does not automatically delete old backups. Because Minecraft server folders can be large (especially worlds with significant exploration), backups at zlib level 9 can still reach several hundred megabytes or more. You are responsible for managing disk space:- Delete old backups manually through the File Manager (navigate into the
backups/folder) or through Windows Explorer - Consider keeping only the last few backups and deleting older ones periodically
- If disk space is a concern, pause regular backups before running long exploration or building sessions, then back up afterward
IPC Reference
| Channel | Direction | Payload | Returns |
|---|---|---|---|
backups:list | Renderer → Main | id (server ID) | Array of { name, fullPath, size, createdAt }, newest first |
backups:create | Renderer → Main | id (server ID) | { fullPath, name } of the new ZIP |
backups:restore | Renderer → Main | { id, backupPath } | true |