Problem
A DDEV preview server hosts dozens of projects with databases and uploaded files. If the server dies, source code is recoverable from Git, but databases and uploaded files are not.
Proposed Solution
Agent-level scheduled backup using ddev export-db per project, with optional remote push (S3, rsync).
Features
trafic backup CLI command for manual runs
- Scheduled task in the agent (
tasks/backup.ts)
trafic restore CLI command
- Configurable retention and remote storage
Config Example
[backup]
enabled = true
schedule = "0 3 * * *"
retain_days = 7
local_dir = "/var/backups/trafic"
[backup.remote]
type = "s3"
bucket = "my-trafic-backups"
CLI Surface
trafic backup # Backup all projects
trafic backup --name my-app # Backup specific project
trafic backup --list # List available backups
trafic restore --name my-app --date 2026-02-07
From exploration-ops-features.md
Priority: P2 — after agent is ported
Problem
A DDEV preview server hosts dozens of projects with databases and uploaded files. If the server dies, source code is recoverable from Git, but databases and uploaded files are not.
Proposed Solution
Agent-level scheduled backup using
ddev export-dbper project, with optional remote push (S3, rsync).Features
trafic backupCLI command for manual runstasks/backup.ts)trafic restoreCLI commandConfig Example
CLI Surface
From exploration-ops-features.md
Priority: P2 — after agent is ported