CLI Reference
norsk-ctl
Section titled “norsk-ctl”norsk-ctl <command> [options]
First time? Run: norsk-ctl init guided setup wizard
Commands: norsk-ctl get <resource> Get resources (versions, hardware, status, prerequisites) norsk-ctl instance <subcommand> Manage Norsk Studio instances norsk-ctl orphaned-dirs <subcommand> Inspect working directories left on disk after terminate norsk-ctl shm <subcommand> Inspect shared-memory groups norsk-ctl sideload <subcommand> Inspect the GPU sideload bundle cache norsk-ctl product <subcommand> Manage Norsk vertical product registrations norsk-ctl template <subcommand> Manage stored product templates norsk-ctl config <subcommand> Manage CLI configuration norsk-ctl serve Start the norsk-ctl daemon in the foreground norsk-ctl shutdown Shut down norsk-ctl: stop proxy, remove instances, exit daemon norsk-ctl restart Restart the daemon process (picks up new group membership, e.g. after joining the docker group) norsk-ctl proxy <subcommand> Manage the nginx reverse proxy norsk-ctl inspect Show a human-readable dump of the norsk-ctl database norsk-ctl init Initialize norsk-ctl configuration norsk-ctl fetch <target> Fetch bundled tools (mkcert) norsk-ctl source <subcommand> Manage sample SRT sources for instances norsk-ctl stats Show Docker container resource usage norsk-ctl upgrade Download a newer norsk-ctl binary and atomically swap it in norsk-ctl user <subcommand> Manage basic-auth proxy users norsk-ctl worker Run as a Norsk Manager worker (operate under Manager control over gRPC) norsk-ctl mcp Run the norsk-ctl MCP stdio adapter (bridges stdio to the daemon's HTTP MCP endpoint)
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl get
Section titled “norsk-ctl get”norsk-ctl get <resource>
Get resources (versions, hardware, status, prerequisites)
Positionals: resource Resource type: versions | hardware | status | prerequisites [string] [required] [choices: "versions", "hardware", "status", "prerequisites"]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl instance
Section titled “norsk-ctl instance”norsk-ctl instance <subcommand>
Manage Norsk Studio instances
Commands: norsk-ctl instance delete <id> Delete an instance norsk-ctl instance describe <id> Describe an instance norsk-ctl instance restart <id> Restart an instance (fast, no image change) norsk-ctl instance stop <id> Stop an instance's containers (resumable, not removed) norsk-ctl instance start <id> Start a stopped instance (resume its containers) norsk-ctl instance relaunch <id> Relaunch an instance (teardown + recreate) norsk-ctl instance list List all instances norsk-ctl instance exists <id> Exit 0 if the instance exists, 1 if not (quiet — for scripts) norsk-ctl instance launch-template <id> Launch an instance from a stored product templatenorsk-ctl instance delete
Section titled “norsk-ctl instance delete ”norsk-ctl instance delete <id>
Delete an instance
Positionals: id Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --purge Also delete the working directory (only if norsk-ctl created it and it clears the safety guard) [boolean] [default: false]norsk-ctl instance describe
Section titled “norsk-ctl instance describe ”norsk-ctl instance describe <id>
Describe an instance
Positionals: id Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl instance restart
Section titled “norsk-ctl instance restart ”norsk-ctl instance restart <id>
Restart an instance (fast, no image change)
Positionals: id Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl instance stop
Section titled “norsk-ctl instance stop ”norsk-ctl instance stop <id>
Stop an instance's containers (resumable, not removed)
Positionals: id Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl instance start
Section titled “norsk-ctl instance start ”norsk-ctl instance start <id>
Start a stopped instance (resume its containers)
Positionals: id Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl instance relaunch
Section titled “norsk-ctl instance relaunch ”norsk-ctl instance relaunch <id>
Relaunch an instance (teardown + recreate)
Positionals: id Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --host-ports Replace the managed host-port bindings. Each targets a compose service (omitted = media). Applied on the recreate, so a relaunch rebinds host ports without a separate delete + launch (repeat the flag for multiple). [array]norsk-ctl instance list
Section titled “norsk-ctl instance list”norsk-ctl instance list
List all instances
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl instance exists
Section titled “norsk-ctl instance exists ”norsk-ctl instance exists <id>
Exit 0 if the instance exists, 1 if not (quiet — for scripts)
Positionals: id Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl instance launch-template
Section titled “norsk-ctl instance launch-template ”norsk-ctl instance launch-template <id>
Launch an instance from a stored product template
Positionals: id, instanceId Instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --template, --productTemplateName Name of the stored product template to launch [string] [required] --param, --paramOverrides Parameter override as KEY=VALUE; repeat for multiple [array] --working-directory Absolute host path to bind-mount as /data in the instance containers. Optional; if omitted the runner uses `~/norsk-runtime/<productName>/<id>/`. Validated at launch against the product manifest's `runtime.sharedWorkingDirectory` flag — if false (the default), refused when another live instance already claims the same path. [string] --cpu-count [number] --cpu-pinning [array] --container-user [string] --network-mode docker (default) or hybrid (media on the host network). Full host mode is not supported for products (studio would collide on its port across instances), so it is not offered. [string] [choices: "docker", "hybrid"] --memory-limit [string] --restart-policy [string] [choices: "unless-stopped", "always", "on-failure", "no"] --shm-size Size of media's private /dev/shm (docker shm_size syntax, e.g. "8gb"). Defaults to the product's own shm_size, else 2gb.
Under shmGroup it sizes the GROUP's /dev/shm instead — the whole group, not this instance's share, since every member shares one namespace. Docker cannot resize a running container, so a changed value is refused at launch until the group's last member is deleted. [string] --shm-group Join this instance's media container to a shared shared-memory group of this name. Shared memory is private per instance by default; a group is what lets a product's zero-copy transport carry frames between instances. Members join one IPC namespace owned by a small anchor container (norsk-ctl-shm-anchor-<group>), which also holds the group's memory while its members are stopped. Sized by shmSize. An empty string explicitly declines a group the product template declared. [string] --host-ports Managed host-port bindings. Each targets a compose service (omitted = media) and is published in docker mode; hybrid exposes media's via the host network directly. Non-media targets are persisted and validated but not yet emitted into the override. [array] --public-host Per-instance External URL override for advertised links (runtime-screen hrefs, the runner base URL handed to the product). Full URL with scheme, validated like the daemon-wide setting; the oauth2 proxy itself stays on the global External URL. [string] --hardware Accelerator to reserve on media — GPU (nvidia) or Netint Quadra; none = no reservation. [string] [choices: "none", "nvidia", "quadra"] --sidecars Operator-supplied compose files (paths relative to the working directory) merged after the override — extra services alongside the product. Project-name isolation namespaces their containers. [array] --overrides, --composeOverrides Operator environment overrides: compose files that adjust the environment of services the stack already defines (paths relative to the working directory). Merged after the sidecars, so operator environment is final.
Distinct from `sidecars`, which adds services that RUN. Each file is validated down to `services.<name>.{environment,env_file}` — any other key, a `!override`/`!reset` tag, an unknown service, or a key the runner owns (STUDIO_NORSK_HOST, PORT, PUBLIC_URL_PREFIX, STUDIO_URL_PREFIX, STUDIO_NORSK_INTERNAL_PREFIX, STUDIO_WORKING_DIRECTORY) refuses the launch. [array]norsk-ctl orphaned-dirs
Section titled “norsk-ctl orphaned-dirs”norsk-ctl orphaned-dirs <subcommand>
Inspect working directories left on disk after terminate
Commands: norsk-ctl orphaned-dirs list List orphaned working directories norsk-ctl orphaned-dirs clear <id> Forget an orphan entry (leaves the directory on disk)norsk-ctl orphaned-dirs list
Section titled “norsk-ctl orphaned-dirs list”norsk-ctl orphaned-dirs list
List orphaned working directories
Options: -o, --output Dump raw entries instead of the default table [string] [choices: "yaml", "json"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl orphaned-dirs clear
Section titled “norsk-ctl orphaned-dirs clear ”norsk-ctl orphaned-dirs clear <id>
Forget an orphan entry (leaves the directory on disk)
Positionals: id Orphan instance ID [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl shm
Section titled “norsk-ctl shm”norsk-ctl shm <subcommand>
Inspect shared-memory groups
Commands: norsk-ctl shm list List shared-memory groups, their members and whether their pool is livenorsk-ctl shm list
Section titled “norsk-ctl shm list”norsk-ctl shm list
List shared-memory groups, their members and whether their pool is live
Options: -o, --output Dump raw entries instead of the default table [string] [choices: "yaml", "json"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl sideload
Section titled “norsk-ctl sideload”norsk-ctl sideload <subcommand>
Inspect the GPU sideload bundle cache
Commands: norsk-ctl sideload status List the CUDA sideload bundles fetched into the local cache norsk-ctl sideload fetch Fetch CUDA sideload bundles into the cache ahead of a launchnorsk-ctl sideload status
Section titled “norsk-ctl sideload status”norsk-ctl sideload status
List the CUDA sideload bundles fetched into the local cache
Options: -o, --output Dump raw entries instead of the default table [string] [choices: "yaml", "json"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl sideload fetch
Section titled “norsk-ctl sideload fetch”norsk-ctl sideload fetch
Fetch CUDA sideload bundles into the cache ahead of a launch
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --product Registered product whose media image to fetch bundles for [string] --image Media image ref to fetch bundles for. Needs nothing pulled, so a builder can seed a cache for a host it is not. [string] --bundle Which bundles to fetch. Default: gpu-video, plus gpu-inference when --product declares it. Never inferred from this host having a GPU. [array] --cache-dir Fetch locally into this directory instead of through the daemon. For baking an image with no daemon running; requires --image. Deliberately has no default — the daemon owns its cache. [string]norsk-ctl product
Section titled “norsk-ctl product”norsk-ctl product <subcommand>
Manage Norsk vertical product registrations
Commands: norsk-ctl product add Register product(s) from a license file, or a container image / dev URL norsk-ctl product list List registered products norsk-ctl product exists <name> Exit 0 if the product is registered, 1 if not (quiet — for scripts) norsk-ctl product remove <name> Unregister a product (and stop its container if any) norsk-ctl product reload <name> Re-fetch the product's manifest (use after editing it in dev mode) norsk-ctl product pull <name> Prefetch the product's images (renders its default product template and docker compose pulls them)norsk-ctl product add
Section titled “norsk-ctl product add”norsk-ctl product add
Register product(s) from a license file, or a container image / dev URL
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --license-file BYOL license file. Registers every product it entitles, pulling each product's image (repo from the license, tag derived from the version constraint or --tag). [string] --product With --license-file: register only this product instead of all entitled products [string] --tag With --license-file: image tag to pull (overrides the tag derived from the version constraint) [string] --image Explicit container image to run (overrides the image derived from the license) [string] --dev-url URL of an already-running localhost dev server (e.g. http://localhost:4321). License optional. [string] --marketplace-provider Marketplace provider for this product's license (instead of --license-file) [string] [choices: "aws", "gcp"]norsk-ctl product list
Section titled “norsk-ctl product list”norsk-ctl product list
List registered products
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl product exists
Section titled “norsk-ctl product exists ”norsk-ctl product exists <name>
Exit 0 if the product is registered, 1 if not (quiet — for scripts)
Positionals: name Product name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl product remove
Section titled “norsk-ctl product remove ”norsk-ctl product remove <name>
Unregister a product (and stop its container if any)
Positionals: name Product name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl product reload
Section titled “norsk-ctl product reload ”norsk-ctl product reload <name>
Re-fetch the product's manifest (use after editing it in dev mode)
Positionals: name Product name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl product pull
Section titled “norsk-ctl product pull ”norsk-ctl product pull <name>
Prefetch the product's images (renders its default product template and docker compose pulls them)
Positionals: name Product name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --sideload Also fetch the product's CUDA sideload bundles. Opt-in — having a GPU is not consent to use it, so ctl never assumes. [boolean] [default: false] --dry-run Report what would be pulled, including the media image ref `sideload fetch --image` takes, without downloading anything. [boolean] [default: false]norsk-ctl template
Section titled “norsk-ctl template”norsk-ctl template <subcommand>
Manage stored product templates
Commands: norsk-ctl template list List stored product templates norsk-ctl template show <name> Show a stored product template's metadata norsk-ctl template default <product> Print the default (examples) product template name for a product (for scripts) norsk-ctl template import <file> Import a product template from a tar file norsk-ctl template refresh <name> Re-fetch a stored product template's snapshot from its originating product norsk-ctl template remove <name> Remove a stored product templatenorsk-ctl template list
Section titled “norsk-ctl template list”norsk-ctl template list
List stored product templates
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl template show
Section titled “norsk-ctl template show ”norsk-ctl template show <name>
Show a stored product template's metadata
Positionals: name Product template name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl template default
Section titled “norsk-ctl template default ”norsk-ctl template default <product>
Print the default (examples) product template name for a product (for scripts)
Positionals: product Product name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl template import
Section titled “norsk-ctl template import ”norsk-ctl template import <file>
Import a product template from a tar file
Positionals: file Path to a product template tar file [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --name Name to register the product template under (lowercase letters, digits, hyphens) [string] [required]norsk-ctl template refresh
Section titled “norsk-ctl template refresh ”norsk-ctl template refresh <name>
Re-fetch a stored product template's snapshot from its originating product
Positionals: name Product template name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl template remove
Section titled “norsk-ctl template remove ”norsk-ctl template remove <name>
Remove a stored product template
Positionals: name Product template name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl config
Section titled “norsk-ctl config”norsk-ctl config <subcommand>
Manage CLI configuration
Commands: norsk-ctl config set Update config values norsk-ctl config show Show current confignorsk-ctl config set
Section titled “norsk-ctl config set”norsk-ctl config set
Update config values
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --working-directory Working directory root; each instance gets a <root>/<product>/<instance> subdirectory [string] --public-host Public host clients use to reach this server (bare host, e.g. arnuc or my.server.com) [string] --proxy-port Host port the proxy listens on, overriding the network-mode default (e.g. 443 in Docker mode) [number] --upgrade-check Enable/disable the periodic upgrade check (off = no S3 lookup, no UI banner) [string] [choices: "on", "off"]norsk-ctl config show
Section titled “norsk-ctl config show”norsk-ctl config show
Show current config
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl serve
Section titled “norsk-ctl serve”norsk-ctl serve
Start the norsk-ctl daemon in the foreground
Options: --help Show help [boolean]norsk-ctl shutdown
Section titled “norsk-ctl shutdown”norsk-ctl shutdown
Shut down norsk-ctl: stop proxy, remove instances, exit daemon
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --daemon-only Only stop the daemon; leave proxy + instances running (e.g. for an in-place binary swap) [boolean] [default: false]norsk-ctl restart
Section titled “norsk-ctl restart”norsk-ctl restart
Restart the daemon process (picks up new group membership, e.g. after joining the docker group)
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl proxy
Section titled “norsk-ctl proxy”norsk-ctl proxy <subcommand>
Manage the nginx reverse proxy
Commands: norsk-ctl proxy pull Pre-pull nginx and oauth2-proxy images norsk-ctl proxy start Generate nginx config and start nginx norsk-ctl proxy stop Stop nginx norsk-ctl proxy reload Regenerate config and reload nginx without downtime norsk-ctl proxy status Show nginx process status and active upstreams norsk-ctl proxy logs View nginx access or error logsnorsk-ctl proxy pull
Section titled “norsk-ctl proxy pull”norsk-ctl proxy pull
Pre-pull nginx and oauth2-proxy images
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl proxy start
Section titled “norsk-ctl proxy start”norsk-ctl proxy start
Generate nginx config and start nginx
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl proxy stop
Section titled “norsk-ctl proxy stop”norsk-ctl proxy stop
Stop nginx
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl proxy reload
Section titled “norsk-ctl proxy reload”norsk-ctl proxy reload
Regenerate config and reload nginx without downtime
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl proxy status
Section titled “norsk-ctl proxy status”norsk-ctl proxy status
Show nginx process status and active upstreams
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl proxy logs
Section titled “norsk-ctl proxy logs”norsk-ctl proxy logs
View nginx access or error logs
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --type Log type to view [string] [choices: "access", "error"] [default: "access"] -n, --lines Number of tail lines to show [number] [default: 100] -f, --follow Poll for new log output every 2s [boolean] [default: false]norsk-ctl inspect
Section titled “norsk-ctl inspect”norsk-ctl inspect
Show a human-readable dump of the norsk-ctl database
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl init
Section titled “norsk-ctl init”norsk-ctl init
Initialize norsk-ctl configuration
Options: --help Show help [boolean] --cert-path Path to TLS certificate file (PEM) [string] --key-path Path to TLS private key file (PEM) [string] --cert-source Certificate source type [string] [choices: "mkcert", "self-signed", "user", "certbot"] --working-directory Working directory root; each instance gets a <root>/<product>/<instance> subdirectory [string] --proxy-user Create a proxy basic-auth user [string] --proxy-password Password for --proxy-user [string] --network-mode Default network mode for new instances: docker (bridge+proxy), hybrid (studio proxied, media on host) [string] [choices: "docker", "hybrid"] --public-host Public host clients use to reach this server (bare host or host:port; scheme stripped) [string] --proxy-port Host port the proxy listens on, overriding the network-mode default (lets Docker mode serve on 443) [number] --marketplace Set the base license type to marketplace (default byol). Marketplace locks the daemon to marketplace licensing: products may not use a BYOL license, and at most one instance may exist at a time. Provider defaults to gcp; override with --marketplace-provider. [boolean] [default: false] --marketplace-provider Marketplace cloud provider (implies --marketplace). Taken at face value — Norsk Media validates the entitlement at runtime. Defaults to gcp when --marketplace is set without it. (aws to follow.) [string] [choices: "gcp"] --force Overwrite existing config.yaml [boolean] [default: false] --http-redirect Bind port 80 for HTTP→HTTPS redirect (and certbot HTTP-01). Default true. Pass --no-http-redirect when 80 is owned by something else on the host. [boolean] [default: true] --start-server Start `norsk-ctl serve` immediately after init succeeds (use --no-start-server to opt out) [boolean]norsk-ctl fetch
Section titled “norsk-ctl fetch”norsk-ctl fetch <target>
Fetch bundled tools (mkcert)
Commands: norsk-ctl fetch mkcert Download mkcert v1.4.4 to the state directory's bin/norsk-ctl fetch mkcert
Section titled “norsk-ctl fetch mkcert”norsk-ctl fetch mkcert
Download mkcert v1.4.4 to the state directory's bin/
Options: --help Show help [boolean]norsk-ctl source
Section titled “norsk-ctl source”norsk-ctl source <subcommand>
Manage sample SRT sources for instances
Commands: norsk-ctl source start <instanceId> <preset> Start a sample SRT source streaming to an instance norsk-ctl source stop <instanceId> <name> Stop a sample source norsk-ctl source list List running sample sources norsk-ctl source presets List available source presetsnorsk-ctl source start
Section titled “norsk-ctl source start ”norsk-ctl source start <instanceId> <preset>
Start a sample SRT source streaming to an instance
Positionals: instanceId Target instance ID [string] [required] preset Source preset (camera1, camera2) [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port SRT target port (default: 5001) [number] --help Show help [boolean] --stream-id SRT streamid sent by the source (default: preset name). Override when the target listener restricts streamIds. [string] --name Override the source identity (container name + management key). Default: preset name. Set when one instance needs to run multiple sources from the same preset — `name` must be unique within an instance. [string]norsk-ctl source stop
Section titled “norsk-ctl source stop ”norsk-ctl source stop <instanceId> <name>
Stop a sample source
Positionals: instanceId Instance ID [string] [required] name Source name [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl source list
Section titled “norsk-ctl source list”norsk-ctl source list
List running sample sources
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --instance Filter by instance ID [string]norsk-ctl source presets
Section titled “norsk-ctl source presets”norsk-ctl source presets
List available source presets
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl stats
Section titled “norsk-ctl stats”norsk-ctl stats
Show Docker container resource usage
Options: -o, --output, --output Output format [string] [choices: "yaml", "json", "table", "yaml", "json"] [default: "table"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl upgrade
Section titled “norsk-ctl upgrade”norsk-ctl upgrade
Download a newer norsk-ctl binary and atomically swap it in
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] --version Pin to a specific version (overrides --channel) [string] --channel Channel to track when --version is not given [string] [choices: "nightly", "rc", "latest", "stable", "beta"] [default: "latest"] --list Show available channels + recent versions without upgrading [boolean] [default: false] --dry-run Resolve target version + verify checksum but do not swap binaries [boolean] [default: false] --max-versions How many versions to show with --list (default 10) [number] [default: 10]norsk-ctl user
Section titled “norsk-ctl user”norsk-ctl user <subcommand>
Manage basic-auth proxy users
Commands: norsk-ctl user set <name> Add or update a basic-auth user norsk-ctl user delete <name> Remove a basic-auth usernorsk-ctl user set
Section titled “norsk-ctl user set ”norsk-ctl user set <name>
Add or update a basic-auth user
Positionals: name Username [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean] -p, --password Password (if omitted, read from stdin) [string]norsk-ctl user delete
Section titled “norsk-ctl user delete ”norsk-ctl user delete <name>
Remove a basic-auth user
Positionals: name Username [string] [required]
Options: -o, --output Output format [string] [choices: "yaml", "json"] [default: "yaml"] --port Daemon port (default 8333, or $NORSK_CTL_PORT) [number] --help Show help [boolean]norsk-ctl worker
Section titled “norsk-ctl worker”norsk-ctl worker
Run as a Norsk Manager worker (operate under Manager control over gRPC)
Options: --help Show help [boolean] --config-file Path to the worker config JSON written by Manager cloud-init [string] [default: "/mnt/worker.config"] --bind-address Address the gRPC server listens on (use 0.0.0.0 for all interfaces) [string] [default: "0.0.0.0"] --enable-ui-in-worker-mode Also start the norsk-ctl UI/Express server (off by default in worker mode) [boolean] [default: false] --license-output-path Path to write the license file Manager sends in HelloResponse (parent dir created if missing) [string] [default: "/home/vagrant/.norsk-ctl/worker-mode/license.json"] --manager-url Manager gRPC URL for cluster-mode registration (e.g. host:port). When set with --token, replaces --config-file. [string] --token Cluster registration token (paired with --manager-url; obtained from RegisterClusterNode) [string] --listen-port Listen port in cluster mode (default: random ephemeral) [number] [default: 0] --advertise-address Address to tell Manager to dial back on (default: 127.0.0.1; usually you want a real LAN IP) [string] [default: "127.0.0.1"] --proxy-url Reverse-proxy URL to advertise to Manager (e.g. https://worker-1.example.com:9443). norsk-mgr uses this to route per-job runtime UIs through this worker. When omitted, the daemon falls back to `https://<advertise-address>:<defaultClusterProxyPort>`. [string]norsk-ctl mcp
Section titled “norsk-ctl mcp”norsk-ctl mcp
Run the norsk-ctl MCP stdio adapter (bridges stdio to the daemon's HTTP MCP endpoint)
Options: --help Show help [boolean]