version: "2.0" services: rttys: image: ${GLKVM_IMAGE:-glzhitong/glkvm-cloud:latest} container_name: glkvm_cloud restart: always environment: # Preferred: set GLKVM_ACCESS_IP explicitly; if empty, entrypoint will auto-detect once. GLKVM_ACCESS_IP: ${GLKVM_ACCESS_IP:-} # ---- rttys ---- RTTYS_TOKEN: ${RTTYS_TOKEN:-DeviceTokenYouCanChangeMe} RTTYS_PASS: ${RTTYS_PASS:-StrongP@ssw0rd} # Ports inside container (mirrored to host via `ports` below) RTTYS_DEVICE_PORT: ${RTTYS_DEVICE_PORT:-5912} # addr-dev RTTYS_WEBUI_PORT: ${RTTYS_WEBUI_PORT:-443} # addr-user RTTYS_HTTP_PROXY_PORT: ${RTTYS_HTTP_PROXY_PORT:-10443} # addr-http-proxy # WebRTC / TURN reference (used by rttys template) TURN_PORT: ${TURN_PORT:-3478} TURN_USER: ${TURN_USER:-glkvmcloudwebrtcuser} TURN_PASS: ${TURN_PASS:-AnotherS3cret} volumes: - ./templates/rttys.conf.template:/tpl/rttys.conf.tmpl:ro - ./scripts/docker-entrypoint.sh:/docker-entrypoint.sh:ro - ./certificate/glkvm.cer:/home/certificate/glkvm_cer:ro - ./certificate/glkvm.key:/home/certificate/glkvm_key:ro entrypoint: ["/bin/sh", "/docker-entrypoint.sh"] command: ["rttys"] ports: - "${RTTYS_WEBUI_PORT:-443}:${RTTYS_WEBUI_PORT:-443}" - "${RTTYS_HTTP_PROXY_PORT:-10443}:${RTTYS_HTTP_PROXY_PORT:-10443}" - "${RTTYS_DEVICE_PORT:-5912}:${RTTYS_DEVICE_PORT:-5912}" coturn: image: ${COTURN_IMAGE:-coturn/coturn:edge-alpine} container_name: glkvm_coturn restart: always environment: # Same semantics as above: prefer explicit value, else auto-detect GLKVM_ACCESS_IP: ${GLKVM_ACCESS_IP:-} TURN_PORT: ${TURN_PORT:-3478} TURN_USER: ${TURN_USER:-glkvmcloudwebrtcuser} TURN_PASS: ${TURN_PASS:-AnotherS3cret} entrypoint: ["/bin/sh", "/docker-entrypoint.sh"] command: ["coturn"] volumes: - ./templates/turnserver.conf.template:/tpl/turnserver.conf.tmpl:ro - ./scripts/docker-entrypoint.sh:/docker-entrypoint.sh:ro ports: - "${TURN_PORT:-3478}:3478/tcp" - "${TURN_PORT:-3478}:3478/udp"