Guide d’installation

Installer Libris Translate sur un serveur vierge

D’un serveur Linux fraîchement installé à Libris Translate démarré, connecté et activé. Comptez une vingtaine de minutes, surtout des téléchargements. L’installateur officiel, install.sh, fait le travail ; cette page détaille chaque étape, ce qu’il faut répondre et ce qui est créé.

Pas encore de serveur ? Louez et préparez un VPS

En bref

Sur un serveur Linux équipé de Docker, avec les identifiants du registre reçus dans le courriel de licence :

bash
curl --fail --location --silent --show-error https://libris-translate.com/install.sh | sudo bash

En vidéo

Installer Libris Translate, du serveur vierge au premier livre · 1 min 57 La procédure complète filmée sur un serveur vierge avec Libris Translate 0.23.0, sans son. Le mot de passe administrateur et le code de connexion ChatGPT sont floutés ; la clé de licence et l’identifiant du registre sont des exemples.
Ce que montre la vidéo, étape par étape
  • Avant de commencer : un serveur Linux x86-64 avec Docker Engine 26 ou plus récent et Compose v2, 2 Go de mémoire libre, un modèle de langage et le courriel de licence.
  • Étape 1 : vérifier Docker avec sudo docker compose version.
  • Étape 2 : se connecter au registre avec sudo docker login registry.libris-translate.com, l’identifiant et le jeton du courriel de licence.
  • Étape 3 : lancer la commande d’installation officielle ; l’installateur de l’image prend le relais, crée /opt/libris et démarre PostgreSQL, la migration, l’API, le worker et la passerelle Codex.
  • Étape 4 : vérifier l’installation avec curl --fail http://127.0.0.1:8088/health, puis lire le mot de passe administrateur avec sudo grep '^BOOTSTRAP_' /opt/libris/.env.
  • Étape 5 : se connecter en admin sur http://localhost:8088.
  • Étape 6 : activer la licence dans Paramètres › Licence.
  • Étape 7 : ajouter un modèle dans Paramètres › Providers LLM ; ici, un provider « Codex · compte ChatGPT », connecté par code d’appareil, avec le modèle GPT-6 Luna.
  • Étape 8 : ajouter un EPUB avec « Ajouter du contenu », puis « Importer et lancer tout le pipeline » ; le pilote automatique mène le livre jusqu’à l’EPUB final.

Étape 1 Vérifier la machine

Libris Translate fonctionne sous forme de conteneurs Docker sur un serveur Linux que vous administrez. Besoin d’aide pour louer et préparer un serveur ? Il vous faut :

  • un serveur Linux x86-64 (AMD64). Ubuntu et Debian sont pris en charge avec les paquets officiels de Docker ; ARM64, la famille Fedora/RHEL, Windows et macOS ne sont pas testés, et les images ne sont publiées que pour AMD64 ;
  • au moins 2 Go de mémoire libre, et de l’espace disque pour vos livres, leurs traductions, les exports et les sauvegardes. Aucun GPU : le modèle de langage tourne ailleurs ;
  • un modèle de langage joignable par Libris Translate : un service hébergé avec une clé API (OpenAI, Anthropic ou tout fournisseur compatible OpenAI) ou votre propre serveur d’inférence ;
  • votre courriel de licence : il contient la clé de licence et les identifiants en lecture seule du registre d’images.

Étape 2 Accès administrateur et réseau

  • Un compte qui peut utiliser sudo, ou root. L’installateur écrit dans /opt/libris et pilote Docker, qui exigent tous deux les droits root.
  • Un accès HTTPS sortant (port 443) vers libris-translate.com (l’installateur), registry.libris-translate.com (les images de Libris Translate), Docker Hub (l’image PostgreSQL), sub.libris-translate.com (vérification de la licence, une fois par heure et à la fin de chaque travail) et votre fournisseur de modèles. Facultativement, www.ecb.europa.eu pour les taux de change quotidiens qui convertissent les prix d’un fournisseur saisis dans une autre devise ; sans cet accès, les prix se saisissent dans la devise de l’installation.
  • Aucun port entrant. Libris Translate écoute sur 127.0.0.1:8088, sur le serveur lui-même : depuis un autre ordinateur, on l’atteint par un tunnel SSH (étape 7) tant que vous n’avez pas décidé de le publier derrière HTTPS.

Étape 3 Installer Docker

L’installateur utilise Docker mais ne l’installe pas. Installez Docker Engine 26 ou plus récent avec le module Compose v2 en suivant le guide officiel de Docker pour votre distribution. Sur Ubuntu et Debian, il s’agit des paquets docker-ce et docker-compose-plugin du dépôt de Docker : le paquet docker.io de la distribution peut ne pas fournir Compose v2. Vérifiez ensuite :

bash
sudo docker version
sudo docker compose version

Les deux commandes doivent afficher une version, et docker compose version doit indiquer la v2 ou plus : l’ancienne commande docker-compose ne suffit pas.

Étape 4 Garder les identifiants du registre à portée de main

Votre courriel de licence contient trois secrets distincts :

  • la clé de licence, que vous saisirez dans Libris Translate lui-même (étape 8) ;
  • le nom d’utilisateur du registre ;
  • le jeton du registre, c’est-à-dire son mot de passe. Il permet seulement de télécharger les images de Libris Translate.

Ne tapez jamais le jeton sur une ligne de commande et ne le placez pas dans une variable d’environnement : il resterait dans l’historique du shell. L’installateur le demande dans le terminal, sans l’afficher. Si vous préférez, enregistrez-le d’abord pour root ; Docker le demande lui aussi sans l’afficher :

bash
sudo docker login registry.libris-translate.com

À Username, saisissez le nom d’utilisateur du registre ; à Password, collez le jeton du registre — pas la clé de licence. Docker répond Login Succeeded.

Étape 5 Lancer l’installateur

Sur le serveur, avec le compte qui peut utiliser sudo, lancez la commande officielle. Elle télécharge install.sh depuis ce site en HTTPS et l’exécute en root :

bash
curl --fail --location --silent --show-error https://libris-translate.com/install.sh | sudo bash

Vous pouvez lire le script avant de l’exécuter : libris-translate.com/install.sh. Il installe la dernière version stable, latest. Pour installer exactement Libris Translate 0.28.0 :

bash
curl --fail --location --silent --show-error https://libris-translate.com/install.sh | sudo env LIBRIS_TAG=0.28.0 bash

Étape 6 Répondre à l’installateur

L’installateur essaie d’abord les identifiants que Docker connaît déjà. Si vous ne vous êtes pas connecté auparavant, Docker affiche une erreur d’autorisation, qui est attendue, et l’installateur indique The stored Docker registry login could not pull Libris; use the read-only credentials supplied with your licence. Il pose alors deux questions dans le terminal :

QuestionRéponse
Registry username: le nom d’utilisateur du registre indiqué dans votre courriel de licence, puis Entrée
Registry token: le jeton du registre, puis Entrée. Rien ne s’affiche pendant que vous le collez : c’est normal

Aucune autre question n’est posée. L’installateur travaille ensuite seul pendant quelques minutes :

  1. il télécharge registry.libris-translate.com/libris/libris:latest et enregistre son empreinte immuable. Chaque image embarque son propre installateur : le script téléchargé depuis ce site passe la main à celui de l’image qu’il vient de tirer et indique Continuing with the installer of registry.libris-translate.com/libris/libris@sha256:…. L’installateur, le fichier Compose et le modèle de configuration présents sur votre serveur proviennent donc toujours de l’image même qu’ils démarrent ;
  2. il télécharge le pont Codex correspondant et vérifie que les deux images proviennent de la même construction ;
  3. il indique Installing Libris 0.28.0 in /opt/libris. et crée /opt/libris, lisible par root seulement, avec docker-compose.yml et .env, tous deux extraits de l’image. .env reçoit des secrets aléatoires et les réglages par défaut de l’image, dont BOOTSTRAP_USERNAME=admin, BIND_ADDRESS=127.0.0.1, PORT=8088 et COMPOSE_PROFILES=codex ;
  4. il démarre PostgreSQL, la migration de la base, l’application web, le service de traitement et le pont Codex, puis attend qu’ils soient opérationnels ;
  5. il termine par Libris 0.28.0 is ready at http://localhost:8088, suivi de la commande qui affiche le mot de passe de l’administrateur (étape 8) et du tunnel SSH à ouvrir sur un serveur distant (étape 7).

Vos livres, vos comptes et la base de données sont conservés dans des volumes Docker, pas dans /opt/libris. /opt/libris/.env contient le mot de passe initial de l’administrateur et les secrets qui protègent vos données : gardez-le confidentiel et incluez-le dans vos sauvegardes.

Étape 7 Vérifier que Libris Translate fonctionne

Sur le serveur, le contrôle de santé répond {"status":"ok","version":"…"} :

bash
curl --fail http://127.0.0.1:8088/health

L’état de chaque service : tous sont running ou healthy, sauf migrate, qui s’arrête une fois la base à jour (exited (0) est normal).

bash
sudo docker compose --project-directory /opt/libris ps

Ouvrez http://localhost:8088 dans un navigateur sur le serveur. Sur un serveur distant, ouvrez un tunnel depuis votre ordinateur, laissez-le ouvert, puis ouvrez la même adresse sur votre ordinateur :

bash
ssh -L 8088:127.0.0.1:8088 vous@votre-serveur

Pour atteindre Libris Translate depuis votre réseau ou en HTTPS, suivez Ouvrir Libris à votre réseau dans le guide Docker.

Étape 8 Se connecter et activer la licence

L’installateur a déjà créé le compte administrateur, admin. Affichez son mot de passe généré sur le serveur :

bash
sudo grep '^BOOTSTRAP_' /opt/libris/.env
  1. Connectez-vous en tant que admin avec ce mot de passe, puis changez-le depuis la page de votre compte. Traitez la sortie de la commande ci-dessus comme un mot de passe : ne la collez jamais dans un ticket, une discussion ou une capture d’écran.
  2. Ouvrez Paramètres › Licence, collez la clé de licence de votre courriel dans Clé de licence et cliquez sur Activer. L’installation se lie à cette machine et renouvelle ensuite seule son autorisation.
  3. Ouvrez Paramètres › Providers LLM, cliquez sur Nouveau provider, saisissez l’adresse, la clé et le nom de votre modèle, cliquez sur Enregistrer, puis sur Tester / détecter les modèles.
  4. Importez un premier livre : Votre première traduction vous guide pas à pas.

Étape 9 Mettre Libris Translate à jour

La mise à jour utilise la même commande. Lisez d’abord le journal des modifications, mettez en pause les livres en cours et faites une sauvegarde. Puis :

bash
curl --fail --location --silent --show-error https://libris-translate.com/install.sh | sudo bash

L’installateur reconnaît l’installation de /opt/libris et indique Updating the existing Libris configuration in /opt/libris to 0.28.0. Il conserve .env et ses secrets, tous les comptes, tous les livres et tous les volumes Docker : seules les références des images changent, et les migrations de la base s’exécutent d’elles-mêmes. Une installation antérieure à la 0.16 reçoit en outre COMPOSE_PROFILES=codex, pour qu’un simple docker compose pull mette aussi à jour le pont Codex. Un docker-compose.yml personnalisé n’est jamais écrasé : le nouveau modèle est écrit à côté sous le nom docker-compose.yml.libris-new et la mise à jour s’arrête jusqu’à ce que vous l’ayez fusionné.

Vérifiez de nouveau la santé (étape 7) et reprenez les livres mis en pause. Revenir à une image plus ancienne n’annule pas une migration de la base : pour revenir en arrière, restaurez la sauvegarde faite avant la mise à jour.

Si l’installateur s’arrête

Ses messages commencent par Libris installation:. Les plus fréquents :

MessageQue faire
docker is required. Docker n’est pas installé, ou pas dans le chemin de root : revenez à l’étape 3.
Docker Compose v2 is required. Installez le paquet docker-compose-plugin du dépôt de Docker (étape 3).
the registry rejected those credentials. Collez le jeton du registre, pas la clé de licence, avec le nom d’utilisateur du même courriel. Si le courriel est ancien, demandez de nouveaux identifiants.
the registry pull failed and no terminal is available. Lancez la commande depuis un terminal interactif (une session SSH), ou enregistrez d’abord les identifiants avec sudo docker login (étape 4).
installing under /opt requires root; run this command through sudo. Gardez sudo bash à la fin de la commande.
LIBRIS_HOME is not empty; choose an empty directory so no data is overwritten. /opt/libris existe et contient autre chose : déplacez-le. L’installateur ne l’écrase jamais.
contains an incomplete installation; do not overwrite it. Seul l’un des fichiers .env et docker-compose.yml se trouve dans /opt/libris : restaurez l’autre depuis votre sauvegarde.
docker-compose.yml has local changes. Reportez docker-compose.yml.libris-new dans votre fichier, puis relancez la commande (étape 9).
could not download the images of the stack. The configuration is kept; run the same command again to resume. Une coupure du réseau ou du registre : vérifiez l’accès HTTPS sortant (étape 2), puis relancez la même commande. Rien n’est perdu.
the stack did not start. The configuration is kept; inspect 'docker compose logs' in /opt/libris, then run the same command again to resume. Lisez les journaux avec la commande ci-dessous, corrigez la cause (souvent la mémoire ou l’espace disque), puis relancez la même commande.

Les journaux récents de l’application :

bash
sudo docker compose --project-directory /opt/libris logs --since=10m api worker

Pour tout autre cas, consultez le tableau de dépannage du guide Docker, ou écrivez à support@libris-translate.com en indiquant la version de Libris Translate et les dernières lignes de l’installateur — jamais le contenu de .env.

Aller plus loin

  • Sauvegarde et restauration : ce qu’il faut sauvegarder, une sauvegarde chaque nuit et un essai de restauration.
  • Configuration : tous les réglages de .env — réseau, courriels, limites, intégrations.
  • Le guide Docker : accès réseau et HTTPS, commandes courantes, désinstallation.
  • Exploitation : mises à jour, surveillance, coûts et journaux.