Vai al contenuto

๐Ÿณ 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:

sudo usermod -aG docker $USER
Quindi effettua il logout e accedi nuovamente (oppure esegui 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:
    brew install --cask docker
    

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 compose up -d

๐Ÿ“ฆ 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:

sudo ufw allow 6040/tcp
sudo firewall-cmd --add-port=6040/tcp --permanent
sudo firewall-cmd --reload

๐ŸŒ 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 :latest nel file docker-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 :latest con 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
๐Ÿ’ก (Questo comando avvia Watchtower in background con accesso al socket di Docker. Verificherร  la presenza di nuove immagini sul registro solo per il container 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.