- send through the sendgrid v3 json api via direct fetch with a manually cleared abort timeout; mailhog stays for development - drop nodemailer-mailgun-transport and its types - swap MAILGUN_* runtime config and env example for SENDGRID_API_KEY and optional SENDGRID_HOST
82 lines
3.5 KiB
Text
82 lines
3.5 KiB
Text
APP_TITLE=My App
|
|
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
|
|
NODE_ENV=development
|
|
NUXT_PUBLIC_SITE_URL=http://localhost:3000
|
|
|
|
JWT_SECRET=your-super-secret-jwt-key-change-this
|
|
|
|
# SendGrid (transactional email: invites, password resets, verification).
|
|
# Sends through the v3 JSON API. The From address in SMTP_FROM must be on a
|
|
# domain authenticated in the SendGrid account.
|
|
SENDGRID_API_KEY=your-sendgrid-api-key
|
|
# Optional API host override; defaults to api.sendgrid.com (use api.eu.sendgrid.com for EU)
|
|
SENDGRID_HOST=
|
|
SMTP_FROM=noreply@yourdomain.com
|
|
SMTP_FROM_NAME=My App
|
|
|
|
S3_ENDPOINT=https://s3.us-west-004.backblazeb2.com
|
|
S3_REGION=us-west-004
|
|
S3_ACCESS_KEY_ID=your-access-key-id
|
|
S3_SECRET_ACCESS_KEY=your-secret-access-key
|
|
S3_BUCKET_NAME=your-bucket-name
|
|
# Optional: only required if you call uploadToS3(..., 'public') or getPublicUrl()
|
|
# Set to the custom domain attached to your bucket (e.g. Cloudflare R2 custom domain)
|
|
S3_PUBLIC_BASE_URL=https://cdn.example.com
|
|
|
|
# Prayer Tools integration
|
|
NUXT_PRAY_BASE_URL=https://pray.doxa.life
|
|
NUXT_PUBLIC_PRAY_BASE_URL=https://pray.doxa.life
|
|
FORM_API_KEY=your-form-api-key
|
|
|
|
# Mapbox (used by the prayer map on /pray)
|
|
NUXT_PUBLIC_MAPBOX_TOKEN=your-mapbox-public-token
|
|
|
|
# Cloudflare Turnstile
|
|
NUXT_TURNSTILE_SITE_KEY=your-turnstile-site-key
|
|
NUXT_TURNSTILE_SECRET_KEY=your-turnstile-secret-key
|
|
|
|
# Feedback widget (site-wide chat bubble). No PROJECT_ID = widget not rendered.
|
|
NUXT_PUBLIC_FEEDBACK_API_BASE=https://support.example.org
|
|
NUXT_PUBLIC_FEEDBACK_PROJECT_ID=your-feedback-project-id
|
|
|
|
# Statinator analytics (self-hosted tracking-server)
|
|
# Project must exist on the tracking-server with this site's hostname in allowed_domains.
|
|
# Set NUXT_PUBLIC_STATINATOR_ENABLED=false (or unset) to disable tracking entirely.
|
|
NUXT_PUBLIC_STATINATOR_URL=https://statinator.doxa.life
|
|
NUXT_PUBLIC_STATINATOR_PROJECT_ID=doxa
|
|
NUXT_PUBLIC_STATINATOR_ENABLED=true
|
|
# Cookie domain for the shared visitor ID (links activity across doxa.life and pray.doxa.life).
|
|
# Set to empty in dev to make the cookie host-only.
|
|
NUXT_PUBLIC_STATINATOR_COOKIE_DOMAIN=.doxa.life
|
|
|
|
# OpenRouter (used by the CMS "Auto-translate" workflow on /admin/pages/:id
|
|
# and the translate_text / translate_page MCP tools)
|
|
OPENROUTER_API_KEY=your-openrouter-api-key
|
|
# Optional model override. Admins can also set it at /admin/settings, which wins
|
|
# over this. Defaults to anthropic/claude-opus-5 when both are unset.
|
|
TRANSLATION_MODEL=
|
|
|
|
# Cloudflare cache purge on deploy (server/plugins/cloudflare-purge.ts).
|
|
# On container boot the edge cache is purged so stale prerendered HTML can't
|
|
# reference content-hashed assets the new deploy replaced. Leave both blank to
|
|
# disable (e.g. in dev). Token: My Profile → API Tokens → Custom Token with
|
|
# Zone → Cache Purge for the doxa.life zone. Zone ID: zone Overview page.
|
|
CF_API_TOKEN=
|
|
CF_ZONE_ID=
|
|
|
|
# OAuth 2.1 server
|
|
# Issuer is derived from NUXT_PUBLIC_SITE_URL; resource is `${siteUrl}/mcp`.
|
|
# Generate with: openssl rand -hex 32
|
|
OAUTH_CONSENT_COOKIE_SECRET=replace-me-at-least-32-bytes-of-random-hex-or-base64
|
|
OAUTH_ALLOW_DCR=false
|
|
# Path to the OAuth Nuxt layer (extends). Optional — leave blank to skip.
|
|
# Local dev typically points at a sibling checkout (e.g. ../../base-code/layers/oauth);
|
|
# prod can use a github: shorthand or a pinned path.
|
|
OAUTH_LAYER_PATH=
|
|
|
|
# MCP server layer (extends; depends on the OAuth layer).
|
|
# Path to the MCP Nuxt layer. Leave blank to skip the MCP transport.
|
|
MCP_LAYER_PATH=
|
|
# MCP server identity advertised in the `initialize` response.
|
|
MCP_SERVER_NAME=marketing-rebuild
|
|
MCP_SERVER_VERSION=1.0.0
|