services: rmesh-reticulum: container_name: rmesh-reticulum build: context: . dockerfile: Dockerfile restart: unless-stopped ports: - "4242:4242" # Reticulum TCP Server Interface (for Internet backbone peers) volumes: - reticulum_data:/data/reticulum - lxmf_data:/data/lxmf - meshcore_data:/data/meshcore # Hardware: uncomment for USB serial to MeshCore/RNode device # devices: # - /dev/ttyUSB0:/dev/ttyUSB0 environment: - BRIDGE_API_KEY=${BRIDGE_API_KEY} # Reticulum (Internet backbone) - RNS_CONFIG_DIR=/data/reticulum - LXMF_STORAGE_DIR=/data/lxmf - RNS_LOG_LEVEL=4 # MeshCore (LoRa mesh) — set MESHCORE_ENABLED=true when companion node is ready - MESHCORE_ENABLED=${MESHCORE_ENABLED:-false} - MESHCORE_HOST=${MESHCORE_HOST:-} - MESHCORE_PORT=${MESHCORE_PORT:-5000} - MESHCORE_SERIAL=${MESHCORE_SERIAL:-} - MESHCORE_DATA_DIR=/data/meshcore networks: - traefik-public - rmesh-internal cap_drop: - ALL cap_add: - NET_BIND_SERVICE security_opt: - no-new-privileges:true healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')"] interval: 30s timeout: 10s retries: 3 start_period: 30s volumes: reticulum_data: lxmf_data: meshcore_data: networks: traefik-public: external: true rmesh-internal: driver: bridge