Aller au contenu principal

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 :

FichierContenu
authentik.dumpBase PostgreSQL (format custom de pg_dump) : comptes, groupes, applications, fournisseurs, liaisons
.envMot de passe de la base et clé secrète d'Authentik : indispensable pour restaurer
docker-compose.ymlLe fichier Compose en service
dossiers.tar.gzLes dossiers data (médias), certs et custom-templates
versions.txtLes versions des images au moment de la sauvegarde
SHA256SUMSLes 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.

Pas encore de copie hors site

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) :

  1. Arrête Authentik, sauf sa base :
    cd /opt/authentik
    sudo docker compose stop server worker
  2. Remets la configuration de la sauvegarde. Le .env d'origine est indispensable : sans sa clé secrète, les secrets stockés dans la base sont illisibles.
    S=/srv/backups/authentik/AAAA-MM-JJ_HHMM
    sudo sh -c "cd $S && sha256sum -c SHA256SUMS"
    sudo cp $S/.env /opt/authentik/.env
    sudo tar -C /opt/authentik -xzf $S/dossiers.tar.gz
    sudo docker compose up -d postgresql
  3. 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
  4. 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.

Test du 2026-11-10

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.