Self-hosted · i tuoi dati restano tuoi

Sai sempre quanto puoi spendere.

FinaFlow conosce stipendio, affitto, bollette e rate, e calcola ogni mese un budget che puoi spendere tutto senza mai restare scoperto. Sul tuo server, con Docker.

Demo: demo@demo.it · password demo1234 · dati fittizi, si azzera ogni giorno

La Panoramica di FinaFlow: saldo, budget rimanente, risparmi, obiettivi, finanziamenti e prestiti
Budget sicuro su 24 mesi

Il budget libero è calcolato perché tutte le scadenze dei prossimi due anni trovino sempre i soldi sul conto, anche se lo stipendio tarda.

Privato per davvero

Gira sul tuo server: nessun cloud, nessun collegamento alla banca, nessun tracciamento. Ogni utente vede solo i propri dati.

Guarda avanti

Proiezione del saldo giorno per giorno, per ogni conto: vedi in anticipo il giorno più stretto e quanto avrai tra un anno.

Tutto quello che serve, niente di superfluo

Pensato per chi vuole sapere dove vanno i soldi e quanto può permettersi, senza fogli di calcolo.

Conti

  • Corrente, deposito, contanti, carte, investimenti
  • Totale utilizzabile e totale di tutti i conti
  • Risparmi, obiettivi e depositi fuori dal totale
  • Conti remunerati: interessi accreditati in automatico
  • Trasferimenti e note per ogni conto

Movimenti

  • Categorie e sottocategorie
  • Filtri per mese o da data a data, ricerca libera
  • Movimento veloce in due tocchi
  • Export CSV per Excel e Calc

Ricorrenti

  • Ogni giorno, settimana, mese o anno, anche «ogni 3 mesi»
  • Numero di rate: la data di fine si calcola da sola
  • «Pagato» registra il movimento e passa alla prossima
  • Stipendio che può arrivare qualche giorno dopo

Budget

  • Budget libero mensile, ricalcolato mese per mese
  • «Spendi l'80%» per mettere da parte una riserva
  • Plafond per categoria con avanzamento
  • Suggerimento per il mese prossimo

Finanziamenti e prestiti

  • Mutui e rate con debito residuo e avanzamento
  • Soldi prestati ad amici, con restituzioni parziali
  • Quanto deve ancora rientrare, a colpo d'occhio

Accessi e sicurezza

  • Più utenti, inviti, SSO OIDC (es. Authentik)
  • Verifica in due passaggi (TOTP) e passkey
  • Recupero password via email
  • Backup JSON completo, export e import
  • Assistente AI collegato via MCP, con token personali

Un budget che puoi spendere tutto

FinaFlow mette in fila tutte le scadenze dei prossimi 24 mesi e trova la cifra più alta che puoi spendere ogni mese senza che il conto principale scenda mai sotto zero.

Vuoi mettere da parte qualcosa? Scegli di spendere l'80% e il resto diventa una riserva per gli imprevisti.

  • Quanto ti resta fino a fine mese e quanto al giorno
  • Il budget del mese prossimo, già calcolato
  • Plafond per le categorie che vuoi tenere d'occhio
Pagina Budget: budget libero di ottobre e plafond per categoria

Il tuo saldo, da qui a un anno

La proiezione segue ogni conto giorno per giorno: ricorrenze, rate, stipendio e, se vuoi, anche il budget libero speso. Il giorno più stretto è segnato in anticipo.

  • Grafico per conto e prospetto mese per mese
  • Avvisi se un conto rischia di andare in rosso
Pagina Proiezioni: budget mensile libero, saldo proiettato per conto e grafico

Comodo anche dal telefono

Barra in basso come un'app, pulsante «+» per registrare una spesa al volo, tabelle che diventano schede. Tema chiaro o scuro, come il tuo sistema.

Panoramica su telefono Budget su telefono con tema scuro

Dai un'occhiata

Dati inventati, interfaccia vera.

Chiedi ai tuoi soldi

Collega ChatGPT, Claude o un altro assistente AI a FinaFlow con il protocollo MCP: fai domande sui tuoi dati in italiano e registra le spese senza aprire l'app.

Le risposte arrivano dai tuoi numeri

L'assistente usa gli stessi calcoli dell'app: saldi, budget libero, proiezione, ricorrenze. Niente stime inventate, niente fogli da esportare.

  • «Quanto ho speso al bar a settembre?»
  • «Posso permettermi una spesa di 400 € questo mese?»
  • «Quali sono le prossime scadenze e quando il conto sarà più basso?»
  • «Segna 12,50 € di pranzo di oggi sul conto corrente»
Quanto ho speso in spesa alimentare questo mese rispetto al mese scorso?
totals_by_category
Questo mese 312,40 € in Spesa, contro 355,10 € a settembre: 43 € in meno, con ancora 5 giorni da contare.
Ok. Segna 18 € di benzina di oggi sulla carta.
Registro un'uscita di 18,00 € «Benzina», categoria Trasporti, conto Carta, data di oggi. Confermi?
Sì
add_transaction
Fatto. Ti restano 186 € di budget libero fino a fine mese, circa 37 € al giorno.

Sola lettura

Per fare domande senza che l'assistente possa cambiare nulla.

  • Conti, saldi e movimenti programmati
  • Ricerca dei movimenti per periodo, conto, categoria o testo
  • Totali per categoria e sottocategoria
  • Budget libero, plafond per categoria e proiezione
  • Pagamenti ricorrenti e prossime scadenze

Lettura + movimenti

Tutto quello della sola lettura, in più:

  • Aggiunge uscite, entrate e trasferimenti tra conti
  • Modifica o elimina solo i movimenti creati da lui: quelli inseriti da te restano intoccabili
  • Conti, categorie, budget, ricorrenze e impostazioni non si toccano mai
  • Stessi controlli dell'app: obiettivi dei salvadanai, conti e categorie solo tuoi
Collega l'assistente

ChatGPT e claude.ai: aggiungi un connettore con l'indirizzo del tuo FinaFlow, accedi e consenti. Claude Code, Claude Desktop, OpenCode: crea un token in Profilo e sicurezza.

Scegli i permessi

Sola lettura, oppure lettura + movimenti. Per i token FinaFlow ti mostra subito la configurazione già compilata, da copiare o scaricare.

Chiedi

Fai domande come a un amico che conosce i tuoi conti. Prima di scrivere un movimento l'assistente ti chiede conferma.

Nessun token da copiare: il collegamento passa da OAuth. Aggiungi un connettore personalizzato con l'indirizzo qui sotto, poi si apre FinaFlow: accedi come sempre (password, passkey o SSO), scegli i permessi e consenti.

  • ChatGPT: Impostazioni → App e connettori, attiva la modalità sviluppatore e crea un connettore con autenticazione OAuth.
  • claude.ai: Impostazioni → Connettori → Aggiungi connettore personalizzato, poi «Connetti».
https://finaflow.tuodominio.it/api/mcp

I nomi dei menu possono cambiare con le versioni delle app. Il tuo FinaFlow deve essere raggiungibile in HTTPS da internet.

Il token vale solo per i tuoi dati e mai per quelli degli altri utenti. Si revoca con un clic e smette di funzionare se cambi la password o esci da tutti i dispositivi. I collegamenti OAuth compaiono nella stessa lista e si revocano allo stesso modo.

FinaFlow sul telefono

Un'app vera per Android, oppure l'app web installata sulla schermata Home di qualsiasi telefono.

App Android

  1. Scarica finaflow-versione.apk dall'ultima release.
  2. Aprilo e consenti l'installazione da questa fonte, se Android lo chiede.
  3. Al primo avvio scrivi l'indirizzo del tuo server FinaFlow ed entra: con password, SSO o passkey (Android 14+).
Scarica l'APK

Aggiornamenti automatici: aggiungi l'indirizzo del repository in Obtainium, che ti avvisa a ogni nuova versione. Le versioni si installano una sopra l'altra senza perdere i dati.

iPhone e altri telefoni

  1. Apri il tuo FinaFlow nel browser del telefono.
  2. Safari: Condividi → Aggiungi alla schermata Home. Chrome: Menu → Installa app.
  3. Si apre a schermo intero come un'app e si aggiorna da sola.

Niente da scaricare: è la stessa app che usi dal computer, con la barra in basso e il pulsante «+» per i movimenti veloci.

Self-host anche tu

Tre container, un file di configurazione, cinque minuti. Funziona su un VPS, un NAS o un mini PC di casa.

Copia

Salva il compose qui sotto come docker-compose.yml (o incollalo in uno stack di Portainer).

Cambia

Modifica solo le righe con ← cambia: indirizzo dell'app, secret, email e, se lo usi, l'SSO.

Avvia

docker compose up -d e apri l'indirizzo: il primo utente che si registra diventa amministratore.

services:
  backend:
    image: git.devmin.it/carmine/finaflow-backend:stable
    container_name: finaflow-backend
    restart: unless-stopped
    depends_on:
      mongo:
        condition: service_healthy
    volumes:
      - data:/data   # file generati dal server (passkey e link dell'app Android)
    environment:
      NODE_ENV: production
      MONGO_URI: mongodb://mongo:27017/finaflow
      APP_URL: https://finaflow.tuodominio.it   # ← cambia: indirizzo pubblico dell'app
      SESSION_SECRET: incolla-qui-openssl-rand-hex-32   # ← cambia: openssl rand -hex 32
      TRUST_PROXY: "2"   # 2 con un reverse proxy davanti (Traefik, NPM, Caddy), altrimenti 1
      TZ: Europe/Rome
      CURRENCY: EUR
      FORECAST_MONTHS: "12"
      LOW_BALANCE_THRESHOLD: "0"
      DEMO_MODE: "false"

      # SSO (facoltativo): senza Authentik metti SSO_DISABLED "true" e cancella le 4 righe sotto
      SSO_DISABLED: "false"
      AUTH_REQUIRED: "true"
      ISSUER_BASE_URL: https://auth.tuodominio.it/application/o/finaflow/   # ← cambia
      CLIENT_ID: il-tuo-client-id           # ← cambia
      CLIENT_SECRET: il-tuo-client-secret   # ← cambia
      SCOPE: openid profile email

      # Email (facoltativa ma consigliata): verifica account, recupero password, codice di accesso
      SMTP_HOST: smtp.tuodominio.it         # ← cambia
      SMTP_PORT: "587"
      SMTP_SECURE: "false"   # "true" con la porta 465
      SMTP_USER: noreply@tuodominio.it      # ← cambia
      SMTP_PASS: la-password-della-casella  # ← cambia
      MAIL_FROM: FinaFlow <noreply@tuodominio.it>   # ← cambia

  frontend:
    image: git.devmin.it/carmine/finaflow-frontend:stable
    container_name: finaflow-frontend
    restart: unless-stopped
    depends_on:
      - backend
    ports:
      - "8080:80"   # ← cambia la prima porta se 8080 è occupata

  mongo:
    image: mongo:9
    container_name: finaflow-mongo
    restart: unless-stopped
    volumes:
      - db:/data/db
    healthcheck:
      test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  db:
  data:

In Authentik, come Redirect URI del provider metti https://finaflow.tuodominio.it/callback e https://finaflow.tuodominio.it/login (lo stesso indirizzo di APP_URL). Per aggiornare: docker compose pull && docker compose up -d.

Docker + Compose~300 MB di RAMLinux amd64MongoDB inclusoHTTPS con il tuo reverse proxy

Domande frequenti

Si collega alla mia banca?

No. I movimenti li inserisci tu, oppure si registrano da soli con un clic dalle ricorrenze. Nessuna credenziale bancaria esce dal tuo server.

Possono usarlo più persone?

Sì. Il primo utente è amministratore e invita gli altri, oppure li fa entrare con il suo SSO. Ognuno ha i propri conti e l'amministratore non vede i dati degli altri.

Come faccio il backup?

Ogni utente scarica un file JSON con tutti i propri dati e può reimportarlo quando vuole. Per l'intera istanza basta salvare il volume di MongoDB.

Serve un dominio o HTTPS?

Per provarlo no: basta http://localhost:8080. Per usarlo da fuori casa mettilo dietro il tuo reverse proxy con HTTPS (le passkey lo richiedono).

Se collego un assistente AI, chi vede i miei dati?

Solo l'assistente che colleghi tu, con un token che crei e revochi quando vuoi. FinaFlow non manda niente a nessuno da solo: è l'assistente a fare domande al tuo server, e vede solo le risposte. Se non crei token, nessuna AI ha accesso.

Quanto costa?

Niente abbonamenti: lo installi sul tuo hardware e paghi solo il server che già hai.

Riprendi il controllo dei tuoi soldi

Installa FinaFlow sul tuo server e scopri quanto puoi spendere questo mese, senza sorprese.