Vai al contenuto
Berth

Installare Berth con Docker

Aggiornato il 27 ottobre 2026

Berth è un unico container, ghcr.io/joveptesg/berth, compilato per amd64 e arm64. Gira su un server Linux o un VPS, un NAS o un Raspberry Pi e tiene tutto in un'unica cartella di dati. La configurazione richiede pochi minuti.

Cosa serve

Avvio con Docker Compose

./data contiene il database, i suoi backup, l'archivio locale e 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, dati in ./data
docker compose logs berth         # il codice di configurazione è nel log

Conserva una copia di secret.key separata dai backup: senza di essa le chiavi degli archivi nel database non possono essere lette.

Prima configurazione nel browser

  1. Apri l'indirizzo del server in un browser: http://<server>:8080, o il dominio assegnato dal tuo hosting.
  2. Trova il codice di configurazione nel log, nella riga server is not set up: … enter the setup code K7P2-9QXM. Cambia a ogni riavvio finché la configurazione non è completata.
  3. Inserisci il codice e crea l'amministratore. L'indirizzo che hai aperto diventa l'indirizzo di casa o Internet nei codici QR per i telefoni; puoi cambiarlo in seguito in Impostazioni → Server.
  4. Carica il primo libro: trascina una cartella o un file nel pannello web. Berth legge tag, capitoli e copertina; controllali e aggiungi il libro alla libreria.

Docker semplice, NAS e Raspberry Pi

Per Docker semplice o per l'interfaccia di un NAS che chiede il nome di un'immagine:

docker run -d --name berth --restart unless-stopped \
  -p 8080:8080 -v "$PWD/data:/data" ghcr.io/joveptesg/berth:1
docker logs berth                 # il codice di configurazione è nel log

Aggiornamenti e rollback

Il tag 1 segue tutte le release 1.x; 1.0 segue le correzioni della 1.0, e un tag esatto come 1.0.1 non cambia mai. Evita latest con gli aggiornamenti automatici come Watchtower: segue anche le nuove versioni major.

Prima che una nuova versione modifichi lo schema del database, ne salva una copia in ./data/backups (vengono conservate le ultime 3). Per tornare indietro, fissa la versione precedente in docker-compose.yml e ripristina quella copia:

  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

Accesso da Internet

Berth serve HTTP semplice, che a casa basta. Per l'accesso dall'esterno, mettici davanti un reverse proxy con HTTPS, per esempio Caddy:

books.example.com {
	reverse_proxy localhost:8080
}

Poi inserisci https://books.example.com nel pannello web in Impostazioni → Indirizzo Internet, così i codici QR per i telefoni lo includono. L'app passa da sola tra l'indirizzo di casa e quello Internet.

Backup

Domande

Quale porta usa Berth?

La 8080 dentro il container. Pubblicala su qualsiasi porta dell'host, ad esempio -p 9000:8080.

Dove sono conservati i miei libri?

Di default nell'archivio locale dentro ./data. In seguito puoi aggiungere un archivio compatibile con S3 nel pannello web e renderlo predefinito per i nuovi libri. Vedi Archivio S3.

Posso compilare Berth dai sorgenti?

Sì: in un clone del repository, togli il commento a build: . in docker-compose.yml ed esegui docker compose up -d --build.