turnstone/harvester/docker-compose.yml
pyr0ball 16fe5f70a5 feat: Alpha milestone — corpus management, upload ingest, harvester agent
Closes #1 (incident tagging — already implemented), #2, #3, #5.

- feat(api): DELETE /api/sources/{id} — purge entries + FTS rows for a source
- feat(api): POST /api/sources/{id}/ingest — re-ingest from sources.yaml
- feat(api): POST /api/ingest/upload — multipart log file upload with auto-detect
- feat(ui): SourcesView reingest + delete buttons and upload file input (#2)
- feat(harvester): harvester.py push + incident subcommands (#5)
- feat(harvester): Dockerfile, docker-compose.yml, harvester.sh (containerless)
- feat(config): GPU_SERVER_URL → CF_ORCH_URL resolution + write-back (#20)
- docs: .env.example, README Configuration table, version bump to 0.5.0
2026-05-19 07:45:58 -07:00

23 lines
917 B
YAML

services:
harvester:
build: .
image: turnstone-harvester:latest
environment:
TURNSTONE_URL: http://turnstone:8534 # or http://host.docker.internal:8534 for host-network Turnstone
TURNSTONE_SOURCES: /patterns/sources.yaml
volumes:
- /var/log:/var/log:ro
- /run/log/journal:/run/log/journal:ro
- ../patterns:/patterns:ro # sources.yaml lives here
networks:
- turnstone-net
restart: "no" # run on demand; use cron or systemd timer to repeat
# To run on a schedule, replace restart: "no" with a cron timer via:
# docker run --rm turnstone-harvester:latest push
# or add a systemd timer that calls:
# docker compose -f docker-compose.yml run --rm harvester
networks:
turnstone-net:
external: true # join the same network as the main Turnstone container