# ============================================================================= # Integrations stack # ============================================================================= # Currently running: WorldMonitor # Planned: TAK server (commented out — needs fixing) # ============================================================================= # ── TAK Server (FreeTAKServer) ── # Disabled: needs debugging. Was having connectivity/auth issues. # See: https://github.com/FreeTAKTeam/FreeTAKServer # # services: # freetakserver: # image: ghcr.io/freetakteam/freetakserver:master # container_name: freetakserver # hostname: freetakserver # restart: always # networks: # - int_backend # volumes: # - /mnt/HoardingCow_docker_data/TAK/fts_data:/opt/fts:z,rw # ports: # - 8087:8087 # - 8089:8089 # - 8443:8443 # - 9000:9000 # - 19023:19023 # environment: # FTS_FED_PASSWORD: "${FTS_FED_PASSWORD}" # FTS_CLIENT_CERT_PASSWORD: "${FTS_CLIENT_CERT_PASSWORD}" # FTS_WEBSOCKET_KEY: "${FTS_WEBSOCKET_KEY}" # FTS_SECRET_KEY: "${FTS_SECRET_KEY}" # FTS_CONNECTION_MESSAGE: "Welcome to FreeTAKServer. The Parrot is not dead. It's just resting" # FTS_COT_PORT: 8087 # FTS_SSLCOT_PORT: 8089 # FTS_API_PORT: 19023 # FTS_FED_PORT: 9000 # FTS_DP_ADDRESS: 'freetakserver' # FTS_USER_ADDRESS: 'freetakserver' # FTS_API_ADDRESS: 'freetakserver' # FTS_ROUTING_PROXY_SUBSCRIBE_PORT: 19030 # FTS_ROUTING_PROXY_SUBSCRIBE_IP: 'freetakserver' # FTS_ROUTING_PROXY_PUBLISHER_PORT: 19032 # FTS_ROUTING_PROXY_PUBLISHER_IP: 'freetakserver' # FTS_ROUTING_PROXY_SERVER_PORT: 19031 # FTS_ROUTING_PROXY_SERVER_IP: 'freetakserver' # FTS_INTEGRATION_MANAGER_PULLER_PORT: 19033 # FTS_INTEGRATION_MANAGER_PULLER_ADDRESS: 'freetakserver' # FTS_INTEGRATION_MANAGER_PUBLISHER_PORT: 19034 # FTS_INTEGRATION_MANAGER_PUBLISHER_ADDRESS: 'freetakserver' # FTS_OPTIMIZE_API: "True" # FTS_DATA_RECEPTION_BUFFER: 1024 # FTS_MAX_RECEPTION_TIME: 4 # FTS_NUM_ROUTING_WORKERS: 3 # FTS_COT_TO_DB: "True" # FTS_MAINLOOP_DELAY: 100 # FTS_EMERGENCY_RADIUS: 0 # FTS_LOG_LEVEL: "info" # # freetakserver-ui: # image: ghcr.io/freetakteam/ui:latest # container_name: freetakserver-ui # hostname: freetakserver-ui # restart: always # networks: # - int_net # ports: # - 5000:5000 # volumes: # - /mnt/HoardingCow_docker_data/TAK/fts_ui_data:/home/freetak/data:z,rw # environment: # FTS_IP: "freetakserver" # FTS_API_PORT: 19023 # FTS_API_PROTO: 'http' # FTS_UI_EXPOSED_IP: 'freetakserver-ui' # FTS_MAP_EXPOSED_IP: '127.0.0.1' # FTS_MAP_PORT: 8000 # FTS_MAP_PROTO: 'http' # FTS_UI_PORT: 5000 # FTS_UI_WSKEY: "${FTS_WEBSOCKET_KEY}" # FTS_API_KEY: 'Bearer token' # FTS_UI_SQLALCHEMY_DATABASE_URI: 'sqlite:////home/freetak/data/FTSServer-UI.db' # labels: # - "traefik.enable=true" # - "traefik.docker.network=traefik-net" # - "traefik.http.routers.fts-ui-http.rule=Host(`tak.lazyworkhorse.net`)" # - "traefik.http.routers.fts-ui-http.entrypoints=web" # - "traefik.http.routers.fts-ui-http.middlewares=redirect-to-https" # - "traefik.http.routers.fts-ui-https.rule=Host(`tak.lazyworkhorse.net`)" # - "traefik.http.routers.fts-ui-https.entrypoints=websecure" # - "traefik.http.routers.fts-ui-https.tls=true" # - "traefik.http.routers.fts-ui-https.tls.certresolver=njalla" # - "traefik.http.services.fts-ui.loadbalancer.server.port=5000" # - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" # ── WorldMonitor ── # Real-time global intelligence dashboard # Repo: https://github.com/koala73/worldmonitor # Self-hosted, map-first OSINT with MCP support (39 tools) services: worldmonitor: build: context: https://github.com/koala73/worldmonitor.git dockerfile: Dockerfile image: worldmonitor:latest container_name: worldmonitor ports: - "${WM_PORT:-3000}:8080" environment: UPSTASH_REDIS_REST_URL: "http://redis-rest:80" UPSTASH_REDIS_REST_TOKEN: "${REDIS_TOKEN:?REDIS_TOKEN required}" LOCAL_API_PORT: "46123" LOCAL_API_MODE: "docker" LOCAL_API_CLOUD_FALLBACK: "false" WS_RELAY_URL: "http://ais-relay:3004" # LLM providers (optional — features degrade gracefully) LLM_API_URL: "${LLM_API_URL:-}" LLM_API_KEY: "${LLM_API_KEY:-}" LLM_MODEL: "${LLM_MODEL:-}" GROQ_API_KEY: "${GROQ_API_KEY:-}" # Data source API keys (optional — features degrade gracefully) AISSTREAM_API_KEY: "${AISSTREAM_API_KEY:-}" FINNHUB_API_KEY: "${FINNHUB_API_KEY:-}" EIA_API_KEY: "${EIA_API_KEY:-}" FRED_API_KEY: "${FRED_API_KEY:-}" ACLED_ACCESS_TOKEN: "${ACLED_ACCESS_TOKEN:-}" NASA_FIRMS_API_KEY: "${NASA_FIRMS_API_KEY:-}" CLOUDFLARE_API_TOKEN: "${CLOUDFLARE_API_TOKEN:-}" AVIATIONSTACK_API: "${AVIATIONSTACK_API:-}" depends_on: redis-rest: condition: service_started ais-relay: condition: service_started restart: unless-stopped ais-relay: build: context: https://github.com/koala73/worldmonitor.git dockerfile: Dockerfile.relay image: worldmonitor-ais-relay:latest container_name: worldmonitor-ais-relay environment: AISSTREAM_API_KEY: "${AISSTREAM_API_KEY:-}" PORT: "3004" restart: unless-stopped redis: image: docker.io/redis:7-alpine container_name: worldmonitor-redis command: > redis-server --requirepass "${REDIS_PASSWORD:?REDIS_PASSWORD required}" --maxmemory 256mb --maxmemory-policy allkeys-lru volumes: - wm-redis-data:/data restart: unless-stopped redis-rest: build: context: https://github.com/koala73/worldmonitor.git dockerfile: docker/Dockerfile.redis-rest image: worldmonitor-redis-rest:latest container_name: worldmonitor-redis-rest ports: - "127.0.0.1:8079:80" environment: SRH_TOKEN: "${REDIS_TOKEN:?REDIS_TOKEN required}" SRH_CONNECTION_STRING: "redis://:${REDIS_PASSWORD:?REDIS_PASSWORD required}@redis:6379" depends_on: - redis restart: unless-stopped volumes: wm-redis-data: