Files
elegalsoftware/.env.example
T
Leon SerfatyandClaude Sonnet 4.6 ce2278f4be Add document storage (local filesystem) + fix dashboard outstanding KPI
- Local file storage via STORAGE_PATH env var (replaces DO Spaces)
- POST/GET/DELETE /api/cases/:caseId/documents + GET /api/documents/:docId/download
- useDocuments hook + upload/list/download/delete UI in CaseDetailPage
- GET /api/invoices/summary — live SUM of sent+overdue invoices
- Dashboard outstanding KPI wired to real DB value
- api.upload() for FormData, formatBytes() utility

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 03:07:37 -04:00

51 lines
2.8 KiB
Bash

# ─────────────────────────────────────────────
# Server
# ─────────────────────────────────────────────
NODE_ENV=development
PORT=8080
PUBLIC_URL=http://localhost:8080
COOKIE_DOMAIN=
# 32+ random bytes, hex. Generate: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
SESSION_SECRET=replace-me-with-32-byte-hex
CSRF_SECRET=replace-me-with-32-byte-hex
# Comma-separated emails. Any user with one of these emails is auto-promoted to superadmin
# on login/signup and gains access to /admin.
SUPERADMIN_EMAILS=
# ─────────────────────────────────────────────
# DigitalOcean Managed Postgres
# ─────────────────────────────────────────────
# Format: postgresql://user:pass@host:25060/dbname?sslmode=require
DATABASE_URL=postgresql://doadmin:password@db-postgresql-nyc1-xxxxx.b.db.ondigitalocean.com:25060/defaultdb?sslmode=require
DATABASE_CA_CERT_PATH=./certs/do-ca.crt
# ─────────────────────────────────────────────
# Local file storage
# Absolute path where uploaded documents are stored (outside web root).
# Production example: /var/www/vhosts/elegalsoftware.com/storage
# ─────────────────────────────────────────────
STORAGE_PATH=./storage
# ─────────────────────────────────────────────
# Email (Resend)
# ─────────────────────────────────────────────
RESEND_API_KEY=
EMAIL_FROM="eLegal Software <noreply@yourdomain.com>"
# ─────────────────────────────────────────────
# Stripe
# ─────────────────────────────────────────────
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
STRIPE_PRICE_PRO=
STRIPE_PRICE_LIFETIME=
# ─────────────────────────────────────────────
# Sentry (optional — leave blank to disable error reporting)
# ─────────────────────────────────────────────
SENTRY_DSN_API=
# Web DSN must be exposed to the browser bundle, so prefix with VITE_
VITE_SENTRY_DSN=