| 1 | NODE_ENV=development
|
|---|
| 2 | PORT=3000
|
|---|
| 3 | SESSION_SECRET=change-me-to-a-strong-random-string-min-32-chars
|
|---|
| 4 | DATABASE_PATH=./storage/database.sqlite
|
|---|
| 5 | MEDIA_PATH=./storage/media
|
|---|
| 6 |
|
|---|
| 7 | # Canonical public URL of this site (scheme + host, no path/slash). Used for
|
|---|
| 8 | # links in emails (password reset) instead of request headers — prevents
|
|---|
| 9 | # host-header spoofing. Not set? Then it falls back to the request host (dev).
|
|---|
| 10 | PUBLIC_BASE_URL=https://example.com
|
|---|
| 11 |
|
|---|
| 12 | # ── Administrator ───────────────────────────────────────────────────
|
|---|
| 13 | # The admin logs in with username + password. On first start you create your
|
|---|
| 14 | # admin account via /auth/register; after that, registration is closed.
|
|---|
| 15 | # Forgot your password? -> "Forgot password" (email, see SMTP below) or always:
|
|---|
| 16 | # `npm run reset-admin` on the server.
|
|---|
| 17 |
|
|---|
| 18 | # ── Google login for LISTENERS (optional) ───────────────────────────
|
|---|
| 19 | # Want listeners to sign in with Google to comment? Create your OWN Google OAuth
|
|---|
| 20 | # client (Google Cloud Console -> Credentials -> OAuth client ID -> "Web
|
|---|
| 21 | # application") and fill it in below. Your own client = your own Google Cloud
|
|---|
| 22 | # project; this site isn't centrally tied to anything. Not set? Then there's
|
|---|
| 23 | # simply no Google button. Google login NEVER grants admin rights (commenting only).
|
|---|
| 24 | # GOOGLE_REDIRECT_URI = <your domain>/auth/google/callback (set it exactly in the client)
|
|---|
| 25 | GOOGLE_CLIENT_ID=
|
|---|
| 26 | GOOGLE_CLIENT_SECRET=
|
|---|
| 27 | GOOGLE_REDIRECT_URI=https://example.com/auth/google/callback
|
|---|
| 28 |
|
|---|
| 29 | # ── Email (optional) — for "forgot password" reset links ────────────
|
|---|
| 30 | # Not set? Then reset only works via `npm run reset-admin` on the server.
|
|---|
| 31 | SMTP_HOST=
|
|---|
| 32 | SMTP_PORT=587
|
|---|
| 33 | SMTP_USER=
|
|---|
| 34 | SMTP_PASS=
|
|---|
| 35 | SMTP_FROM=
|
|---|
| 36 |
|
|---|
| 37 | # ── Lite mode (optional) ────────────────────────────────────────────
|
|---|
| 38 | # Set to "off" to disable the whole audio feature (no built-in music hosting/
|
|---|
| 39 | # player, no ffmpeg needed). Klonkt then runs as a lightweight blog/photo/EPK
|
|---|
| 40 | # site, even on an environment without ffmpeg. Hub and Circles keep working.
|
|---|
| 41 | # External embeds (YouTube/SoundCloud/Spotify) keep working too.
|
|---|
| 42 | KLONKT_AUDIO=on
|
|---|