-
Notifications
You must be signed in to change notification settings - Fork 3
/
.env.example
132 lines (114 loc) · 4.66 KB
/
.env.example
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
# =================================================================
# ZEPHYR ENVIRONMENT CONFIGURATION
# =================================================================
# This is a template for the .env file required to run Zephyr
# Create two .env files: (Will be generated automatically by dev-server script for local development)
# 1. apps/web/.env - For application environment variables - turbo dev
# 2. packages/db/.env - For database connection (Prisma)
# 3. root .env - For global environment variables
# =================================================================
# DATABASE CONFIGURATION
# =================================================================
# Option 1: Local Development (Docker)
DATABASE_URL="postgresql://postgres:postgres@localhost:5433/zephyr?schema=public"
POSTGRES_PRISMA_URL="postgresql://postgres:postgres@localhost:5433/zephyr?schema=public"
POSTGRES_URL_NON_POOLING="postgresql://postgres:postgres@localhost:5433/zephyr?schema=public"
POSTGRES_USER="postgres"
POSTGRES_PASSWORD="postgres"
POSTGRES_DB="zephyr"
POSTGRES_HOST="localhost"
POSTGRES_PORT="5433"
# Option 2: Vercel Postgres (Production)
# POSTGRES_URL="postgres://username:password@host:port/database?sslmode=require"
# POSTGRES_PRISMA_URL="postgres://username:password@host:port/database?sslmode=require&pgbouncer=true&connect_timeout=15"
# POSTGRES_URL_NON_POOLING="postgres://username:password@host:port/database?sslmode=require"
# =================================================================
# STORAGE CONFIGURATION
# =================================================================
# Option 1: Local Development (MinIO)
MINIO_ROOT_USER="minioadmin"
MINIO_ROOT_PASSWORD="minioadmin"
MINIO_BUCKET_NAME="uploads"
MINIO_PORT="9000"
MINIO_CONSOLE_PORT="9001"
MINIO_HOST="localhost"
MINIO_ENDPOINT="http://localhost:9000"
NEXT_PUBLIC_MINIO_ENDPOINT="http://localhost:9000"
# UploadThing (Production - for avatars)
UPLOADTHING_TOKEN=""
UPLOADTHING_SECRET=""
NEXT_PUBLIC_UPLOADTHING_APP_ID=""
# Option 2: Cloudflare R2 (Production - for file storage)
R2_TOKEN_VALUE=""
R2_ACCOUNT_ID=""
R2_ACCESS_KEY_ID=""
R2_SECRET_ACCESS_KEY=""
R2_BUCKET_NAME=""
R2_PUBLIC_URL=""
# =================================================================
# CACHING CONFIGURATION
# =================================================================
# Redis (Local Development)
REDIS_PASSWORD="zephyrredis"
REDIS_PORT="6379"
REDIS_HOST="localhost"
REDIS_URL="redis://:zephyrredis@localhost:6379/0"
# Upstash Redis (Production)
# UPSTASH_REDIS_REST_URL=""
# UPSTASH_REDIS_REST_TOKEN=""
# =================================================================
# AUTHENTICATION
# =================================================================
# Required for JWT
JWT_SECRET="your-super-secret-jwt-key-minimum-32-chars"
JWT_EXPIRES_IN="7d"
# OAuth Providers (Optional for development)
# Google
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
# GitHub
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
# Discord
DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""
# Twitter
TWITTER_CLIENT_ID=""
TWITTER_CLIENT_SECRET=""
# =================================================================
# MESSAGING SERVICE
# =================================================================
# Stream Chat (Temporary)
NEXT_PUBLIC_STREAM_KEY=""
STREAM_SECRET=""
# =================================================================
# EMAIL SERVICE
# =================================================================
# NodeMailer Configuration
GMAIL_USER="" # Your Gmail address
GMAIL_APP_PASSWORD="" # Gmail App Password (not regular password)
# =================================================================
# MAINTENANCE & OPERATIONS
# =================================================================
# Cron Jobs
CRON_SECRET="your-cron-secret-key" # Random string for cron authentication
# =================================================================
# APPLICATION SETTINGS
# =================================================================
# Development URLs
NEXT_PUBLIC_URL="http://localhost:3000" # Replace with your local URL
NEXT_PUBLIC_PORT="3000"
NODE_ENV="development"
NEXT_TELEMETRY_DISABLED=1
# =================================================================
# NOTES
# =================================================================
# 1. For local development, you only need to fill in the Docker/Local sections
# 2. Production credentials should be kept secure and never committed
# 3. Generate strong random strings for all secret keys
# 4. Some services offer free tiers suitable for development:
# - Vercel Postgres
# - Upstash Redis
# - UploadThing
# 5. OAuth setup is optional for local development
# 6. Ensure all ports are available before starting services