SCADA

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