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} CHANNEL: ${CHANNEL:-#LongFast} FREQUENCY: ${FREQUENCY:-915MHz} MAP_CENTER: ${MAP_CENTER:-38.761944,-27.090833} MAX_DISTANCE: ${MAX_DISTANCE:-42} CONTACT_LINK: ${CONTACT_LINK:-#potatomesh:dod.ngo} FEDERATION: ${FEDERATION:-1} PRIVATE: ${PRIVATE:-0} API_TOKEN: ${API_TOKEN} INSTANCE_DOMAIN: ${INSTANCE_DOMAIN} DEBUG: ${DEBUG:-0} command: ["ruby", "app.rb", "-p", "41447", "-o", "0.0.0.0"] volumes: - potatomesh_data:/app/.local/share/potato-mesh - potatomesh_config:/app/.config/potato-mesh - 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: CONNECTION: ${CONNECTION:-/dev/ttyACM0} CHANNEL_INDEX: ${CHANNEL_INDEX:-0} POTATOMESH_INSTANCE: ${POTATOMESH_INSTANCE:-http://web:41447} API_TOKEN: ${API_TOKEN} INSTANCE_DOMAIN: ${INSTANCE_DOMAIN} DEBUG: ${DEBUG:-0} FEDERATION: ${FEDERATION:-1} PRIVATE: ${PRIVATE:-0} volumes: - potatomesh_data:/app/.local/share/potato-mesh - potatomesh_config:/app/.config/potato-mesh - potatomesh_logs:/app/logs - /dev:/dev device_cgroup_rules: - 'c 166:* rwm' # ttyACM devices - 'c 188:* rwm' # ttyUSB devices - 'c 4:* rwm' # ttyS devices 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_config: driver: local potatomesh_logs: driver: local networks: potatomesh-network: driver: bridge