Vai al contenuto

๐Ÿ›ก๏ธ Manuale di amministrazione

Questo manuale รจ destinato a chi installa ed esegue LibreFolio. La maggior parte delle operazioni di amministrazione avviene dalla riga di comando, tramite variabili d'ambiente o nella scheda Amministrazione delle impostazioni dell'app.


๐Ÿ“š Guide

๐Ÿณ Distribuzione ed esposizione

  • ๐Ÿ“ฆ Installazione sull'host: Configurazione manuale usando Python, Node.js e Pipenv direttamente sulla macchina host.
  • ๐Ÿณ Docker avanzato: Distribuzione containerizzata tramite Docker Compose, binding dei volumi e configurazione della proprietร  GID/UID dell'utente.
  • ๐ŸŒ Esposizione sicura: Esponi in modo sicuro la tua istanza privata di LibreFolio su Internet.
  • ๐Ÿ” Verificare la sicurezza della connessione: Verifica che i tuoi utenti si connettano in sicurezza, e correggi il cookie di sessione o il reverse proxy quando non รจ cosรฌ.

โš™๏ธ Configurazione del sistema

  • ๐Ÿ“ Variabili d'ambiente: Elenco completo delle variabili .env supportate (PORT, JWT_SECRET, LIBREFOLIO_DATA_DIR, ecc.) e precedenza di risoluzione delle variabili.
  • โš™๏ธ Impostazioni globali: Configura le impostazioni di runtime a livello di sistema (TTL sessione, limiti di caricamento, intervalli di sincronizzazione dei dati di mercato).

๐Ÿงน Manutenzione e operazioni

  • ๐Ÿ› ๏ธ Strumenti di amministrazione CLI: Come usare lo script dev.py per attivitร  amministrative (gestione utenti, aggiornamenti del database).
  • ๐Ÿ“‚ Struttura del filesystem: Dettagli su dove vengono archiviati database, log, caricamenti e cartelle temporanee, e su come eseguire backup.

๐Ÿ”” Notifiche di aggiornamento

Quando un amministratore accede, LibreFolio controlla su GitHub se รจ disponibile una versione stabile piรน recente. Se esiste, la finestra Nuova versione disponibile mostra la tua versione e quella piรน recente affiancate, con un link Come aggiornare alla guida all'aggiornamento e un link Note di rilascio su GitHub.

Modale di aggiornamento disponibile con versione corrente e piรน recente
  • Ricordamelo dopo chiude la finestra fino a un accesso successivo.
  • Salta questa versione interrompe la richiesta automatica per quella versione; una piรน recente viene annunciata di nuovo.
  • Una versione viene annunciata solo quando la sua immagine Docker puรฒ essere scaricata, e la finestra attende che nessun'altra finestra o guida sia aperta.
  • Senza accesso a Internet, il controllo automatico fallisce silenziosamente: nessun errore, nessun banner.
  • Per controllare subito, usa Verifica aggiornamenti nel changelog: segnala gli errori e anche le versioni che hai saltato.
๐Ÿ‘ฅ Altri utenti โ€” quando qualcuno che non รจ un amministratore esegue il controllo

Per gli utenti che non sono amministratori, non viene eseguito alcun controllo all'accesso. Se uno di loro esegue Verifica aggiornamenti ed esiste una versione piรน recente, la finestra di dialogo Aggiornamento disponibile โ€” contatta un amministratore elenca gli amministratori, con i loro indirizzi e-mail quando disponibili, cosรฌ sanno a chi rivolgersi.


๐Ÿ” Mantieni gli utenti connessi dopo un riavvio

LibreFolio firma ogni sessione di login con una chiave segreta, JWT_SECRET.

  • Non impostata (impostazione predefinita): viene creata una nuova chiave casuale a ogni avvio, quindi tutti devono accedere di nuovo dopo un riavvio o un aggiornamento.
  • Impostata: le sessioni sopravvivono ai riavvii. Impostala anche se diversi server LibreFolio separati condividono gli stessi utenti dietro un load balancer.

๐Ÿ”‘ 1. Genera una chiave

python3 -c "import secrets; print(secrets.token_urlsafe(64))"

Non c'รจ Python sull'host? Esegui invece il comando all'interno del container:

docker exec librefolio python -c "import secrets; print(secrets.token_urlsafe(64))"

๐Ÿ“ 2. Aggiungila al file .env e riavvia

JWT_SECRET=paste-the-generated-value-here

Riavvia LibreFolio (con Docker Compose: docker compose up -d). Mantieni la chiave privata: chiunque la conosca puรฒ falsificare una sessione.

I worker di un singolo ./dev.py server --workers โ€ฆ condividono una chiave tra loro. La durata di una sessione รจ la Durata sessione in Impostazioni globali. Per i dettagli, consulta la pagina per sviluppatori Architettura di sicurezza.