● Zion Boggan
repos/Drophawk/.env.example
zionboggan.com ↗
112 lines · text
History for this file →
1
# .env.example - DropHawk
2
#
3
# Copy to `.env` and fill in real values. NEVER commit `.env`.
4
# Pre-commit hook (gitleaks) will reject secrets.
5
#
6
# Reference: CONTRACTS.md §Y for the canonical list of every key.
7
 
8
# ════════════════════════════════════════════════════════════════════
9
# Postgres 16 + TimescaleDB
10
# ════════════════════════════════════════════════════════════════════
11
POSTGRES_USER=drophawk
12
POSTGRES_PASSWORD=__CHANGE_ME__
13
POSTGRES_DB=drophawk
14
DATABASE_URL=postgres://drophawk:__CHANGE_ME__@postgres:5432/drophawk
15
 
16
# ════════════════════════════════════════════════════════════════════
17
# Redis 7
18
# ════════════════════════════════════════════════════════════════════
19
REDIS_PASSWORD=__CHANGE_ME__
20
REDIS_URL=redis://:__CHANGE_ME__@redis:6379/0
21
 
22
# ════════════════════════════════════════════════════════════════════
23
# NATS 2.14 (JetStream)
24
# ════════════════════════════════════════════════════════════════════
25
NATS_USER=drophawk
26
NATS_PASSWORD=__CHANGE_ME__
27
NATS_URL=nats://drophawk:__CHANGE_ME__@nats:4222
28
 
29
# ════════════════════════════════════════════════════════════════════
30
# Meilisearch 1.47
31
# ════════════════════════════════════════════════════════════════════
32
MEILI_URL=http://meilisearch:7700
33
MEILI_MASTER_KEY=__CHANGE_ME__
34
 
35
# ════════════════════════════════════════════════════════════════════
36
# ntfy 2.14 (self-hosted push)
37
# ════════════════════════════════════════════════════════════════════
38
NTFY_BASE_URL=http://ntfy:80
39
NTFY_TOPIC=drophawk-drops
40
NTFY_TOPIC_INFO=drophawk-info
41
# Generate: docker compose exec ntfy token create --user admin
42
NTFY_TOKEN=tk___CHANGE_ME__
43
 
44
# ════════════════════════════════════════════════════════════════════
45
# MinIO (debug screenshots)
46
# ════════════════════════════════════════════════════════════════════
47
MINIO_ROOT_USER=drophawk
48
MINIO_ROOT_PASSWORD=__CHANGE_ME__
49
MINIO_ENDPOINT=http://minio:9000
50
 
51
# ════════════════════════════════════════════════════════════════════
52
# Observability
53
# ════════════════════════════════════════════════════════════════════
54
LOG_LEVEL=info                                # trace|debug|info|warn|error
55
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
56
GRAFANA_ADMIN_PASSWORD=__CHANGE_ME__
57
 
58
# ════════════════════════════════════════════════════════════════════
59
# Public URL (homelab)
60
# ════════════════════════════════════════════════════════════════════
61
PUBLIC_BASE_URL=https://drophawk.lan
62
 
63
# ════════════════════════════════════════════════════════════════════
64
# Source credentials
65
# ════════════════════════════════════════════════════════════════════
66
# Ticketmaster Discovery API (https://developer.ticketmaster.com)
67
# Free; up to 5 keys per account. Comma-separated for rotation.
68
TICKETMASTER_API_KEYS=
69
# SeatGeek (https://seatgeek.com/developers)
70
SEATGEEK_CLIENT_ID=
71
# Optional affiliate IDs (honest disclosure in UA)
72
TICKETMASTER_AFFILIATE_ID=
73
SEATGEEK_AFFILIATE_ID=
74
 
75
# ════════════════════════════════════════════════════════════════════
76
# Python scrapers (Phase 3+)
77
# ════════════════════════════════════════════════════════════════════
78
SCRAPER_CONCURRENCY=4
79
SCRAPER_LOG_LEVEL=INFO
80
PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
81
FIFA_BASE_URL=https://tickets.fifa.com
82
AXS_BASE_URL=https://www.axs.com
83
SEETICKETS_BASE_URL=https://www.seetickets.com
84
STUBHUB_API_KEY=
85
VIVIDSEATS_PROXY=
86
TWITTER_ACCOUNTS=                            # comma list of @handles
87
TWITTER_BEARER_TOKEN=
88
 
89
# Proxy pool (Phase 6+, optional)
90
PROXY_POOL_URL=
91
 
92
# Telegram fallback (optional)
93
TELEGRAM_BOT_TOKEN=
94
 
95
# ════════════════════════════════════════════════════════════════════
96
# Operational knobs (defaults are sensible)
97
# ════════════════════════════════════════════════════════════════════
98
API_RATE_LIMIT_PER_MIN=100
99
SSE_MAX_CLIENTS=200
100
SCRAPER_RPC_TIMEOUT_S=30
101
WATCHLIST_MAX_RULES=500
102
POLL_DEFAULT_INTERVAL_S=300
103
POLL_TIGHT_INTERVAL_S=10
104
POLL_TIGHT_WINDOW_S=900                       # ±15 min around known drop
105
 
106
# ════════════════════════════════════════════════════════════════════
107
# Frontend (build-time, expose to browser via NEXT_PUBLIC_)
108
# ════════════════════════════════════════════════════════════════════
109
NEXT_PUBLIC_API_BASE_URL=https://drophawk.lan/api
110
NEXT_PUBLIC_NTFY_PUBLIC_URL=https://drophawk.lan/ntfy
111
NEXT_PUBLIC_NTFY_PUBLIC_TOPIC=drophawk-drops
112
NEXT_PUBLIC_SENTRY_DSN=                       # optional