-
Notifications
You must be signed in to change notification settings - Fork 1
Deployment
Questo documento descrive come installare, configurare e aggiornare Spendify. Per backup, ripristino e gestione del database → database.md. Per installazione su Mac nativo, Linux con Ollama e Windows con llama.cpp → installazione.md.
- Installazione rapida (one-liner Docker)
- Installazione Docker Compose da repository
- Installazione nativa (sviluppo / Mac)
- Configurazione
.env - Aggiornare l'applicazione
- Comandi operativi Docker
- Risoluzione problemi
- Disinstallazione
| Concetto | Analogia | Cosa significa in pratica |
|---|---|---|
| Image | Ricetta di cucina | Il pacchetto con tutto il codice e le dipendenze |
| Container | Piatto cucinato | L'app in esecuzione, creata dall'immagine |
| Volume | Quaderno esterno | La cartella persistente dove sta il database — sopravvive anche se il container viene cancellato |
Cosa NON cancella i tuoi dati:
-
docker compose down✅ sicuro -
docker compose up -d --build✅ sicuro (ricostruisce l'immagine, dati intatti)
Cosa CANCELLA i dati:
-
docker compose down -v⚠️ cancella i volumi — usare solo per reset completo
L'unico prerequisito è Docker Desktop installato e avviato.
Mac / Linux:
curl -fsSL https://raw.githubusercontent.com/drake69/spendify/main/installer/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/drake69/spendify/main/installer/install.ps1 | iexLo script crea la cartella ~/spendify/, scarica l'immagine da GitHub Container Registry, avvia il container e apre il browser su http://localhost:8501 automaticamente.
AI locale inclusa (opzionale): lo script chiede se installare Ollama con il modello
gemma3:12b— scaricato automaticamente in background al primo avvio (~8 GB, ~10–15 minuti). In alternativa puoi configurare una API key esterna (OpenAI/Anthropic) dalla pagina ⚙️ Impostazioni.
Aggiornamento:
docker compose --project-directory ~/spendify pull && docker compose --project-directory ~/spendify up -d
Disinstallazione:
curl -fsSL https://raw.githubusercontent.com/drake69/spendify/main/installer/uninstall.sh | bash
Adatta a chi vuole modificare il codice o configurare profili LLM (Ollama, llama.cpp).
git clone https://github.com/drake69/spendify.git spendify
cd spendifycp .env.example .envdocker compose up -d --build-
--buildforza la ricostruzione dell'immagine (necessario al primo avvio o dopo aggiornamenti del codice) -
-davvia in background
L'app è disponibile su http://localhost:8501
# Ollama (Linux / server con GPU)
docker compose --profile ollama up -d
# llama.cpp (Windows / CPU)
docker compose --profile llama-cpp up -dPer la configurazione completa dei backend LLM → installazione.md.
| Strumento | Versione minima |
|---|---|
| Python | 3.13 |
| uv | qualsiasi — curl -Ls https://astral.sh/uv/install.sh | sh
|
git clone https://github.com/drake69/spendify.git spendify
cd spendify
uv sync
cp .env.example .env
uv run streamlit run app.pyL'app è disponibile su http://localhost:8501
Il database
ledger.dbviene creato automaticamente nella cartella del progetto al primo avvio.
Il file .env contiene solo due parametri. Tutte le altre impostazioni (LLM, API key, formato date, lingua, ecc.) si configurano dall'interfaccia nella pagina ⚙️ Impostazioni.
cp .env.example .env| Parametro | Descrizione | Default |
|---|---|---|
SPENDIFY_DB |
URI del database SQLite | sqlite:///ledger.db |
TAXONOMY_PATH |
Percorso del file YAML delle categorie | taxonomy.yaml |
SPENDIFY_DB=sqlite:///ledger.db
TAXONOMY_PATH=taxonomy.yaml
# Solo per il profilo llama-cpp:
# LLAMA_MODEL=gemma-3-4b-it-Q4_K_M.ggufNon aggiungere mai
.enva git — verificare che.gitignorecontenga la riga.env.
docker compose --project-directory ~/spendify pull
docker compose --project-directory ~/spendify up -dgit pull origin main
docker compose down
docker compose up -d --buildgit pull origin main
uv sync
pkill -f "streamlit run app.py"
uv run streamlit run app.pyLe migrazioni del database vengono applicate automaticamente all'avvio — non è necessario alcun intervento manuale.
# Stato container
docker compose ps
# Log in tempo reale
docker compose logs -f spendify
# Healthcheck
docker inspect spendify_app --format='{{.State.Health.Status}}'
# Stop (dati intatti)
docker compose down
# Stop + rimuovi container orfani (dati intatti)
docker compose down --remove-orphans
# ⚠️ Reset completo inclusi i volumi (PERDITA DATI)
docker compose down -vPer l'installazione one-liner aggiungere --project-directory ~/spendify a ogni comando, es. docker compose --project-directory ~/spendify logs -f.
# Controlla cosa usa la porta
lsof -i :8501
# Nativa
pkill -f "streamlit run app.py"
# Docker
docker compose down && docker compose up -ddocker compose logs --tail=50 spendifyCause comuni:
-
.envmancante o valori errati - Volume non montato correttamente
- Porta 8501 già in uso
Il modello gemma3:12b richiede ~8 GB di RAM. Cambia modello dalla pagina ⚙️ Impostazioni:
| Modello | RAM richiesta |
|---|---|
gemma3:12b |
~8 GB |
qwen2.5:7b |
~5 GB |
llama3.2:3b |
~3 GB |
Errori tipo database is locked, corruzione del file, ripristino da backup → database.md.
Gli script di disinstallazione rimuovono interattivamente tutti i componenti Spendify. Nessun dato viene cancellato senza conferma esplicita.
Mac / Linux:
curl -fsSL https://raw.githubusercontent.com/drake69/spendify/main/installer/uninstall.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/drake69/spendify/main/installer/uninstall.ps1 | iexLo script chiede separatamente:
| Cosa | Dettaglio |
|---|---|
| Database delle transazioni | Volumi spendify_data e spendify_logs
|
| Modelli Ollama | Volume ollama_models (~8 GB) |
| llama.cpp + cartella models/ | Immagine llama.cpp:server + file GGUF |
| Immagini Docker |
ghcr.io/drake69/spendify + ollama/ollama (~500 MB–1 GB) |
| Cartella di installazione |
~/spendify/ (o SPENDIFY_INSTALL_DIR) |
| Istruzioni rimozione Docker Desktop | Guida testuale per macOS / Linux / Windows |