Sauvegarde Authentik
Voir aussi Authentik et SSO.
Ce qui est sauvegardé
Chaque nuit à 4 h, sur la VM fsae-auth (10.194.24.61), un dossier /srv/backups/authentik/AAAA-MM-JJ_HHMM/ contenant :
| Fichier | Contenu |
|---|---|
authentik.dump | Base PostgreSQL (format custom de pg_dump) : comptes, groupes, applications, fournisseurs, liaisons |
.env | Mot de passe de la base et clé secrète d'Authentik : indispensable pour restaurer |
docker-compose.yml | Le fichier Compose en service |
dossiers.tar.gz | Les dossiers data (médias), certs et custom-templates |
versions.txt | Les versions des images au moment de la sauvegarde |
SHA256SUMS | Les sommes de contrôle de tous les fichiers, .env compris |
Les sauvegardes sont gardées 14 jours, dans un dossier lisible par root seulement. Le script est /usr/local/bin/backup_authentik.sh, lancé par /etc/cron.d/backup-authentik. Il est géré par le rôle Ansible authentik du dépôt infra/infra.
Vérifier que les sauvegardes tournent
tail -5 /var/log/backup_authentik.log
sudo sh -c 'd=$(ls -1d /srv/backups/authentik/*/ | tail -1); cd "$d" && sha256sum -c SHA256SUMS'
Le journal doit se terminer par Sauvegarde terminée. avec la date de la nuit, et chaque fichier doit afficher OK.
Pour lancer une sauvegarde à la main (avant une mise à jour d'Authentik, par exemple) : sudo /usr/local/bin/backup_authentik.sh.
Les sauvegardes restent pour l'instant sur la VM elle-même : si la VM ou le disque de Proxmox est perdu, elles le sont aussi. Le script sait copier vers Google Drive avec rclone, comme OpenProject et Vaultwarden (voir Copie hors site). Il faut configurer rclone sur fsae-auth, puis renseigner authentik_backup_rclone_remote (par exemple gdrive-crypt:authentik) dans le rôle Ansible.
Restauration
Sur une VM fsae-auth réinstallée (OpenTofu, puis le playbook authentik.yml) :
- Arrête Authentik, sauf sa base :
cd /opt/authentiksudo docker compose stop server worker
- Remets la configuration de la sauvegarde. Le
.envd'origine est indispensable : sans sa clé secrète, les secrets stockés dans la base sont illisibles.S=/srv/backups/authentik/AAAA-MM-JJ_HHMMsudo sh -c "cd $S && sha256sum -c SHA256SUMS"sudo cp $S/.env /opt/authentik/.envsudo tar -C /opt/authentik -xzf $S/dossiers.tar.gzsudo docker compose up -d postgresql - Remplace la base par celle de la sauvegarde :
sudo docker compose exec -T postgresql sh -c 'dropdb -U "$POSTGRES_USER" "$POSTGRES_DB" && createdb -U "$POSTGRES_USER" "$POSTGRES_DB"'sudo docker compose exec -T postgresql sh -c 'pg_restore -U "$POSTGRES_USER" -d "$POSTGRES_DB" --no-owner' < $S/authentik.dump
- Redémarre tout, puis vérifie la connexion sur https://auth.formuleets.ca :
sudo docker compose up -d
Relance ensuite le playbook authentik.yml : il ne régénère pas le .env, puisqu'il existe déjà, et remet les droits des dossiers.
La première sauvegarde a été restaurée dans une base PostgreSQL jetable : le fichier se recharge sans erreur, et on retrouve les 150 comptes. La restauration complète d'Authentik sur une VM neuve reste à tester, lors du test trimestriel des restaurations.