Avvio rapido
Due percorsi per avere un'istanza di Openbeehive funzionante da aprire in un browser:
- Opzione A, binario singolo. Compila un unico eseguibile autonomo che usa SQLite e il filesystem locale. Niente Docker, niente server di database, niente object storage. Adatto a un home server, un Raspberry Pi o un piccolo VPS.
- Opzione B, Docker. Esegui l'immagine pubblicata con un solo comando.
Entrambi usano il profilo di deployment selfhost, che per impostazione predefinita prevede un database SQLite incorporato e l'archiviazione dei blob su filesystem. Puoi passare a PostgreSQL e MinIO/S3 in seguito; vedi Configurazione.
:::tip Utente singolo? Nessun login necessario
Nel profilo selfhost nessun metodo di accesso è abilitato per impostazione predefinita: BEEHIVE_PASSWORD_AUTH è disattivato, BEEHIVE_OIDC_PROVIDERS è vuoto e BEEHIVE_WEBAUTHN_ENABLED=false. L'app si apre direttamente sui tuoi registri. Per aggiungere l'accesso in seguito, vedi Autenticazione.
:::
La configurazione minima funzionante
Qualunque percorso tu scelga, due impostazioni contano per iniziare:
BEEHIVE_DEPLOYMENT_PROFILE=selfhost
BEEHIVE_PUBLIC_BASE_URL=http://localhost:8080
BEEHIVE_PUBLIC_BASE_URL è l'indirizzo che il server inserisce nei link che genera (redirect OIDC, link di invito e di verifica). Per i test in locale http://localhost:8080 va bene. Per un deployment reale, impostalo sul tuo URL pubblico, ad esempio https://bees.example.com.
Tutto il resto ha valori predefiniti per il self-hosting. L'elenco completo si trova in Configurazione.
Opzione A: binario singolo (senza Docker)
Prerequisiti
- Go 1.25 o più recente
- Node 24 o più recente
- buf
Compila ed esegui
git clone https://github.com/openbeehive-org/openbeehive-app.git
cd openbeehive-app
# Generate the Connect-RPC code, then build the server
make proto
make build
# Configure
cp .env.example .env
# Edit .env: BEEHIVE_DEPLOYMENT_PROFILE=selfhost and BEEHIVE_PUBLIC_BASE_URL
# Run
./server/bin/openbeehive
Per impostazione predefinita il binario è in ascolto su :8080 e serve esso stesso la web app (BEEHIVE_SERVE_WEB=true), così l'API e la PWA provengono dalla stessa origine. Apri l'indirizzo indicato in BEEHIVE_PUBLIC_BASE_URL.
:::note Dove risiedono i tuoi dati
In modalità selfhost i tuoi registri finiscono in un file SQLite (openbeehive.db nella directory di lavoro per impostazione predefinita) e le foto caricate in una directory di blob (./data/blobs per impostazione predefinita). Esegui il backup di entrambi e avrai eseguito il backup di tutto; vedi Backup.
:::
Opzione B: Docker
L'immagine pubblicata è ghcr.io/openbeehive-org/openbeehive-app:latest.
docker run -d \
--name openbeehive \
-p 8080:8080 \
-e BEEHIVE_DEPLOYMENT_PROFILE=selfhost \
-e BEEHIVE_PUBLIC_BASE_URL=http://localhost:8080 \
-e 'BEEHIVE_DATABASE_DSN=file:/data/openbeehive.db?_pragma=busy_timeout(5000)&_pragma=journal_mode(WAL)' \
-e BEEHIVE_BLOB_DIR=/data/blobs \
-v openbeehive-data:/data \
ghcr.io/openbeehive-org/openbeehive-app:latest
Le righe BEEHIVE_DATABASE_DSN e BEEHIVE_BLOB_DIR sono quelle che mettono i tuoi dati sul volume. Senza di esse il container usa i suoi valori predefiniti, openbeehive.db e ./data/blobs relativi alla directory root del container, che stanno fuori dal volume e spariscono dopo docker rm. Con esse, il volume openbeehive-data contiene il database e i blob, che sopravvivono a riavvii e aggiornamenti. Una volta in esecuzione, apri http://localhost:8080.
Per fermare o rimuovere il container (il volume resta):
docker stop openbeehive
docker rm openbeehive
Se attivi l'accesso con email/password (BEEHIVE_PASSWORD_AUTH=true), il server rifiuta di avviarsi finché non imposti anche BEEHIVE_ADMIN_EMAIL e BEEHIVE_ADMIN_PASSWORD. Vedi Autenticazione.
:::tip Preferisci lo stack cloud? Il comando sopra esegue il profilo leggero selfhost. Per il profilo cloud (PostgreSQL + MinIO) il repository include dei file Compose; vedi Docker. :::
Primi passi dopo l'installazione
- Apri l'app al tuo
BEEHIVE_PUBLIC_BASE_URLe crea il tuo primo apiario. - Aggiungi un'arnia, modificala per impostarne il tipo e registra una visita.
- Stampa un'etichetta QR per l'arnia così da poterla scansionare direttamente sul campo.
Prima di esporre l'istanza su internet, metti davanti un reverse proxy che termina il TLS e imposta BEEHIVE_PUBLIC_BASE_URL sull'indirizzo https://. Poi configura i backup.