-
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)
- 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
La REST API è disponibile su http://localhost:8000 · Docs interattive: http://localhost:8000/docs
# 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
Per avviare anche la REST API in sviluppo:
uv run uvicorn api.main:app --host 0.0.0.0 --port 8000Il database
ledger.dbviene creato automaticamente nella cartella del progetto al primo avvio.
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 |