Menu
Nuvio Web docs

Install

Nuvio Web is distributed as a multi-arch Docker image (orochibraru/nuvio-web) for linux/amd64 and linux/arm64. There is no database to provision, but mount a volume on /app/data: the app keeps signed-in sessions and each profile's library, watch progress and history there, in SQLite, and syncs them with your Nuvio account in the background (Sync). Without it, a restart signs everyone out and drops changes not yet pushed to Nuvio. One container per data directory.

You will need a Nuvio account. You can create one from the app's own sign-up screen.

#Docker run

docker run -p 3000:3000 \
  -v ./data:/app/data \
  orochibraru/nuvio-web:latest

It works on any URL as is, plain HTTP included. Put HTTPS in front before it leaves your network. See Configuration.

#Docker Compose

services:
  nuvio:
    image: orochibraru/nuvio-web:latest
    restart: unless-stopped
    ports:
      - 3000:3000
    volumes:
      # Sessions, and your library / progress / history. Back it up.
      - ./data:/app/data
    environment:
      # Behind a reverse proxy that terminates HTTPS. See Configuration.
      PROTOCOL_HEADER: x-forwarded-proto
      HOST_HEADER: x-forwarded-host
    healthcheck:
      interval: 30s
      retries: 3
      start_period: 5s
      test: ["CMD", "curl", "-fsS", "http://localhost:3000/api/health"]
      timeout: 30s

Then open it at the HTTPS address your proxy serves.

#Tags

TagWhat it is
latestThe most recent stable release
vX.Y.ZA specific stable release
canaryThe latest build of main, ahead of the next release

Pin a vX.Y.Z tag if you want an upgrade to be a decision rather than a restart.

#What is in the image

The runtime layer is debian:bookworm-slim, curl for the health check, and one binary. The build compiles the SvelteKit app with the Bun runtime embedded into a self-contained /app/dist/server via @sveltejs/adapter-bun, so the image ships no Bun install and no node_modules. It runs as an unprivileged user (uid 10001).

GET /api/health answers 200 while the server is up. The image's HEALTHCHECK curls it; orchestrators can probe it directly.

#Building it yourself

docker buildx build -t nuvio-web:latest .

Or through the bake definition, which is what CI uses:

docker buildx bake app

#Without Docker

bun install
bun run build
bun run start   # serves ./build/server on :3000

Bun is the only prerequisite. See Development for the dev server.

This guide lives in the project repo: edit it there, and this page follows with the next release.