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
- Docker avec Compose, ou un NAS capable d'exécuter une image de conteneur (Synology, Unraid, CasaOS).
- Une machine amd64 ou arm64 — un Raspberry Pi ou un NAS ARM convient.
- Un dossier sur un disque local pour
./data. Ne le placez pas sur un partage réseau (NFS, SMB) : SQLite risque d'y corrompre la base de données.
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 journalGardez 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
- Ouvrez l'adresse du serveur dans un navigateur :
http://<server>:8080, ou le domaine attribué par votre hébergeur. - 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. - 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.
- 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 :
- Dans une interface de NAS (Synology Container Manager, Unraid, CasaOS) : image
ghcr.io/joveptesg/berth:1, port8080, un dossier monté sur/data. - Sur un Raspberry Pi, les mêmes commandes fonctionnent : l'image arm64 est récupérée automatiquement.
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 journalMettre à 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 :
docker compose stop berthdocker compose run --rm berth admin restore /data/backups/auto-<time>.sqlitedocker compose up -d
docker compose pull && docker compose up -dAccè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
- Paramètres → Sauvegarde, dans l'administration, télécharge une copie de la base de données et en restaure une, à partir d'une sauvegarde automatique ou d'un fichier importé. La base actuelle est d'abord enregistrée, si bien qu'une restauration peut être annulée.
- Avec un stockage S3, le serveur peut aussi déposer chaque jour une copie de la base de données dans le bucket, loin du disque où se trouve la base.
- Depuis la console, serveur arrêté :
berth admin restore <file>.
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.