Documentation complète: infrastructure, réseau, issues, recommandations
This commit is contained in:
145
docs/infra/issues-2025-12-31.md
Normal file
145
docs/infra/issues-2025-12-31.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# Problèmes rencontrés - 31 décembre 2025
|
||||
|
||||
Session de maintenance majeure pour réparer l'infrastructure après réorganisation.
|
||||
|
||||
## 1. Shlink - URLs cassées
|
||||
|
||||
**Symptôme** : Les short URLs (`go/ts`, `go/ui`, etc.) ne fonctionnaient plus.
|
||||
|
||||
**Cause** : Le Caddyfile contenait des redirections manuelles au lieu d'un reverse proxy vers Shlink.
|
||||
|
||||
**Solution** :
|
||||
```caddyfile
|
||||
# AVANT (cassé)
|
||||
go.talloires.local {
|
||||
redir /ts https://tailscale.com permanent
|
||||
redir /ui https://unifi.ui.com permanent
|
||||
}
|
||||
|
||||
# APRÈS (fonctionnel)
|
||||
go.talloires.local {
|
||||
reverse_proxy shlink:8080
|
||||
}
|
||||
```
|
||||
|
||||
**Fichiers modifiés** :
|
||||
- `/mnt/mediaserver/talloires/caddy/Caddyfile`
|
||||
- `/home/lionel/talloires-v2/shlink-web/servers.json`
|
||||
|
||||
---
|
||||
|
||||
## 2. Arcane - Crash loop
|
||||
|
||||
**Symptôme** : Container en restart permanent.
|
||||
|
||||
**Cause** : `ENCRYPTION_KEY` invalide (31 caractères au lieu de 32+).
|
||||
|
||||
**Solution** :
|
||||
```bash
|
||||
# Générer nouvelles clés
|
||||
openssl rand -base64 32
|
||||
|
||||
# Mettre à jour docker-compose.yml
|
||||
ENCRYPTION_KEY=fY+ln5hq7XMkDR+cU/pxu3Kf11LgUkjYXdM+QSwU3jM=
|
||||
SESSION_SECRET=QDGWo1nA9Qa4fRT2ektsjQ0oUbuAwUz4V8xsBfZYiWw=
|
||||
```
|
||||
|
||||
**Note** : Authelia désactivé temporairement pour Arcane.
|
||||
|
||||
---
|
||||
|
||||
## 3. Jellyfin - Médias non montés
|
||||
|
||||
**Symptôme** : Bibliothèques vides, médias inaccessibles.
|
||||
|
||||
**Cause** : Volumes Docker pointaient vers `/mnt/annecy` au lieu de `/mnt/mediaserver`.
|
||||
|
||||
**Solution** : Correction des bind mounts dans `docker-compose.yml`.
|
||||
|
||||
---
|
||||
|
||||
## 4. Gitea + Authelia - OIDC cassé
|
||||
|
||||
**Symptôme** : `500 Internal Server Error` lors du login Authelia.
|
||||
|
||||
**Cause** : Gitea ne faisait pas confiance au certificat SSL de Caddy (nouveau CA après régénération).
|
||||
|
||||
**Solution** :
|
||||
```bash
|
||||
# Copier le CA dans Gitea
|
||||
docker exec caddy cat /data/caddy/pki/authorities/local/root.crt > /tmp/caddy-root.crt
|
||||
docker cp /tmp/caddy-root.crt gitea:/usr/local/share/ca-certificates/
|
||||
docker exec gitea update-ca-certificates
|
||||
docker restart gitea
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Authelia - Base de données read-only
|
||||
|
||||
**Symptôme** : `Could not save the consent session`
|
||||
|
||||
**Cause** : Le dossier `/home/lionel/docker/authelia/config/` avait été supprimé lors du nettoyage, mais le container montait encore ce chemin.
|
||||
|
||||
**Solution** :
|
||||
```bash
|
||||
# Restaurer depuis l'archive
|
||||
tar xzf /mnt/mediaserver/backups/docker-v1-archive-20251231.tar.gz \
|
||||
-C /home/lionel docker/authelia
|
||||
docker restart authelia
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Home Assistant - Onboarding inattendu
|
||||
|
||||
**Symptôme** : Page de création de compte au lieu du login.
|
||||
|
||||
**Cause** : Le container montait `/mnt/mediaserver/talloires/homeassistant` mais la config restaurée était dans `/home/lionel/talloires-v2/homeassistant`.
|
||||
|
||||
**Solution** :
|
||||
```bash
|
||||
# Copier la config restaurée vers le bon emplacement
|
||||
cp -a /home/lionel/talloires-v2/homeassistant /mnt/mediaserver/talloires/homeassistant
|
||||
docker restart homeassistant
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Transmission - HTTP 502
|
||||
|
||||
**Symptôme** : Bad Gateway lors de l'accès.
|
||||
|
||||
**Cause** : Caddy cherchait `transmission:9091` mais Transmission utilise `network_mode: service:wireguard`.
|
||||
|
||||
**Solution** :
|
||||
```caddyfile
|
||||
# Dans Caddyfile
|
||||
reverse_proxy wireguard:9091 # Pas transmission:9091
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. Dozzle - Non accessible
|
||||
|
||||
**Symptôme** : URL ne fonctionnait pas.
|
||||
|
||||
**Cause** : Dozzle n'était pas configuré dans le Caddyfile.
|
||||
|
||||
**Solution** :
|
||||
```caddyfile
|
||||
dozzle.talloires.local, dozzle.talloires.tailfd281f.ts.net {
|
||||
import authelia
|
||||
reverse_proxy dozzle:8080
|
||||
import internal_tls
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Leçons apprises
|
||||
|
||||
1. **Toujours vérifier les points de montage** avant de supprimer des dossiers
|
||||
2. **Les certificats CA** doivent être installés dans chaque container qui fait des requêtes HTTPS internes
|
||||
3. **Documenter les chemins réels** utilisés par chaque service
|
||||
4. **Garder une archive** avant toute réorganisation majeure
|
||||
Reference in New Issue
Block a user