Files
tehran_taj/.env.example
T

70 lines
3.0 KiB
Bash
Raw Normal View History

2026-09-09 19:39:13 +03:30
# Database configuration
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=goldbank
2026-09-09 23:31:31 +03:30
# Host port exposed for PostgreSQL (used by docker-compose db service)
EXTERNAL_DB_PORT=5432
# Prisma connection string (inside Docker network use hostname "db")
2026-09-09 19:39:13 +03:30
DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?schema=public
# ---------------------------------------------------------------------------
# Dev server ports — SINGLE SOURCE OF TRUTH for this monorepo.
# Every app's dev script/config reads its port from here. Do not hardcode a
# port anywhere else. strictPort is enabled everywhere: if a port below is
# already taken, the dev server fails with a clear error instead of silently
# picking another port.
# ---------------------------------------------------------------------------
API_PORT=3000
ADMIN_PANEL_PORT=5180
USER_APP_PORT=5181
USER_APP_V2_PORT=5182
# API Configuration (kept for any tooling that still reads bare PORT)
2026-09-09 19:39:13 +03:30
PORT=3000
# ---------------------------------------------------------------------------
# Authentication
# ---------------------------------------------------------------------------
# Admin JWT signing secret. REQUIRED in any real deployment — without it the
# API falls back to a well-known development string.
JWT_SECRET=
# Admin token lifetime (default 12h).
JWT_EXPIRES_IN=
# Customer JWT signing secret. Deliberately SEPARATE from JWT_SECRET so an
# admin token can never validate as a customer token (T1).
JWT_CUSTOMER_SECRET=
# Customer token lifetime (default 30d).
JWT_CUSTOMER_EXPIRES_IN=
# ---------------------------------------------------------------------------
# ⚠ DELIVERY ONLY — REMOVE BEFORE THE REAL RELEASE (D20 / ISSUES REL-01)
# ---------------------------------------------------------------------------
# A fixed OTP that signs in ANY active customer, alongside the real code.
# MUST BE EXACTLY 4 DIGITS: the apps' login box has four single-character
# inputs and only submits at four (LoginView.vue:43). A longer code still works
# over the API but cannot be typed into either app.
# Leave it EMPTY or unset to disable it completely — that is the correct state
# for production. While it is set, the API prints a warning banner at boot.
OTP_MASTER_CODE=
# ---------------------------------------------------------------------------
# SMS gateway (Trez). Leave blank to disable sending: the server still boots,
# messages are logged instead of sent, and customers cannot receive a login
# code (D20). Never commit real values.
# ---------------------------------------------------------------------------
# "trez" (default) or "none" to disable explicitly.
SMS_PROVIDER=
# Override only for staging; defaults to the provider's live endpoint.
SMS_TREZ_URL=
SMS_TREZ_USERNAME=
SMS_TREZ_PASSWORD=
SMS_TREZ_SENDER_LINE=
# ---------------------------------------------------------------------------
# Uploads
# ---------------------------------------------------------------------------
# Absolute path for uploaded files; defaults to <api>/storage/uploads.
UPLOAD_DIR=