Files
cariflex/docs/PATCHES.md

89 lines
3.2 KiB
Markdown

# Cariflex - Patches appliqués à FlexMeasures
> Documentation de tous les patches FM. À réappliquer après chaque recréation de container.
## 1. Branding Cariflex
### Templates modifiés (backup dans `templates/`)
- `admin/login_user.html` : Titre "The FlexMeasures Platform" → "Cariflex"
- `includes/navbar.html` : Logo Mapbox → `/ui/static/images/cariflex-logo.jpg`
- `includes/footer.html` : Footer FM → Logo Cariflex centré + "Cariflex - 2026"
- `includes/teaser.html` : Images FM → Logo Cariflex
### Favicon
- `/ui/static/images/cariflex-logo.jpg` → copié en `/ui/static/favicon.ico` (32x32)
### Config (`instance/flexmeasures.cfg`)
```python
FLEXMEASURES_PLATFORM_NAME = 'Cariflex'
FLEXMEASURES_MENU_LOGO_PATH = '/ui/static/images/cariflex-logo.jpg'
```
## 2. Carte OSM (remplacement Mapbox)
### Fichier : `ui/static/js/map-init.js`
La fonction `addTileLayer` a été modifiée :
- URL Mapbox → `https://tile.openstreetmap.org/{z}/{x}/{y}.png`
- Attribution → OpenStreetMap
- Supprimé : `tileSize`, `zoomOffset`, `id`, `accessToken`, logo Mapbox
### Commande de restauration :
```bash
docker cp config/map-init-patch.js flexmeasures-server:/app/flexmeasures/ui/static/js/map-init.js
```
## 3. Redis 7+ ACL
### 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.
### 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"
```
### Alternative (si le patch ne persiste pas)
Désactiver l'ACL Redis :
```bash
docker exec flexmeasures-redis redis-cli -a Digitribe972 ACL SETUSER default on >Digitribe972 ~* &* +@all
```
## 4. Worker RQ
### 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
```bash
# 1. Restaurer les templates
docker cp templates/login_user.html flexmeasures-server:/app/flexmeasures/ui/templates/admin/login_user.html
docker cp templates/navbar.html flexmeasures-server:/app/flexmeasures/ui/templates/includes/navbar.html
docker cp templates/footer.html flexmeasures-server:/app/flexmeasures/ui/templates/includes/footer.html
docker cp templates/teaser.html flexmeasures-server:/app/flexmeasures/ui/templates/includes/teaser.html
# 2. Restaurer le logo et favicon
docker cp logo_cariflex.jpg flexmeasures-server:/app/flexmeasures/ui/static/images/cariflex-logo.jpg
# 3. Restaurer la config
docker cp config/flexmeasures.cfg flexmeasures-server:/app/instance/flexmeasures.cfg
# 4. Restaurer la carte OSM
docker cp config/map-init-patch.js flexmeasures-server:/app/flexmeasures/ui/static/js/map-init.js
# 5. Redémarrer FM
docker restart flexmeasures-server
```