Use FormData and server-side sign-in after register, trust proxy origins for reverse-proxy deploys, pass public URL build args in Docker, and clarify that git pull plus up -d --build is required to ship code and run pending migrations. Co-authored-by: Cursor <cursoragent@cursor.com>
69 lines
2.3 KiB
Bash
69 lines
2.3 KiB
Bash
# beenvoice-web environment
|
|
#
|
|
# Local dev: cp .env.example .env.local
|
|
# Docker: cp .env.example .env
|
|
#
|
|
# Docker deploy checklist:
|
|
# 1. Set AUTH_SECRET, BETTER_AUTH_URL, NEXT_PUBLIC_APP_URL to your public URL
|
|
# 2. docker compose build --no-cache app # NEXT_PUBLIC_* is baked in at build
|
|
# 3. docker compose up -d --build # migrations run on app container start
|
|
#
|
|
# Updating: git pull && docker compose up -d --build
|
|
# (git pull alone does not rebuild; up -d without --build keeps the old image)
|
|
#
|
|
# Migrations are idempotent — only pending SQL files are applied on each start.
|
|
|
|
# Runtime
|
|
NODE_ENV=production
|
|
WEB_PORT=3000
|
|
|
|
# Auth
|
|
# Generate with: openssl rand -base64 32
|
|
AUTH_SECRET=change-me-generate-a-real-secret
|
|
# Must match the URL users open in the browser (include https:// and port if non-standard).
|
|
BETTER_AUTH_URL=http://localhost:3000
|
|
|
|
# Public app URL — baked into the client bundle at Docker build time.
|
|
# Set this to the same value as BETTER_AUTH_URL before `docker compose build`.
|
|
NEXT_PUBLIC_APP_URL=http://localhost:3000
|
|
|
|
# Postgres used by docker-compose.yml
|
|
POSTGRES_USER=postgres
|
|
POSTGRES_PASSWORD=postgres
|
|
POSTGRES_DB=postgres
|
|
DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres
|
|
DB_DISABLE_SSL=true
|
|
|
|
# White-label defaults used at image build time.
|
|
# Admin-managed platform branding in the app can override these after setup.
|
|
NEXT_PUBLIC_BRAND_NAME="beenvoice"
|
|
NEXT_PUBLIC_BRAND_TAGLINE="Simple and efficient invoicing for freelancers and small businesses"
|
|
NEXT_PUBLIC_BRAND_LOGO_TEXT="beenvoice"
|
|
NEXT_PUBLIC_BRAND_ICON="$"
|
|
NEXT_PUBLIC_DEFAULT_INTERFACE_THEME="beenvoice"
|
|
NEXT_PUBLIC_DEFAULT_FONT="brand"
|
|
NEXT_PUBLIC_DEFAULT_BODY_FONT="brand"
|
|
NEXT_PUBLIC_DEFAULT_HEADING_FONT="brand"
|
|
NEXT_PUBLIC_DEFAULT_RADIUS="xl"
|
|
NEXT_PUBLIC_DEFAULT_SIDEBAR_STYLE="floating"
|
|
|
|
# Email delivery via Resend (optional)
|
|
# Leave blank to disable invoice/password-reset email delivery.
|
|
RESEND_API_KEY=
|
|
RESEND_DOMAIN=
|
|
|
|
# Analytics via Umami (optional)
|
|
# Leave website ID blank to disable analytics.
|
|
NEXT_PUBLIC_UMAMI_WEBSITE_ID=
|
|
NEXT_PUBLIC_UMAMI_SCRIPT_URL=https://analytics.umami.is/script.js
|
|
|
|
# Block new email/password registrations (optional)
|
|
# DISABLE_SIGNUPS=true
|
|
|
|
# SSO via Authentik OIDC (optional)
|
|
NEXT_PUBLIC_AUTHENTIK_ENABLED=false
|
|
AUTHENTIK_ISSUER=
|
|
AUTHENTIK_CLIENT_ID=
|
|
AUTHENTIK_CLIENT_SECRET=
|
|
AUTHENTIK_ORIGIN=
|