# ROA2WEB Scripts - Secrets Management ## Backup & Restore Environment Secrets Aceste script-uri ajută la backup-ul securizat (criptat) al fișierelor `.env` și `.env.prod` care conțin credențiale sensibile. ### 🔐 Backup Secrets **Creează backup criptat cu AES256:** ```bash ./scripts/backup-secrets.sh ``` **Ce face:** - Găsește toate fișierele `.env` și `.env.prod` - Le criptează cu GPG (AES256) - Le salvează în `secrets-backup/YYYY-MM-DD_HH-MM-SS/` - Creează README cu instrucțiuni **Rezultat:** ``` secrets-backup/ └── 2025-01-15_14-30-00/ ├── .env.gpg ├── .env.prod.gpg └── README.md ``` **Notă:** Vei fi rugat să introduci o parolă pentru criptare. **Salvează această parolă în gestionar de parole!** ### 🔓 Restore Secrets **Restaurează din backup criptat:** ```bash # Restaurează din ultimul backup ./scripts/restore-secrets.sh # Restaurează din backup specific ./scripts/restore-secrets.sh 2025-01-15_14-30-00 ``` **Ce face:** - Decriptează fișierele .gpg din backup - Le plasează înapoi în locațiile originale - backend/.env - backend/.env.prod - backend/modules/telegram/.env - backend/modules/telegram/.env.prod **Notă:** Vei fi rugat să introduci parola de decriptare. ## 🗂️ Opțiuni de Salvare a Backup-urilor ### Opțiunea 1: Commit în Git (Recomandat) Fișierele `.gpg` sunt criptate și pot fi comise în siguranță: ```bash # Creează backup ./scripts/backup-secrets.sh # Adaugă în git git add secrets-backup/ git commit -m "Add encrypted secrets backup" git push ``` **Avantaje:** - Sincronizat automat cu remote - Versioning complet - Acces de pe orice mașină - Sigur (criptat cu parolă) **Dezavantaje:** - Trebuie să ții minte parola ### Opțiunea 2: Backup Local (Doar Local) Păstrează backup-urile doar pe mașina locală: ```bash # Decomentează în .gitignore: # secrets-backup/ # Copiază backup-urile pe USB/cloud manual cp -r secrets-backup /mnt/usb/roa2web-secrets-backup ``` ### Opțiunea 3: Gestionar de Parole **Pentru backup manual rapid:** ```bash # Copiază conținutul și salvează în Bitwarden/1Password cat backend/.env cat backend/.env.prod cat backend/modules/telegram/.env cat backend/modules/telegram/.env.prod ``` ## 🔒 Best Practices 1. **Rulează backup înaintea deployment-ului:** ```bash ./scripts/backup-secrets.sh git add secrets-backup/ git commit -m "Backup secrets before deployment" ``` 2. **Salvează parola de criptare în gestionar de parole:** - Bitwarden: Secure Note "ROA2WEB GPG Backup Password" - 1Password: Document "ROA2WEB Secrets Password" - LastPass: Secure Note 3. **Testează restore periodic:** ```bash # Backup ./scripts/backup-secrets.sh # Șterge temporar mv backend/.env backend/.env.backup # Restore ./scripts/restore-secrets.sh # Verifică diff backend/.env backend/.env.backup ``` 4. **Pentru echipă:** - Partajează parola GPG în gestionar de parole partajat - Sau folosește chei GPG separate pentru fiecare membru ## 🚨 Troubleshooting ### "gpg: decryption failed: Bad session key" - Parola introdusă este greșită - Verifică în gestionar de parole ### "No such file or directory" - Asigură-te că rulezi script-ul din root-ul proiectului: ```bash cd /path/to/roa2web ./scripts/backup-secrets.sh ``` ### "gpg: command not found" ```bash # Ubuntu/Debian sudo apt-get install gnupg # Windows WSL sudo apt-get install gnupg ``` ## 📋 Alternative de Backup ### 1. Manual GPG (un fișier): ```bash gpg --symmetric --cipher-algo AES256 backend/.env # Rezultat: .env.gpg ``` ### 2. Tar + GPG (toate odată): ```bash tar -czf - backend/**/.env* | gpg --symmetric --cipher-algo AES256 > secrets-backup.tar.gz.gpg ``` ### 3. Ansible Vault: ```bash ansible-vault encrypt backend/.env.prod ``` ## 📝 Deployment pe Windows Server Pentru deployment pe Windows, copiază fișierele `.env.prod`: ```bash # Linux/WSL -> Windows Server # 1. Creează backup local ./scripts/backup-secrets.sh # 2. Copiază backup-ul pe server Windows scp -r secrets-backup/latest/ administrator@server-ip:C:/temp/ # 3. Pe server Windows, decriptează: gpg --decrypt .env.prod.gpg > C:\inetpub\wwwroot\roa2web\backend\.env.prod gpg --decrypt .env.prod.gpg > C:\inetpub\wwwroot\roa2web\telegram-bot\.env.prod ``` ## 🔗 Vezi și - `.gitignore` - Pattern-uri pentru .env files - `DEPLOYMENT_GUIDE.md` - Deployment production - `deployment/windows/docs/WINDOWS_DEPLOYMENT.md` - Windows deployment