forked from BunsDev/quackback
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
134 lines (116 loc) · 5.36 KB
/
Copy path.env.example
File metadata and controls
134 lines (116 loc) · 5.36 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
132
133
134
# ============================================================================
# OpenCoven Feedback Environment Configuration
# ============================================================================
# Copy this file to .env and fill in your values.
# For self-hosted deployments, only the "Required" section needs configuration.
# ============================================================================
# Required
# ============================================================================
# PostgreSQL connection string
DATABASE_URL="postgresql://postgres:password@localhost:5432/opencoven_feedback"
# Public URL for your OpenCoven Feedback instance (used for auth, emails, OAuth callbacks)
BASE_URL="http://localhost:3000"
# Port for the application server
PORT="3000"
# Secret key for authentication and encryption - MUST be at least 32 characters
# This single key is used for session signing and deriving encryption keys.
# Generate with: openssl rand -base64 32
SECRET_KEY=""
# Redis/Dragonfly connection for background job queue (BullMQ)
# Dragonfly is included in docker-compose and started by `bun run setup`.
REDIS_URL="redis://localhost:6379"
# ============================================================================
# Email (optional)
# ============================================================================
# If not configured, emails are logged to console (useful for development).
# Priority: SMTP (if configured) → Resend (if configured) → Console logging
#
# Option 1: SMTP (recommended for self-hosted, works with any provider)
# - Gmail: smtp.gmail.com (port 587, use app password)
# - Amazon SES: email-smtp.{region}.amazonaws.com
# - Mailgun: smtp.mailgun.org
# - SendGrid: smtp.sendgrid.net
EMAIL_SMTP_HOST=""
EMAIL_SMTP_PORT="587"
EMAIL_SMTP_USER=""
EMAIL_SMTP_PASS=""
# EMAIL_SMTP_SECURE="true" # Uncomment for port 465 (implicit TLS)
# Option 2: Resend API (simpler setup, requires Resend account)
# Get your API key at: https://resend.com/api-keys
EMAIL_RESEND_API_KEY=""
# Sender address (REQUIRED when using SMTP or Resend)
# Format: "Your App <noreply@yourdomain.com>"
EMAIL_FROM=""
# ============================================================================
# AI (optional)
# ============================================================================
# Enable AI features like auto-categorization and summarization.
# OpenAI API
OPENAI_API_KEY=""
OPENAI_BASE_URL="" # Optional: custom endpoint (e.g., Azure OpenAI, Cloudflare AI Gateway)
# ============================================================================
# File Storage (for image uploads)
# ============================================================================
# S3-compatible storage for image uploads in changelogs.
# Supports AWS S3, Cloudflare R2, Backblaze B2, MinIO, Railway Buckets, and other S3-compatible services.
# If not configured, image upload will be disabled in the rich text editor.
#
# S3_PUBLIC_URL is optional. If not set, files are served via BASE_URL/api/storage
# using presigned URL redirects (works with any provider, including private buckets).
# Set it explicitly to use a CDN or public bucket URL instead.
#
# For local development, MinIO is included in docker-compose and configured by default.
# Run `bun run setup` or `docker compose up -d minio` to start it.
# MinIO (local development - enabled by default)
S3_ENDPOINT="http://localhost:9000"
S3_BUCKET="quackback"
S3_REGION="us-east-1"
S3_ACCESS_KEY_ID="minioadmin"
S3_SECRET_ACCESS_KEY="minioadmin"
S3_FORCE_PATH_STYLE="true"
S3_PUBLIC_URL=""
# S3_PROXY="false" # Proxy all S3 traffic (uploads and downloads) through the server.
# Enable when the browser can't reach S3 directly (e.g., self-hosted Docker, ngrok).
# For production, replace with your preferred S3-compatible provider:
#
# AWS S3 (public bucket):
# S3_ENDPOINT="" # Leave empty for AWS S3
# S3_BUCKET="your-bucket-name"
# S3_REGION="us-east-1"
# S3_ACCESS_KEY_ID="your-access-key"
# S3_SECRET_ACCESS_KEY="your-secret-key"
# S3_FORCE_PATH_STYLE="false"
# S3_PUBLIC_URL="https://your-bucket-name.s3.us-east-1.amazonaws.com"
#
# AWS S3 (private bucket via presigned redirect):
# S3_ENDPOINT=""
# S3_BUCKET="your-bucket-name"
# S3_REGION="us-east-1"
# S3_ACCESS_KEY_ID="your-access-key"
# S3_SECRET_ACCESS_KEY="your-secret-key"
# S3_FORCE_PATH_STYLE="false"
# S3_PUBLIC_URL="https://your-app.example.com/api/storage"
#
# Cloudflare R2:
# S3_ENDPOINT="https://<account-id>.r2.cloudflarestorage.com"
# S3_BUCKET="your-bucket-name"
# S3_REGION="auto"
# S3_ACCESS_KEY_ID="your-access-key"
# S3_SECRET_ACCESS_KEY="your-secret-key"
# S3_FORCE_PATH_STYLE="true"
# S3_PUBLIC_URL="https://your-custom-domain.com"
#
# Railway Buckets (private — served via presigned URL redirects automatically):
# S3_ENDPOINT="https://your-bucket-endpoint.storageapi.dev"
# S3_BUCKET="your-bucket-name"
# S3_REGION="us-east-1"
# S3_ACCESS_KEY_ID="your-access-key"
# S3_SECRET_ACCESS_KEY="your-secret-key"
# S3_FORCE_PATH_STYLE="true"
# # No S3_PUBLIC_URL needed — files served via BASE_URL/api/storage automatically
# ============================================================================
# Telemetry (optional)
# ============================================================================
# Anonymous usage statistics are enabled by default to help improve Quackback.
# Uncomment to disable.
# DISABLE_TELEMETRY="true"