Docker Deployment
This guide describes a container-based deployment for LiRAYS-SCADA.
Before You Start
The image references in this page use placeholders. Replace:
registry.example.com/lirays-scada:<tag>
with your real registry host and release tag.
Pull Image
docker pull registry.example.com/lirays-scada:<tag>
Quick Start (docker run)
docker run -d \
--name lirays-scada \
--restart unless-stopped \
-p 8245:8245 \
-v lirays-data:/data \
registry.example.com/lirays-scada:<tag>
Access URL:
http://127.0.0.1:8245
Compose Deployment (compose.yaml)
services:
lirays-scada:
image: registry.example.com/lirays-scada:<tag>
container_name: lirays-scada
restart: unless-stopped
ports:
- "8245:8245"
volumes:
- lirays-data:/data
# Optional custom config:
# - ./settings.yaml:/app/settings.yaml:ro
# command: ["--config", "/app/settings.yaml"]
volumes:
lirays-data:
Start and stop:
docker compose up -d
docker compose down
Custom Configuration
Option 1: Mount settings.yaml
docker run -d \
--name lirays-scada \
--restart unless-stopped \
-p 8245:8245 \
-v lirays-data:/data \
-v "$(pwd)/settings.yaml:/app/settings.yaml:ro" \
registry.example.com/lirays-scada:<tag> \
--config /app/settings.yaml
Option 2: Use Environment Variables
docker run -d \
--name lirays-scada \
--restart unless-stopped \
-p 8245:8245 \
-v lirays-data:/data \
-e AUTH_ENABLED=true \
-e AUTH_SECRET="replace_with_strong_secret" \
-e TLS_ENABLE=false \
-e METRICS_REAL_TIME=true \
registry.example.com/lirays-scada:<tag>
For complete variable and precedence details, see Settings File Configuration.
Verify
docker ps --filter name=lirays-scada
docker logs --tail=200 -f lirays-scada
docker inspect lirays-scada --format '{{.State.Status}}'
Upgrade
docker run workflow:
docker pull registry.example.com/lirays-scada:<new-tag>
docker stop lirays-scada
docker rm lirays-scada
docker run -d \
--name lirays-scada \
--restart unless-stopped \
-p 8245:8245 \
-v lirays-data:/data \
registry.example.com/lirays-scada:<new-tag>
Compose workflow:
docker compose pull
docker compose up -d
Remove Deployment
Keep volume (preserve data):
docker stop lirays-scada
docker rm lirays-scada
Full cleanup (container, image, and volume):
docker stop lirays-scada || true
docker rm lirays-scada || true
docker rmi registry.example.com/lirays-scada:<tag> || true
docker volume rm lirays-data || true