Schirmziit 🇨🇭 Développé en Suisse

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

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.