Docker Container Deployment
RUSEON Core provides official, minimal multi-architecture Docker container images published to GitHub Container Registry (ghcr.io/rusegal/ruseon-core). Images are based on scratch/alpine and contain zero unnecessary binaries or attack surfaces.
Quick Start Run Command
To run RUSEON Core in a standalone Docker container:
bash
docker run -d \
--name ruseon \
--restart unless-stopped \
-p 8080:8080 \
-p 8554:8554 \
-p 50000-50100:50000-50100/udp \
-v /var/lib/ruseon/data:/app/data \
-v /var/lib/ruseon/recordings:/app/recordings \
-v /etc/ruseon/config.yaml:/app/config.yaml:ro \
-e RUSEON_ENV=production \
ghcr.io/rusegal/ruseon-core:latestPort Mappings Explained
| Port | Protocol | Service | Description |
|---|---|---|---|
8080 | TCP | HTTP / WebSocket / WHEP | Web UI, REST API, HLS streaming, and WHEP signaling |
8554 | TCP/UDP | RTSP Server | Inbound camera RTSP ingestion and RTSP re-streaming |
50000-50100 | UDP | WebRTC Media / ICE | Direct peer-to-peer media transport for ultra-low latency playback |
Persistent Volumes
Always mount host directories for persistent state:
/app/data— BadgerDB database (/app/data/db)./app/recordings— fMP4 video archive./app/config.yaml— Read-only configuration file.
Healthcheck Configuration
RUSEON Core exposes strict, non-blocking health endpoints:
bash
docker run -d \
--name ruseon \
--health-cmd="wget -qO- http://localhost:8080/livez || exit 1" \
--health-interval=10s \
--health-timeout=3s \
--health-retries=3 \
ghcr.io/rusegal/ruseon-core:latest