Self-hosting
Schirmziit è un unico programma che serve da sé la sua panoramica, più un database Postgres. Nessun Redis, nessun broker di messaggi, nessun servizio cloud.
Cosa ti serve
- Una macchina con Docker — basta un Raspberry Pi 4.
- Un indirizzo raggiungibile dal telefono del bambino, con TLS davanti (Caddy, Traefik o nginx).
- Circa 200 MB di spazio per il primo anno di dati.
Installazione
curl -O https://raw.githubusercontent.com/JorisM/schirmziit/main/deploy/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/JorisM/schirmziit/main/deploy/.env.example
# edit .env: POSTGRES_PASSWORD and PUBLIC_URL
docker compose up -d Reverse proxy e TLS
Schirmziit ascolta solo su 127.0.0.1:8080. Metti davanti un reverse proxy che chiuda il TLS e imposta PUBLIC_URL esattamente all’indirizzo che digiti nel browser. Quell’indirizzo finisce nel codice QR di collegamento: se è sbagliato, il telefono si collega una volta e poi non invia più nulla.
Il primo account
Per impostazione predefinita può registrarsi un solo account, poi la registrazione si chiude. Apri la panoramica, crea il tuo account e poi imposta ALLOW_REGISTRATION su «off».
Collegare un telefono
Aggiungi un bambino nella panoramica e genera un codice. Installa l’app Android sul telefono del bambino, consenti l’accesso ai dati di utilizzo e scansiona il codice. Da quel momento il telefono invia i dati circa ogni 30 minuti.
Backup
Tutto ciò che conta sta in Postgres. Un pg_dump notturno del volume è sufficiente; la panoramica in sé non ha stato.
Aggiornamenti
docker compose pull e poi docker compose up -d. Le migrazioni del database partono all’avvio. Il downgrade non è previsto: fai prima un backup.
Quando qualcosa non funziona
- Il telefono si collega ma non invia mai nulla.
- PUBLIC_URL non punta all’indirizzo raggiungibile dal telefono. Correggilo, riavvia e genera un nuovo codice.
- La panoramica dice «non invia più nulla».
- Controlla sul telefono che l’accesso ai dati di utilizzo sia ancora consentito e consenti gli aggiornamenti in background se l’app lo chiede.
- Postgres non parte più dopo un aggiornamento.
- Da Postgres 18 il volume va montato su /var/lib/postgresql e non su /var/lib/postgresql/data. Il nostro file compose lo fa già.
- Un’app compare come «com.qualcosa.app».
- Il telefono non ha potuto risolvere il nome. Dopo il prossimo aggiornamento dell’app Android e un nuovo invio comparirà il nome corretto.