Skip to main content
Wings supports automated backup creation and restoration with multiple storage adapters including local storage and S3-compatible endpoints.

Backup Formats

Archive Format

Backups are created as compressed tar archives:
Format: .tar.gz (gzipped tar archive) Checksum: SHA1 hash Source: server/backup/backup.go:22-26

Backup Adapters

Adapter Types

Source: server/backup/backup.go:30-33

Local Backups

Stored on the Wings machine in the configured backup directory:
Default Path: /var/lib/pterodactyl/backups/{uuid}.tar.gz Source: server/backup/backup.go:95-97

S3 Backups

Uploaded to S3-compatible storage after creation:
  • Supports multipart uploads for large backups
  • Automatic retry with exponential backoff
  • Local copy deleted after successful upload
  • 2-hour timeout for upload operations
Source: server/backup/backup_s3.go:51-156

Creating Backups

API Endpoint

Source: router/router.go:108

Backup Process

Source: server/backup.go:60-114

Ignore Patterns

Server-Wide Ignore File

Create .pteroignore in server root:
Constraints:
  • Max size: 32 KiB
  • Cannot be a symlink
  • Uses gitignore syntax
Source: server/backup.go:37-55

Backup-Specific Ignore

Pass ignore patterns in backup request:

Local Backup Generation

Source: server/backup/backup_local.go:62-79

S3 Backup Generation

Source: server/backup/backup_s3.go:51-80

S3 Multipart Upload

Features:
  • 2-hour HTTP timeout per part
  • Automatic retry with exponential backoff
  • ETags collected for multipart completion
Source: server/backup/backup_s3.go:111-156

Archive Details

Details Structure

Source: server/backup/backup.go:171-176

Calculating Details

Source: server/backup/backup.go:129-155

Checksum Calculation

Buffer Size: 4 KiB Algorithm: SHA1 Source: server/backup/backup.go:110-125

Restoring Backups

API Endpoint

Source: router/router.go:109

Restore Process

Source: server/backup.go:122-168

Local Restore

Source: server/backup/backup_local.go:83-108

S3 Restore

Source: server/backup/backup_s3.go:89-108

Panel Notifications

Backup Status

Request Structure:
Source: server/backup.go:20-34

Restoration Status

Source: server/backup.go:134-138

Websocket Events

Backup Completed

Event Name: backup completed:{uuid} Source: server/backup.go:105-111

Restore Progress

Event Name: daemon message Source: server/backup.go:156

Rate Limiting

Write Limit

Backup restoration can be rate-limited to prevent disk overload:
Default: Unlimited (0) Source: server/backup/backup_local.go:93-95

Deleting Backups

API Endpoint

Source: router/router.go:110

Local Backup Removal

Source: server/backup/backup_local.go:51-53

S3 Backup Removal

Note: Only removes local copy. S3 deletion handled by Panel. Source: server/backup/backup_s3.go:40-42

Storage Locations

Configuration

Backup Naming

Backups are stored with their UUID as the filename:

Locating Backups

Source: server/backup/backup_local.go:36-48