# Meezi admin stack — overlay on top of main compose # # Requires main stack (postgres + redis) to be running. # Usage: # docker compose -f docker-compose.yml -f docker-compose.admin.yml up -d --build # # URLs: # Admin panel http://SERVER:3102/fa/admin/login # Admin API http://SERVER:5081/swagger services: admin-api: build: context: . dockerfile: docker/admin-api/Dockerfile extra_hosts: - "mirror:host-gateway" args: DOTNET_SDK_IMAGE: ${DOTNET_SDK_IMAGE:-171.22.25.73:5002/dotnet/sdk:10.0} DOTNET_ASPNET_IMAGE: ${DOTNET_ASPNET_IMAGE:-mcr-mirror.liara.ir/dotnet/aspnet:10.0} container_name: meezi-admin-api restart: unless-stopped depends_on: postgres: condition: service_healthy redis: condition: service_healthy environment: ASPNETCORE_ENVIRONMENT: "${ASPNETCORE_ENVIRONMENT:-Development}" ASPNETCORE_URLS: http://+:8080 RUN_MIGRATIONS: "false" 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}" Cors__Origins__0: "${CORS_ADMIN_ORIGIN_0:-http://localhost:3102}" Cors__Origins__1: "${CORS_ORIGIN_0:-http://localhost:3101}" Kavenegar__ApiKey: "${KAVENEGAR_API_KEY:-}" Kavenegar__SenderNumber: "${KAVENEGAR_SENDER:-90005671}" ports: - "${ADMIN_API_PORT:-5081}:8080" healthcheck: test: ["CMD-SHELL", "bash -c 'cat /dev/tcp/127.0.0.1/8080' || exit 1"] interval: 10s timeout: 5s retries: 12 start_period: 40s admin-web: build: context: . dockerfile: docker/admin-web/Dockerfile extra_hosts: - "mirror:host-gateway" args: NODE_IMAGE: ${NODE_IMAGE:-171.22.25.73:5000/library/node:20-alpine} NPM_REGISTRY: ${NPM_REGISTRY:-http://mirror:8081/repository/npm-group/} NEXT_PUBLIC_ADMIN_API_URL: ${NEXT_PUBLIC_ADMIN_API_URL:-http://localhost:5081} container_name: meezi-admin-web restart: unless-stopped depends_on: admin-api: condition: service_healthy environment: PORT: "3000" HOSTNAME: 0.0.0.0 ports: - "${ADMIN_WEB_PORT:-3102}:3000"