Aller au contenu
Berth

Installer Berth avec Docker

Mis à jour le 27 octobre 2026

Berth tient dans un seul conteneur, ghcr.io/joveptesg/berth, construit pour amd64 et arm64. Il tourne sur un serveur Linux ou un VPS, un NAS ou un Raspberry Pi, et conserve tout dans un seul dossier de données. L'installation prend quelques minutes.

Ce qu'il vous faut

Lancer avec Docker Compose

./data contient la base de données, ses sauvegardes, le stockage local et secret.key.

mkdir berth && cd berth
curl -fsSLO https://raw.githubusercontent.com/joveptesg/berth/main/docker-compose.yml
docker compose up -d              # http://localhost:8080, données dans ./data
docker compose logs berth         # le code de configuration est dans le journal

Gardez une copie de secret.key à part des sauvegardes : sans elle, les clés de stockage enregistrées dans la base de données sont illisibles.

Première configuration dans le navigateur

  1. Ouvrez l'adresse du serveur dans un navigateur : http://<server>:8080, ou le domaine attribué par votre hébergeur.
  2. Trouvez le code de configuration dans le journal, sur la ligne server is not set up: … enter the setup code K7P2-9QXM. Il change à chaque redémarrage tant que la configuration n'est pas terminée.
  3. Saisissez le code et créez l'administrateur. L'adresse que vous avez ouverte devient l'adresse domestique ou Internet dans les QR codes des téléphones ; vous pourrez la modifier plus tard dans Paramètres → Serveur.
  4. Importez le premier livre : faites glisser un dossier ou un fichier dans l'administration. Berth lit les tags, les chapitres et la couverture ; vérifiez-les et ajoutez le livre à la bibliothèque.

Docker sans Compose, NAS et Raspberry Pi

Pour Docker sans Compose ou une interface de NAS qui demande un nom d'image :

docker run -d --name berth --restart unless-stopped \
  -p 8080:8080 -v "$PWD/data:/data" ghcr.io/joveptesg/berth:1
docker logs berth                 # le code de configuration est dans le journal

Mettre à jour et revenir en arrière

Le tag 1 suit toutes les versions 1.x ; 1.0 suit les correctifs de la 1.0, et un tag exact comme 1.0.1 ne change jamais. Évitez latest avec les outils de mise à jour automatique comme Watchtower : il suit aussi les nouvelles versions majeures.

Avant qu'une nouvelle version modifie le schéma de la base de données, elle en enregistre une copie dans ./data/backups (les 3 dernières sont conservées). Pour revenir en arrière, fixez la version précédente dans docker-compose.yml et restaurez cette copie :

  1. docker compose stop berth
  2. docker compose run --rm berth admin restore /data/backups/auto-<time>.sqlite
  3. docker compose up -d
docker compose pull && docker compose up -d

Accès depuis Internet

Berth sert du HTTP simple, ce qui suffit à la maison. Pour un accès depuis l'extérieur, placez devant lui un reverse proxy avec HTTPS, par exemple Caddy :

books.example.com {
	reverse_proxy localhost:8080
}

Saisissez ensuite https://books.example.com dans l'administration, sous Paramètres → Adresse sur Internet, pour que les QR codes des téléphones l'incluent. L'application bascule d'elle-même entre l'adresse domestique et l'adresse Internet.

Sauvegardes

Questions

Quel port Berth utilise-t-il ?

8080 à l'intérieur du conteneur. Publiez-le sur le port hôte de votre choix, par exemple -p 9000:8080.

Où mes livres sont-ils stockés ?

Par défaut, dans le stockage local à l'intérieur de ./data. Vous pourrez ajouter plus tard un stockage compatible S3 dans l'administration et le définir par défaut pour les nouveaux livres. Voir Stockage S3.

Puis-je compiler Berth depuis les sources ?

Oui : dans un clone du dépôt, décommentez build: . dans docker-compose.yml et lancez docker compose up -d --build.