Files
compose/int/compose.yml

178 lines
6.3 KiB
YAML

# =============================================================================
# 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: