# Turnstone — CF receiving instances for external node submissions. # # These are SEPARATE instances from the main Turnstone deployment. Each node # that has TURNSTONE_SUBMIT_ENDPOINT configured pushes pattern-matched entries # here. Each instance has its own isolated database. Avocet reads these # databases for training data. # # Ports: # 8536 → submissions-daniel (harvest.circuitforge.tech/daniel/*) # 8537 → submissions-xander (harvest.circuitforge.tech/xander/*) # # Deploy on Heimdall: # docker compose -f docker-compose.submissions.yml up -d # # Database locations: # /devl/docker/turnstone-submissions/daniel/turnstone.db # /devl/docker/turnstone-submissions/xander/turnstone.db # # These instances have TURNSTONE_INGEST_INTERVAL=0 — they only receive POSTs, # they do not run their own scheduled ingest. services: submissions-daniel: image: turnstone:latest container_name: turnstone-submissions-daniel restart: unless-stopped ports: - "8536:8534" volumes: - /devl/docker/turnstone-submissions/daniel:/data:z - /devl/docker/turnstone-submissions/daniel/patterns:/patterns:ro environment: TURNSTONE_DB: /data/turnstone.db TURNSTONE_PATTERNS: /patterns TURNSTONE_SOURCE_HOST: submissions-daniel TURNSTONE_INGEST_INTERVAL: "0" PYTHONUNBUFFERED: "1" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8534/turnstone/health"] interval: 30s timeout: 10s start_period: 20s retries: 3 networks: - caddy-internal submissions-xander: image: turnstone:latest container_name: turnstone-submissions-xander restart: unless-stopped ports: - "8537:8534" volumes: - /devl/docker/turnstone-submissions/xander:/data:z - /devl/docker/turnstone-submissions/xander/patterns:/patterns:ro environment: TURNSTONE_DB: /data/turnstone.db TURNSTONE_PATTERNS: /patterns TURNSTONE_SOURCE_HOST: submissions-xander TURNSTONE_INGEST_INTERVAL: "0" PYTHONUNBUFFERED: "1" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8534/turnstone/health"] interval: 30s timeout: 10s start_period: 20s retries: 3 networks: - caddy-internal networks: caddy-internal: name: caddy-proxy_caddy-internal external: true