Pour les administrateurs
← Tous les sujets

Installer sur votre propre serveur

Comment une installation est construite : le paquet et la licence, les services, HTTPS, l’updater, les paramètres .env et où se trouve quoi.

Vous pouvez faire tourner draften sur votre propre serveur. Les e-mails, les brouillons et les clés restent alors chez vous ; seul ce que vous envoyez au fournisseur du modèle de langage sort (ou rien du tout, avec un modèle local).

Cette page présente la structure d’une installation. La marche à suivre elle-même se trouve dans Installation étape par étape.

Le paquet et la licence

Chaque version de draften est un seul paquet, un fichier draften-<version>.tar. Il contient les images de tous les services, les fichiers qui les démarrent, une liste signée de tout son contenu et la commande ./draften, qui gère l’installation. Le serveur n’a besoin de rien d’autre que de Docker.

Pour le faire tourner, il vous faut une licence – un fichier que vous recevez de notre part et que vous importez dans l’interface. Elle limite le nombre de boîtes mail et d’assistants, et sa clé sert aussi à télécharger les nouvelles versions. Plus d’informations dans La licence.

De quoi se compose une installation

Tout tourne dans Docker via docker compose :

ServiceCe qu’il fait
dbla base de données MariaDB – contient tout : paramètres, consignes, messages, brouillons, secrets chiffrés. Aucune autre machine n’y accède
workerlit les boîtes mail, appelle les modèles, rédige les brouillons, apprend, exécute les étapes de la mise en route. Plusieurs peuvent tourner
web-blue, web-greenl’interface web et l’API en deux couleurs : l’une sert, l’autre attend la version suivante – c’est pourquoi les mises à jour n’entraînent aucune interruption
proxyle point d’entrée depuis l’extérieur : bascule entre les couleurs du web et termine éventuellement HTTPS
updaterfacultatif : exécute ce que l’exploitant demande sous Installation (mise à jour, retour à une version, nombre de processus, remplacement de la clé)
cloudflaredfacultatif : publication de l’interface via un Cloudflare Tunnel

L’interface et le worker ne communiquent pas directement – tous deux travaillent avec la même base de données ; ce qui nécessite les e-mails ou un modèle, l’interface le met en file d’attente sous forme de tâche pour le worker.

Ce dont vous aurez besoin

HTTPS

L’updater

L’updater est un service facultatif qui exécute ce que l’exploitant demande sous Installation → Installation : une mise à jour vers une nouvelle version, le retour à la précédente, le changement du nombre de processus worker et le remplacement de la clé de chiffrement. Pour cela, il lance le même ./draften que vous lanceriez vous-même.

L’updater a accès à Docker, ce qui équivaut aux droits root sur le serveur. L’interface elle-même ne touche jamais à Docker – elle se contente d’écrire une demande dans la base de données à l’intention de l’updater. Il est activé à l’installation (COMPOSE_PROFILES=updater dans .env) ; sans lui, tout fonctionne en ligne de commande.

Paramètres dans .env

Le fichier .env du répertoire d’installation est écrit par l’installateur et lisible uniquement par son propriétaire. Il contient l’infrastructure et les secrets ; tout ce qui concerne les assistants se trouve dans la base de données et se règle dans l’interface.

VariableÀ quoi elle sert
DRAFTEN_VERSION, DRAFTEN_EDITIONla version en service et l’édition (onprem)
DB_ROOT_PASSWORD, DB_PASSWORDmots de passe de la base de données
MASTER_KEYla clé qui chiffre les secrets dans la base de données (clés API, accès aux boîtes mail, clients de connexion). Conservez-en une copie hors du serveur
MASTER_KEY_PREVIOUSla clé précédente après son remplacement, tant que backups/ contient des dumps antérieurs
WEB_APP_SECRETune chaîne aléatoire qui signe les sessions
WEB_PUBLIC_URLl’adresse à laquelle les gens ouvrent l’interface ; les adresses de redirection pour la connexion sont construites à partir d’elle
WEB_BIND, DRAFTEN_TLS, WEB_TLS_BINDoù HTTP et HTTPS écoutent
COMPOSE_PROFILESservices facultatifs : updater, tunnel
DRAFTEN_BACKUPScombien de dumps de la base de données antérieurs à une mise à jour conserver dans backups/ (3 par défaut)
CLOUDFLARE_TUNNEL_TOKENuniquement avec un Cloudflare Tunnel
INTERVAL_SECONDS, WORKER_CONCURRENCYl’intervalle de relève par défaut et le nombre de relèves simultanées (mieux vaut les régler dans l’interface)
WORKER_REPLICAScombien de processus worker tournent sur cette machine (1 par défaut), voir Exploitation et capacité

Une valeur contenant le signe $ doit être écrite $$ dans .env – sinon la partie qui suit le dollar est perdue sans avertissement. Les clés générées avec openssl rand -hex 32 ne contiennent jamais de dollar.

Où se trouve quoi

.envles paramètres et les secrets de l’installation
compose.yaml, proxy/la façon dont les conteneurs tournent ; chaque mise à jour les remplace
backups/les dumps de la base de données antérieurs aux mises à jour
data/le journal et les rapports du worker
updates/les paquets en attente d’installation ; l’updater y télécharge aussi
NOTES.mdce qu’a changé la version installée

Pour aller plus loin

Version texte