forked from zolfagharipour/Matcha
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
92 lines (71 loc) · 3 KB
/
.env.example
File metadata and controls
92 lines (71 loc) · 3 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
# =============================================================================
# Matcha — environment template
# Copy sections into server/.env, client/.env, and (optional) laverna/.env
# Secrets: generate with:
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# =============================================================================
# --- Server (copy to server/.env) ---------------------------------------------
# Public URL of the HTTP API (scheme + host + port). Used for listen address.
# Alternative: set BASE_URL instead (schema requires at least one of SERVER_URL or BASE_URL).
SERVER_URL=http://localhost:5000
# BASE_URL=http://localhost:5000
SOCKET_PORT=5001
CORS_ORIGIN=http://localhost:3000
NODE_ENV=dev
# Database
DATABASE_HOST=localhost
DATABASE_PORT=3306
DATABASE_USER=app
DATABASE_NAME=matcha
DATABASE_CONNECTION_LIMIT=10
DATABASE_QUEUE_LIMIT=0
DATABASE_RETRY_COUNT=10
DATABASE_RETRY_DELAY_MS=2000
# Matches Dev Container MySQL user created in .devcontainer/start-dev.sh
DATABASE_PASSWORD=app_pw_change_me
JWT_SECRET=
JWT_ACCESS_TOKEN_EXPIRY=15m
JWT_REFRESH_TOKEN_EXPIRY=3d
JWT_ACCESS_TOKEN_MAX_AGE_SECONDS=900
JWT_REFRESH_TOKEN_MAX_AGE_SECONDS=259200
UUID_SECRET=
UPLOAD_DIR=./uploads
MIGRATION_DIR=./migration
ASSETS_DIR=./uploads
MAX_FILE_SIZE_BYTES=5242880
MAX_PHOTOS_PER_USER=5
MULTIPART_FILE_SIZE_BYTES=5242880
EMAIL_VERIFICATION_EXPIRY_HOURS=1
PASSWORD_RESET_EXPIRY_MINUTES=15
# Client origin for email magic links; if omitted, CORS_ORIGIN is used.
CLIENT_URL=http://localhost:3000
# Not validated in envSchema — used by startup seed and seedProfiles script (default 100).
SEED_TOTAL_PROFILES=100
# Production email (Gmail App Password). Required when NODE_ENV=prod.
PROJECT_EMAIL=
PROJECT_EMAIL_PASSWORD=
# --- Client (copy to client/.env) ---------------------------------------------
# Must include /api where the app expects it.
NEXT_PUBLIC_API_BASE_URL=http://localhost:5000/api
# Profile image CDN/base (trailing slash; used when composing image URLs).
NEXT_PUBLIC_IMAGE_API_BASE_URL=http://localhost:5000/api/profile/images/
NEXT_PUBLIC_SOCKET_URL=http://localhost:5001
# development | production — required by client env validation.
APP_ENV=development
# Optional: leave empty to disable Sentry client/server init for local dev.
NEXT_PUBLIC_SENTRY_DSN=
# Sentry source maps (separate file — not part of client/.env):
# Create client/.env.sentry-build-plugin (gitignored) with:
# SENTRY_AUTH_TOKEN=<token from sentry.io>
# The @sentry/nextjs build plugin reads that file when you run `pnpm build`.
# Runtime error reporting uses NEXT_PUBLIC_SENTRY_DSN above; the token is only for uploads.
# --- Laverna optional (copy to laverna/.env) ---------------------------------
API_BASE_URL=http://localhost:5000/api
SOCKET_URL=http://localhost:5001
GEMINI_API_KEY=
LAVERNA_EMAIL=your-email@example.com
LAVERNA_USERNAME=your-username
LAVERNA_PASSWORD=your-password
# Optional display names (defaults exist in code if unset).
# LAVERNA_FIRST_NAME=Laverna
# LAVERNA_LAST_NAME=Inclementia