Skip to content

Scripts Backup

Scripts automatiques backup configurations (host, Docker).

Vue d'Ensemble

Script Path Contenu Cron
backup-proxmox-host.sh /usr/local/bin/ (host) Configs host Proxmox 05:00
backup-docker-configs.sh /usr/local/bin/ (host) docker-compose LXC 100/101/103 05:00

Architecture centralisée sur host :

  • Scripts s'exécutent sur host Proxmox
  • Création tar locale
  • Upload direct Google Drive via rclone (installé sur host)
  • LXC 102 : mission limitée à PBS (datastore + sync chunks)

Backup Host Proxmox

Script : /usr/local/bin/backup-proxmox-host.sh (sur host)

Contenu sauvegardé :

  • /etc/pve/ - Configs Proxmox VE
  • /etc/network/ - Configuration réseau
  • /etc/ssh/ + /root/.ssh/ - SSH
  • /etc/fstab - Montages disques
  • /etc/snapraid.conf - SnapRAID
  • /etc/cron.* - Tâches planifiées
  • /usr/local/bin/ - Scripts custom

Destination : gdrive:backup/homeserver/proxmox/
Format : proxmox-host-config-YYYYMMDD-HHMMSS.tar.gz

Structure archive : Préserve chemins complets (/etc/pve/, /etc/network/, etc.)

Backup Docker Configs (LXC 100/101/103/104)

Script : /usr/local/bin/backup-docker-configs.sh (sur host)

Contenu sauvegardé :

  • LXC 100 :
    • docker-compose.yml
    • prowlarr/config.xml, radarr/config.xml, sonarr/config.xml
    • sabnzbd/sabnzbd.ini
  • LXC 101 :
    • docker-compose.yaml
    • coolercontrol/, homepage/
    • cup/ - Cup configuration (cup.json)
    • portainer/ - Portainer data (stack definitions, database, settings)
      • compose/ - All managed stack definitions + env files
      • portainer.db - Portainer metadata (users, endpoints, settings)
    • zensical/docs/, zensical/zensical.toml
  • LXC 103 :
    • docker-compose.yml
    • authelia/{configuration,users_database}.yml
    • caddy/Caddyfile — config reverse proxy
    • caddy/data/ — certificats Let's Encrypt + compte ACME (hors locks)
    • wireguard/ - Configs VPN
  • LXC 104 :
    • docker-compose.yml
    • .env - Environment variables
    • endurain/data/ - Activity data
    • romm/config/ - Romm configuration
    • romm/assets/ - Game saves and states

Exclusions :

  • npm/data/logs - Logs NPM
  • zensical/site/ - Site généré (zensical serve)
  • */cache, */logs, */MediaCover, */downloads

Destination : gdrive:backup/homeserver/lxc-data/
Format : lxc-data-YYYYMMDD-HHMMSS.tar.gz

Structure archive : Préserve structure lxc-data/NNN-name/ (ex: lxc-data/100-media/). Archives antérieures au 2026-05-07 utilisaient l'ancienne structure lxc-data/docker-NNN/.

Cron Configuration

Host Proxmox

# Vérifier
crontab -l

# Lignes actives
0 5 * * * /usr/local/bin/backup-proxmox-host.sh
0 5 * * * /usr/local/bin/backup-docker-configs.sh

Logs

# Host
tail -f /var/log/backup-proxmox-host.log
tail -f /var/log/backup-docker-configs.log

Rétention

  • Tous backups : 30 jours Google Drive (cleanup automatique rclone)

Architecture Rclone

Installation : Host Proxmox uniquement

Config : /root/.config/rclone/rclone.conf (permissions 600)

Sécurité :

  • Token OAuth Google Drive sur host
  • Isolation : LXC 102 (privileged PBS) n'a pas accès credentials cloud
  • Risque minimisé : host déjà point critique infrastructure

LXC 102 : Conserve rclone uniquement pour pbs-sync-gdrive-optimal.sh (sync chunks PBS datastore)

Vérification

Voir monitoring.md.

Restauration

Voir ../recovery/restoration.md.