2026-05-29 23:29:31 +03:30
|
|
|
# FlatRender V2 environment — copy to .env.v2 and fill in secrets
|
|
|
|
|
# Usage: docker compose -f docker-compose.v2.yml --env-file .env.v2 up -d
|
|
|
|
|
|
|
|
|
|
# ── JWT — MUST be >= 32 chars, same value across all services ─────────────────
|
|
|
|
|
JWT_SECRET=p9Xv7Lm2Qq8Nz4TfKc1Hs6YwRe3Ud0BafwefWEFw324234QEWF
|
|
|
|
|
|
|
|
|
|
# ── PostgreSQL ────────────────────────────────────────────────────────────────
|
|
|
|
|
POSTGRES_USER=postgres
|
|
|
|
|
POSTGRES_PASSWORD=postgres
|
|
|
|
|
|
|
|
|
|
# ── MinIO (S3-compatible object store) ───────────────────────────────────────
|
|
|
|
|
MINIO_ACCESS_KEY=minioadmin
|
|
|
|
|
MINIO_SECRET_KEY=minioadmin-secret
|
|
|
|
|
MINIO_BUCKET=flatrender-exports
|
|
|
|
|
|
|
|
|
|
# ── Render farm ───────────────────────────────────────────────────────────────
|
|
|
|
|
NODE_HMAC_SECRET=node-secret-change-me
|
|
|
|
|
|
|
|
|
|
# ── Notification service ─────────────────────────────────────────────────────
|
|
|
|
|
SERVICE_TOKEN=internal-service-secret
|
|
|
|
|
|
|
|
|
|
# ── Frontend CORS origin (passed to studio-svc) ───────────────────────────────
|
|
|
|
|
CORS_ORIGIN=http://localhost:3000
|
|
|
|
|
|
|
|
|
|
# ── API Gateway published host port ──────────────────────────────────────────
|
|
|
|
|
# The only backend port exposed to the host. Change if 8080 is taken locally.
|
|
|
|
|
GATEWAY_PORT=8080
|
|
|
|
|
|
2026-06-01 09:15:02 +03:30
|
|
|
# ── Frontend public vars (baked into the Next.js image at build time) ────────
|
|
|
|
|
NEXT_PUBLIC_SITE_URL=http://localhost:3000
|
|
|
|
|
# Browser-facing gateway URL (host port). Must match GATEWAY_PORT above.
|
|
|
|
|
NEXT_PUBLIC_API_URL=http://localhost:8080/v1
|
|
|
|
|
NEXT_PUBLIC_TENANT_SLUG=flatrender
|
|
|
|
|
|
2026-05-29 23:29:31 +03:30
|
|
|
# ── ZarinPal (Iranian payment gateway) ───────────────────────────────────────
|
|
|
|
|
# Get your merchant ID from https://www.zarinpal.com/
|
|
|
|
|
ZARINPAL_MERCHANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
|
|
|
ZARINPAL_CALLBACK_URL=https://yourdomain.com/v1/payments/callback/zarinpal
|
|
|
|
|
# Set to false in production
|
|
|
|
|
ZARINPAL_SANDBOX=true
|
|
|
|
|
|
|
|
|
|
# ── SnapPay (Iranian payment gateway) ────────────────────────────────────────
|
|
|
|
|
# Get credentials from https://snappay.ir/
|
|
|
|
|
SNAPPAY_CLIENT_ID=your-snappay-client-id
|
|
|
|
|
SNAPPAY_CLIENT_SECRET=your-snappay-client-secret
|
|
|
|
|
SNAPPAY_BASE_URL=https://api.snappay.ir
|
|
|
|
|
SNAPPAY_CALLBACK_URL=https://yourdomain.com/v1/payments/callback/snappay
|
|
|
|
|
|
|
|
|
|
# ── Tara (Iranian payment gateway) ───────────────────────────────────────────
|
|
|
|
|
# Get your API key from https://tara.ir/
|
|
|
|
|
TARA_API_KEY=your-tara-api-key
|
|
|
|
|
TARA_BASE_URL=https://api.tara.ir
|
|
|
|
|
TARA_CALLBACK_URL=https://yourdomain.com/v1/payments/callback/tara
|
|
|
|
|
|
|
|
|
|
# ── Stripe (international payment gateway) ───────────────────────────────────
|
|
|
|
|
# Get keys from https://dashboard.stripe.com/apikeys
|
|
|
|
|
STRIPE_SECRET_KEY=sk_test_...
|
|
|
|
|
STRIPE_PUBLISHABLE_KEY=pk_test_...
|
2026-06-01 16:41:13 +03:30
|
|
|
|
|
|
|
|
# ── Caddy TLS reverse proxy ───────────────────────────────────────────────────
|
|
|
|
|
# Public-facing domains (Let's Encrypt will provision certs automatically).
|
|
|
|
|
# Leave as localhost for local dev (Caddy uses self-signed cert).
|
|
|
|
|
DOMAIN=flatrender.io
|
|
|
|
|
API_DOMAIN=api.flatrender.io
|
|
|
|
|
STORAGE_DOMAIN=storage.flatrender.io
|
|
|
|
|
ACME_EMAIL=admin@flatrender.io
|
|
|
|
|
|
|
|
|
|
# ── MinIO templates bucket ────────────────────────────────────────────────────
|
|
|
|
|
# Bucket where .aep template files are stored (uploaded via admin panel).
|
|
|
|
|
MINIO_TEMPLATES_BUCKET=flatrender-templates
|