diff --git a/.env.example b/.env.example index d76473f..4f78e6a 100644 --- a/.env.example +++ b/.env.example @@ -68,6 +68,14 @@ REDIS_PORT=6381 # ── Migrations ──────────────────────────────────────────────────────────────── RUN_MIGRATIONS=true +# ── System admin seed (admin panel login) ───────────────────────────────────── +# On every boot the seeder ensures this admin exists with these credentials. +# Username defaults to "admin" if not set. Password is required to enable +# password login — leave blank to force OTP-only login. +SEED_ADMIN_PHONE=09190345606 +SEED_ADMIN_USERNAME=admin +SEED_ADMIN_PASSWORD=change-me-strong-admin-password + # ── Payment: ZarinPal ───────────────────────────────────────────────────────── # Get your merchant ID from: https://panel.zarinpal.com → API → MerchantID ZARINPAL_MERCHANT_ID= diff --git a/docker-compose.admin.yml b/docker-compose.admin.yml index 146d9b5..23d9323 100644 --- a/docker-compose.admin.yml +++ b/docker-compose.admin.yml @@ -28,7 +28,7 @@ services: environment: ASPNETCORE_ENVIRONMENT: "${ASPNETCORE_ENVIRONMENT:-Development}" ASPNETCORE_URLS: http://+:8080 - RUN_MIGRATIONS: "false" + RUN_MIGRATIONS: "${RUN_MIGRATIONS:-true}" ConnectionStrings__DefaultConnection: "${DB_CONNECTION_STRING:-Host=postgres;Port=5432;Database=meezi;Username=meezi;Password=meezi_local_pass}" ConnectionStrings__Redis: redis:6379 Jwt__Key: "${JWT_KEY:-dev-jwt-key-CHANGE-THIS-IN-PRODUCTION-min32chars}" @@ -36,6 +36,9 @@ services: Cors__Origins__1: "${CORS_ORIGIN_0:-http://localhost:3101}" Kavenegar__ApiKey: "${KAVENEGAR_API_KEY:-}" Kavenegar__SenderNumber: "${KAVENEGAR_SENDER:-90005671}" + Seed__SystemAdminPhone: "${SEED_ADMIN_PHONE:-}" + Seed__SystemAdminUsername: "${SEED_ADMIN_USERNAME:-admin}" + Seed__SystemAdminPassword: "${SEED_ADMIN_PASSWORD:-}" ports: - "${ADMIN_API_PORT:-5081}:8080" healthcheck: diff --git a/docker-compose.yml b/docker-compose.yml index 66cc9aa..a469263 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -92,6 +92,9 @@ services: Snappfood__WebhookSecret: "${SNAPPFOOD_WEBHOOK_SECRET:-meezi-dev-snappfood-secret}" ZarinPal__MerchantId: "${ZARINPAL_MERCHANT_ID:-}" ZarinPal__Sandbox: "${ZARINPAL_SANDBOX:-true}" + Seed__SystemAdminPhone: "${SEED_ADMIN_PHONE:-}" + Seed__SystemAdminUsername: "${SEED_ADMIN_USERNAME:-admin}" + Seed__SystemAdminPassword: "${SEED_ADMIN_PASSWORD:-}" ports: - "${API_PORT:-5080}:8080" volumes: