-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
156 lines (130 loc) · 8.1 KB
/
Copy path.env.example
File metadata and controls
156 lines (130 loc) · 8.1 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# Copy to .env and adjust. `.env` is git-ignored.
# It is read by BOTH Docker Compose (${VAR} interpolation) and Spring Boot
# (spring.config.import=optional:file:.env[.properties]).
#
# Everything has a sane default in application*.yml, so the app runs WITHOUT a .env.
# Use this file to activate AI providers, override ports, supply secrets, etc.
# ── Database (compose + app) ──────────────────────────────────────────────────
DB_NAME=reqsai
DB_USERNAME=reqsai
DB_PASSWORD=secret
DB_PORT=5432
# ── Mailpit — local dev email ──────────────────────────────────────────────────
MAILPIT_SMTP_PORT=1025
MAILPIT_UI_PORT=8025
# ── Email provider ─────────────────────────────────────────────────────────────
# Default is mailpit (local Docker) — no credentials needed.
# Uncomment ONE block below to switch provider.
# EMAIL_PROVIDER=mailpit (default — runs automatically with Docker Compose)
# Mailtrap sandbox — https://mailtrap.io → Inboxes → SMTP Settings
# EMAIL_PROVIDER=mailtrap
# MAIL_HOST=sandbox.smtp.mailtrap.io
# MAIL_PORT=2525
# MAIL_USERNAME=<your-mailtrap-inbox-username>
# MAIL_PASSWORD=<your-mailtrap-inbox-password>
# MAIL_FROM=noreply@reqsai.com
# Gmail — requires a Google App Password (not your login password).
# Enable 2FA → Google Account → Security → App Passwords → generate one.
# EMAIL_PROVIDER=gmail
# MAIL_HOST=smtp.gmail.com
# MAIL_PORT=587
# MAIL_USERNAME=you@gmail.com
# MAIL_PASSWORD=xxxx-xxxx-xxxx-xxxx # 16-char Google App Password
# MAIL_FROM=you@gmail.com
# ── App ────────────────────────────────────────────────────────────────────────
SERVER_PORT=8080
APP_PORT=8080
SPRING_PROFILES_ACTIVE=dev
CORS_ALLOWED_ORIGINS=http://localhost:4200
# ── JWT (dev keys come from scripts/generate-jwt-keys.sh) ──────────────────────
JWT_ISSUER=reqsai
# ── Discovery realtime settings ───────────────────────────────────────────
# DISCOVERY_REALTIME_SUGGESTION_WINDOW=5
# DISCOVERY_REALTIME_CONTEXT_WINDOW=10
# DISCOVERY_REALTIME_CONTEXT_TOP_K=5
# DISCOVERY_REALTIME_MIN_TRANSCRIPT_CHARS=300
# ── IAM token settings ─────────────────────────────────────────────────────────
# IAM_TOKEN_BYTES=32
# IAM_PASSWORD_RESET_EXPIRATION=12h
# IAM_EMAIL_VERIFICATION_EXPIRATION:24h
# ══════════════════════════════════════════════════════════════════════════════
# AI providers — uncomment the section(s) you want to use.
# Each section sets:
# SPRING_AI_MODEL_* → activates the Spring AI bean for that capability
# *_PROVIDER → tells the reqsai router which adapter to call
# provider key/URL → credentials / location of the model server
#
# AI is OFF by default (spring.ai.model.* defaults to 'none' in application.yml).
# ══════════════════════════════════════════════════════════════════════════════
# ── Gemini (cloud) — generation + embeddings ──────────────────────────────────
# GEMINI_API_KEY=your-gemini-api-key-here
# SPRING_AI_MODEL_CHAT=google-genai
# SPRING_AI_MODEL_EMBEDDING=google-genai
# GENERATION_PROVIDER=gemini
# EMBEDDING_PROVIDER=gemini
# ── OpenAI (cloud) — generation + embeddings ──────────────────────────────────
# OPENAI_API_KEY=sk-...
# SPRING_AI_MODEL_CHAT=openai
# SPRING_AI_MODEL_EMBEDDING=openai
# GENERATION_PROVIDER=openai
# EMBEDDING_PROVIDER=openai
# ── Ollama (local, free) — generation + embeddings ────────────────────────────
# Run: ollama serve && ollama pull llama3.1:8b && ollama pull nomic-embed-text
# OLLAMA_BASE_URL=http://localhost:11434
# OLLAMA_CHAT_MODEL=llama3.1:8b
# OLLAMA_EMBEDDING_MODEL=nomic-embed-text
# SPRING_AI_MODEL_CHAT=ollama
# SPRING_AI_MODEL_EMBEDDING=ollama
# GENERATION_PROVIDER=gemini # reqsai routes ollama through the generic ChatModel adapter
# EMBEDDING_PROVIDER=auto
# ── Whisper (local BATCH STT) ─────────────────────────────────────────────────
# Run: docker compose --profile core --profile ai up -d
# WHISPER_PORT=9000
# WHISPER_BASE_URL=http://localhost:9000/v1
# WHISPER_MODEL=small
# WHISPER_LANGUAGE=auto
# WHISPER_DIARIZATION=false
# SPRING_AI_MODEL_AUDIO_TRANSCRIPTION=openai
# STT_PROVIDER=whisper
# ── WhisperLive (self-hosted STREAMING STT) ───────────────────────────────────
# WHISPERLIVE_URL=ws://localhost:9090
# STT_STREAMING_PROVIDER=whisperlive
# ── AssemblyAI (cloud STT — batch + streaming) ────────────────────────────────
# ASSEMBLYAI_API_KEY=your-assemblyai-api-key-here
# STT_PROVIDER=assemblyai
# STT_STREAMING_PROVIDER=assemblyai
# ── Deepgram (cloud STT — batch + streaming) ──────────────────────────────────
# DEEPGRAM_API_KEY=your-deepgram-api-key-here
# DEEPGRAM_MODEL=nova-2
# STT_PROVIDER=deepgram
# STT_STREAMING_PROVIDER=deepgram
# ── Billing & Stripe Payments ──────────────────────────────────────────────────
# See docs/BILLING.md for the step-by-step integration and test mode guide.
#
# Selector: 'fake' (default — activates plans instantly, no charge) or 'stripe'.
# Leave everything below commented to keep using the fake gateway in local dev.
# BILLING_PAYMENT_PROVIDER=stripe
# BILLING_CURRENCY=USD
# Web app base URL used to build the Stripe Checkout return URLs (Angular app)
# WEB_APP_URL=http://localhost:4200
# Secret API key (Stripe Dashboard ▸ Developers ▸ API keys)
# STRIPE_API_KEY=sk_test_your_secret_key_here
# Recurring Price IDs (Stripe Dashboard ▸ Product catalog ▸ Prices)
# BILLING_PRO_STRIPE_PRICE_ID=price_your_pro_price_id_here
# BILLING_ENTERPRISE_STRIPE_PRICE_ID=price_your_enterprise_price_id_here
# Webhook signing secret (obtained from `stripe listen` or Stripe dashboard)
# STRIPE_WEBHOOK_SECRET=whsec_your_webhook_signing_secret_here
# Optional: Override checkout return URLs (defaults derived from WEB_APP_URL)
# STRIPE_SUCCESS_URL=http://localhost:4200/billing/success
# STRIPE_CANCEL_URL=http://localhost:4200/billing/cancel
# Optional: Override display amounts in cents (must match Stripe Price object)
# BILLING_PRO_AMOUNT_CENTS=2900
# BILLING_ENTERPRISE_AMOUNT_CENTS=9900
# ── Integrations — Jira (gateway) ─────────────────────────────────────────────
# INTEGRATIONS_ENCRYPTION_KEY=your-base64-32-byte-key-here
# JIRA_OAUTH_CALLBACK_URL must match the app's Authorization → Callback URL exactly.
# Defaults to {FRONTEND_URL}/settings/integrations/jira/callback — only set this to override.
# JIRA_OAUTH_CLIENT_ID=your-atlassian-oauth-client-id
# JIRA_OAUTH_CLIENT_SECRET=your-atlassian-oauth-client-secret
# JIRA_OAUTH_CALLBACK_URL=http://localhost:4200/settings/integrations/jira/callback
# JIRA_OAUTH_STATE_SECRET=your-hex-64-char-state-secret