Files
OSC-Docker/README.md
Aiden 4e2b4aba25
Some checks failed
Build & Push Docker / build-and-push (push) Failing after 36s
Initial commit
2026-05-10 12:51:16 +10:00

89 lines
2.4 KiB
Markdown

# 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`
## Build
```bash
docker build -t open-stage-control .
```
To target a different upstream release:
```bash
docker build \
--build-arg OPEN_STAGE_CONTROL_VERSION=1.30.3 \
-t open-stage-control .
```
## Run
```bash
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
```bash
docker compose up --build
```
## 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:
```bash
docker run --rm -p 8080:8080/tcp -p 8080:8080/udp open-stage-control --send 192.168.1.50:9000
```