Backup Management¶
enconf creates incremental, deduplicated and encrypted backups — stored locally, on S3-compatible storage, or via FTP. Backups can be scheduled or triggered manually and restored at any time. Running jobs remain visible across page navigation.
Overview¶
Backup management is split into three tabs:
| Tab | Contents |
|---|---|
| Schedules | Create, edit and activate backup schedules |
| History | All executed and running backup and restore jobs |
| Restore | Select a snapshot and start a restore |
Active Tasks Banner¶
Whenever at least one backup or restore job is running, a blue banner appears above the tabs. It is visible on all tabs and refreshes every 5 seconds.
The banner shows for each running job: - Type (Backup / Restore) - Schedule name and scope - Status (Running / Pending) - Start time
Completed jobs are automatically reflected in the History tab.
Server-Wide vs. Per-Customer Backups¶
As an admin you can choose between two modes:
| Mode | When to use | Repository path |
|---|---|---|
| Entire server | Recommended default. A single schedule backs up all customers (web roots, databases, mail vhosts, SSL certificates) into one shared backup repository. No customer picker. | <bucket>/<path>/server |
| Single customer | Only when a specific customer needs separate retention, target, or credentials. | <bucket>/<path>/<customer_id> |
Customers only ever see their own per-customer schedules. Server-wide schedules are admin-only.
Migrating existing schedules
Existing per-customer schedules continue to work unchanged. There is no automatic migration. To switch to server-wide mode, create a new server-wide schedule and disable the old per-customer ones.
Known limitation
In Entire server mode the config scope is not applied because the agent currently requires a single linux user for that scope. For server-wide backups use scopes full, web, db, mail, or ssl.
Schedules¶
Create Schedule¶
- Click New Schedule
- Fill in the form:
| Field | Required | Description |
|---|---|---|
| Name | Yes | Schedule name |
| Backup scope | Yes (Admin) | Entire server (default) or Single customer |
| Customer | When Single customer | Customer assignment — only shown when backup scope is Single customer |
| Scope | Yes | full, web, db, mail, ssl, or config |
| Frequency | Yes | hourly, daily, weekly, or monthly |
| Hour | No | Hour of execution in UTC (0–23) |
| Day of Week | For weekly | Day of the week |
| Day of Month | For monthly | Day of the month (1–28) |
| Retention | Yes | Number of snapshots to keep |
| Target | Yes | Local, S3, or FTP |
| S3 Endpoint | No | Custom S3 endpoint (empty = use global setting) |
| S3 Access Key | No | Custom access key (empty = use global setting) |
| S3 Secret Key | No | Custom secret key (empty = use global setting) |
- Click Create
Save Encryption Key
After creating a schedule, an individual encryption key is generated. Click the key icon in the schedule table to view it. Save this key externally (password manager, USB drive, safe) — without it, backups cannot be restored.
Managing the Encryption Key¶
The key dialog offers four actions:
| Action | Description |
|---|---|
| Copy | Copy the key to the clipboard |
| Download as file | Save the key as netcell-backup-key-<id>.txt |
| Replace key | Import an externally saved key — e.g. to keep using an existing backup repository from another panel installation |
| Close | Close the dialog |
Warning when replacing
Replacing the key makes all previous backups of this schedule unreadable with the new key. Only use this function to restore access to an existing external repository (S3 or FTP) after reinstalling the panel.
Migrating to a new panel:
- On the old panel: key icon → Download as file
- On the new panel: create a backup schedule with the identical target (S3/FTP, bucket, path)
- Key icon → Replace key → paste the contents of the downloaded file
- Snapshots will then be listed again and can be restored
Custom S3 Storage¶
Customers can configure their own S3-compatible storage (e.g., AWS S3, Wasabi, MinIO, Hetzner Object Storage). S3 endpoint, access key, and secret key are configured directly on the schedule.
| Setting | Description |
|---|---|
| S3 Endpoint | URL of the S3-compatible service (e.g., https://s3.eu-central-1.amazonaws.com) |
| S3 Access Key | Access key for the S3 service |
| S3 Secret Key | Secret key (stored encrypted) |
| S3 Bucket | Name of the S3 bucket |
| S3 Path | Path within the bucket |
If fields are left empty, the global S3 settings from the admin are used (configured under Settings → Backup).
Permission: Custom Backup Storage
The ability to provide custom S3/FTP credentials can be restricted per package via the Custom Backup Storage (S3/FTP) permission. This permission is disabled by default.
Scope¶
| Value | What is backed up |
|---|---|
| full | Web files + databases + mail + SSL + configuration |
| web | Web files only (webspace) |
| db | Databases only (MariaDB) |
| Email mailboxes only (Maildir + Sieve) | |
| ssl | SSL certificates only |
| config | Nginx and PHP-FPM configuration |
Storage Targets¶
Local (Server)¶
Backups are stored in the local backup repository on the server.
Local Backups
Local backups do not protect against disk failure. Combine local backups with an external target.
S3 / S3-compatible¶
| Field | Description |
|---|---|
| S3 Bucket | Bucket name |
| S3 Path | Subdirectory within the bucket (optional) |
S3 credentials (endpoint, region, access key, secret key) are configured under Settings → Backup.
FTP / SFTP¶
| Field | Description |
|---|---|
| FTP Host | Server address |
| FTP Port | Default: 21 |
| FTP User | Username |
| FTP Password | Password |
| FTP Path | Target directory on the FTP server |
Enable / Disable Schedule¶
Disabled schedules are not executed automatically but can still be triggered manually.
Edit Schedule¶
- Click the Edit icon
- Adjust the settings
- Click Save
Delete Schedule¶
- Click the Delete icon
- Confirm the deletion
Snapshots Are Preserved
Deleting a schedule does not remove the snapshots already stored at the target.
Manual Backup¶
Any schedule can be triggered immediately:
- Click the green Run now button in the actions column of the desired schedule
- The backup job starts immediately and appears in the active tasks banner
Run All: Click Run All (top right) to trigger all active schedules simultaneously.
History (Job Table)¶
The History tab shows all executed and running backup and restore jobs.
Columns¶
| Column | Description |
|---|---|
| Started | Start time (e.g. "Today, 3:00 AM"), with duration and data size below |
| Schedule | Schedule name with colored scope tag; restore type shown additionally for restores |
| Status | Color-coded status label |
| Snapshot | Short snapshot ID (backups only, large screens only) |
| (Detail button) | Opens the detail view |
Tip: Clicking a row also opens the detail view.
Status Indicators¶
| Status | Color | Meaning |
|---|---|---|
| Pending | Gray | Waiting to run |
| Running | Blue (animated) | Currently executing |
| Success | Green | Completed successfully |
| Failed | Red | Failed |
Job Type¶
| Icon | Color | Meaning |
|---|---|---|
| ↑ Cloud | Blue | Backup |
| ↩ Arrow | Orange | Restore |
Detail View¶
Click a row or the info button to open the detail view. It shows:
- Type and Status as colored tags
- Schedule, start time, end time, duration, data size, snapshot ID
- Execution log — dark terminal window with detailed statistics:
- For backups: new files, changed files, unmodified files, data transferred, total duration
- For restores: files restored, files skipped, bytes, elapsed time
- Error message (for failed jobs)
No Log for Failed Jobs
The execution log is only available for successfully completed jobs. For failures, a red error message is shown instead.
Delete Old Entries¶
Click Delete old entries above the table to remove completed and failed jobs older than 30 days.
Snapshots and Restore¶
View Snapshots¶
- Switch to the Restore tab
- Select a schedule from the dropdown
- Click Load Snapshots
- Available restore points are displayed
| Column | Description |
|---|---|
| Created | Creation time (e.g. "Today, 2:23 PM") |
| Contains | Content tags based on backup scope |
| Actions | Restore, Browse files |
Browse Files¶
- Click Browse Files next to the snapshot
- Navigate through the snapshot's directory structure
- Click Restore next to any file to selectively restore that file
Start Restore¶
- Click Restore next to the desired snapshot
- Select what to restore using the card interface:
| Option | Description |
|---|---|
| Restore everything | All data from the backup (full scope only) |
| Web files | Website files & directories |
| Databases | All databases & tables |
| Email data | Emails & mailbox data |
| SSL certificates | SSL certificates & keys |
| Configuration | Nginx, PHP-FPM configuration |
| Single file | Targeted file path |
Available options depend on the schedule's scope.
- Confirm the restore
Overwrite
A restore overwrites the current data with the snapshot state. Create a manual backup of the current state beforehand.
The restore runs asynchronously in the background. Progress is visible in the active tasks banner and, once completed, in the History tab.
Backup Settings¶
Global backup settings are configured under Settings → Backup:
| Setting | Description |
|---|---|
| S3 Endpoint | URL of the S3 service (e.g. https://s3.amazonaws.com) |
| S3 Region | AWS region |
| S3 Access Key | Access key |
| S3 Secret Key | Secret key |
| Backup Enabled | Global on/off switch |
| Default Retention | Default number of snapshots to keep |