# Backup schedules and policies

> Schedule backups for every game server from the FeatherPanel admin area, pick targets and timezones, control retention, and find node-level Wings backup policies.

Source: https://featherpanel.com/docs/admin/backups/

FeatherPanel has two kinds of admin backups:

- **Backup Schedules** make normal server backups for many servers at once. They are the same backups users see on
  their Backups page.
- **Wings Backups** archive whole nodes to SFTP or S3. They are covered in [Node backups](https://featherpanel.com/docs/wings/node-backups).

## Creating a backup schedule

Admin area, Backup Schedules, Create schedule.

| Section | Settings |
| --- | --- |
| Targets | Name, and the scope: All servers, All servers on a node, or Specific servers. The target count updates as you choose. |
| Schedule | Cron fields (minute, hour, day of month, month, day of week) and the timezone they are read in. `0 3 * * *` with Europe/Paris is 03:00 Paris time. |
| Backup type | Server files, Databases or Full server. Ignored files use gitignore-style patterns; empty means the server's `.featherpanelignore`. A full backup can include panel metadata, encrypted secrets and the activity log. |
| Options | Concurrency (1 to 5 servers per batch), Active, Only when online (skip stopped servers), Notify on failure (post an admin announcement). |

For multi-server scopes, database backups always include every database on each server.

The panel cron checks due schedules every minute and starts a backup on each target. Wings creates the archives in the
background. Each schedule row shows the last and next run; History lists past runs, and Run now starts one at once,
which is a good way to test a new schedule.

## Retention

Schedules do not have their own retention. Each server's backup limit still applies, with the retention mode from its
Limits tab or the panel default:

| Mode | When the server is full |
| --- | --- |
| Hard limit (`hard_limit`, default) | New backups are refused. |
| FIFO rolling | The oldest unlocked backup is deleted to make room. |

The default is the `server_backup_retention_mode` setting (Settings, Servers). With
`server_allow_user_backup_policy_edit` on, owners can change the mode for their own servers, but only admins change the
backup limit. Locked and in-progress backups are never rotated away.

Storage uses each server's node backup adapter (local, S3 and the others in
[Server backup drivers](https://featherpanel.com/docs/wings/server-backups)). Plan off-peak times and low concurrency on busy nodes.

## API

| Method | Path | Permission |
| --- | --- | --- |
| GET | `/api/admin/backup-schedules` | admin.backup_schedules.view |
| PUT | `/api/admin/backup-schedules` | admin.backup_schedules.create |
| PATCH, DELETE | `/api/admin/backup-schedules/{id}` | admin.backup_schedules.edit, admin.backup_schedules.delete |
| POST | `/api/admin/backup-schedules/{id}/run` | admin.backup_schedules.run |
| GET | `/api/admin/backup-schedules/{id}/runs` | admin.backup_schedules.view |
| POST | `/api/admin/backup-schedules/preview-targets` | admin.backup_schedules.view |

## Frequently asked questions

### Where are scheduled backups stored?

Each backup goes to the backup adapter configured on the server's node, the same place as manual backups. There is no separate destination for schedules.

### Will a schedule delete old backups?

Only through the server's own retention. With FIFO rolling the oldest unlocked backup is removed to make room; with a hard limit new backups fail once the server is full.
