# Problèmes rencontrés + troubleshooting

# Problèmes rencontrés et solutions

## 1. ❌ Tentative initiale : Kubernetes (K3s)

**Problème** : Communication réseau entre pods impossible
- **Erreur** : `SQLSTATE[HY000] [2002] No such file or directory`
- **Cause** : Module kernel `nf_conntrack` manquant
- **Erreur K3s** : `Extension conntrack is not supported, missing kernel module?`

**Tentative de solution** :
```bash
sudo modprobe nf_conntrack
sudo modprobe br_netfilter  # Module non disponible sur AlmaLinux 10
```

Il y a des soucis avec AlamaLinux 10 et K3S, je reviendrai dessus quand j'aurais le temps.
**Décision** : Abandon de K3s au profit de Podman Compose (plus simple, moins de ressources)

---

## 2. ❌ Problème : Communication réseau entre containers Podman

**Erreur** : `nc: getaddrinfo for host "bookstack-mariadb" port 3306: Try again`

**Cause** : nftables bloque le trafic entre containers

**Solution** : Ajouter des règles nftables pour autoriser le subnet Podman
```bash
# Trouver le subnet Podman
podman network inspect bookstack_default | grep -i subnet
# Exemple de résultat : 5.1.0.0/24

# Ajouter les règles nftables
sudo nft add rule inet filter input ip saddr 5.1.0.0/24 accept
sudo nft add rule inet filter forward ip saddr 5.1.0.0/24 accept
sudo nft add rule inet filter forward ip daddr 5.1.0.0/24 accept

# Sauvegarder
sudo nft list ruleset | sudo tee /etc/nftables/ruleset.nft
```

**Note importante** : Docker et nftables ont des conflits connus. Podman gère mieux nftables mais nécessite quand même des règles explicites.

---

## 3. ❌ Problème : Erreurs d'authentification MariaDB

**Erreur** : `ERROR 1045 (28000): Access denied for user 'bookstack'@'X.X.X.X' (using password: YES)`

**Causes multiples** :
1. Volumes persistants gardant les anciens mots de passe
2. Incohérence entre `MYSQL_USER` et `DB_USERNAME`
3. Caractères spéciaux (`!`) mal échappés dans les mots de passe

**Solution finale** :
```bash
# 1. Arrêter et supprimer complètement les volumes
cd ~/bookstack
podman-compose down
podman volume rm -f bookstack_bookstack-db-data bookstack_bookstack-config

# 2. Vérifier que les volumes sont supprimés
podman volume ls | grep bookstack

# 3. Utiliser des mots de passe simples (sans caractères spéciaux)
# Voir docker-compose.yml ci-dessous
```

---

## 4. ❌ Problème : APP_KEY bookstack manquant

**Erreur** : `The application key is missing, halting init!`

**Solution** : Générer et ajouter l'APP_KEY
```bash
# Générer la clé
APP_KEY=$(podman run --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey | tr -d '\r')

# Afficher pour vérification
echo "APP_KEY: $APP_KEY"

# L'ajouter dans docker-compose.yml sous environment de bookstack
```

---

## 5. ❌ Problème : Certificat SSL ne couvre pas wiki.sanjy.fr

**Erreur** : `SSL: no alternative certificate subject name matches target hostname`

**Solution** : Étendre le certificat existant
```bash
sudo certbot certonly --nginx \
  -d sanjy.fr \
  -d www.sanjy.fr \
  -d jenkins.sanjy.fr \
  -d wiki.sanjy.fr \
  --expand
```

**Alternative** : Certificat wildcard (recommandé pour plusieurs sous-domaines mais je préfère être exhaustif et être sur de fournir un certif pour chaque sous domaine)
```bash
sudo certbot certonly --manual --preferred-challenges dns \
  -d "*.sanjy.fr" -d "sanjy.fr"
```


# Troubleshooting

## Les containers ne démarrent pas
```bash
# Vérifier les logs
podman-compose logs

# Vérifier les volumes
podman volume ls

# Supprimer et recréer
podman-compose down
podman volume rm bookstack_bookstack-db-data bookstack_bookstack-config
podman-compose up -d
```

## Erreur d'authentification MariaDB

**Solution** : Supprimer complètement les volumes et recréer
```bash
podman-compose down
podman volume rm -f bookstack_bookstack-db-data bookstack_bookstack-config
podman-compose up -d
```

## Erreur 502 Bad Gateway sur Nginx
```bash
# Vérifier que BookStack tourne
podman-compose ps

# Vérifier SELinux
sudo setsebool -P httpd_can_network_connect 1

# Vérifier les logs Nginx
sudo tail -f /var/log/nginx/error.log
```

## Problème de réseau entre containers
```bash
# Vérifier les règles nftables
sudo nft list ruleset | grep 10.89

# Tester la connexion
podman exec -it bookstack ping bookstack-db
podman exec -it bookstack nc -zv bookstack-db 3306
```

---

---