What's new
Panelica Community Forum

Welcome to the official Panelica Community Forum — the central hub for server administrators, developers, and hosting professionals. Register a free account today to access technical discussions, product announcements, feature requests, and direct support from the Panelica team. Be part of the growing community shaping the future of server management.

Backup & Restore --- Complete Guide

admin

Administrator
Staff member
Backup & Restore --- Complete Guide​

This guide covers everything about Panelica's backup system --- creating backups, scheduling automated backups, configuring remote storage, restoring from backups, managing snapshots, and monitoring backup activity.

Backup System Overview​

Panelica's backup system includes:

  • Server Backups --- Full or incremental backups of all domains, databases, emails, DNS, and SSL
  • Domain Snapshots --- Point-in-time snapshots of individual domains (Btrfs-based)
  • Scheduled Backups --- Automated backup schedules with cron
  • Remote Storage --- Sync backups to AWS S3, Google Cloud, Google Drive, SFTP, and more
  • Activity Logging --- Full audit trail of all backup operations

---

Creating a Server Backup​

Go to Backup > Create Backup.

Step 1: Backup Configuration

FieldOptionsDescription
Backup NameTextDisplay name (timestamp appended automatically)
Backup TypeFull / IncrementalFull creates a complete backup; Incremental only saves changes since the last full backup
EncryptionNone / Panel Key / PasswordNone = unencrypted, Panel Key = AES-256 with system key, Password = AES-256 with your password
Compression Level1--9Higher = smaller file but slower (uses zstd compression)

Step 2: Select What to Back Up

Toggle individual components:
  • Web Content --- All files in domain directories
  • Databases --- MySQL and PostgreSQL dumps
  • Email --- Email accounts, mailboxes, and configuration
  • DNS Records --- Zone files and DNS settings
  • SSL Certificates --- All installed certificates and keys

Step 3: Select Domains

Choose which domains to include:
  • All Domains --- Back up everything
  • Selective --- Pick specific domains from a searchable list

Step 4: Remote Sync (Optional)

If you have remote storage configured, you can enable auto-sync to upload the backup after creation. Select one or more destinations.

Step 5: Click Create Backup. The backup runs in the background --- you can monitor progress from the backup list.

---

Incremental Backups​

Incremental backups only save files that changed since the last full backup. They're much smaller and faster to create.

How it works:
  • You must create a full backup first (the "chain root")
  • Incremental backups reference this chain root via the backup_name
  • Restoring requires both the full backup and all incremental backups in the chain
  • The system tracks chains automatically and warns about orphaned backups

Safe Delete: When you delete a full backup that has dependent incremental backups, the system warns you and offers to consolidate the chain or delete orphans.

---

Encryption​

Three encryption modes are available:

ModeAlgorithmKey SourceBest For
None------Non-sensitive data, internal backups
Panel KeyAES-256System encryption keyRoutine automated backups
PasswordAES-256Your custom passwordOffsite backups, compliance requirements

Password Requirements:
  • Minimum 12 characters
  • At least 1 uppercase + 1 lowercase letter
  • At least 1 digit
  • At least 1 special character (!@#$%^&*)

A strength indicator (weak/medium/strong) appears as you type. Encrypted backups have the .tar.zst.enc extension.

---

Scheduled Backups​

Go to Backup > Scheduled Backups.

Create automated backup schedules that run on a cron schedule.

Schedule Configuration:

FieldDescription
Schedule NameDisplay name for the schedule
Backup NamePrefix for backup filenames
Backup TypeFull or Incremental
ScheduleCron format (minute, hour, day, month, weekday) or presets
RetentionHow many days to keep backups (auto-delete older ones)
Max BackupsMaximum number of backups to keep
EncryptionNone / Panel Key / Password
CompressionLevel 1--9
ComponentsWeb / Databases / Email / DNS / SSL toggles
DomainsAll or selective domain list
Remote SyncAuto-upload to configured destinations

Common Schedules:
  • Daily full backup at 2 AM: 0 2 * * *
  • Hourly incremental: 0 * * * *
  • Weekly full + daily incremental combination

Each schedule can be enabled/disabled, and shows the last run time and next scheduled run.

---

Remote Storage​

Go to Backup > Remote Storage.

Configure remote destinations to automatically sync backups offsite.

Supported Providers:

ProviderAuth MethodFeatures
AWS S3Access Key + Secret15+ regions, storage classes (Standard/IA/Glacier), server-side encryption
S3-CompatibleAccess Key + SecretMinIO, DigitalOcean Spaces, custom endpoint URL
Google Cloud StorageHMAC auth20+ locations, multiple storage classes
Google DriveOAuth 2.0Browser-based authorization flow
SFTPPassword or SSH keyCustom port, remote path, key upload

Setting Up a Destination:
  1. Click Add Destination
  2. Select the provider type
  3. Fill in credentials and configuration
  4. Click Test Connection to verify
  5. Save the destination

Each destination shows a connection status indicator. You can test, edit, or delete destinations at any time.

Sync Monitoring:
When backups are syncing, you can see:
  • Progress bar with percentage
  • Upload speed (MB/s)
  • Estimated time remaining
  • Current file being uploaded
  • Pause/Resume controls
  • Retry button for failed syncs

---

Restoring from Backup​

Go to Backup > Restore.

Step 1: Select Backup
Choose the backup file from the dropdown. The system shows:
  • Backup filename, type, size
  • Creation date
  • Number of domains included
  • Encryption status

Step 2: Restore Options

OptionDescription
Full RestoreRestore everything from the backup
Selective RestoreChoose specific domains to restore
Component SelectionToggle: Web Content, Databases, Email, DNS, SSL
Conflict ActionSkip / Overwrite / Rename --- what to do if a domain already exists
Pre-Restore BackupCreate a safety backup before restoring (recommended)
Decryption PasswordRequired for password-encrypted backups

Step 3: Click Start Restore.

The restore runs asynchronously in the background. A progress bar shows:
  • Current phase (validating, decrypting, extracting, restoring databases, etc.)
  • Overall progress percentage
  • Domain counter (e.g., "2 of 5 domains")
  • Estimated time remaining
  • Warnings and errors as they occur

Restore Phases:
  1. Validating --- Checking backup file integrity
  2. Decrypting --- If password-protected
  3. Extracting Files --- Restoring web content
  4. Restoring Databases --- Importing MySQL/PostgreSQL dumps
  5. Restoring Email --- Setting up email accounts
  6. Restoring DNS --- Applying DNS zone records
  7. Restoring SSL --- Installing certificates
  8. Verifying --- Final validation
  9. Completed --- Restore finished

---

Domain Snapshots​

Go to Backup > Snapshots.

Snapshots provide instant point-in-time captures of domains using Btrfs.

Creating a Snapshot:
  1. Click Create Snapshot
  2. Select the domain (or "Server Snapshot" for ROOT)
  3. Enter a name and optional description
  4. Click Create --- snapshots are nearly instant

Restoring a Snapshot:
  1. Find the snapshot in the list
  2. Click Restore
  3. Confirm the action
  4. The domain is rolled back to the snapshot state

Important: Snapshots require a Btrfs filesystem. Check with df -T /home.

Snapshot Settings:
  • Auto-snapshot before system changes
  • Retention period (default: 7 days)
  • Max snapshots per domain
  • Compression settings (zstd, gzip, bzip2)
  • Storage quota in GB

---

Activity Log​

Go to Backup > Activity Log.

Every backup operation is logged with full details:

OperationDescription
backup_createServer backup created
backup_restoreBackup restored
backup_deleteBackup deleted
backup_uploadBackup uploaded to remote storage
snapshot_createDomain/server snapshot created
snapshot_restoreSnapshot restored

Features:
  • Filter by operation type, status, username, date range
  • Pagination with 15 items per page
  • Statistics dashboard (total, success rate, today/week counts)
  • Export to CSV
  • Click any entry for full details including warnings and errors

---

Rate Limiting & Security​

Backup operations are rate-limited to prevent abuse:

OperationDefault Limit
Create backup5 per hour
Restore backup3 per hour
Download backup20 per hour
Delete backup10 per hour
Concurrent restores2 maximum

These limits are configurable in Panel Settings.

Path Traversal Protection: Filenames are sanitized with filepath.Base() and only .tar.zst / .tar.zst.enc extensions are accepted.

---

Permissions (RBAC)​

FeatureROOTADMINRESELLERUSER
Create backupAllOwn domainsOwn domainsOwn domains
Restore backupAllOwn domainsOwn domainsOwn domains
Server backupYesYesNoNo
Remote storage configYesNoNoNo
View all activityYesOwn chainOwnOwn

---

Best Practices​

  1. Follow the 3-2-1 rule --- 3 copies, 2 different media, 1 offsite (use Remote Storage)
  2. Schedule regular full backups --- At least weekly, with daily incrementals
  3. Always encrypt offsite backups --- Use Password encryption for remote destinations
  4. Test restore regularly --- Don't wait for a disaster to find out your backups are broken
  5. Set retention policies --- Auto-delete old backups to manage disk space
  6. Enable pre-restore backup --- Always create a safety backup before restoring
  7. Monitor the Activity Log --- Check for failed backups and address issues promptly
  8. Use multiple remote destinations --- Different providers for redundancy (e.g., S3 + SFTP)

---

Troubleshooting​

Problem: Backup fails with "insufficient space"
  • Check disk space with the Server > Disk Usage page
  • Delete old backups or increase disk allocation
  • Enable higher compression levels

Problem: Restore fails with "decryption error"
  • Verify the password matches the one used during backup creation
  • The backup file may be corrupted --- check the file size

Problem: Remote sync stuck at 0%
  • Test the connection from Remote Storage settings
  • Check if credentials have expired (especially OAuth tokens)
  • Verify network connectivity to the remote provider

Problem: Incremental backup shows "no parent found"
  • The parent full backup may have been deleted
  • Ensure the backup_name matches the chain root
  • Create a new full backup to start a fresh chain
 
Back
Top