-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path.example.env
More file actions
88 lines (74 loc) · 4.09 KB
/
Copy path.example.env
File metadata and controls
88 lines (74 loc) · 4.09 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
# ─── REQUIRED ─── Core (app will not start without these)
# PRISMA
POSTGRES_URL="postgresql://username:password@host:port/databasename?schema=public"
# Local: POSTGRES_URL="postgresql://elfensky:supersecretpassword123@127.0.0.1:5432/helldivers1api?schema=public"
# Docker: POSTGRES_URL="postgresql://elfensky:supersecretpassword123@host.docker.internal:5432/helldivers1api?schema=public"
# UPDATE // API key for the update endpoint
UPDATE_KEY="fcb19795-474f-4ff1-aa21-5d36b81167ba"
UPDATE_INTERVAL="20" # update interval in seconds
# Optional runtime override. Defaults to 3000 when unset.
PORT="3000"
# ─── OPTIONAL ─── Site
# Canonical site origin used for SEO metadata, sitemap, structured data, and
# Umami session hashing. Self-hosters set their own domain here. Inlined into
# the client bundle at build time (NEXT_PUBLIC_* prefix), so it must be set
# during `next build`. Defaults to https://helldivers.bot when unset.
NEXT_PUBLIC_SITE_URL="https://helldivers.bot"
# ─── OPTIONAL ─── Auth (set all or none — partial config is an error)
# AUTH (BetterAuth)
BETTER_AUTH_SECRET="long-random-hexadecimal-string-at-least-32-characters-long-but-ought-to-be-128-characters-long"
BETTER_AUTH_URL="http://localhost:3000" # production: https://helldivers.bot
# --- Discord Provider
AUTH_DISCORD_ID="0000000000000000000" # can be found in the discord developer portal
AUTH_DISCORD_SECRET="AAAAAAAAAAA_BBBBBBBBBBBBBBBB" # can be found in the discord developer portal
# --- GitHub Provider
AUTH_GITHUB_ID="your-github-oauth-app-client-id"
AUTH_GITHUB_SECRET="your-github-oauth-app-client-secret"
# --- Google Provider
AUTH_GOOGLE_ID="000000000000-aaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com"
AUTH_GOOGLE_SECRET="GOOGLE-aaaaaaaaaaaaaaa-BLA"
# ─── OPTIONAL ─── Analytics (features degrade gracefully when missing)
UMAMI_SITE_URL="your.umami.domain" # without https or port
UMAMI_SITE_ID="your-umami-site-id"
# ERROR TRACKING (Sentry SDK → self-hosted GlitchTip)
SENTRY_DSN="https://<key>@glitchtip.yourdomain.com/<project-id>"
NEXT_PUBLIC_SENTRY_DSN="https://<key>@glitchtip.yourdomain.com/<project-id>"
SENTRY_AUTH_TOKEN="secret_sentry_token"
SENTRY_URL="https://glitchtip.yourdomain.com"
SENTRY_ORG="your-org"
SENTRY_PROJECT="your-project"
GLITCHTIP_HEARTBEAT_URL="" # GlitchTip uptime heartbeat endpoint (POST at worker interval)
# Environment tag attached to Sentry events. Inlined into the client bundle
# at build time (NEXT_PUBLIC_* prefix), so it must be set during `next build`.
# CI sets this per pipeline: 'production' on release.docker.yml, 'staging' on
# staging.docker.yml. Local dev leaves it unset and falls back to NODE_ENV.
# DEPLOY_ENV (without the prefix) is a server-only alternative used as a
# fallback when you can't rebuild — e.g. switching a running container between
# environments by env file.
NEXT_PUBLIC_DEPLOY_ENV=""
DEPLOY_ENV=""
# ─── OPTIONAL ─── Push notifications (set all or none)
# PUSH NOTIFICATIONS (generate with: npx web-push generate-vapid-keys)
VAPID_PUBLIC_KEY="your-vapid-public-key"
VAPID_PRIVATE_KEY="your-vapid-private-key"
VAPID_SUBJECT="mailto:your-email@example.com"
NEXT_PUBLIC_VAPID_PUBLIC_KEY="same-as-VAPID_PUBLIC_KEY"
# ─── OPTIONAL ─── Timeseries bucketing
# Tumbling-window bucket size for h1_status, h1_statistic, h1_event_progress.
# Every worker poll UPSERTs on (entity, bucket); within a bucket window subsequent
# polls update the same row. At a bucket boundary a new row is inserted.
# Smaller = higher resolution archives + more storage.
# Larger = lower resolution archives + less storage.
# Default: 900 (15 min).
#
# Storage scales inversely (2 timeseries tables, 140 seasons):
# 10 every poll ~11 GB
# 60 1 min ~1.8 GB
# 300 5 min ~360 MB
# 900 15 min (default) ~120 MB
# 3600 1 hour ~30 MB
#
# Changing this between deploys creates mixed-granularity history — tune sparingly.
# BUCKET_SIZE=900
# BUILD-TIME VARIABLES (auto-generated by next.config.mjs — do NOT set manually)
# NEXT_PUBLIC_APP_VERSION — from package.json version field