source: Klonkt/.env.example@ 99989f9

main
Last change on this file since 99989f9 was 81bb9c5, checked in by Robin Genis <roboburr@…>, 2 months ago

chore(hsts): make includeSubDomains+preload opt-in via HSTS_STRICT

Default ships a plain long max-age (safe on any domain a self-hoster runs). The
aggressive includeSubDomains+preload (which affect the operator's other subdomains and
can bake their domain into browsers) are opt-in via HSTS_STRICT=1, set on domains we own.

  • server.js — build hsts options from HSTS_STRICT
  • .env.example — document HSTS_STRICT
  • Property mode set to 100644
File size: 3.1 KB
Line 
1NODE_ENV=development
2PORT=3000
3
4# Network interface to bind. 127.0.0.1 = only reachable via a reverse proxy on the
5# same machine (recommended for a manual install behind Caddy/nginx — keeps the app
6# off the public internet). Use 0.0.0.0 only if you need direct external access
7# (no proxy/HTTPS — not recommended). Docker sets this to 0.0.0.0 itself.
8HOST=127.0.0.1
9# Secret used to sign login-session cookies. Leave EMPTY to auto-generate a strong
10# one on first start (saved to storage/.session-secret, stays stable across
11# restarts/updates). Or set your own: openssl rand -hex 32
12SESSION_SECRET=
13DATABASE_PATH=./storage/database.sqlite
14MEDIA_PATH=./storage/media
15
16# Canonical public URL of this site (scheme + host, no trailing slash), e.g.
17# https://yourdomain.com . Used to build correct links in emails (password reset)
18# and OAuth redirects instead of trusting request headers (anti-spoofing).
19# Optional: leave empty and it falls back to the request host (fine for local/dev);
20# set it for production so email/login links point at the right place.
21PUBLIC_BASE_URL=
22
23# Strict HSTS. By default Klonkt sends a plain long max-age (safe on any domain).
24# Set HSTS_STRICT=1 ONLY if Klonkt owns the whole domain incl. all its subdomains:
25# it adds `includeSubDomains; preload`, which forces every subdomain to HTTPS and can
26# get your domain baked into browsers near-permanently. Leave unset if unsure.
27# HSTS_STRICT=1
28
29# ── Administrator ───────────────────────────────────────────────────
30# The admin logs in with username + password. On first start you create your
31# admin account via /auth/register; after that, registration is closed.
32# Forgot your password? -> "Forgot password" (email, see SMTP below) or always:
33# `npm run reset-admin` on the server.
34
35# ── Email (optional) — for "forgot password" reset links ────────────
36# Not set? Then reset only works via `npm run reset-admin` on the server.
37SMTP_HOST=
38SMTP_PORT=587
39SMTP_USER=
40SMTP_PASS=
41SMTP_FROM=
42
43# ── Lite mode (optional) ────────────────────────────────────────────
44# Set to "off" to disable the whole audio feature (no built-in music hosting/
45# player, no ffmpeg needed). Klonkt then runs as a lightweight blog/photo/EPK
46# site, even on an environment without ffmpeg. Hub and Circles keep working.
47# External embeds (YouTube/SoundCloud/Spotify) keep working too.
48# Reversible: set back to "on" (or remove) and restart — no reinstall, tracks kept.
49KLONKT_AUDIO=on
50
51# ── Premium extras ──────────────────────────────────────────────────
52# The core app, all updates and Cirkels are free. A handful of extras
53# (newsletter, statistics, EPK, link-in-bio, embeddable player, show agenda,
54# release planning, download-for-email) are unlocked by a one-time Patreon
55# supporter link — that's what funds the project:
56# klonkt.com / patreon.com/c/roboburr. Leave this on.
57KLONKT_PREMIUM_ENABLED=on
Note: See TracBrowser for help on using the repository browser.