# Compose OVERRIDE that adds the Go services alongside the live Python stack. # It only ADDS containers; it never modifies the tracked docker-compose.yml or # any running Python service. # # Invoke from the repo root so the Compose project name resolves to # "mosswartoverlord" (same as the live stack) and the new container joins the # existing default network — letting it reach the `db` service by name: # # cd /home/erik/MosswartOverlord # export BUILD_VERSION="$(date -u +%Y.%-m.%-d.%H%M)-$(git rev-parse --short HEAD)" # docker compose -f docker-compose.yml -f go-services/docker-compose.go.yml \ # build dereth-tracker-go # docker compose -f docker-compose.yml -f go-services/docker-compose.go.yml \ # up -d --no-deps dereth-tracker-go # # --no-deps keeps Compose from touching the already-running `db` (and anything # else). The service is loopback-bound (127.0.0.1:8770); external reach is only # ever via the host nginx `location /go/` block (added separately). services: dereth-tracker-go: build: context: ./go-services/tracker-go args: BUILD_VERSION: ${BUILD_VERSION:-dev} container_name: dereth-tracker-go ports: - "127.0.0.1:8770:8770" environment: PORT: "8770" # Read-only use of the same dereth TimescaleDB the Python tracker writes. DATABASE_URL: "postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/dereth" INVENTORY_SERVICE_URL: "http://inventory-service:8000" # Same signing key as the Python tracker so the same login cookie verifies # on both during the parallel run. SECRET_KEY: "${SECRET_KEY}" LOG_LEVEL: "INFO" depends_on: - db restart: unless-stopped logging: driver: "json-file" options: max-size: "10m" max-file: "3" # Go port of discord-rare-monitor. Consumes the SAME Python /ws/live firehose # as the live Python bot. DRY-RUN by default (logs classifications, posts # nothing) so it can't double-post. To parallel-test for real, set a TEST # DISCORD_RARE_BOT_TOKEN + TEST channel IDs + DRY_RUN=0 here. discord-rare-monitor-go: build: context: ./go-services/discord-go args: BUILD_VERSION: ${BUILD_VERSION:-dev} container_name: discord-rare-monitor-go environment: DERETH_TRACKER_WS_URL: "ws://dereth-tracker:8765/ws/live" MONITOR_CHARACTER: "Dunking Rares" ICONS_DIR: "/icons" LOG_LEVEL: "INFO" # DISCORD_RARE_BOT_TOKEN: "" # set a TEST token to go live # DRY_RUN: "0" # required (with a token) to actually post # COMMON_RARE_CHANNEL_ID / GREAT_RARE_CHANNEL_ID / SAWATOLIFE_CHANNEL_ID / # ACLOG_CHANNEL_ID: set TEST channels before going live volumes: - ./discord-rare-monitor/icons:/icons:ro depends_on: - dereth-tracker restart: unless-stopped logging: driver: "json-file" options: max-size: "10m" max-file: "3"