Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
77 lines (60 loc) · 4.08 KB
/
Copy path.env.example
File metadata and controls
77 lines (60 loc) · 4.08 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
# ─────────────────────────────────────────────────────────────────────────────
# Peptide Pitstop — environment configuration
# Copy this file to `.env` and fill in the values. `.env` is gitignored.
# cp .env.example .env
# ─────────────────────────────────────────────────────────────────────────────
# ── Required ─────────────────────────────────────────────────────────────────
# 32-byte base64 key for AES-256-GCM field encryption. Generate with:
# openssl rand -base64 32
# WARNING: if you lose or change this, previously-encrypted fields become unreadable.
PT_FIELD_KEY=
# Secret used to sign session cookies (JWT). Generate with:
# openssl rand -base64 48
AUTH_SECRET=
# SQLite database location. The Docker setup mounts ./data to /data.
DATABASE_URL=file:/data/peptides.db
# ── Access & sessions ────────────────────────────────────────────────────────
# Set to true when served over HTTPS (the default). Set to false ONLY if you
# access the app over plain http on a trusted LAN, or login cookies won't stick.
COOKIE_SECURE=true
# Optional: minimum password length enforced at /setup (default 12).
# MIN_PASSWORD=12
# Optional: if set, /setup requires ?token=<this> — handy if the app is briefly
# reachable before you've provisioned the owner account.
# SETUP_TOKEN=
# Optional: authenticator-account label for the first-run owner bootstrap.
# Defaults to owner@example.com and is only used before the owner is provisioned.
# OWNER_EMAIL=owner@example.com
# ── Appearance ───────────────────────────────────────────────────────────────
# Optional: label shown next to the app name (e.g. "dev", "staging").
# ENV_LABEL=
# Timezone — set to YOUR zone so local-midnight schedules read correctly.
# e.g. America/New_York, Europe/London, Australia/Brisbane. Defaults to UTC.
TZ=UTC
# ── Notifications (optional) ─────────────────────────────────────────────────
# Web Push — dose reminders as native notifications from the installed PWA
# (tap opens the app; iOS 16.4+ requires Add to Home Screen). Generate a
# keypair with: npx web-push generate-vapid-keys
# Then enrol each device in Settings → Notifications.
# VAPID_PUBLIC_KEY=
# VAPID_PRIVATE_KEY=
# VAPID_SUBJECT=mailto:you@example.com
# Absolute app URL used in relayed notification deep-links (HA fallback).
# PUBLIC_APP_URL=https://peptides.example.com
# ── Integrations (all optional) ──────────────────────────────────────────────
# Home Assistant webhook — FALLBACK relay for dose reminders on devices
# without a Web Push subscription (see docs/ha-reminder-automation.md).
# HA_WEBHOOK_URL=https://your-home-assistant:8123/api/webhook/peptide_dose_reminder
# Cloudflare Tunnel token (for the optional tunnel sidecar — no open ports).
# CLOUDFLARE_TUNNEL_TOKEN=
# Bearer token the Garmin sync sidecar presents when importing wellness data.
# Generate with: openssl rand -hex 32 (fails closed if unset — sync disabled)
# WELLNESS_IMPORT_TOKEN=
# Garmin Connect credentials (only if using the Garmin wellness sidecar).
# GARMIN_EMAIL=
# GARMIN_PASSWORD=
# GARMIN_SYNC_URL=http://localhost:8080/sync
# Shared secret protecting the scheduled cron endpoints (/api/cron/*).
# CRON_SECRET=
# Optional: token gating the peptide-library enrichment-refresh endpoint.
# ENRICHMENT_REFRESH_TOKEN=