MEGAINFRA-WEBAPP/.env.coolify
DEls e83a0d302c fix: overview counts, wrong-unit fuel limits, meter guard, en-ZA numbers, vehicle merge, docs
- Overview/Plant tiles and pages share one vehicle bucket rule (blank unit_type = fleet)
- Plant landing equipment figures were always 0; hour diffs now reject 0 baselines and >24h/day jumps
- km/L limits on plant (and L/h on vehicles) report unit-mismatch instead of false alerts
- formatPercent/formatDecimal replace display toFixed (en-ZA)
- POST /api/vehicles/[id]/merge + Merge duplicate dialog (dry run first)
- Attention links go to equipment vs vehicles by unit type; PO upload view link fixed
- Conditional hook fixed in DN document view; ESLint flat config (next lint removed in 16)
- Docs: current modules/routes/env vars; login + Ask reports plans

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:04:08 +02:00

63 lines
3.1 KiB
Text

# ============================================================================
# MEGA INFRASTRUCTURE — Coolify production env block (TEMPLATE)
#
# This file is committed to git. DO NOT put real secrets here.
#
# To deploy to Coolify:
# 1. Copy this file locally (outside the repo) as .env.coolify.local
# 2. Replace every REPLACE_ME placeholder below with the real value
# 3. Paste the resulting contents into Coolify → service → Env vars
# 4. Source the real values from your password manager / 1Password
#
# Also see: docs/setup/env-and-mcp.md (single source of truth for
# every secret, MCP config, and where the values live).
# ============================================================================
# ── Brand / UI ───────────────────────────────────────────────────────────────
NEXT_PUBLIC_APP_PIN=REPLACE_ME
NEXT_PUBLIC_APP_NAME=MEGA INFRASTRUCTURE
NEXT_PUBLIC_DEFAULT_THEME=light
# Public URL of this Next.js app as seen by clients (used by SSR fetches
# and by n8n when it calls back to /api/...).
NEXT_PUBLIC_API_BASE_URL=REPLACE_ME
# ── PocketBase ─────────────────────────────────────────────────────────────
NEXT_PUBLIC_POCKETBASE_URL=REPLACE_ME
# Server-only. Never prefix with NEXT_PUBLIC_ or these leak to browsers.
POCKETBASE_ADMIN_EMAIL=REPLACE_ME
POCKETBASE_ADMIN_PASSWORD=REPLACE_ME
# Pre-issued PocketBase superuser token. Validates on cold start; the
# route will fall back to email+password if this token is rejected.
# Get one by running: python3 scripts/pb-bootstrap-schema.py
# (it prints the token at the end of a successful run).
POCKETBASE_ADMIN_TOKEN=REPLACE_ME
# ── n8n (Purchase Order + Delivery Note ingestion) ───────────────────────
N8N_PO_INGEST_URL=REPLACE_ME
# Shared secret n8n workflows include in x-ingest-secret when calling
# back to /api/purchase-orders/process-batch and
# /api/delivery-notes/[id]/ocr-result. Generate with: openssl rand -hex 32
# MUST match the value set on the n8n workflow side exactly.
N8N_INGEST_SECRET=REPLACE_ME
# Public URL of the n8n instance — only used by your local Codex MCP
# config, not by the app itself.
N8N_MCP_URL=REPLACE_ME
# ── Added 2026-09: clock corrections + delivery-note pipeline ──────────
# Server-side copy of the shared PIN (keep equal to NEXT_PUBLIC_APP_PIN).
# Without it the On-site "Needs attention" correction returns 503.
APP_PIN=REPLACE_ME
# Code required to edit a posted receipt. openssl rand -hex 16
RECEIPT_CORRECTION_SECRET=REPLACE_ME
# MEGA VAT number the DN pipeline checks on every slip.
MEGA_CUSTOMER_VAT_NO=4280307796
# dn_batches claimed per /api/dn-batches/tick hit.
DN_TICK_BATCH_SIZE=1
# Staged vs legacy DN tick runner — exactly "true" once the staged
# pipeline is rolled out, else "false". See docs/operations.md §8.
DN_STAGED_INGESTION_ENABLED=false