-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
131 lines (106 loc) · 5.52 KB
/
Copy path.env.example
File metadata and controls
131 lines (106 loc) · 5.52 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# ============================================================================
# ENVIRONMENT VARIABLES
# ============================================================================
# Copy this file to .env and replace placeholder values with your actual credentials.
# Variables marked [REQUIRED] must be set for the app to run.
# Variables marked [OPTIONAL] have sensible defaults or are only needed in specific environments.
# ============================================================================
# ----------------------------------------------------------------------------
# Database Configuration
# ----------------------------------------------------------------------------
# PostgreSQL connection settings (used to construct DATABASE_URL)
PGPORT=5432
PGHOST=your-database-host.example.com
PGDATABASE=your-database-name
PGUSER=your-database-user
PGPASSWORD=your-database-password
PGTIMEOUT=15
PGLIMIT=15
# [REQUIRED] PostgreSQL connection URL (used by Prisma)
DATABASE_URL="postgresql://${PGUSER}:${PGPASSWORD}@${PGHOST}/${PGDATABASE}?sslmode=require&connect_timeout=${PGTIMEOUT}&connection_limit=${PGLIMIT}"
# ----------------------------------------------------------------------------
# Authentication (NextAuth / Auth.js)
# ----------------------------------------------------------------------------
# [REQUIRED] Secret for signing auth tokens (generate with: openssl rand -base64 32)
AUTH_SECRET=your-auth-secret-here
# [REQUIRED] NextAuth secret (can be same as AUTH_SECRET)
NEXTAUTH_SECRET=your-nextauth-secret-here
# [OPTIONAL] NextAuth URL - defaults to http://localhost:3000 in development
NEXTAUTH_URL=http://localhost:3000
# [REQUIRED] Trust the host header (set to true for most deployments)
AUTH_TRUST_HOST=true
# [REQUIRED] Google OAuth credentials (from Google Cloud Console)
GOOGLE_CLIENT_ID=your-google-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-google-client-secret
# ----------------------------------------------------------------------------
# Application
# ----------------------------------------------------------------------------
# [REQUIRED] Public app URL - no trailing slash (used for links in emails, etc.)
NEXT_PUBLIC_APP_URL=http://localhost:3000
# [OPTIONAL] Node environment
NODE_ENV=development
# [OPTIONAL] Log level: debug | info | warn | error
LOG_LEVEL=info
# ----------------------------------------------------------------------------
# AWS S3 Configuration (for file uploads)
# ----------------------------------------------------------------------------
# [REQUIRED] AWS region
AWS_REGION=ap-southeast-2
# [REQUIRED] AWS credentials (use 'test' for LocalStack in development)
AWS_ACCESS_KEY_ID=test
AWS_SECRET_ACCESS_KEY=test
# [REQUIRED] S3 bucket name for uploads
AWS_S3_BUCKET_NAME=lasflores-admin-uploads
# [REQUIRED] S3 endpoint URL (use LocalStack URL for local development)
AWS_ENDPOINT_URL=http://localhost:4566
# ----------------------------------------------------------------------------
# Email (Resend)
# ----------------------------------------------------------------------------
# [REQUIRED] Resend API key (from https://resend.com)
RESEND_API_KEY=re_your_resend_api_key
# Email Testing Options:
# - EMAIL_DRY_RUN: When true, emails are logged but NOT sent (use for development)
# - EMAIL_TEST_MODE: When true, emails ARE sent but redirected to EMAIL_TEST_RECIPIENT
# - Note: If EMAIL_DRY_RUN=true, EMAIL_TEST_MODE has no effect since no emails are sent
#
# [OPTIONAL] Enable dry run mode (no emails sent, just logged)
EMAIL_DRY_RUN=true
# [OPTIONAL] Enable test mode (emails sent to test recipient instead of real customers)
EMAIL_TEST_MODE=false
# [OPTIONAL] Test recipient email (required if EMAIL_TEST_MODE=true)
EMAIL_TEST_RECIPIENT=your-test-email@example.com
# ----------------------------------------------------------------------------
# Background Jobs (Inngest)
# ----------------------------------------------------------------------------
# [REQUIRED] Inngest app ID (from https://app.inngest.com)
INNGEST_APP_ID=your-inngest-app-id
# [OPTIONAL] Inngest event key - for production event security
INNGEST_EVENT_KEY=your-inngest-event-key
# [OPTIONAL] Inngest signing key - for webhook signature verification in production
INNGEST_SIGNING_KEY=your-inngest-signing-key
# ----------------------------------------------------------------------------
# Cron Jobs
# ----------------------------------------------------------------------------
# [REQUIRED] Secret for authenticating cron job requests
CRON_SECRET=your-cron-secret
# ----------------------------------------------------------------------------
# Google Maps
# ----------------------------------------------------------------------------
# [REQUIRED] Google Maps API key (for address autocomplete)
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=your-google-maps-api-key
# ----------------------------------------------------------------------------
# Rate Limiting (Upstash Redis)
# ----------------------------------------------------------------------------
# [OPTIONAL] Connect an Upstash Redis database for rate limiting on auth and
# file upload endpoints. When absent, rate limiting is disabled (fail-open).
# Get these from https://console.upstash.com or via Vercel KV integration.
KV_REST_API_URL=https://your-upstash-redis-url.upstash.io
KV_REST_API_TOKEN=your-upstash-redis-token
# ----------------------------------------------------------------------------
# E2E Testing
# ----------------------------------------------------------------------------
E2E_TENANT=Your Tenant Name
E2E_SLUG=rolling-pin
E2E_EMAIL=your@email.com
E2E_PASSWORD=yourpassword
E2E_SKIP_OTP=false