Gestore di oggetti da mettere in valigia per i tuoi viaggi. Multi-utente: ogni persona ha il proprio catalogo, le proprie valigie fisiche e la propria lista di imballaggio — anche sui viaggi condivisi.
Per lo stato tecnico dettagliato del progetto vedi CONTEXT.md. Per
l'elenco delle funzionalità della versione corrente vedi CHANGELOG.md.
- Docker e Docker Compose (v2, il comando
docker compose) - Un Cloudflare Tunnel già configurato sulla macchina host, che inoltri
il traffico verso
http://127.0.0.1:4825
cd valigia
cp .env.example .envApri .env e imposta almeno SECRET_KEY con una stringa lunga e
casuale (python3 -c "import secrets; print(secrets.token_hex(32))").
Personalizza anche ADMIN_USERNAME/ADMIN_PASSWORD se vuoi (le
credenziali di partenza, che dovrai comunque cambiare al primo accesso).
docker compose up -d --buildL'app risponde su http://127.0.0.1:4825 dell'host, e sul tuo dominio
pubblico tramite il Cloudflare Tunnel già configurato.
Aggiornando da una versione precedente? Non serve alcun intervento manuale: al primo avvio i tuoi dati esistenti vengono aggiornati automaticamente al nuovo schema, senza perdite. Vedi "Persistenza dei dati" più sotto per i dettagli.
In fondo ad ogni pagina (anche il login) trovi il numero di versione in esecuzione: utile per verificare che un aggiornamento sia andato a buon fine senza dover controllare i log.
Utente e password di default sono quelli in .env (admin/admin se
non li hai cambiati). Al primo login devi impostare subito una nuova
password: nessun'altra pagina è raggiungibile finché non lo fai.
L'amministratore riceve un catalogo precaricato con tutti gli oggetti
del database Notion originale.
- Crea un viaggio (meta + date, dalla home). L'app cerca anche un'immagine di copertina automaticamente in base alla meta.
- Nella schermata del viaggio (che ha un suo indirizzo permanente,
salvabile come segnalibro) trovi due schede:
- Valigia: la tua lista personale, con gli oggetti raggruppati per categoria (una categoria alla volta, per non dover scorrere tanto). Per ogni oggetto: quante ne vuoi in totale ("obiettivo"), quante in ciascuna delle tue valigie attive, quante ne mancano da comprare, se è già in valigia.
- Lista della spesa: condivisa con chi partecipa al viaggio, divisa per chi si è preso in carico l'acquisto di ciascun oggetto.
- In Valigie (menu) censisci le tue borse reali: marca, nome, tipologia (Cabina / Stiva / Zaino), peso a vuoto, capacità. Dalla pagina "Valigie" di un viaggio scegli quali porti con te.
- Dal menu Catalogo gestisci categorie e oggetti (anche con il loro peso in grammi) — compariranno automaticamente in tutti i tuoi viaggi. Puoi reimportare il catalogo di base in qualsiasi momento.
- Solo l'amministratore crea nuovi utenti (sezione Utenti, visibile solo agli admin). Ogni nuovo utente riceve subito il proprio catalogo e due valigie di partenza.
- La lista da mettere in valigia è sempre personale, anche sui viaggi condivisi: se condividi un viaggio con un familiare, ognuno vede/modifica SOLO la propria lista, mai quella dell'altro.
- Quello che si condivide è: meta/date/note del viaggio (solo il proprietario le modifica) e la lista della spesa (visibile a tutti, divisa per chi compra cosa).
- Ogni utente può modificare il proprio nome/nickname dal menu utente ("Profilo"); l'admin può farlo per chiunque dalla sezione Utenti.
I dati vivono nel volume Docker ./data (mai toccato da un rebuild
dell'immagine) e, dalla v2.1.0, un sistema di migrazioni automatiche
aggiorna lo schema del database ad ogni avvio senza mai cancellare
nulla: puoi sempre limitarti a docker compose up -d --build.
Dalla sezione Backup (menu, solo admin):
- Esporta: scarica l'intero database (tutti gli utenti, cataloghi,
viaggi, valigie) in un unico file
.db. - Ripristina: carica un file
.dbprecedentemente esportato per sostituire tutti i dati attuali. Viene creata automaticamente una copia di sicurezza dei dati precedenti prima del ripristino (data/backups/). Dopo un ripristino, riavvia il container (docker compose restart) per essere certo che tutti i processi vedano i dati appena ripristinati.
Backup automatici periodici (facoltativo, lato host): un semplice cron che copia il file basta, dato che è autosufficiente:
# crontab -e sull'host, es. ogni notte alle 3:00
0 3 * * * cp /percorso/valigia/data/valigia.db /percorso/backup-esterno/valigia-$(date +\%F).dbIl catalogo di base è già incorporato e importato automaticamente per
ogni nuovo utente. Per importare un ALTRO export CSV (colonne Name, Conservato, Da comprare, N. Imbarco, N. Stiva, N. Totale, Tipo):
cp /percorso/del/tuo/export.csv ./data/import.csv
docker compose exec valigia flask list-users # trova il tuo --user-id
docker compose exec valigia python scripts/import_notion.py /app/data/import.csv --user-id 1Aggiungi --trip-id N per popolare anche le quantità di un tuo viaggio
già creato.
docker compose logs -f # log
docker compose up -d --build # aggiorna
docker compose exec valigia flask reset-admin-password "x" # password admin dimenticatapython3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python wsgi.py # http://127.0.0.1:8000Test:
pip install pytest
VALIGIA_ENV=testing pytest -q