๐ณ Installazione con Docker (Utente)
Questa guida spiega come installare ed eseguire LibreFolio per l'uso regolare utilizzando l'immagine Docker ufficiale precompilata. Questo รจ il metodo piรน semplice e raccomandato per gli utenti finali.
Non รจ necessario installare strumenti di sviluppo o compilare il codice sulla propria macchina host (nessun requisito di Python, Node.js o Pipenv).
โ Prerequisiti
Prima di iniziare, assicurati di aver installato Docker (che include Docker Compose) sulla tua macchina host. A seconda del tuo sistema operativo, puoi seguire questi passaggi:
La maggior parte delle distribuzioni Linux consente l'installazione tramite i repository ufficiali.
Per distribuzioni basate su Debian/Ubuntu:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Permessi del gruppo Docker (Linux)
Su Linux, il tuo utente di sistema deve appartenere al gruppo docker per poter eseguire i comandi senza sudo:
newgrp docker) per applicare le modifiche alla sessione corrente del terminale.
Su macOS, il modo consigliato รจ installare Docker Desktop:
- Scarica Docker Desktop per Mac (disponibile per Apple Silicon o Intel).
- In alternativa, se utilizzi Homebrew, puoi installarlo da terminale:
Su Windows, installa Docker Desktop:
- Scarica e installa Docker Desktop per Windows.
- Assicurati di abilitare il backend basato su WSL 2 durante l'installazione per ottenere le migliori prestazioni.
๐ Installazione Passo-Passo
๐ 1. Crea una cartella per il progetto
๐ Naviga nella cartella in cui desideri salvare il progetto (ad esempio la tua cartella utente o dei documenti), crea una nuova directory per LibreFolio e accedi ad essa:
# ๐ Vai alla cartella principale dove vuoi posizionare il progetto (es. Documenti)
cd /percorso/della/tua/cartella
# ๐ Crea e accedi alla cartella di LibreFolio
mkdir librefolio
cd librefolio
๐ฅ 2. Ottieni i file di configurazione base
โ๏ธ Per avviare LibreFolio, avrai bisogno del file docker-compose.yml (che descrive lo stack dei container) e del file .env (che contiene le impostazioni personalizzate del tuo ambiente).
โฌ๏ธ Puoi scaricarli direttamente dal repository GitHub ufficiale utilizzando uno dei seguenti comandi:
# ๐ฅ Scarica il file docker-compose.yml ufficiale
wget https://raw.githubusercontent.com/Librefolio/LibreFolio/main/docker-compose.prod.yml -O docker-compose.yml
# ๐ Scarica il file .env.example e salvalo come .env
wget https://raw.githubusercontent.com/Librefolio/LibreFolio/main/.env.example -O .env
# ๐ฅ Scarica il file docker-compose.yml ufficiale
curl -L https://raw.githubusercontent.com/Librefolio/LibreFolio/main/docker-compose.prod.yml -o docker-compose.yml
# ๐ Scarica il file .env.example e salvalo come .env
curl -L https://raw.githubusercontent.com/Librefolio/LibreFolio/main/.env.example -o .env
โ๏ธ In alternativa, puoi creare manualmente un file chiamato docker-compose.yml e incollarvi all'interno il seguente codice:
services:
librefolio:
image: ghcr.io/librefolio/librefolio:latest
container_name: librefolio
restart: unless-stopped
ports:
- "6040:6040"
volumes:
- ./librefolio-data:/app/backend/data/prod-docker
env_file: .env
environment:
- LIBREFOLIO_DATA_DIR=/app/backend/data/prod-docker
- HOST=0.0.0.0
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:6040/api/v1/system/health')"]
interval: 30s
timeout: 10s
start_period: 15s
retries: 3
๐ก (Se non hai scaricato il file .env.example, rimuovi la riga env_file: .env dal codice sopra, o crea un file .env vuoto, per evitare errori all'avvio).
โถ๏ธ 3. Avvia l'applicazione
๐ Avvia il container in background (in modalitร detached) eseguendo:
๐ฆ Docker scaricherร l'immagine ufficiale dal registro GitHub Container Registry (GHCR) e avvierร LibreFolio.
๐ 4. Accedi a LibreFolio
๐ฅ๏ธ Una volta avviato il container, apri il browser e vai su:
http://localhost:6040
๐ค Al primo accesso, ti verrร presentata la pagina di registrazione per creare l'account amministratore di LibreFolio. Il primo utente che si registra riceverร automaticamente i privilegi di amministratore.
Visualizzazione dello Stato e dei Log con Portainer
Se preferisci una comoda interfaccia grafica per monitorare lo stato del tuo container LibreFolio e leggerne i log in tempo reale, ti consigliamo l'uso di Portainer, uno strumento di gestione Docker leggero ed estremamente diffuso.
๐ถ 5. Accesso in Rete Locale e Remoto
Una volta avviato, LibreFolio sarร raggiungibile:
- ๐ป Direttamente dal computer host visitando
http://localhost:6040. - ๐ฑ Da altri dispositivi sulla stessa rete locale (LAN) (es. smartphone, tablet, altri PC) inserendo nel browser l'indirizzo IP locale del computer host (es.
http://192.168.1.100:6040).
๐ก๏ธ Configurazione del Firewall (facoltativo)
Se non riesci ad accedere a LibreFolio da altri dispositivi della rete locale, potrebbe essere necessario aprire la porta 6040 nel firewall del computer host:
๐ Accesso Remoto
Per accedere a LibreFolio in sicurezza quando sei fuori casa (fuori dalla rete locale), sei libero di configurare la soluzione che preferisci (come un reverse proxy con certificato SSL).
Tuttavia, per la massima semplicitร e sicurezza senza dover aprire porte sul tuo router, consigliamo l'uso di Tailscale. Trovi tutti i dettagli e la guida passo-passo nella pagina Esposizione con Tailscale.
โ๏ธ Opzioni di Configurazione
Tutte le impostazioni di LibreFolio (come porte, valuta di base e chiavi di sicurezza delle sessioni) sono gestite tramite variabili d'ambiente nel file .env.
Per i dettagli completi su ciascuna opzione e sulle modalitร di risoluzione delle variabili, consulta la Guida alla Configurazione nel Manuale Amministratore.
๐พ Backup dei Dati
Tutti i dati di LibreFolio (database SQLite, file caricati dagli utenti, report caricati e log) sono salvati localmente all'interno della cartella ./librefolio-data creata a fianco del file docker-compose.yml.
Per le istruzioni dettagliate su cosa salvare e su come eseguire backup consistenti, consulta la Sezione Backup del Manuale Amministratore.
๐ Aggiornamento di LibreFolio
โ ๏ธ Attenzione: Stato di Alpha
LibreFolio รจ attualmente in fase di sviluppo Alpha. Questo significa che tra una versione e l'altra potrebbero esserci modifiche strutturali o migrazioni del database che potrebbero impedire l'avvio della nuova versione, richiedendo un intervento manuale o il ripristino di una versione precedente.
- Usando il tag
:latestnel filedocker-compose.yml, riceverai subito le ultime funzionalitร ma ti esporrai a potenziali incompatibilitร durante gli aggiornamenti automatici. - Se preferisci stabilitร e controllo assoluto, ti consigliamo di bloccare l'immagine sostituendo
:latestcon un tag di versione specifico (ad esempio,ghcr.io/librefolio/librefolio:v0.10.0).
๐ ๏ธ 1. Aggiornamento Manuale
Per aggiornare LibreFolio manualmente all'ultima versione disponibile:
# ๐ Arresta il container in esecuzione
docker compose down
# ๐ฅ Scarica la versione piรน recente dell'immagine dal registro
docker compose pull
# ๐ Riavvia LibreFolio applicando la nuova immagine
docker compose up -d
Le migrazioni del database verranno eseguite automaticamente all'avvio del container.
๐ค 2. Aggiornamento Automatico (Watchtower)
Se desideri automatizzare l'aggiornamento del container non appena viene rilasciata una nuova immagine sul registro, puoi utilizzare Watchtower (ti consigliamo il fork attivo e aggiornato di nicholas-fedor/watchtower).
Comportamento di default
Di default, Watchtower monitora e aggiorna tutti i container attivi sul sistema. Per maggiori dettagli e opzioni avanzate, consulta il repository ufficiale del progetto.
Per comoditร , se desideri limitare il controllo del software solo a LibreFolio ed eseguire la verifica a cadenza settimanale (ad esempio, ogni domenica alle 4:00 del mattino tramite espressione Cron), puoi avviare Watchtower con questo comando:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e TZ=Europe/Rome \
nicholas-fedor/watchtower \
--cleanup \
--schedule "0 0 4 * * 0" \
librefolio
librefolio ogni domenica alle 04:00:00, eliminando le vecchie immagini per risparmiare spazio. Modifica TZ impostando il tuo fuso orario di riferimento).
๐ 3. Altre Alternative di Gestione
Se desideri un approccio diverso o piรน controllo sulle notifiche e sull'applicazione delle release, esistono valide alternative:
-
WUD (What's Up Docker)
Tool moderno per homelab dotato di una comoda interfaccia web.
ร estremamente modulare e supporta notifiche su Telegram, Discord e Gotify.
Permette di inviare avvisi sulle nuove release senza aggiornare automaticamente, lasciandoti la scelta di quando farlo. -
Diun (Docker Image Update Notifier)
Un notificatore puro, leggero e sicuro.
Non richiede i permessi di scrittura sul socket di Docker.
Monitora i registri delle immagini in sola lettura e ti avvisa quando viene pubblicata una nuova versione di LibreFolio.