- .env.example: strip /api/v1 from DOCUMENSO_API_URL (was producing double-pathed 404s), add DOCUMENSO_API_VERSION docs (v1 vs v2 support), add MINIO_AUTO_CREATE_BUCKET, document DOCUMENSO_TEMPLATE_ID_EOI + recipient role IDs - Add listByPrefix to InMemoryBackend test stub (was 3 pre-existing tsc errors) Pre-commit hook bypassed on explicit user request (CLAUDE.md policy blocks .env* by default; user authorized this update as part of audit-fixes cutover prep). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
67 lines
2.2 KiB
Plaintext
67 lines
2.2 KiB
Plaintext
# Database
|
|
DATABASE_URL=postgresql://crm:changeme@localhost:5432/port_nimara_crm
|
|
|
|
# Redis
|
|
REDIS_URL=redis://:changeme@localhost:6379
|
|
|
|
# Auth
|
|
BETTER_AUTH_SECRET=change-me-to-a-random-string-at-least-32-chars
|
|
BETTER_AUTH_URL=http://localhost:3000
|
|
CSRF_SECRET=change-me-to-a-random-string-at-least-32-chars
|
|
|
|
# MinIO
|
|
MINIO_ENDPOINT=localhost
|
|
MINIO_PORT=9000
|
|
MINIO_ACCESS_KEY=minioadmin
|
|
MINIO_SECRET_KEY=minioadmin
|
|
MINIO_BUCKET=crm-files
|
|
MINIO_USE_SSL=false
|
|
# When `true`, the S3 backend auto-creates the configured bucket on boot if it
|
|
# does not exist (otherwise boot throws so deployment-time misconfigs surface
|
|
# immediately). Leave unset in production.
|
|
MINIO_AUTO_CREATE_BUCKET=false
|
|
|
|
# Documenso
|
|
# Use the bare host — never include `/api/v1` in this URL. The Documenso
|
|
# client constructs versioned paths internally based on DOCUMENSO_API_VERSION
|
|
# below, and a double-pathed URL (https://.../api/v1/api/v1/...) returns 404
|
|
# on every call. Trailing-slash values are fine.
|
|
DOCUMENSO_API_URL=https://documenso.example.com
|
|
# `v1` (Documenso 1.13.x) or `v2` (Documenso 2.x). Determines which API path
|
|
# prefix the client uses and which response-shape normalizer runs.
|
|
DOCUMENSO_API_VERSION=v1
|
|
DOCUMENSO_API_KEY=your-documenso-api-key
|
|
DOCUMENSO_WEBHOOK_SECRET=your-webhook-secret-min-16-chars
|
|
# The Documenso template id used by the EOI send pathway. Per-port overrides
|
|
# live in `system_settings.documenso_template_id_eoi`; this env value is the
|
|
# global fallback when no per-port row exists.
|
|
DOCUMENSO_TEMPLATE_ID_EOI=
|
|
# Recipient role ids on the EOI template. The send service copies the template
|
|
# layout but re-targets recipients per interest, so we need the role ids to
|
|
# look up which template recipient becomes the Client / Sales signer.
|
|
DOCUMENSO_RECIPIENT_ID_CLIENT=
|
|
DOCUMENSO_RECIPIENT_ID_SALES=
|
|
|
|
# Email (SMTP)
|
|
SMTP_HOST=mail.portnimara.com
|
|
SMTP_PORT=587
|
|
|
|
# Encryption (64-char hex string for AES-256)
|
|
EMAIL_CREDENTIAL_KEY=0000000000000000000000000000000000000000000000000000000000000000
|
|
|
|
# Google OAuth (optional)
|
|
GOOGLE_CLIENT_ID=
|
|
GOOGLE_CLIENT_SECRET=
|
|
|
|
# OpenAI (optional)
|
|
OPENAI_API_KEY=
|
|
|
|
# App
|
|
APP_URL=http://localhost:3000
|
|
PUBLIC_SITE_URL=https://portnimara.com
|
|
NODE_ENV=development
|
|
LOG_LEVEL=info
|
|
|
|
# Next.js public
|
|
NEXT_PUBLIC_APP_URL=http://localhost:3000
|