Loslegen
Diese Anleitung richtet eine lokale Entwicklungsumgebung ein. Für ein Produktions-Deployment siehe Betrieb.
Voraussetzungen
Section titled “Voraussetzungen”- Docker & Docker Compose
- PHP 8.4+ und Composer (Backend)
- Node.js 22+ und pnpm (Mobile App, Locker Client, Website)
- just (Task-Runner, optional aber empfohlen)
Repository klonen
Section titled “Repository klonen”git clone https://github.com/Open-Locker/Open-Locker.gitcd Open-LockerBackend
Section titled “Backend”cp locker-backend/.env.example locker-backend/.envIn locker-backend/.env mindestens konfigurieren:
APP_URL— URL des BackendsDB_PASSWORD— Datenbank-PasswortMOSQ_HTTP_USER/MOSQ_HTTP_PASS— Zugangsdaten für die Kommunikation zwischen MQTT-Broker und Backend
MQTT-Broker-Konfiguration erzeugen und Stack starten:
just setup-mqtt # erzeugt mosquitto.conf aus dem Template
cd locker-backenddocker compose up -d # Postgres, Mosquitto, Redis, Appphp artisan migrate --seedErsten Admin-Benutzer anlegen:
docker compose exec app php artisan filament:userDas Admin-Panel ist dann unter <APP_URL>/admin erreichbar. Der primäre
Dev-Loop läuft über Composer:
composer dev # Server + Queue + Logs + Vite parallelcomposer test # Testscomposer quality # Format-Check + statische Analyse + TestsMobile App
Section titled “Mobile App”cd mobile-apppnpm installpnpm start # Expo Dev ClientDer API-Client wird aus der OpenAPI-Spezifikation des laufenden Backends generiert. Nach Änderungen am API-Vertrag:
pnpm generate:api # Backend muss laufenVor dem Pushen: pnpm check (Typecheck + Lint + Format + expo-doctor).
Locker Client
Section titled “Locker Client”cd locker-clientpnpm installpnpm dev # startet den Client lokalDer Client braucht eine config/locker-config.yml und eine .env mit
PROVISIONING_TOKEN. Details zur Hardware stehen in der
Stückliste.
Website
Section titled “Website”cd websitepnpm installpnpm dev # http://localhost:4321