- Shell 51.8%
- Go 48.2%
| backup.sh | ||
| main.go | ||
| readme.md | ||
cat << 'EOF' > README.md
🔒 Local Backup Sync (Go + Bash + PGP)
Système ultra-léger de sauvegarde chiffrée de bout en bout pour tes notes Logseq ou tes Documents. Le serveur stocke les fichiers mais ne peut pas les lire (Zéro Confiance).
🚀 1. Le Serveur (Sur la machine de stockage)
Le serveur gère le stockage des fichiers .gpg et indique quel est le backup le plus récent.
Lancement rapide :
- Initialise le projet : go mod init backup-server
- Compile le binaire : go build -o backup-server main.go
- Lance le serveur : ./backup-server
Le serveur écoute sur le port 5000 et crée un dossier ./stored_backups.
💻 2. Le Client (Sur tes machines de travail)
Prérequis
- Installer lz4
- Avoir ta clé PGP (la même clé privée + publique) sur toutes tes machines.
Configurer GPG par défaut
Trouve ton ID de clé : gpg --list-secret-keys --keyid-format LONG Ouvre ou crée le fichier ~/.gnupg/gpg.conf et ajoute : default-key TON_ID_DE_CLE_ICI
Configurer le script backup.sh
Modifie les variables en haut de ton script : TARGET_DIR="$HOME/Documents/NOTES" # Dossier à sauvegarder REMOTE_URL="http://192.168.1.49:5000" # IP de ton serveur Go
Rends-le exécutable : chmod +x backup.sh
📖 Utilisation
Lance le script : ./backup.sh
- Option 1 : Compresse, chiffre/signe avec PGP et envoie au serveur.
- Option 2 : Compare les dates. Si le serveur a un fichier plus récent, il le télécharge, vérifie la signature PGP, le déchiffre et l'extrait en écrasant l'ancien dossier.
🔄 Automatisation (Crontab)
Pour automatiser la synchro, ouvre ton crontab : crontab -e et ajoute :
Synchro descendante à chaque démarrage de la machine
@reboot /chemin/vers/backup.sh <<< "2"
Sauvegarde montante automatique toutes les heures
0 * * * * /chemin/vers/backup.sh <<< "1" EOF