Betrieb
Cloud-Backend deployen
Section titled “Cloud-Backend deployen”Das Backend läuft als Docker-Compose-Stack auf einem zentralen Server (VPS oder Cloud-Instanz):
cd locker-backenddocker compose -f docker-compose.prod.yml up -dImage-Version pinnen (empfohlen)
Section titled “Image-Version pinnen (empfohlen)”Standardmäßig wird der latest-Tag verwendet. Für Produktion das Image auf
einen unveränderlichen Tag pinnen — per Commit-SHA oder Release-Tag in
locker-backend/.env:
BACKEND_IMAGE_TAG=<github_sha>docker compose -f docker-compose.prod.yml pulldocker compose -f docker-compose.prod.yml up -d --force-recreateDie laufende Version ist über GET /api/identify als version abfragbar.
MQTT-Authentifizierung
Section titled “MQTT-Authentifizierung”Der Mosquitto-Broker authentifiziert Clients gegen die Laravel-API
(mosquitto-go-auth). Die Konfiguration wird aus dem Template erzeugt:
just setup-mqttOhne just: mosquitto.conf aus dem Beispiel kopieren und in den
Webhook-URIs mosq_secret=<MOSQ_HTTP_PASS> eintragen, dann den
Mosquitto-Container neu starten.
Admin-Benutzer anlegen
Section titled “Admin-Benutzer anlegen”docker compose exec app php artisan filament:userDas Admin-Panel ist unter https://<deine-domain>/admin erreichbar.
Monitoring
Section titled “Monitoring”- Health-Endpoint:
GET /up(Laravel) - MQTT-Listener: meldet Liveness per Heartbeat im Cache;
php artisan mqtt:healthist der Docker-Healthcheck desmqtt-listener-Containers. Einautoheal-Sidecar startet unhealthy Container automatisch neu. Hinweis:autohealnutzt die Docker-Restart-API — Restarts erscheinen in denautoheal-Logs, nicht imRestartCount. - Status-Polling:
php artisan locker:poll-statusüberwacht die Schließfach-Status kontinuierlich (separater Container)
Locker Client am Standort
Section titled “Locker Client am Standort”Der Locker Client läuft als Docker-Container auf einem Raspberry Pi (3/4/5 oder Zero 2 W, Raspberry Pi OS Lite 64-bit):
- Image:
ghcr.io/open-locker/locker-client:latest - Benötigt
config/locker-config.ymlund eine.envmitPROVISIONING_TOKEN - Verbindet sich per MQTT mit dem Backend und steuert die Schlösser per Modbus (TCP oder RTU)
Empfohlene Hardware: siehe Stückliste.
Hosting-Optionen
Section titled “Hosting-Optionen”- Self-Hosting: alles selbst betreiben — volle Kontrolle, keine Softwarekosten
- Gehostetes Backend: wer nicht selbst hosten möchte, kann das zentrale Backend hosten lassen — siehe Angebot auf der Website