60 lines
2.9 KiB
Markdown
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.
|