- BackupDestination model + backup_destination_service (SFTP via paramiko,
S3-compatible via boto3): upload/list/download/delete/test.
- routers/destinations.py: destinations CRUD (secrets masked, merge-on-update),
test, list/delete remote backups. backups.py: POST /{id}/backup/push and
POST /restore-from (download from a destination + restore, volumes included).
- Frontend: Settings → Backup destinations (SFTP/S3 forms + test); Backup dialog
can push to a destination; Restore dialog can pick a destination + backup.
- deps: paramiko 3.5.0, boto3 1.35.99.
Verified end-to-end against live MinIO + atmoz/sftp: create/test destinations,
push (incl. volumes), list, restore-from to a fresh stack (volume data intact),
delete remote backup.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
16 lines
286 B
Plaintext
16 lines
286 B
Plaintext
fastapi==0.115.6
|
|
uvicorn[standard]==0.34.0
|
|
docker==7.1.0
|
|
sqlmodel==0.0.22
|
|
pydantic==2.10.4
|
|
pydantic-settings==2.7.1
|
|
python-jose[cryptography]==3.3.0
|
|
passlib[bcrypt]==1.7.4
|
|
bcrypt==4.2.1
|
|
python-multipart==0.0.20
|
|
watchdog==6.0.0
|
|
httpx==0.28.1
|
|
PyYAML==6.0.2
|
|
paramiko==3.5.0
|
|
boto3==1.35.99
|