{"owner":"koala73","repo":"worldmonitor","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.yml","servicesCount":4,"services":[{"name":"worldmonitor","image":"worldmonitor:latest","build":{"context":".","dockerfile":"Dockerfile"},"restart":"unless-stopped","ports":["${WM_PORT:-3000}:8080"],"environment":["UPSTASH_REDIS_REST_URL=http://redis-rest:80","UPSTASH_REDIS_REST_TOKEN=${REDIS_TOKEN:?REDIS_TOKEN required — generate with: openssl rand -hex 32}","WM_SESSION_SECRET=${WM_SESSION_SECRET:?WM_SESSION_SECRET required — generate with: openssl rand -hex 32}","LOCAL_API_PORT=46123","LOCAL_API_MODE=docker","LOCAL_API_CLOUD_FALLBACK=false","WM_TRUSTED_PROXY_CIDRS=${WM_TRUSTED_PROXY_CIDRS:-}","WS_RELAY_URL=http://ais-relay:3004","WORLDMONITOR_VALID_KEYS=${WORLDMONITOR_VALID_KEYS:-}","RELAY_SHARED_SECRET=${RELAY_SHARED_SECRET:?RELAY_SHARED_SECRET required — generate with: openssl rand -hex 32}","WORLDMONITOR_RELAY_KEY=${WORLDMONITOR_RELAY_KEY:-}","LLM_API_URL=${LLM_API_URL:-}","LLM_API_KEY=${LLM_API_KEY:-}","LLM_MODEL=${LLM_MODEL:-}","OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}","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_EMAIL=${ACLED_EMAIL:-}","ACLED_PASSWORD=${ACLED_PASSWORD:-}","ACLED_ACCESS_TOKEN=${ACLED_ACCESS_TOKEN:-}","NASA_FIRMS_API_KEY=${NASA_FIRMS_API_KEY:-}","CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN:-}","AVIATIONSTACK_API=${AVIATIONSTACK_API:-}","TRAVELPAYOUTS_API_TOKEN=${TRAVELPAYOUTS_API_TOKEN:-}"],"depends_on":["redis-rest","ais-relay"]},{"name":"ais-relay","image":"worldmonitor-ais-relay:latest","build":{"context":".","dockerfile":"Dockerfile.relay"},"restart":"unless-stopped","environment":["RELAY_SHARED_SECRET=${RELAY_SHARED_SECRET:?RELAY_SHARED_SECRET required — generate with: openssl rand -hex 32}","AISSTREAM_API_KEY=${AISSTREAM_API_KEY:-}","FINNHUB_API_KEY=${FINNHUB_API_KEY:-}","MARKET_YAHOO_REFRESH_INTERVAL_MS=${MARKET_YAHOO_REFRESH_INTERVAL_MS:-900000}","UPSTASH_REDIS_REST_URL=http://redis-rest:80","UPSTASH_REDIS_REST_TOKEN=${REDIS_TOKEN:?REDIS_TOKEN required — generate with: openssl rand -hex 32}","UPSTASH_ALLOW_INSECURE_HTTP=true","UCDP_ACCESS_TOKEN=${UCDP_ACCESS_TOKEN:-}","TYPESAFE_API_KEY=${TYPESAFE_API_KEY:-}","TYPESAFE_BASE_URL=${TYPESAFE_BASE_URL:-}","API_BASE_URL=${API_BASE_URL:-http://worldmonitor:8080}","WORLDMONITOR_RELAY_KEY=${WORLDMONITOR_RELAY_KEY:-}","PORT=3004"],"depends_on":["redis-rest"]},{"name":"redis","image":"docker.io/redis:7-alpine","restart":"unless-stopped","command":"redis-server --requirepass \"${REDIS_PASSWORD:?REDIS_PASSWORD required — generate with: openssl rand -hex 32}\" --maxmemory 256mb --maxmemory-policy allkeys-lru\n","volumes":["redis-data:/data"]},{"name":"redis-rest","image":"worldmonitor-redis-rest:latest","build":{"context":"docker","dockerfile":"Dockerfile.redis-rest"},"restart":"unless-stopped","ports":["127.0.0.1:8079:80"],"environment":["SRH_TOKEN=${REDIS_TOKEN:?REDIS_TOKEN required — generate with: openssl rand -hex 32}","SRH_CONNECTION_STRING=redis://:${REDIS_PASSWORD:?REDIS_PASSWORD required — generate with: openssl rand -hex 32}@redis:6379"],"depends_on":["redis"]}],"exposedPorts":["3000","8079"],"dockerRunCommand":"docker run -d --name worldmonitor -p 3000:3000 --restart always worldmonitor:latest","podmanRunCommand":"podman run -d --name worldmonitor -p 3000:3000 --restart always worldmonitor:latest","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/worldmonitor:latest","orasPullCommand":"oras pull worldmonitor:latest","registryMeta":{"provider":"dockerhub","image":"library/worldmonitor","canonicalImage":"docker.io/library/worldmonitor:latest","latestTag":"latest","cliCommands":{"dockerRun":"docker run -d --name worldmonitor -p 3000:3000 --restart always worldmonitor:latest","dockerPull":"docker pull worldmonitor:latest","podmanRun":"podman run -d --name worldmonitor -p 3000:3000 --restart always worldmonitor:latest","skopeoInspect":"skopeo inspect docker://docker.io/library/worldmonitor:latest","orasPull":"oras pull worldmonitor:latest","composeYaml":"services:\n  worldmonitor:\n    image: worldmonitor:latest\n    restart: unless-stopped\n    ports:\n      - \"3000:3000\""}}}