Files
LumaOps-Public/docs/UNRAID_DEPLOYMENT.md
T

60 lines
2.9 KiB
Markdown

# 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.