Sécurité et réseau
Ce qui est exposé
| Port | Service | Qui doit y accéder |
|---|---|---|
8410 | API backend | Tous les postes qui utilisent Chronicler |
11434 | Runtime du modèle | Rien en dehors du serveur |
5432 | Base de données | Rien — lié à 127.0.0.1 |
Seul 8410 doit être joignable. Si le fichier compose que vous utilisez publie
11434 plus largement que souhaité, restreignez-le comme Postgres :
ports:
- "127.0.0.1:11434:11434"
S'approprier le serveur tout de suite
Un serveur sans utilisateur propose Créer votre compte administrateur au
premier qui l'atteint. Entre docker compose up -d et la création de ce compte,
quiconque atteint le port 8410 peut le prendre.
Donc : démarrez la pile et créez l'administrateur dans la foulée, depuis un poste de confiance, avant d'ouvrir le port plus largement.
Sur un réseau local
Quand le serveur et ses utilisateurs sont sur le même réseau de confiance, du
HTTP simple sur 8410 est généralement accepté : le trafic ne sort pas du
bâtiment. Restreignez-le au sous-réseau au niveau du pare-feu :
# Linux, ufw — n'autoriser que le sous-réseau du bureau
sudo ufw allow from 192.168.1.0/24 to any port 8410
Les collègues pointent alors Paramètres → Connexion → Local vers
http://192.168.1.50:8410.
Sur Internet : utilisez HTTPS
Placez un reverse proxy devant. Chronicler ne fournit ni proxy ni certificats : cela reste votre choix.
server {
listen 443 ssl;
server_name chronicler.example.com;
ssl_certificate /etc/letsencrypt/live/chronicler.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chronicler.example.com/privkey.pem;
client_max_body_size 512M; # imports
location / {
proxy_pass http://127.0.0.1:8410;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 600s; # une réponse sur processeur peut durer
}
}
chronicler.example.com {
reverse_proxy 127.0.0.1:8410 {
transport http {
read_timeout 600s
}
}
request_body {
max_size 512MB
}
}
Deux réglages comptent et s'oublient facilement : une taille de corps généreuse (les documents sont volumineux) et un délai de lecture long (une réponse générée sur processeur peut prendre des minutes ; les 60 secondes habituelles la couperaient).
Liez ensuite le backend à la boucle locale, pour que le proxy soit le seul chemin d'entrée :
ports:
- "127.0.0.1:8410:8410"
Les utilisateurs saisissent https://chronicler.example.com.
Les secrets à protéger
| Quoi | Où | Pourquoi |
|---|---|---|
POSTGRES_PASSWORD | .env | La seule clé de votre volume de base. Le perdre rend les données illisibles ; le divulguer donne tout à qui atteint la base. |
| Archives de sauvegarde | backend_uploads, et votre dossier externe | Une copie complète de la base. À protéger comme la base elle-même. |
| Clé de licence | Console d'administration | Liée à une installation, mais elle reste la vôtre. |
La clé de signature du serveur est générée au premier démarrage et conservée dans
le volume backend_uploads. Vous n'y touchez jamais ; ne supprimez simplement pas
ce volume.
Comptes
- Personne ne peut s'inscrire seul. Les administrateurs créent les comptes (Gérer les utilisateurs).
- Les nouveaux comptes reçoivent un mot de passe à usage unique, affiché une fois, et doivent en choisir un à la première connexion.
- Suspendez les comptes des personnes qui partent : la suspension conserve leurs documents, la suppression non.
- Gardez peu d'administrateurs. Un administrateur peut restaurer une sauvegarde, donc lire l'ensemble des données.
Rester à jour
Mettez à jour tous les mois (Mises à jour), maintenez Docker à jour et appliquez les correctifs du système hôte. La pile est réduite — quatre conteneurs, aucun greffon, aucune extension — et c'est volontaire.
Une courte liste de contrôle
- Compte administrateur créé juste après le premier démarrage
- Port 8410 restreint au réseau qui en a besoin
- HTTPS devant s'il est joignable hors du réseau local
-
.envsauvegardé en lieu sûr, ailleurs que sur le serveur - Sauvegardes planifiées activées, avec copie externe
- Une restauration répétée au moins une fois
- Nombre d'administrateurs réduit au minimum