diff --git a/docs/PATCHES.md b/docs/PATCHES.md index a43daac..54849bb 100644 --- a/docs/PATCHES.md +++ b/docs/PATCHES.md @@ -33,39 +33,36 @@ La fonction `addTileLayer` a été modifiée : docker cp config/map-init-patch.js flexmeasures-server:/app/flexmeasures/ui/static/js/map-init.js ``` -## 3. Redis 7+ ACL +## 3. Redis 7+ ACL - Worker RQ ### Problème -FlexMeasures utilise `redis-py` qui crée des connexions sans `username`. Redis 7+ ACL exige un `username` quand un `password` est défini. +FlexMeasures utilise `redis-py` qui crée des connexions sans `username`. Redis 7+ ACL exige un `username` quand un `password` est défini. Le worker RQ ne peut pas se connecter. -### Solution appliquée -Patch de `redis/connection.py` dans le container FM : -```python -# Ajouté dans redis/connection.py, méthode connect() -if getattr(self, "username", None) is None and getattr(self, "password", None): - self.username = "default" +### Solution : Désactiver l'ACL Redis +Modifier le docker-compose du container Redis pour ajouter `--aclfile /dev/null` : + +```yaml +# docker-compose.yml +flexmeasures-redis: + command: redis-server --loglevel warning --requirepass ${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972} --aclfile /dev/null ``` -### Alternative (si le patch ne persiste pas) -Désactiver l'ACL Redis : +Puis recréer le container (pas juste restart) : ```bash -docker exec flexmeasures-redis redis-cli -a Digitribe972 ACL SETUSER default on >Digitribe972 ~* &* +@all +cd /home/eric/flexmeasures +docker compose stop flexmeasures-redis +docker compose rm -f flexmeasures-redis +docker compose up -d flexmeasures-redis ``` -## 4. Worker RQ +### Vérification +```bash +# Le worker RQ doit être connecté +docker exec flexmeasures-redis redis-cli -a Digitribe972 SMEMBERS rq:workers +# Doit afficher: rq:worker:cariflex-ingestion +``` -### Problème -Le worker RQ crée sa propre connexion Redis qui n'utilise pas le config de l'app. Erreur : `AuthenticationError: invalid username-password pair`. - -### Statut -**NON RÉSOLU**. Le worker RQ ne peut pas se connecter à Redis 7+. - -### Pistes -- Patcher `redis/connection.py` (non persistant entre les processus) -- Désactiver l'ACL Redis (fonctionne mais non persistant) -- Utiliser `redis-server --requirepass Digitribe972 --aclfile ""` (désactive ACL) - -## 5. Procédure de restauration complète +## 4. Procédure de restauration complète ```bash # 1. Restaurer les templates @@ -85,4 +82,7 @@ docker cp config/map-init-patch.js flexmeasures-server:/app/flexmeasures/ui/stat # 5. Redémarrer FM docker restart flexmeasures-server + +# 6. Worker RQ se lance automatiquement via flexmeasures-worker container +# Vérifier: docker logs flexmeasures-worker | grep "SAVED" ```