Chronicler
Exploitation et sécurité

Dépannage

Les pannes que l'on rencontre vraiment, et ce qui les corrige.

D'abord, regarder

PowerShell
docker compose ps
docker compose logs --tail 100
Invoke-RestMethod http://localhost:8410/health

En bonne santé : chronicler-postgres, chronicler-ollama et chronicler-backend démarrés, et chronicler-ollama-pull arrêté - ce dernier télécharge le modèle puis se termine, c'est normal.

La pile ne démarre pas

POSTGRES_PASSWORD is missing a value

Il n'y a pas de .env à côté du fichier compose, ou il ne contient pas cette ligne. Compose refuse de démarrer plutôt que d'utiliser une valeur devinable.

PowerShell
"POSTGRES_PASSWORD=$([guid]::NewGuid().ToString('N'))`nCOMPOSE_PROFILES=cpu" |
  Out-File -Encoding ascii .env
docker compose up -d
Si la pile a déjà tourné, le mot de passe existant est la seule clé du volume de base. N'en générez pas un nouveau : retrouvez le .env d'origine.

port is already allocated

Autre chose occupe 8410, 11434 ou 5432 - souvent une ancienne pile Chronicler.

PowerShell
docker ps -a | Select-String "chronicler"

Arrêtez l'autre programme, ou déplacez Chronicler :

.env
BACKEND_PORT=8411

Puis pointez l'application vers http://localhost:8411.

Cannot connect to the Docker daemon

Docker n'est pas démarré. Lancez Docker Desktop et attendez qu'il soit prêt.

La pile tourne mais rien ne répond

Ollama did not come up ... within 2 minutes

COMPOSE_PROFILES est absent ou mal orthographié : aucun runtime de modèle n'a démarré. C'est la panne d'auto-hébergement la plus fréquente.

PowerShell
Select-String "COMPOSE_PROFILES" .env

Corrigez, puis docker compose up -d. Vérifiez avec docker compose ps que ollama-cpu, ollama-nvidia ou ollama-amd tourne.

Les conversations échouent, le journal parle de modèle introuvable

Le téléchargement du modèle n'est pas allé au bout. Observez :

PowerShell
docker compose logs ollama-pull
docker exec chronicler-ollama ollama list

Si la liste est vide, téléchargez à la main :

PowerShell
docker exec chronicler-ollama ollama pull gemma4:e2b

Tout renvoie 403, ou les documents refusent de s'ouvrir

Licence absente ou périmée. Admin → Licence :

  • Aucune licence activée - collez votre clé.
  • Active, mais l'application reste bloquée - regardez Dernière vérification. Si elle date de plus de 72 heures, le serveur n'atteint pas api.chroniclerlm.com. Rétablissez le HTTPS sortant ; tout revient seul.

Voir Licence.

Ça marche, mais c'est pénible

La première réponse prend des minutes

Normal sur processeur : le modèle doit se charger. Il reste ensuite chargé pendant 4 jours (OLLAMA_KEEP_ALIVE) : seule la première question après un redémarrage paie ce coût. Si chaque réponse est lente après une période d'inactivité, c'est que cette valeur a été baissée :

.env
OLLAMA_KEEP_ALIVE=96h

Toutes les réponses prennent des minutes

Soit vous êtes sur le processeur alors qu'il y a une carte graphique, soit le modèle est trop gros pour la machine.

PowerShell
docker compose ps
nvidia-smi
docker stats --no-stream

Voir Accélération GPU et Performances et mémoire.

Les modèles GPU sont grisés dans Admin → Modèle

La console ne sait pas que vous avez une carte graphique. Elle interroge le matériel depuis l'intérieur du conteneur backend, auquel aucun accès au GPU n'est donné volontairement (seul le conteneur Ollama l'obtient) : elle est donc informée via CHRONICLER_GPU_VRAM_GB dans votre .env.

PowerShell
Select-String "COMPOSE_PROFILES|CHRONICLER_GPU_VRAM_GB" .env
  • COMPOSE_PROFILES=nvidia mais pas de ligne VRAM : relancez le script de détection, puis docker compose up -d. Les installations antérieures à cette clé ne l'ont pas tant que rien ne l'écrit.
  • COMPOSE_PROFILES=cpu ou amd : ce n'est pas un bug. La clé n'est écrite que sur nvidia, et les modèles compatibles processeur sont réellement les seuls que votre pile peut servir. Corrigez d'abord le profil si la machine a une carte NVIDIA.

Vous pouvez la définir à la main (en Go entiers), mais elle doit correspondre à la réalité : annoncer 24 sur une carte de 12 Go ne fait que déplacer l'échec au chargement du modèle.

Les conteneurs redémarrent en boucle

Mémoire insuffisante. docker stats montre ce qui se fait tuer ; augmentez la mémoire de Docker ou choisissez un modèle plus petit. En dessous de 4 Gio disponibles pour Docker, le backend ne peut pas survivre au chargement d'un modèle.

L'application n'atteint pas le serveur

Vérifier le serveur lui-même

PowerShell
Invoke-RestMethod http://localhost:8410/health

En échec localement, le problème vient de la pile : voir plus haut.

Vérifier depuis l'autre poste

PowerShell
Invoke-RestMethod http://192.168.1.50:8410/health

En échec, c'est le pare-feu ou la mauvaise adresse. Sous Windows, Docker Desktop et le pare-feu Windows doivent tous deux l'autoriser.

Vérifier l'adresse dans l'application

Paramètres → Connexion : mode Local, URL complète avec http:// et le port. 192.168.1.50 seul ne marchera pas ; http://192.168.1.50:8410 oui.

Des documents restent en traitement

Les gros fichiers scannés sont lents - l'OCR est la partie coûteuse, et sur processeur un scan de 200 pages peut prendre très longtemps.

PowerShell
docker compose logs backend --tail 100
docker stats --no-stream

Si c'est vraiment bloqué et non lent, redémarrez le backend (docker compose restart backend) et réimportez. Si cela concerne tous les documents, vous êtes à court d'espace disque ou au bout de l'allocation définie dans Admin → Paramètres.

Le disque est plein

PowerShell
docker system df -v

Coupables habituels : les anciennes images après plusieurs mises à jour, et les anciens modèles.

PowerShell
docker image prune -a
docker exec chronicler-ollama ollama list
N'utilisez jamais docker volume prune ni docker compose down -v : cela supprime postgres_data et backend_uploads, c'est-à-dire toute votre installation.

J'ai perdu le mot de passe administrateur

Il n'y a pas de récupération de l'extérieur : le serveur n'a jamais eu de mot de passe consultable. Un autre administrateur peut le réinitialiser depuis Admin → Utilisateurs. S'il n'y a qu'un administrateur et qu'il est bloqué, restaurez une sauvegarde antérieure au changement, ou repartez d'une base vide - c'est pourquoi un second compte administrateur est utile.

Tout recommencer

Supprime tout :

PowerShell
docker compose down -v
docker compose up -d

Faites une sauvegarde d'abord si vous tenez à quelque chose.

Rassembler des informations pour le support

PowerShell
docker compose ps | Out-File support.txt
docker compose logs --tail 500 | Out-File -Append support.txt
docker info --format "{{.MemTotal}} {{.KernelVersion}}" | Out-File -Append support.txt
docker compose config | Out-File -Append support.txt
docker compose config affiche le mot de passe de votre base. Retirez-le avant d'envoyer le fichier à qui que ce soit.