APP_NAME=HomeOS # Development defaults. For production set APP_ENV=production and APP_DEBUG=false # (otherwise exceptions are exposed and the demo household is seeded). APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost APP_LOCALE=de APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=de_DE APP_TIMEZONE=UTC APP_MAINTENANCE_DRIVER=file BCRYPT_ROUNDS=12 LOG_CHANNEL=stack LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=pgsql DB_HOST=db DB_PORT=5432 DB_DATABASE=homeos DB_USERNAME=homeos # dev default — matches the compose fallback so `cp .env.example .env && docker compose up` works. # Change to a strong value for production. DB_PASSWORD=homeos SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null BROADCAST_CONNECTION=reverb FILESYSTEM_DISK=local QUEUE_CONNECTION=redis CACHE_STORE=redis REDIS_CLIENT=phpredis REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=log MAIL_FROM_ADDRESS="homeos@localhost" MAIL_FROM_NAME="${APP_NAME}" # --- Reverb (private channels), proxied same-origin via nginx (/app, /apps) --- # dev defaults so realtime works out of the box; regenerate (e.g. `openssl rand -hex`) for production. REVERB_APP_ID=homeos-app REVERB_APP_KEY=homeos-dev-key REVERB_APP_SECRET=homeos-dev-secret REVERB_HOST=reverb REVERB_PORT=8080 REVERB_SCHEME=http REVERB_SERVER_HOST=0.0.0.0 REVERB_SERVER_PORT=8080 # client (Vite/Echo) — Echo connects same-origin, so only the key is needed here VITE_APP_NAME="${APP_NAME}" VITE_REVERB_APP_KEY="${REVERB_APP_KEY}" # ================= MQTT (Mosquitto) ================= MQTT_HOST=mosquitto MQTT_PORT=1883 MQTT_AUTH_USERNAME=laravel MQTT_AUTH_PASSWORD= # leave empty so a random client id is generated per connection MQTT_CLIENT_ID= MQTT_AUTO_RECONNECT_ENABLED=false MQTT_ENABLE_LOGGING=false # sidecar password — used only to generate the broker passwd file (see README). MQTT_SIDECAR_PASSWORD= # Shared DEVICE account — the ONE credential every Shelly uses (username `shelly`). # Home-Assistant-style onboarding: point each device at the broker with these, done. # Shown to you under Settings → Geräte-MQTT. Filled by gen-passwd.sh if empty. MQTT_SHELLY_PASSWORD= # Address your Shellys should connect to = your HomeOS server's LAN IP:port (NOT `mosquitto`, # which only resolves inside Docker). Shown in Settings. Leave blank to display a hint. MQTT_DEVICE_HOST= # ring-mqtt bridge account (Ring add-on). Only used when the addons compose profile is up. MQTT_RING_PASSWORD= # Ring add-on setup/token web UI port (ring-mqtt). Adjust if your ring-mqtt version differs. RING_UI_PORT=55123 # ================= docker compose (deployment) ================= HOST_UID=1000 HOST_GID=1000 APP_PORT=80 VITE_PORT=5173 REVERB_HOST_PORT=6001 DB_HOST_PORT=5432 MQTT_HOST_PORT=1883 # --- HomeOS admin (dev seed; set a strong value, change for production) --- HOMEOS_ADMIN_EMAIL=admin@homeos.local HOMEOS_ADMIN_NAME=Admin HOMEOS_ADMIN_PASSWORD=homeos-dev # Minutes off-WLAN before a person flips to "away" (rides out phone WLAN sleeps) PRESENCE_AWAY_DEBOUNCE=3