🚀 Guide de restauration serveur Docker¶
1. Reconfigurer SSH¶
-
Réouvrir le port 22 dans le firewall de l'hébergeur.
-
Modifier la configuration SSH :
sudo nano /etc/ssh/sshd_config
Ajouter :
Port 22
Port {port custom}
- Redémarrer SSH :
sudo systemctl daemon-reexec
sudo systemctl restart ssh
-
Tester la connexion via le port {port custom}.
-
Si la connexion fonctionne :
-
Modifier
sshd_configpour ne laisser que :Port {port custom} -
Fermer le port 22 dans le firewall de l'hébergeur.
-
2. Remonter le disque /home¶
- Installer les outils XFS :
sudo apt install -y xfsprogs
- Formater le disque :
sudo mkfs.xfs -f /dev/sdb
- Monter temporairement :
sudo mkdir /mnt/home
sudo mount /dev/sdb /mnt/home
- Copier le contenu actuel :
sudo rsync -rlptgoDHAX /home/ /mnt/home/
- Démonter et monter comme
/home:
sudo umount /mnt/home
sudo mount /dev/sdb /home
sudo rmdir /mnt/home
3. Installation des dépendances¶
- Mettre à jour le système :
sudo apt update && sudo apt upgrade -y
- Installer les outils de base :
sudo apt install -y curl wget git apt-transport-https ca-certificates gnupg lsb-release
- Installer auditctl :
sudo apt install -y auditd audispd-plugins
- Installer inotify:
sudo apt install -y inotify-tools
4. Installer Docker et Docker Compose¶
- Ajouter la clé et le dépôt officiel Docker :
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
- Vérifier la version Docker dispo :
apt-cache madison docker-ce | grep 28.4.0
- Installer Docker (si la version est dispo) :
sudo apt install -y docker-ce=5:28.4.0-1~ubuntu.24.04~noble docker-ce-cli=5:28.4.0-1~ubuntu.24.04~noble containerd.io docker-buildx-plugin docker-compose-plugin
- Installer Docker Compose :
sudo curl -SL https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
5. Installer et configurer Rclone¶
- Installer Rclone :
curl https://rclone.org/install.sh | sudo bash
- Configurer Proton Drive sur ta machine locale (WSL) puis copier la config sur le serveur :
scp ~/.config/rclone/rclone.conf ubuntu@<IP_SERVEUR>:/home/ubuntu/.config/rclone/
6. Configurer Docker Engine¶
- Modifier la config Docker :
sudo nano /etc/docker/daemon.json
Contenu :
{
"data-root": "/home/docker/engine"
}
- Appliquer la config :
sudo systemctl stop docker.socket
sudo systemctl stop docker
sudo mkdir -p /home/docker/engine
sudo chown -R root:root /home/docker/engine
sudo systemctl start docker
- Ajouter ton user au groupe
docker:
sudo usermod -aG docker ubuntu
newgrp docker
7. Restauration des données¶
- Télécharger le backup :
rclone copy proton:backup/backup-15-09-2025-test.tar.gz /home/ubuntu/
- Extraire l'archive :
sudo tar -xvzf /home/ubuntu/backup-15-09-2025-test.tar.gz -C /
- Verfier la présence des fichiers dans home/docker/data , dans /srv/ et dans /home/ubuntu/script
8. Restauration config CI/CD¶
- Créer L'utilisateur deploy :
sudo adduser --disabled-password --gecos "" deploy
- On ajoute la clé publique:
sudo mkdir -p /home/deploy/.ssh
echo "ta_cle_publique" | sudo tee /home/deploy/.ssh/authorized_keys
sudo chown -R deploy:deploy /home/deploy/.ssh
sudo chmod 700 /home/deploy/.ssh
sudo chmod 600 /home/deploy/.ssh/authorized_keys
- On gère ces droits : (tout retirer accès a docker data seulement)
sudo deluser deploy sudo
sudo deluser deploy adm
sudo chmod -R 777 /home/docker/data
sudo apt install -y acl
sudo setfacl -R -m u:deploy:rwx /home/docker/data
sudo setfacl -d -m u:deploy:rwx /home/docker/data
9. Configurer les script¶
- On rends nos script dans /home/ubuntu/script executable:
sudo chmod +x /home/ubuntu/script/{script.sh}
- on créer notre service pour les ecoute de mise a jour :
[Unit]
Description=Surveillance du {portfolio} et redeploiement auto
After=network.target docker.service
Requires=docker.service
[Service]
ExecStart=/home/ubuntu/script/watch-{portfolio}.sh
Restart=always
User=ubuntu
WorkingDirectory=/home/docker/data/{portfolio}
[Install]
WantedBy=multi-user.target
- On démarre le service :
sudo systemctl daemon-reload
sudo systemctl enable watch-portfolio
sudo systemctl start watch-portfolio
- on vérifie :
journalctl -u watch-portfolio -f
- On re paramètres notre script de backup
sudo crontab -e
# Ajouter cette ligne
0 1 * * 0 /home/ubuntu/script/backups.sh >> /var/log/backup.log 2>&1
#On vérife
sudo crontab -l
10. Relancer les services Docker¶
Par service :
cd /srv/dashboard && docker compose up -d
cd /srv/documentation && docker compose up -d
cd /srv/portfolio && docker compose up -d
cd /srv/limoncello-bay && docker compose up -d
cd /srv/nginx-proxy && docker compose up -d
11. Vérifications¶
- Vérifier les conteneurs actifs :
docker ps
- Vérifier que chaque service est accessible (dashboard, documentation, portfolio, serveur de jeu, proxy).