Chronicler
Auto-hébergement

Sécurité et réseau

Laisser entrer vos collègues sans laisser entrer tout le monde.

Ce qui est exposé

PortServiceQui doit y accéder
8410API backendTous les postes qui utilisent Chronicler
11434Runtime du modèleRien en dehors du serveur
5432Base de donnéesRien — 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 :

docker-compose.yml
    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 :

Terminal
# 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

Ne publiez pas le port 8410 directement sur Internet. Les connexions et le contenu des documents circuleraient en clair.

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
    }
}

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 :

docker-compose.yml
    ports:
      - "127.0.0.1:8410:8410"

Les utilisateurs saisissent https://chronicler.example.com.

Un VPN est souvent la meilleure réponse. Si tout le monde se connecte déjà au réseau de l'entreprise à distance, gardez Chronicler sur le réseau local et ne publiez rien.

Les secrets à protéger

QuoiPourquoi
POSTGRES_PASSWORD.envLa seule clé de votre volume de base. Le perdre rend les données illisibles ; le divulguer donne tout à qui atteint la base.
Archives de sauvegardebackend_uploads, et votre dossier externeUne copie complète de la base. À protéger comme la base elle-même.
Clé de licenceConsole d'administrationLié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
  • .env sauvegardé 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