Compare commits
2 commits
main
...
fix/baraaa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b3ee3cb47 | ||
|
|
a186273e47 |
4 changed files with 230 additions and 0 deletions
|
|
@ -123,6 +123,19 @@ services:
|
|||
- 'ofelia.job-exec.backup-daily.schedule=0 0 3 * * *'
|
||||
- 'ofelia.job-exec.backup-daily.command=/usr/local/bin/backup.sh'
|
||||
|
||||
ofelia:
|
||||
image: mcuadros/ofelia:latest
|
||||
command: daemon --docker
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
labels:
|
||||
- 'coolify.managed=true'
|
||||
- 'coolify.type=service'
|
||||
- 'ofelia.enabled=true'
|
||||
|
||||
volumes:
|
||||
postgres_data_v2:
|
||||
driver: local
|
||||
|
|
|
|||
122
docs/BARAAA-70-VERIFICATION.md
Normal file
122
docs/BARAAA-70-VERIFICATION.md
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
# BARAAA-70 : Correction Ofelia en Boucle de Redémarrage
|
||||
|
||||
## Problème Résolu
|
||||
|
||||
Le service Ofelia était en boucle de redémarrage car il n'était **pas défini** dans `compose.coolify.yml`. Les labels Ofelia étaient présents sur le service `backup`, mais aucun scheduler Ofelia n'existait pour les lire et exécuter les tâches planifiées.
|
||||
|
||||
## Solution Appliquée
|
||||
|
||||
Ajout du service `ofelia` dans `compose.coolify.yml` :
|
||||
|
||||
```yaml
|
||||
ofelia:
|
||||
image: mcuadros/ofelia:latest
|
||||
command: daemon --docker
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres
|
||||
labels:
|
||||
- 'coolify.managed=true'
|
||||
- 'coolify.type=service'
|
||||
- 'ofelia.enabled=true'
|
||||
```
|
||||
|
||||
### Caractéristiques de la Configuration
|
||||
|
||||
- **Image officielle** : `mcuadros/ofelia:latest`
|
||||
- **Mode** : `daemon --docker` (surveille les labels Docker)
|
||||
- **Socket Docker** : monté en lecture seule pour surveiller les conteneurs
|
||||
- **Dépendance** : démarre après `postgres` (aligné avec `compose.lan.yml`)
|
||||
- **Restart policy** : `unless-stopped` (redémarre automatiquement)
|
||||
- **Label Ofelia** : `ofelia.enabled=true` (auto-activation)
|
||||
|
||||
## Vérification Post-Déploiement
|
||||
|
||||
### 1. Vérifier que le Service Démarre
|
||||
|
||||
Via l'interface Coolify ou Docker :
|
||||
|
||||
```bash
|
||||
# Vérifier le statut du conteneur
|
||||
docker ps | grep ofelia
|
||||
# Attendu : état "Up" (pas de restart loop)
|
||||
|
||||
# Vérifier les logs
|
||||
docker logs agenthub-ofelia-1 --tail 50
|
||||
# Attendu : messages de démarrage sans erreur
|
||||
```
|
||||
|
||||
**Logs attendus** :
|
||||
```
|
||||
Starting Ofelia...
|
||||
Ofelia is running in daemon mode
|
||||
Watching Docker containers for job labels
|
||||
```
|
||||
|
||||
### 2. Vérifier la Détection des Jobs
|
||||
|
||||
Ofelia devrait détecter les jobs définis dans les labels du service `backup` :
|
||||
|
||||
```bash
|
||||
docker logs agenthub-ofelia-1 | grep backup-daily
|
||||
```
|
||||
|
||||
**Attendu** :
|
||||
```
|
||||
Job backup-daily registered: schedule=0 0 3 * * *, command=/usr/local/bin/backup.sh
|
||||
```
|
||||
|
||||
### 3. Tester le Job Backup Manuellement (Optionnel)
|
||||
|
||||
Pour vérifier que le job fonctionne sans attendre 3h du matin :
|
||||
|
||||
```bash
|
||||
# Activer le profil backup si pas déjà fait
|
||||
docker compose --profile backup up -d backup
|
||||
|
||||
# Exécuter le job manuellement via Ofelia
|
||||
docker exec agenthub-ofelia-1 ofelia run backup-daily
|
||||
|
||||
# Vérifier les logs du backup
|
||||
docker logs agenthub-backup-1
|
||||
```
|
||||
|
||||
**Attendu** : fichier de backup créé dans `/backups` du conteneur backup.
|
||||
|
||||
### 4. Vérifier le Cron Automatique
|
||||
|
||||
Le backup automatique devrait s'exécuter tous les jours à 3h00 (UTC) :
|
||||
|
||||
```bash
|
||||
# Le lendemain matin, vérifier les logs Ofelia
|
||||
docker logs agenthub-ofelia-1 | grep "Job backup-daily"
|
||||
|
||||
# Vérifier les logs du service backup
|
||||
docker logs agenthub-backup-1 --since 24h
|
||||
```
|
||||
|
||||
## Prochaines Étapes
|
||||
|
||||
1. **Déployer** : redéployer l'application sur Coolify avec le nouveau `compose.coolify.yml`
|
||||
2. **Vérifier** : suivre les étapes de vérification ci-dessus
|
||||
3. **Activer backup** : si le service backup n'est pas déjà actif, l'activer avec le profil
|
||||
4. **Monitoring** : surveiller les logs Ofelia pendant quelques jours
|
||||
|
||||
## Notes Importantes
|
||||
|
||||
- Le service `backup` est dans un profil optionnel (`profiles: [backup]`). Pour que les jobs Ofelia fonctionnent, ce service doit être démarré manuellement :
|
||||
```bash
|
||||
docker compose --profile backup up -d backup
|
||||
```
|
||||
|
||||
- Ofelia peut tourner même si le service `backup` n'est pas actif. Il attendra simplement que le conteneur cible soit disponible.
|
||||
|
||||
- Le socket Docker doit être accessible en lecture pour qu'Ofelia puisse surveiller les labels et exécuter les commandes dans les conteneurs.
|
||||
|
||||
## Références
|
||||
|
||||
- Configuration de référence : `compose.lan.yml` (lignes 35-44)
|
||||
- Documentation Ofelia : https://github.com/mcuadros/ofelia
|
||||
- Format cron : `0 0 3 * * *` = tous les jours à 3h00 UTC
|
||||
55
scripts/deploy-ofelia-fix.sh
Executable file
55
scripts/deploy-ofelia-fix.sh
Executable file
|
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
# Script de déploiement BARAAA-70 - Correction Ofelia
|
||||
# Déploie la branche fix/baraaa-70-ofelia sur Coolify
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
COOLIFY_URL="${COOLIFY_URL:-https://coolify.barodine.net}"
|
||||
APP_UUID="${COOLIFY_APP_UUID:-zly1hnagnbz7jv6yiijzcmep}"
|
||||
BRANCH="${DEPLOY_BRANCH:-fix/baraaa-70-ofelia}"
|
||||
|
||||
# Vérifier que le token API est configuré
|
||||
if [ -z "${COOLIFY_TOKEN:-}" ]; then
|
||||
echo "❌ Erreur: COOLIFY_TOKEN non configuré"
|
||||
echo ""
|
||||
echo "Pour obtenir un token Coolify:"
|
||||
echo "1. Aller sur $COOLIFY_URL"
|
||||
echo "2. Settings > API Tokens"
|
||||
echo "3. Créer un nouveau token"
|
||||
echo "4. export COOLIFY_TOKEN='votre-token'"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== Déploiement BARAAA-70 - Fix Ofelia ==="
|
||||
echo "Coolify URL: $COOLIFY_URL"
|
||||
echo "Application: $APP_UUID"
|
||||
echo "Branche: $BRANCH"
|
||||
echo ""
|
||||
|
||||
# Option 1: Changer la branche puis redéployer
|
||||
echo "Étape 1: Mise à jour de la branche de déploiement..."
|
||||
curl -X PATCH "$COOLIFY_URL/api/v1/applications/$APP_UUID" \
|
||||
-H "Authorization: Bearer $COOLIFY_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"git_branch\": \"$BRANCH\"}" \
|
||||
&& echo "✓ Branche mise à jour vers: $BRANCH" \
|
||||
|| { echo "❌ Erreur lors de la mise à jour de la branche"; exit 1; }
|
||||
|
||||
echo ""
|
||||
echo "Étape 2: Déclenchement du déploiement..."
|
||||
curl -X POST "$COOLIFY_URL/api/v1/applications/$APP_UUID/deploy" \
|
||||
-H "Authorization: Bearer $COOLIFY_TOKEN" \
|
||||
&& echo "✓ Déploiement déclenché" \
|
||||
|| { echo "❌ Erreur lors du déclenchement du déploiement"; exit 1; }
|
||||
|
||||
echo ""
|
||||
echo "=== Déploiement lancé ==="
|
||||
echo ""
|
||||
echo "Suivre la progression:"
|
||||
echo " Interface: $COOLIFY_URL/project/x9fenmiro11hv1uqij88z88a/environment/ck47341a8lzae6x3mz8rd2cm/application/$APP_UUID"
|
||||
echo ""
|
||||
echo "Vérification après déploiement (attendre ~2-5 min):"
|
||||
echo " docker ps | grep ofelia"
|
||||
echo " docker logs agenthub-ofelia-1"
|
||||
echo ""
|
||||
40
scripts/verify-ofelia.sh
Executable file
40
scripts/verify-ofelia.sh
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
# Script de vérification Ofelia pour BARAAA-70
|
||||
# À exécuter sur le serveur Coolify via terminal
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== Vérification Ofelia - BARAAA-70 ==="
|
||||
echo
|
||||
|
||||
# Vérifier que le conteneur Ofelia tourne
|
||||
echo "1. État du conteneur Ofelia:"
|
||||
docker ps --filter name=ofelia --format "table {{.Names}}\t{{.Status}}\t{{.State}}"
|
||||
echo
|
||||
|
||||
# Vérifier les logs Ofelia pour démarrage
|
||||
echo "2. Logs de démarrage Ofelia (20 dernières lignes):"
|
||||
docker logs agenthub-ofelia-1 --tail 20 2>&1 || docker logs $(docker ps --filter name=ofelia -q) --tail 20 2>&1
|
||||
echo
|
||||
|
||||
# Chercher la détection du job backup-daily
|
||||
echo "3. Détection du job backup-daily:"
|
||||
docker logs agenthub-ofelia-1 2>&1 | grep -i "backup-daily" || echo "⚠️ Job backup-daily non détecté dans les logs"
|
||||
echo
|
||||
|
||||
# Vérifier que le conteneur backup existe
|
||||
echo "4. État du conteneur backup:"
|
||||
docker ps -a --filter name=backup --format "table {{.Names}}\t{{.Status}}\t{{.State}}"
|
||||
echo
|
||||
|
||||
# Vérifier les labels Ofelia sur le conteneur backup
|
||||
echo "5. Labels Ofelia sur le conteneur backup:"
|
||||
docker inspect $(docker ps -a --filter name=backup -q) --format '{{range $k, $v := .Config.Labels}}{{if or (eq $k "ofelia.enabled") (contains $k "ofelia.job")}}{{$k}}={{$v}}{{"\n"}}{{end}}{{end}}' 2>&1 || echo "⚠️ Conteneur backup non trouvé"
|
||||
echo
|
||||
|
||||
# Tester l'exécution manuelle du job
|
||||
echo "6. Test d'exécution manuelle (optionnel):"
|
||||
echo " Pour tester maintenant: docker exec agenthub-ofelia-1 ofelia run backup-daily"
|
||||
echo
|
||||
|
||||
echo "=== Fin de la vérification ==="
|
||||
Loading…
Reference in a new issue