Files
LumaOps-Public/docs/UNRAID_DEPLOYMENT.md
T

2.9 KiB

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.