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 :
| Service | Ce qu’il fait |
|---|---|
db | la base de données MariaDB – contient tout : paramètres, consignes, messages, brouillons, secrets chiffrés. Aucune autre machine n’y accède |
worker | lit 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-green | l’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 |
proxy | le point d’entrée depuis l’extérieur : bascule entre les couleurs du web et termine éventuellement HTTPS |
updater | facultatif : exécute ce que l’exploitant demande sous Installation (mise à jour, retour à une version, nombre de processus, remplacement de la clé) |
cloudflared | facultatif : 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
- un serveur x86-64 sous Linux avec Docker 24 ou plus récent (avec le plugin compose), 4 Go de mémoire et 20 Go de disque,
- l’adresse à laquelle l’interface sera joignable, en HTTPS – un certificat directement dans draften, ou votre reverse proxy ou tunnel,
- un accès aux boîtes mail : une inscription d’application dans Microsoft Entra, un compte de service Google Workspace ou des identifiants IMAP,
- une clé API de modèle (Anthropic, OpenAI) ou votre propre serveur compatible OpenAI,
- une licence de notre part.
HTTPS
- Dans draften : donnez à l’installateur le certificat et sa clé (PEM). draften écoute alors sur le port 443 et redirige depuis le port 80. Vous déployez un certificat renouvelé avec
./draften certificate new.pem new.keysans perdre une seule requête. Vous vous procurez le certificat vous-même (auprès d’une autorité de certification ou avec un client ACME). - Devant draften : sans certificat, draften écoute sur
127.0.0.1:8085et votre proxy ou tunnel termine 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_EDITION | la version en service et l’édition (onprem) |
DB_ROOT_PASSWORD, DB_PASSWORD | mots de passe de la base de données |
MASTER_KEY | la 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_PREVIOUS | la clé précédente après son remplacement, tant que backups/ contient des dumps antérieurs |
WEB_APP_SECRET | une chaîne aléatoire qui signe les sessions |
WEB_PUBLIC_URL | l’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_BIND | où HTTP et HTTPS écoutent |
COMPOSE_PROFILES | services facultatifs : updater, tunnel |
DRAFTEN_BACKUPS | combien de dumps de la base de données antérieurs à une mise à jour conserver dans backups/ (3 par défaut) |
CLOUDFLARE_TUNNEL_TOKEN | uniquement avec un Cloudflare Tunnel |
INTERVAL_SECONDS, WORKER_CONCURRENCY | l’intervalle de relève par défaut et le nombre de relèves simultanées (mieux vaut les régler dans l’interface) |
WORKER_REPLICAS | combien 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
.env | les 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.md | ce qu’a changé la version installée |
Pour aller plus loin
- Installation étape par étape,
- Administration de l’installation – version, licence, clés et expéditeur par défaut, organisations,
- Mettre à jour avec l’updater et en ligne de commande,
- Exploitation et capacité,
- Sauvegarde et restauration,
- Résolution des problèmes.