Backup la configurările Docker pe Raspberry Pi folosind GitHub prin SSH

Configurare noua (How To)

Situatie

Backup la configurările Docker pe Raspberry Pi folosind GitHub prin SSH

Dacă rulezi mai multe containere pe un Raspberry Pi, fișierele de configurare (în special docker-compose.yml) sunt cele mai importante de salvat.

Ce salvăm (și ce NU salvăm)

  • Salvăm: fișierele docker-compose.yml, scripturile, fișierele de configurare statice.
  • NU salvăm: volumele cu date (baze de date, fișiere mari) și secretele din .env (parole, token-uri). Acestea se exclud prin .gitignore.

Solutie

1. Generăm o cheie SSH pe Raspberry Pi

ssh-keygen -t ed25519 -C "raspberrypi-backup"

Apasă Enter pentru locația implicită. Apoi afișează cheia publică:

cat ~/.ssh/id_ed25519.pub

2. Adăugăm cheia în GitHub

Copiază tot ce a afișat comanda de mai sus și mergi în GitHub la Settings → SSH and GPG keys → New SSH key. Lipește cheia și salvează.

Testează conexiunea de pe Pi:

ssh -T git@github.com

Ar trebui să primești un mesaj de tip „Hi username! You’ve successfully authenticated”.

3. Creăm un repository privat pe GitHub

Creează un repo nou (de exemplu docker-backup) și bifează Private. Nu adăuga README, ca să eviți conflictele la primul push.

4. Inițializăm git în folderul cu configurări

cd ~/docker
git init
git branch -M main
git remote add origin git@github.com:USERNAME/docker-backup.git

5. Excludem fișierele sensibile

Creează un fișier .gitignore:

.env
**/data/
**/db/
*.log

6. Primul commit și push

git add .
git commit -m "Backup initial configurari docker"
git push -u origin main

7. Automatizare cu un script + cron

Creează scriptul backup.sh:

#!/bin/bash
cd ~/docker || exit 1
git add .
git commit -m "Backup automat $(date +%F_%T)" || exit 0
git push

Fă-l executabil:

chmod +x ~/docker/backup.sh

Adaugă-l în crontab (rulare zilnică la ora 3 dimineața):

crontab -e
0 3 * * * /home/pi/docker/backup.sh

Observație despre secrete

Dacă vrei totuși să salvezi și fișierele .env, nu le urca în clar. Folosește o soluție de criptare precum git-crypt sau SOPS, ca parolele să fie criptate în repo. Așa ai mereu o copie versionată a configurărilor, iar dacă reinstalezi sistemul faci doar un git clone și pornești containerele din nou.

Tip solutie

Permanent

Voteaza

(0 din 0 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?