# 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 # ── 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 # ── 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_... # ── 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