146 lines
3.7 KiB
Markdown
146 lines
3.7 KiB
Markdown
# 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
|