networks: plcbundle: services: plcbundle: build: . image: atscan/plcbundle:latest container_name: plcbundle restart: unless-stopped ports: - "${HTTP_PORT:-8080}:8080" volumes: - ${DATA_DIR:-./data}:/data environment: - TZ=${TZ:-UTC} command: > serve --host 0.0.0.0 --port 8080 --sync --websocket networks: - plcbundle # watchtower for automatic updates watchtower: container_name: watchtower image: containrrr/watchtower:latest network_mode: host volumes: - type: bind source: /var/run/docker.sock target: /var/run/docker.sock restart: unless-stopped environment: WATCHTOWER_CLEANUP: true WATCHTOWER_SCHEDULE: "@midnight" # Optional: Caddy reverse proxy # # services: # caddy: # image: caddy:2-alpine # restart: unless-stopped # ports: # - "80:80" # - "443:443" # - "443:443/udp" # volumes: # - caddy_data:/data # environment: # - DOMAIN=${DOMAIN:-localhost} # command: caddy reverse-proxy --from ${DOMAIN:-localhost} --to plcbundle:8080 # depends_on: # - plcbundle # networks: # - plcbundle # # volumes: # caddy_data: