-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
72 lines (59 loc) · 3.86 KB
/
Copy path.env.example
File metadata and controls
72 lines (59 loc) · 3.86 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
# artemis — local dev environment template.
# Copy to .env, fill in values, then `direnv allow` (or your env loader of choice).
# === Required ===
# Cloudflare R2 (S3-compatible).
R2_ENDPOINT=https://<account>.r2.cloudflarestorage.com
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
# GitHub OAuth app (device flow). Create at:
# https://github.com/settings/applications/new — enable Device Flow.
GH_CLIENT_ID=
# JWT signing key. Generate with: openssl rand -hex 32 (must be ≥32 bytes).
JWT_SIGNING_KEY=
# Valkey (Redis-compatible) for the sites registry.
VALKEY_ADDR=localhost:6379
# === Optional (defaults shown) ===
# PORT=8080
# R2_BUCKET= # bucket name; has a built-in default
# GH_ORG=freeCodeCamp # GitHub org for team-membership probes
# GH_API_BASE=https://api.github.com
# GH_MEMBERSHIP_CACHE_TTL=300 # seconds
# JWT_TTL_SECONDS=900 # deploy-session JWT TTL
# VALKEY_PASSWORD= # empty for unauthenticated dev
# VALKEY_CONNECT_RETRY_WINDOW=5s # boot-time retry window for the initial dial; 0 disables retry
# REGISTRY_AUTHZ_TEAM=staff # GitHub team allowed to mutate the sites registry
# ALIAS_PRODUCTION_KEY_FORMAT=<site>/production
# ALIAS_PREVIEW_KEY_FORMAT=<site>/preview
# DEPLOY_PREFIX_FORMAT=<site>/deploys/<ts>-<sha>/
# PUBLIC_URL_PRODUCTION_FORMAT=https://<site>.freecode.camp
# PUBLIC_URL_PREVIEW_FORMAT=https://<site>.preview.freecode.camp
# UPLOAD_MAX_BYTES=104857600 # 100 MiB
# LOG_LEVEL=info # debug | info | warn | error
# === Observability (Sentry — optional; empty DSN disables the SDK) ===
# SENTRY_DSN= # leave empty to disable; not a secret
# ENVIRONMENT=development # production | staging | development
# SENTRY_TRACES_SAMPLE_RATE=0.2 # [0,1]; health/ready/metrics always dropped
# SENTRY_DEBUG= # 1/true to log SDK internals to stderr
# === Repo-creation (Apollo-11 GitHub App — optional; all-or-none) ===
# Set all three GH_APP_* to enable /api/repo*; leave all empty to keep the feature off.
# GH_REPO_ORG=freeCodeCamp-Universe # org repos are created in + teams gate repo authz
# REPO_CREATE_AUTHZ_TEAM=staff # gates POST /api/repo
# REPO_APPROVE_AUTHZ_TEAM=none # gates approve/reject/delete; production must override
# AUDIT_READ_AUTHZ_TEAM=staff # gates GET /api/audit; team in GH_REPO_ORG, probed via Universe-org client
# GH_APP_ID= # Apollo-11 GitHub App id (digits only)
# GH_APP_INSTALLATION_ID= # App installation id (digits only)
# GH_APP_PRIVATE_KEY= # App private key PEM (PKCS#1 or PKCS#8)
# === Postgres + retention GC + Hatchet (optional; empty DATABASE_URL = deploy-only mode) ===
# DATABASE_URL= # artemis-owned Postgres DSN; empty disables GC
# PG_CONNECT_RETRY_WINDOW=45s # boot-time retry window for the initial connect
# BACKFILL_ON_BOOT= # 1/true: one-shot R2 -> Postgres backfill, then exit
# HATCHET_CLIENT_TOKEN= # Hatchet engine auth token
# HATCHET_ADDR= # Hatchet gRPC addr; empty leaves workflows unstarted
# CLEANUP_RETENTION_DAYS=7 # days before a superseded deploy is GC-eligible
# CLEANUP_RECENT_KEEP=3 # newest N deploys per site always kept
# CLEANUP_GRACE=72h # min deploy age before GC; must be >= JWT_TTL_SECONDS
# CLEANUP_BLAST_CAP=10 # max deletes per sweep, oldest first; 0 refuses every destructive repair
# CLEANUP_TRASH_PREFIX=_trash/ # R2 prefix for tombstoned objects
# CLEANUP_RECOVERY_DAYS=7 # days a tombstone survives before hard purge
# CLEANUP_OUTBOX_RETENTION_DAYS=30 # days a published outbox row is kept; unpublished never purged
# CLEANUP_DRY_RUN= # 1/true: plan-only, execute nothing