Sauvegardes et export
2 mécanismes complémentaires : backups automatisés stockés sur Nextcloud (long-terme), et exports téléchargeables à la demande (migration / récupération rapide).
Backups Nextcloud
Backup complet d'un site : compose + volumes Docker + dumps SQL des DBs attachées, uploadé sur Nextcloud WebDAV.
Créer un backup manuel
- DĂ©tail site â section Backups â Backup now
- Ou via API :
POST /api/v1/sites/<id>/backups
Ce qui est backupé
docker-compose.ymldu siteMANIFEST.jsonavec métadonnées (site_id, slug, runtime, timestamp)- Contenu du dossier
/opt/iridflow/<projet>/<site>/(sansnode_modules,.next,vendor,.git) - Volumes Docker du site (tarés depuis un container helper alpine, pas de sudo)
- Dumps SQL des DBs attachées (mariadb-dump, pg_dump)
Combien de temps elles sont gardées
Trente jours par dĂ©faut. Chaque ligne de la section Backups affiche sa date d'expiration : passĂ©e cette date, la sauvegarde est effacĂ©e et n'est plus restaurable. Ce qui doit ĂȘtre gardĂ© plus longtemps doit sortir par un export tĂ©lĂ©chargeable.
Backup automatique quotidien
Toggle par site : cron interne 03:00 UTC chaque nuit qui :
- Boucle sur les sites
auto_backup=true(skip si dernier backup < 20h) - Crée un backup
scheduled - Purge les backups expirés (row DB + fichier Nextcloud) selon
IRIDFLOW_BACKUPS_RETENTION_DAYS(30j default)
Activation : dĂ©tail site â Backups â checkbox Backup automatique quotidien. Ou :
set_backup_schedule({ site_id: "site_xxx", enabled: true })
// ou
PATCH /api/v1/sites/site_xxx/backup-schedule
Body: {"enabled": true}List / Delete
list_backups({ site_id: "site_xxx" }) // par site
list_backups({}) // tous (admin only)
delete_backup({ backup_id: "bak_xxx" }) // row DB + fichier Nextcloud
delete_backup supprime aussi le fichier Nextcloud en best-effort (WebDAV DELETE). Un delete_site cascade tous ses backups (Nextcloud + DB) automatiquement.
Restaurer
Restaurer remet le site dans l'Ă©tat de la sauvegarde choisie : le site est arrĂȘtĂ©, ses donnĂ©es sont remplacĂ©es par celles de la sauvegarde, puis il redĂ©marre. Tout ce qui a Ă©tĂ© Ă©crit depuis est perdu, sans retour arriĂšre possible.
Le chemin dans l'interface, la confirmation demandée et le détail de ce que tu perds sont sur la page Restaurer une sauvegarde.
Export téléchargeable (V1)
Alternative au backup Nextcloud : génÚre un tarball local avec URL signée valide 24h. Idéal pour migration rapide, dev local, audit code.
Générer un export
- DĂ©tail site â section Export tĂ©lĂ©chargeable â GĂ©nĂ©rer un export
- Ou via API :
POST /api/v1/sites/<id>/export
Retour :
{
"token": "a8e9006e9bd406a7b7eefca27274f2e8f73f98ceb78741ae",
"download_url": "https://mcp.iridflow.com/api/v1/exports/<token>/download",
"size_bytes": 9269,
"size_mb": "0.01",
"has_sql_dump": false,
"sql_dbs": [],
"expires_at": "2026-08-30T22:10:45.591Z",
"ttl_hours": 24
}Contenu du tarball
MANIFEST.json: métadonnées sitecode.tar.gz: sources du site (sansnode_modules/.next/vendor/.git/__pycache__)sql/<db-slug>.sql: dumps SQL des DBs attachées (best-effort)
URL de download
- Route publique authentifiée par le token dans l'URL (32 hex bytes = auth crypto)
- TTL 24h, purge auto via systemd timer
iridflow-exports-cleanup.timer - Peut ĂȘtre tĂ©lĂ©chargĂ©e depuis n'importe quel navigateur / curl / wget
Backups vs Export : lequel utiliser
| Cas | Utilise |
|---|---|
| Sauvegarde réguliÚre long-terme | Backups Nextcloud |
| Récupérer une copie locale rapide | Export téléchargeable |
| Migration vers autre hébergeur | Export |
| Debug production, code diff | Export |
| Reprise aprÚs incident | Backup Nextcloud (rétention 30j) |