x-web-base: &web-base image: ghcr.io/l5yth/potato-mesh-web-${POTATOMESH_IMAGE_ARCH:-linux-amd64}:latest environment: APP_ENV: ${APP_ENV:-production} RACK_ENV: ${RACK_ENV:-production} SITE_NAME: ${SITE_NAME:-PotatoMesh Demo} DEFAULT_CHANNEL: ${DEFAULT_CHANNEL:-#LongFast} DEFAULT_FREQUENCY: ${DEFAULT_FREQUENCY:-915MHz} MAP_CENTER_LAT: ${MAP_CENTER_LAT:-38.761944} MAP_CENTER_LON: ${MAP_CENTER_LON:--27.090833} MAX_NODE_DISTANCE_KM: ${MAX_NODE_DISTANCE_KM:-42} MATRIX_ROOM: ${MATRIX_ROOM:-#potatomesh:dod.ngo} API_TOKEN: ${API_TOKEN} DEBUG: ${DEBUG:-0} command: ["ruby", "app.rb", "-p", "41447", "-o", "0.0.0.0"] volumes: - potatomesh_data:/app/data - potatomesh_logs:/app/logs restart: unless-stopped deploy: resources: limits: memory: 512M cpus: '0.5' reservations: memory: 256M cpus: '0.25' x-ingestor-base: &ingestor-base image: ghcr.io/l5yth/potato-mesh-ingestor-${POTATOMESH_IMAGE_ARCH:-linux-amd64}:latest environment: MESH_SERIAL: ${MESH_SERIAL:-/dev/ttyACM0} MESH_SNAPSHOT_SECS: ${MESH_SNAPSHOT_SECS:-60} MESH_CHANNEL_INDEX: ${MESH_CHANNEL_INDEX:-0} POTATOMESH_INSTANCE: ${POTATOMESH_INSTANCE:-http://web:41447} API_TOKEN: ${API_TOKEN} DEBUG: ${DEBUG:-0} volumes: - potatomesh_data:/app/data - potatomesh_logs:/app/logs devices: - ${MESH_SERIAL:-/dev/ttyACM0}:${MESH_SERIAL:-/dev/ttyACM0} privileged: false restart: unless-stopped deploy: resources: limits: memory: 256M cpus: '0.25' reservations: memory: 128M cpus: '0.1' services: web: <<: *web-base network_mode: host ingestor: <<: *ingestor-base network_mode: host depends_on: - web extra_hosts: - "web:127.0.0.1" web-bridge: <<: *web-base container_name: potatomesh-web-bridge networks: - potatomesh-network ports: - "41447:41447" profiles: - bridge ingestor-bridge: <<: *ingestor-base container_name: potatomesh-ingestor-bridge networks: - potatomesh-network depends_on: - web-bridge profiles: - bridge volumes: potatomesh_data: driver: local potatomesh_logs: driver: local networks: potatomesh-network: driver: bridge