queue-med/.env.example

61 lines
3.5 KiB
Text

# ─── Database ───────────────────────────────────────────────────────────────
# Local dev (host MySQL):
# DATABASE_URL=mysql://queuemed:queuemed@localhost:3306/queuemed
# Docker compose (uses the "db" service):
# DATABASE_URL=mysql://queuemed:queuemed@db:3306/queuemed
DATABASE_URL=mysql://queuemed:queuemed@localhost:3306/queuemed
# ─── Auth ───────────────────────────────────────────────────────────────────
# REQUIRED. Must be at least 32 characters of high-entropy random data.
# Generate one with: openssl rand -hex 64
# The server refuses to start if this is missing or too short.
JWT_SECRET=replace_me_with_openssl_rand_hex_64_output
# ─── Server ─────────────────────────────────────────────────────────────────
PORT=5000
NODE_ENV=development
# Public URL used to build QR code links (e.g. https://queuemed.example.com).
# In production this should match the public origin allowed by CORS.
PUBLIC_BASE_URL=
# ─── Stripe ─────────────────────────────────────────────────────────────────
# All Stripe vars are OPTIONAL. If STRIPE_SECRET_KEY is not set, the app still
# runs and the subscription UI shows a friendly "not configured" notice.
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
STRIPE_BASIC_PRICE_ID=
STRIPE_PRO_PRICE_ID=
# Client-side price IDs — must be exposed at build time via VITE_ prefix.
# Same values as STRIPE_BASIC_PRICE_ID / STRIPE_PRO_PRICE_ID.
VITE_STRIPE_BASIC_PRICE_ID=
VITE_STRIPE_PRO_PRICE_ID=
# ─── WhatsApp (Baileys) ─────────────────────────────────────────────────────
# Persistent directory used to store Baileys auth credentials per clinic.
# Must live on a Docker volume in production so sessions survive restarts.
WHATSAPP_SESSION_DIR=/app/data/whatsapp-sessions
# ─── Twilio SMS ─────────────────────────────────────────────────────────────
# All Twilio vars are OPTIONAL. If any is missing, SMS sending is disabled
# and the app logs a warning instead of failing. Each clinic also has a
# `smsEnabled` opt-in flag; SMS is never sent without both.
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE_NUMBER=
# ─── Docker compose only ────────────────────────────────────────────────────
MYSQL_ROOT_PASSWORD=replace_me_with_a_strong_password
MYSQL_DATABASE=queuemed
MYSQL_USER=queuemed
MYSQL_PASSWORD=replace_me_with_a_strong_password
MYSQL_PORT=3306
APP_PORT=5000
# ─── Backups (used by scripts/backup-db.sh) ─────────────────────────────────
# Inside the `app` container these point at the `db` service.
# Override only if running the script outside docker compose.
# MYSQL_HOST=db
# BACKUP_DIR=/app/data/backups
# BACKUP_KEEP=7