Auto-hébergement
Schirmziit est un seul programme qui sert lui-même son tableau de bord, plus une base Postgres. Pas de Redis, pas de broker de messages, aucun service cloud.
Ce qu’il te faut
- Une machine avec Docker — un Raspberry Pi 4 suffit.
- Une adresse que le téléphone de l’enfant peut atteindre, avec TLS devant (Caddy, Traefik ou nginx).
- Environ 200 Mo de stockage pour la première année de données.
Installation
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 et TLS
Schirmziit n’écoute que sur 127.0.0.1:8080. Place un reverse proxy devant pour terminer TLS et donne à PUBLIC_URL exactement l’adresse que tu saisis dans le navigateur. Cette adresse est intégrée au code QR d’appairage : si elle est fausse, le téléphone s’appaire une fois puis n’envoie plus rien.
Le premier compte
Par défaut, un seul compte peut s’enregistrer, puis l’inscription se ferme. Ouvre le tableau de bord, crée ton compte, puis mets ALLOW_REGISTRATION sur « off ».
Connecter un téléphone
Ajoute un enfant dans le tableau de bord et génère un code. Installe l’application Android sur le téléphone de l’enfant, autorise l’accès aux données d’utilisation et scanne le code. Ensuite, le téléphone envoie ses données environ toutes les 30 minutes.
Sauvegardes
Tout ce qui compte est dans Postgres. Un pg_dump nocturne du volume suffit ; le tableau de bord lui-même n’a pas d’état.
Mises à jour
docker compose pull puis docker compose up -d. Les migrations de base de données s’exécutent au démarrage. Le retour à une version antérieure n’est pas prévu : fais une sauvegarde d’abord.
Quand quelque chose ne marche pas
- Le téléphone s’appaire mais n’envoie jamais rien.
- PUBLIC_URL ne pointe pas sur l’adresse que le téléphone peut atteindre. Corrige, redémarre et génère un nouveau code.
- Le tableau de bord affiche « n’envoie plus rien ».
- Vérifie sur le téléphone que l’accès aux données d’utilisation est toujours autorisé, et autorise les mises à jour en arrière-plan si l’application le demande.
- Postgres ne démarre plus après une mise à jour.
- Depuis Postgres 18, le volume doit être monté sur /var/lib/postgresql et non /var/lib/postgresql/data. Notre fichier compose le fait déjà.
- Une application apparaît comme « com.quelquechose.app ».
- Le téléphone n’a pas pu résoudre son nom. Après la prochaine mise à jour de l’application Android et un nouvel envoi, le vrai nom apparaît.