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
23 lines
917 B
YAML
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
|