-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
92 lines (77 loc) · 3.14 KB
/
Copy path.env.example
File metadata and controls
92 lines (77 loc) · 3.14 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
# Database
DATABASE_URL="postgresql://USER:PASSWORD@HOST:5432/portfolio?schema=public"
# Docker Compose self-hosted database password
POSTGRES_PASSWORD="replace-with-a-long-random-database-password"
PORT="3000"
# Auth.js
AUTH_SECRET="replace-with-a-long-random-secret-at-least-32-characters"
AUTH_TRUST_HOST=true
# Optional dedicated encryption secret for Admin > Tools > API Integrations.
# If omitted, the CMS falls back to AI_CREDENTIALS_SECRET and then AUTH_SECRET.
INTEGRATION_CREDENTIALS_SECRET=""
# Initial CMS owner bootstrap
OWNER_NAME="Nikola Stoyanov"
OWNER_EMAIL="owner@example.com"
OWNER_PASSWORD="replace-with-a-strong-password-at-least-12-characters"
# Public site
NEXT_PUBLIC_SITE_URL="http://localhost:3000"
# Optional public legal/GDPR identity shown on /privacy.
# Set LEGAL_CONTROLLER_NAME to the real person/company responsible for the website.
# If omitted, the public Site Name is used as a fallback.
LEGAL_CONTROLLER_NAME=""
PRIVACY_CONTACT_EMAIL=""
LEGAL_CONTROLLER_LOCATION="Bulgaria"
# Contact form email delivery
EMAIL_USER=""
EMAIL_APP_PASSWORD=""
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="465"
SMTP_SECURE="true"
# Digital Footprint public self-audit
# Falls back to AUTH_SECRET; use a dedicated 32+ character value in production.
FOOTPRINT_SECRET=""
HIBP_API_KEY=""
EMAILREP_API_KEY=""
# Optional externally deployed Holehe-compatible sidecar. See docs/digital-footprint.md.
HOLEHE_API_URL=""
HOLEHE_API_TOKEN=""
# Digital Store private file storage
# Default: <project>/storage/store-private (outside public/ and ignored by Git).
# Set an absolute persistent server path here if you want the files outside the app directory.
STORE_PRIVATE_STORAGE_PATH=""
# Cloudflare R2 (optional)
# R2_BUCKET is the existing public media bucket.
# R2_STORE_BUCKET is optional for Store files and is used only for existing/explicit R2-backed files.
R2_ACCOUNT_ID=""
R2_ACCESS_KEY_ID=""
R2_SECRET_ACCESS_KEY=""
R2_BUCKET=""
R2_STORE_BUCKET=""
R2_PUBLIC_BASE_URL="https://media.example.com"
# Creem digital Store checkout
# These values can alternatively be encrypted and managed from Admin > API Integrations.
# creem_test_ keys automatically use https://test-api.creem.io; live keys use https://api.creem.io.
# Configure the Creem webhook URL as https://your-domain.example/api/store/webhook/creem.
CREEM_API_KEY=""
CREEM_WEBHOOK_SECRET=""
# Lemon Squeezy digital Store checkout
# These values can alternatively be encrypted and managed from Admin > API Integrations.
# Configure the Lemon Squeezy webhook URL as https://your-domain.example/api/store/webhook.
LEMON_SQUEEZY_API_KEY=""
LEMON_SQUEEZY_STORE_ID=""
LEMON_SQUEEZY_WEBHOOK_SECRET=""
# Optional public integrations
# GitHub username can also be inferred from Site Settings > Social links.
GITHUB_USERNAME=""
GITHUB_TOKEN=""
WAKATIME_API_KEY=""
# Optional AI portfolio assistant providers
OPENAI_API_KEY=""
GROQ_API_KEY=""
GEMINI_API_KEY=""
OPENROUTER_API_KEY=""
# Custom AI providers configured from Admin > AI Assistant reference the
# environment variable name entered in the CMS. The secret itself stays here
# (or in your hosting provider's environment settings) and is never stored in CMS.
# Example:
CUSTOM_AI_API_KEY=""