Aiden 8a43bdd3c6
All checks were successful
Build & Push Docker / build-and-push (push) Successful in 9s
clear instructions
2026-05-10 13:13:25 +10:00
2026-05-10 12:54:06 +10:00
2026-05-10 12:51:16 +10:00
2026-05-10 12:51:16 +10:00
2026-05-10 13:03:36 +10:00
2026-05-10 12:51:16 +10:00
2026-05-10 12:51:16 +10:00
2026-05-10 02:38:23 +00:00
2026-05-10 13:13:25 +10:00

OSC-Docker

Docker image for the Open Stage Control node-only release.

This image uses the upstream release artifact instead of building Electron from source. I verified on May 10, 2026 that Framagit's current release is v1.30.3, and that it publishes a Node.js package at:

https://openstagecontrol.ammd.net/packages/open-stage-control_1.30.3_node.zip

Source project:

https://framagit.org/jean-emmanuel/open-stage-control

Getting Started

If you just want to run Open Stage Control, use the prebuilt image:

git.f-40.com/aiden/osc-docker:latest

Option 1: Docker Run

  1. Create folders for config and session files:
mkdir config data
  1. Start the container:
docker run --rm \
  --name open-stage-control \
  -p 8080:8080/tcp \
  -p 8080:8080/udp \
  -v "${PWD}/config:/config" \
  -v "${PWD}/data:/data" \
  git.f-40.com/aiden/osc-docker:latest
  1. Open this in your browser:

http://localhost:8080

Option 2: Docker Compose

  1. Make sure compose.yaml is in the folder you are working from.

  2. Create folders for persistent data:

mkdir config data
  1. Start it:
docker compose up -d
  1. Open:

http://localhost:8080

Where Your Files Go

  • ./config: Open Stage Control config and cache data
  • ./data: sessions, themes, and other files you want Open Stage Control to access

Build

docker build -t open-stage-control .

To target a different upstream release:

docker build \
  --build-arg OPEN_STAGE_CONTROL_VERSION=1.30.3 \
  -t open-stage-control .

Run From Source Image

docker run --rm \
  -p 8080:8080/tcp \
  -p 8080:8080/udp \
  -v "${PWD}/config:/config" \
  -v "${PWD}/data:/data" \
  open-stage-control

Then open:

http://localhost:8080

Docker Compose

docker compose up

The included compose file uses the published image directly:

git.f-40.com/aiden/osc-docker:latest

Gitea Actions

The repo includes a Gitea Actions workflow at .gitea/workflows/docker-publish.yml.

It will:

  • build on pushes to main
  • allow manual runs with workflow_dispatch
  • poll the upstream Open Stage Control releases API once a week
  • build and push a new image only when a new upstream release tag is found

Required repository secrets:

  • USER: registry username
  • TOKEN: registry token or PAT for git.f-40.com

Environment Variables

  • OSC_PORT: HTTP port. Default 8080.
  • OSC_OSC_PORT: OSC UDP input port. Default 8080.
  • OSC_TCP_PORT: Optional OSC TCP input port.
  • OSC_CACHE_DIR: Config/cache path inside the container. Default /config.
  • OSC_REMOTE_ROOT: File browser root inside the container. Default /data.
  • OSC_LOAD: Optional session file to auto-load.
  • OSC_STATE: Optional state file to auto-load.
  • OSC_CUSTOM_MODULE: Optional custom module path.
  • OSC_THEME: Optional theme path or theme name.
  • OSC_AUTHENTICATION: Optional user:password.
  • OSC_CLIENT_OPTIONS: Optional single key=value client option. For multiple client options, pass extra CLI args after the image name.
  • OSC_READ_ONLY: Set to true to disable editing/saving.
  • OSC_USE_SSL: Set to true to enable HTTPS.
  • OSC_DEBUG: Set to true to log OSC traffic.
  • OSC_NO_QRCODE: Set to true to suppress QR output.

Extra CLI Arguments

You can still pass native Open Stage Control arguments after the image name:

docker run --rm -p 8080:8080/tcp -p 8080:8080/udp open-stage-control --send 192.168.1.50:9000
Description
A docker image for Open Stage Control
Readme GPL-3.0 48 KiB
Languages
Dockerfile 53%
Shell 47%