0 Votes

Reconstruction

Modifié par john le 2026/09/20 13:31

Ordre des opérations pour remonter le serveur principal sur une machine neuve ou réinstallée, à partir de la sauvegarde Plakar et de ce wiki.

Prérequis

ÉlémentOù le trouver
Phrase secrète du dépôt PlakarCopie hors ligne et gestionnaire de mots de passe (voir Sauvegarde)
Dépôt PlakarSSD du Raspberry Pi
Jeton DuckDNSTableau de bord du site DuckDNS
Clés TurnstileTableau de bord Cloudflare
Jeton du bot TelegramBotFather (/token)

Ce qui n'est pas dans la sauvegarde

ÉlémentEmplacementComment le recréer
Script de sauvegarde et tâche cron/root/backup-plakar.sh, /etc/cron.d/backup-plakarPage Sauvegarde
Clé SSH vers le dépôt et sa configuration/root/.ssh/plakar_matrix, /root/.ssh/configNouvelle clé, à autoriser sur le Pi
Phrase secrète du dépôt/root/.plakar-passCopie hors ligne
Jeton et groupe Telegram/root/.backup-telegramBotFather
Données de Portainer (stacks, variables)Volume portainer_dataStacks recopiées depuis les pages de ce wiki, ou archive « Backup Portainer »
Volumes Docker nommés (Dawarich, Wallabag, Jellystat, Photon)/var/lib/docker/volumesBases restaurées depuis les dumps SQL ; index Photon retéléchargé
Base d'Immich<DOSSIER_IMMICH> hors libraryDump SQL

1. Système

  • Debian 13, installation minimale avec SSH.
  • rsyslog : sans lui, pas de /var/log/auth.log et pas de surveillance SSH par CrowdSec.
  • Noyau Zabbly (optionnel, Secure Boot désactivé).
  • Lynis et Oh My Bash.
sudo apt install rsyslog lynis curl

2. Docker

Dépôt officiel de Docker (paquets docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, docker-compose-plugin), puis :

sudo usermod -aG docker <UTILISATEUR>
docker network create proxy
docker network create docker-api

3. Restauration des données

Installer Plakar, créer une clé SSH et l'autoriser sur le Pi (voir « Mise en place du dépôt » dans Sauvegarde), puis :

sudo plakar -keyfile /root/.plakar-pass at "<REPO>" ls
sudo plakar -keyfile /root/.plakar-pass at "<REPO>" restore -to /restore <ID_INSTANTANE>

Replacer ensuite à leur emplacement d'origine, avec leurs droits :

RestauréDestination
/restore/<APPDATA><APPDATA>
/restore/<BIBLIOTHEQUE_IMMICH><BIBLIOTHEQUE_IMMICH>
/restore/<CONTENU_JOPLIN><CONTENU_JOPLIN>
sudo rsync -aHAX /restore/<CHEMIN>/ <CHEMIN>/

Les dumps SQL de toutes les bases sont dans <APPDATA>/dumps.

4. Portainer

Voir Portainer : instance centrale, modèles d'applications, logo, puis ajout de l'environnement du Raspberry Pi (agent).

5. Accès et sécurité

Dans cet ordre, pour que chaque service publié soit protégé dès son démarrage :

Vérifier le certificat et l'accès au portail Authelia avant de continuer.

6. Services

Pour chaque service, recopier la stack de sa page, recréer ses variables d'environnement, déployer.

Bases dont les fichiers bruts ne sont pas sauvegardés : démarrer la base seule, réinjecter le dump, puis démarrer l'application.

BaseDumpRéinjection
MariaDB (XWiki, Passbolt, Castopod)<CONTENEUR>.sql (toutes bases)docker exec -i <CONTENEUR> sh -c 'exec mariadb -uroot -p"$MARIADB_ROOT_PASSWORD"' < <DUMP>
MariaDB Nextcloudnextcloud.sql (base applicative)docker exec -i <CONTENEUR> sh -c 'exec mariadb -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' < <DUMP>
PostgreSQL (tous)<CONTENEUR>.sql (instance complète)docker exec -i <CONTENEUR> sh -c 'exec psql -U "$POSTGRES_USER" -d postgres' < <DUMP>

Ordre conseillé : Passbolt (pour retrouver les autres secrets), Nextcloud, XWiki, puis les autres dans l'ordre du bandeau de Serveur principal.

Passbolt a aussi besoin de sa clé serveur : <APPDATA>/passbolt/gpg, restauré avec le reste.

7. Sauvegarde et surveillance

  • Script, tâche cron, fichier Telegram : Sauvegarde.
  • Premier lancement à la main, puis attendre le ✅.
  • Watchtower et le workflow de notification de n8n.
  • Premier audit : sudo lynis audit system.