name: cartolite-server services: cartolite: image: ${CARTOLITE_IMAGE:-ghcr.io/n30nex/cartolite-server:0.5.1} restart: unless-stopped ports: - "${CARTOLITE_BIND_ADDR:-127.0.0.1}:${CARTOLITE_PORT:-8080}:8080" environment: HTTP_ADDR: :8080 MQTT_ENABLED: "true" MQTT_BROKER_URL: ${MQTT_BROKER_URL:?Set MQTT_BROKER_URL} MQTT_TOPIC: ${MQTT_TOPIC:-meshcore/#} MQTT_CLIENT_ID: ${MQTT_CLIENT_ID:-cartolite-server} MQTT_USERNAME: ${MQTT_USERNAME:-} MQTT_PASSWORD: ${MQTT_PASSWORD:-} REGION_ALLOWLIST: ${REGION_ALLOWLIST:-} MQTT_INGEST_QUEUE_SIZE: ${MQTT_INGEST_QUEUE_SIZE:-4096} STATE_PATH: ${STATE_PATH:-/data/state-v1.json} LOG_LEVEL: ${LOG_LEVEL:-info} BASEMAP_PROVIDER: openfreemap volumes: - cartolite-data:/data read_only: true cap_drop: - ALL security_opt: - no-new-privileges:true mem_limit: 256m pids_limit: 128 stop_grace_period: 20s healthcheck: test: ["CMD", "/cartolite", "healthcheck", "http://127.0.0.1:8080/healthz"] interval: 20s timeout: 5s retries: 3 start_period: 15s logging: driver: json-file options: max-size: 10m max-file: "3" volumes: cartolite-data: