# Copy to .env and adjust if ports conflict on your machine: # copy .env.example .env # Host ports (what you open in the browser) WEB_PORT=3101 # Dashboard http://localhost:3101/fa/login WEBSITE_PORT=3010 # Website http://localhost:3010/fa ADMIN_WEB_PORT=3102 # Admin panel http://localhost:3102/fa/admin/login API_PORT=5080 # Main API http://localhost:5080/swagger ADMIN_API_PORT=5081 # Admin API http://localhost:5081/swagger # Optional: expose DB/Redis on host (for local tools). Change if already in use. POSTGRES_PORT=5434 REDIS_PORT=6381 # Browser must reach the API on the host (not Docker service names) NEXT_PUBLIC_API_URL=http://localhost:5080 NEXT_PUBLIC_ADMIN_API_URL=http://localhost:5081 # Marketing website — public URL (used for sitemap, JSON-LD, canonical) NEXT_PUBLIC_SITE_URL=http://localhost:3010 # API Docker base images (if build fails — see docs/DOCKER.md) # DOTNET_SDK_IMAGE=mcr.microsoft.com/dotnet/sdk:10.0 # DOTNET_ASPNET_IMAGE=mcr.microsoft.com/dotnet/aspnet:10.0 # --- API (docker-compose / Arvan) --- # ConnectionStrings__DefaultConnection=Host=postgres;Port=5432;Database=meezi;Username=meezi;Password=... # ConnectionStrings__Redis=redis:6379 # Jwt__Key=<32+ char secret> # App__PublicBaseUrl=http://localhost:5080 # App__QrPublicBaseUrl=http://localhost:3101 # Billing__DashboardBaseUrl=http://localhost:3101 # RUN_MIGRATIONS=true # ZarinPal (empty = mock payment in dev) # Get your merchant ID from: https://panel.zarinpal.com → API → MerchantID ZARINPAL_MERCHANT_ID= ZARINPAL_SANDBOX=true # Snappfood webhook HMAC secret (dev default in appsettings) # Snappfood__WebhookSecret=meezi-dev-snappfood-secret # Taraz / سامانه مودیان (optional; stub without cert) # Taraz__Username= # Taraz__Password= # Taraz__CertificatePath= # Kavenegar SMS (empty = OTP logged to API console in dev) # Kavenegar__ApiKey= # CORS (comma-separated origins for production) # Cors__Origins__0=https://app.meezi.ir