-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
111 lines (97 loc) · 5.5 KB
/
Copy path.env.example
File metadata and controls
111 lines (97 loc) · 5.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# ─────────────────────────────────────────────────────────────────────────────
# HERALD — copy this file to `.env` and fill in secrets.
#
# Every service pointer is built from host/port/db/user/password parts
# (see shared/settings.py). To run HERALD against externally-managed
# Postgres / Redis / TimescaleDB, flip the USE_BUNDLED_* flags to false
# and change the *_HOST values to point at those external services.
# ─────────────────────────────────────────────────────────────────────────────
# ── Compose profile selection ────────────────────────────────────────────────
# Leave as `bundled-db` for a standalone deployment (compose brings up its own
# postgres/redis/timescaledb). Set to an empty string when pointing at
# externally-managed databases.
COMPOSE_PROFILES=bundled-db
# ── Feature toggles (read by application code) ───────────────────────────────
USE_BUNDLED_POSTGRES=true
USE_BUNDLED_TIMESCALE=true
USE_BUNDLED_REDIS=true
# ── Postgres (articles) ──────────────────────────────────────────────────────
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=herald
POSTGRES_USER=herald
POSTGRES_PASSWORD=change-me-please
# ── TimescaleDB (GDELT — created now, exercised in a future release) ─────────
TIMESCALE_HOST=timescaledb
TIMESCALE_PORT=5432
TIMESCALE_DB=herald_ts
TIMESCALE_USER=herald
TIMESCALE_PASSWORD=change-me-please
# ── Redis (queue + dedup + third-party cache) ────────────────────────────────
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB_APP=0
REDIS_DB_RSSHUB=1
REDIS_PASSWORD=
# ── MCP server ───────────────────────────────────────────────────────────────
MCP_HOST=0.0.0.0
MCP_PORT=8000
MCP_TRANSPORT=streamable-http
# ── Docker network + static IP assignments ───────────────────────────────────
# All HERALD containers attach to the external Docker network named below and
# receive a fixed IPv4. Set HERALD_NETWORK_NAME to your pre-existing network,
# then fill in the per-container IPs you've reserved on it. Compose refuses to
# start services with missing IPs — this is intentional to prevent collisions.
HERALD_NETWORK_NAME=herald-net
HERALD_POSTGRES_IP=
HERALD_TIMESCALE_IP=
HERALD_REDIS_IP=
HERALD_FEED_POLLER_IP=
HERALD_EXTRACTOR_IP=
HERALD_GDELT_INGESTOR_IP=
HERALD_MCP_SERVER_IP=
HERALD_RSSHUB_IP=
HERALD_BROWSERLESS_IP=
HERALD_BACKFILL_IP=
HERALD_MAINTENANCE_IP=
# ── Feed poller / extractor tuning ───────────────────────────────────────────
SOURCES_FILE=/app/sources/feeds.yaml
EXTRACTOR_CONSUMER_GROUP=herald-extractors
EXTRACTOR_FETCH_TIMEOUT=15
DEDUP_TTL_DAYS=30
# ── RSSHub (only used when a source declares `rsshub_route`) ─────────────────
RSSHUB_HOST=rsshub
RSSHUB_PORT=1200
# ── GDELT DOC API rate limiting ─────────────────────────────────────────────
# Global token bucket enforces a shared rate across all MCP workers.
# rate = refill speed (tokens/sec), burst = bucket capacity.
# At 0.2 tokens/sec + burst 1, one request every 5s with no immediate burst.
# max_wait = how long a caller blocks before getting a rate-limit error (seconds).
GDELT_DOC_RATE_PER_SEC=0.2
GDELT_DOC_BURST=1
GDELT_DOC_MAX_WAIT=30
GDELT_DOC_MAX_RETRIES=4
GDELT_DOC_RETRY_BASE_DELAY=1.0
GDELT_DOC_RETRY_MAX_DELAY=30.0
GDELT_DOC_TIMEOUT=30.0
# ── GDELT ingestor ───────────────────────────────────────────────────────────
GDELT_POLL_INTERVAL_SECONDS=60
INGEST_EVENTS=true
INGEST_GKG=true
INGEST_MENTIONS=false
GDELT_BATCH_ROWS=2000
# ── Articles retention (enforced daily by the maintenance service) ───────────
MAINTENANCE_INTERVAL_SECONDS=86400
RETENTION_CONTENT_DAYS=180
RETENTION_METADATA_DAYS=730
# ── Bootstrap superuser credentials ──────────────────────────────────────────
# Used only by scripts/bootstrap_db.sh to create the per-service DBs and roles.
# For bundled containers, the defaults below match docker-compose.yml.
# For external managed DBs, set these to an admin principal that can CREATE
# DATABASE and CREATE ROLE on the target instance.
BOOTSTRAP_PG_SUPERUSER=postgres
BOOTSTRAP_PG_SUPERPASS=change-me-please
BOOTSTRAP_TS_SUPERUSER=postgres
BOOTSTRAP_TS_SUPERPASS=change-me-please
# ── Logging ──────────────────────────────────────────────────────────────────
LOG_LEVEL=INFO