Rendre docker-backup.sh entierement generique via DOCKER_APP_NAME
Suppression de tous les hardcodes 'gitea' dans docker-backup.sh : noms de backup, fichiers DB/volumes, patterns de nettoyage, script restore genere, metadonnees, logs et notifications. Autres corrections : - docker-auto-update.sh : VERSION_ENDPOINT configurable au lieu du endpoint Gitea /api/v1/version en dur - restore.sh : HEALTH_CHECK_URL au lieu de localhost:3000 en dur - docker-scripts.conf : ajout VERSION_ENDPOINT - Suppression de backup-docker.sh (script legacy non generique) - README : synchronisation des noms de fichiers reels - Correction config file source (gitea-scripts.conf -> docker-scripts.conf)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Docker Scripts — Auto-Update, Backup, Restore & Déploiement Cron
|
||||
|
||||
Solution complète et générique pour la maintenance automatisée d'applications
|
||||
Solution complète et **générique** pour la maintenance automatisée d'applications
|
||||
Docker (Gitea, ou toute autre app MySQL + volumes) : backup, mise à jour,
|
||||
restauration et déploiement.
|
||||
|
||||
@@ -147,7 +147,7 @@ bash setup.sh --dry-run # Aperçu sans rien installer
|
||||
|
||||
---
|
||||
|
||||
### 💾 `gitea-backup.sh` — Backup complet
|
||||
### 💾 `docker-backup.sh` — Backup complet
|
||||
|
||||
Sauvegarde complète et portable : DB MySQL + volumes Docker + configuration.
|
||||
|
||||
@@ -155,8 +155,8 @@ Sauvegarde complète et portable : DB MySQL + volumes Docker + configuration.
|
||||
|
||||
| Variable | Défaut | Description |
|
||||
|----------|--------|-------------|
|
||||
| `BACKUP_DIR` | `/NFS/BACKUP/DOCKER/dev-prod/gitea` | Destination backups |
|
||||
| `COMPOSE_DIR` | `~/dev/git/outils/docker/gitea` | Dossier docker-compose |
|
||||
| `BACKUP_DIR` | `/NFS/BACKUP/DOCKER/$HOSTNAME/gitea` | Destination backups |
|
||||
| `COMPOSE_DIR` | `~/dev/git/outils/gitea` | Dossier docker-compose |
|
||||
| `DB_CONTAINER` | `gitea_db` | Conteneur MySQL |
|
||||
| `DB_NAME` | `gitea` | Nom base de données |
|
||||
| `DB_ROOT_PASSWORD` | `gitea` | Mot de passe root MySQL |
|
||||
@@ -174,7 +174,7 @@ Sauvegarde complète et portable : DB MySQL + volumes Docker + configuration.
|
||||
|
||||
```cron
|
||||
# Tous les jours à 2h du matin
|
||||
0 2 * * * /home/openclaw/scripts/gitea-backup.sh
|
||||
0 2 * * * /home/openclaw/scripts/docker-backup.sh
|
||||
```
|
||||
|
||||
#### Structure d'un backup
|
||||
@@ -193,7 +193,7 @@ Sauvegarde complète et portable : DB MySQL + volumes Docker + configuration.
|
||||
|
||||
#### Backup distant (optionnel)
|
||||
|
||||
Configurer dans `gitea-scripts.conf` :
|
||||
Configurer dans `docker-scripts.conf` :
|
||||
|
||||
```bash
|
||||
REMOTE_BACKUP_ENABLED=true
|
||||
@@ -206,7 +206,7 @@ REMOTE_BACKUP_SSH_KEY=/home/user/.ssh/id_rsa
|
||||
|
||||
---
|
||||
|
||||
### 🔄 `gitea-auto-update.sh` — Mise à jour automatique
|
||||
### 🔄 `docker-auto-update.sh` — Mise à jour automatique
|
||||
|
||||
Vérifie quotidiennement si une nouvelle image Docker Gitea est disponible.
|
||||
|
||||
@@ -220,6 +220,7 @@ Vérifie quotidiennement si une nouvelle image Docker Gitea est disponible.
|
||||
| `IMAGE_TAG` | `latest` | Tag (version) |
|
||||
| `HEALTH_CHECK_URL` | `http://localhost:3000` | URL vérification santé |
|
||||
| `HEALTH_CHECK_TIMEOUT` | `30` | Timeout attente (secondes) |
|
||||
| `VERSION_ENDPOINT` | *(vide)* | Endpoint version (ex: `/api/v1/version`) |
|
||||
|
||||
#### Fonctionnement
|
||||
|
||||
@@ -240,12 +241,12 @@ Vérifie quotidiennement si une nouvelle image Docker Gitea est disponible.
|
||||
# Telegram
|
||||
ENABLE_NOTIFICATIONS=true NOTIFY_METHOD=telegram \
|
||||
TELEGRAM_BOT_TOKEN=xxx TELEGRAM_CHAT_ID=xxx \
|
||||
bash gitea-auto-update.sh
|
||||
bash docker-auto-update.sh
|
||||
|
||||
# ntfy.sh
|
||||
ENABLE_NOTIFICATIONS=true NOTIFY_METHOD=ntfy \
|
||||
NTPY_TOPIC=mon-topic \
|
||||
bash gitea-auto-update.sh
|
||||
bash docker-auto-update.sh
|
||||
```
|
||||
|
||||
---
|
||||
@@ -293,8 +294,8 @@ Le script gère un **bloc marqué** dans la crontab :
|
||||
|
||||
```cron
|
||||
# >>> GITEA SCRIPTS (managed by install_cron.sh) <<<
|
||||
0 2 * * * /home/bruno/scripts/gitea-backup.sh >> /var/log/gitea-backup-cron.log 2>&1
|
||||
0 4 * * * /home/bruno/scripts/gitea-auto-update.sh >> /var/log/gitea-update-cron.log 2>&1
|
||||
0 2 * * * /home/bruno/scripts/docker-backup.sh >> /var/log/gitea-backup-cron.log 2>&1
|
||||
0 4 * * * /home/bruno/scripts/docker-auto-update.sh >> /var/log/gitea-update-cron.log 2>&1
|
||||
# >>> END GITEA SCRIPTS <<<
|
||||
```
|
||||
|
||||
@@ -304,7 +305,7 @@ Le `--uninstall` retire uniquement ce bloc, sans toucher au reste de la crontab.
|
||||
|
||||
## ⚙️ Configuration centralisée
|
||||
|
||||
Tous les paramètres sont dans `gitea-scripts.conf`. Les scripts chargent ce
|
||||
Tous les paramètres sont dans `docker-scripts.conf`. Les scripts chargent ce
|
||||
fichier automatiquement s'il est présent dans le même répertoire.
|
||||
|
||||
Les variables d'environnement **surchargent** les valeurs du fichier de
|
||||
@@ -312,13 +313,13 @@ configuration.
|
||||
|
||||
```bash
|
||||
# Exemple : changer le dossier de backup
|
||||
BACKUP_DIR=/mnt/big-disk/gitea bash gitea-backup.sh
|
||||
BACKUP_DIR=/mnt/big-disk/gitea bash docker-backup.sh
|
||||
|
||||
# Exemple : backup avec arrêt des conteneurs
|
||||
STOP_CONTAINERS=true bash gitea-backup.sh
|
||||
STOP_CONTAINERS=true bash docker-backup.sh
|
||||
|
||||
# Exemple : backup + sync distante
|
||||
REMOTE_BACKUP_ENABLED=true bash gitea-backup.sh
|
||||
REMOTE_BACKUP_ENABLED=true bash docker-backup.sh
|
||||
```
|
||||
|
||||
---
|
||||
@@ -342,8 +343,8 @@ logrotate (rotation hebdomadaire, 12 semaines de rétention, compression).
|
||||
Pour éviter les exécutions concurrentes (backup + update simultanés), chaque
|
||||
script utilise un lock file dans `/tmp` :
|
||||
|
||||
- `/tmp/gitea-backup.lock`
|
||||
- `/tmp/gitea-auto-update.lock`
|
||||
- `/tmp/${DOCKER_APP_NAME}-backup.lock`
|
||||
- `/tmp/${DOCKER_APP_NAME}-auto-update.lock`
|
||||
|
||||
Si un lock stale est détecté (PID inexistant), il est automatiquement nettoyé.
|
||||
|
||||
@@ -387,7 +388,7 @@ ls -t /NFS/BACKUP/DOCKER/dev-prod/gitea/gitea-backup-* | tail -n +10 | xargs rm
|
||||
tail -50 /var/log/gitea-update.log
|
||||
|
||||
# Tester manuellement
|
||||
bash ~/scripts/gitea-auto-update.sh
|
||||
bash ~/scripts/docker-auto-update.sh
|
||||
```
|
||||
|
||||
### Restauration
|
||||
@@ -403,11 +404,11 @@ bash ~/scripts/restore.sh $(ls -td /NFS/BACKUP/DOCKER/dev-prod/gitea/gitea-backu
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
⚠️ Les mots de passe dans `gitea-scripts.conf` et `docker-compose.yml` sont
|
||||
⚠️ Les mots de passe dans `docker-scripts.conf` et `docker-compose.yml` sont
|
||||
des valeurs par défaut. **Changez-les avant la mise en production :**
|
||||
|
||||
```bash
|
||||
# Dans gitea-scripts.conf
|
||||
# Dans docker-scripts.conf
|
||||
DB_ROOT_PASSWORD=votre-mot-de-passe-securise
|
||||
DB_PASSWORD=votre-autre-mot-de-passe
|
||||
|
||||
|
||||
Reference in New Issue
Block a user