# LumaOps op Unraid ## Voorbereiding LumaOps bouwt één image met OpenRGB Core, de FastAPI-backend en de statische React-app. De veilige standaard is bridge networking, een read-only rootfilesystem en alleen expliciete hardwaredevices. Alle Linux-capabilities worden verwijderd, behalve CHOWN, SETUID en SETGID die de root-entrypoint kort nodig heeft om volumes en PUID/PGID in te stellen; na de overstap draait de applicatie als Unraid nobody/users via PUID=99 en PGID=100. Maak appdata aan: mkdir -p /mnt/user/appdata/lumaops/{openrgb,config,data,logs} Kloon de repository, kopieer .env.example naar .env en bouw: git clone REPOSITORY-URL cd LumaOps cp .env.example .env # Genereer een unieke token met: openssl rand -base64 32 # en vervang LUMAOPS_ADMIN_TOKEN in .env. docker compose build docker compose up -d docker compose ps Pas in docker-compose.yml de hostpaden aan naar /mnt/user/appdata/lumaops wanneer Compose vanuit een andere map draait. Voor de Unraid GUI kan docker/unraid-lumaops.xml als templatebasis worden gebruikt. Bij een lokale build blijft Repository lumaops:0.1.0. ## Netwerkmodi Bridge is standaard en publiceert alleen de webinterface: extern `WEB_PORT=1223` naar intern `APP_PORT=8080`. Open dus `http://UNRAID-IP:1223`. Poort 6742 ontbreekt doelbewust bij `ports`. Voor OpenRGB-netwerkcontrollers die UDP broadcast, multicast of mDNS nodig hebben: docker compose -f docker-compose.yml -f docker/compose.host-network.yml up -d De override verwijdert de webpoortmapping omdat host networking die niet gebruikt. LumaOps luistert dan rechtstreeks op `WEB_PORT` (standaard 1223). `OPENRGB_HOST` blijft 127.0.0.1, ook in host mode. ## Bijwerken git fetch origin git pull --ff-only origin main docker compose build --pull docker compose up -d --remove-orphans docker image prune Maak vooraf een appdata-back-up. Databaseback-ups in de UI vervangen geen kopie van de volledige appdata. Een rollback gebruikt een vorige Git-commit/tag en daarna dezelfde build/up-opdrachten. ## Productiecontrole docker compose ps docker inspect --format "{{json .State.Health}}" lumaops docker exec lumaops /opt/venv/bin/python /opt/lumaops/healthcheck.py docker exec lumaops sh -c "ss -ltn 2>/dev/null || true" Verwacht: web bereikbaar op hostpoort 1223, SDK alleen op 127.0.0.1:6742 en health healthy. Een ontbrekend hardwaredevice mag de webapp niet neerhalen; readiness wordt degraded/unhealthy met hersteladvies. ## Authenticatie Login staat standaard aan en vereist een unieke `LUMAOPS_ADMIN_TOKEN` van minstens 32 tekens. Voor rechtstreekse HTTP-toegang op een vertrouwd LAN blijft `SECURE_COOKIES=false`; zet dit op `true` achter HTTPS. Zet bij internettoegang ook `EXTERNAL_ACCESS=true` en voeg alleen bekende proxyadressen toe aan `TRUSTED_PROXIES`. Publiceer LumaOps nooit rechtstreeks zonder TLS.