Skip to content

Network Modes

Network mode is set once at norsk-ctl init and determines how containers communicate with each other and the outside world. There are three modes — docker, host, and hybrid — each trading off isolation, simplicity, and performance differently.

Use caseModeWhy
Multi-instance, proxy auth, productiondockerFull isolation, single entry point
Single instance, dev/testing, simplesthostNo proxy overhead, direct access
Multi-instance, low-latency media ingesthybridProxy for UI, host networking for media

Docker mode places all containers on a Docker bridge network (norsk-net). An nginx reverse proxy is the single entry point — it routes browser traffic to the correct Studio instance by matching the instance ID in the URL path and forwards API requests to the backend on the host.

This is the default and recommended mode for production. It supports multiple concurrent instances without port conflicts (each Studio and Media container is resolved by name on the bridge network, not by port). Oauth2 security protects the proxy.

Initialise with:

norsk-ctl init --network-mode docker --proxy-user admin --proxy-password <pass>

Access Studio at https://<proxy-host>/<instance-id>/studio/.

Host mode runs all containers with network_mode: host — every port binds directly to the host machine. There is no bridge network, no proxy container, and no auth layer. Studio connects to Media via localhost.

This is the simplest mode and ideal for local development or single-instance testing. Because ports bind directly, running multiple instances will cause port conflicts unless you manually assign unique ports to each.

Initialise with:

norsk-ctl init --network-mode host

Access Studio directly at http://localhost:<port>.

Caveat: no proxy means no auth and no multi-instance routing. Multiple instances require manually assigning distinct ports.

Hybrid mode bridges the gap: Studio containers sit on the Docker bridge network behind the proxy (just like docker mode), while Media containers run on the host network for direct, low-latency media ingest. Studio reaches Media via host.docker.internal instead of a container name.

This gives you proxy-based auth and multi-instance UI routing with the lowest possible latency — media traffic never traverses the Docker network stack.

Initialise with:

norsk-ctl init --network-mode hybrid --proxy-user admin --proxy-password <pass>

Access Studio the same way as docker mode: https://<proxy-host>/<instance-id>/studio/.

Changing network mode requires re-initialising:

norsk-ctl init --network-mode <new-mode> --force

All running instances should be stopped first. The --force flag overwrites the existing config.yaml.