2026-05-28 18:54:55 +03:30
|
|
|
# Meezi admin stack — overlay on top of main compose
|
2026-05-27 21:33:10 +03:30
|
|
|
#
|
2026-05-28 18:54:55 +03:30
|
|
|
# Requires main stack (postgres + redis) to be running.
|
|
|
|
|
# Usage:
|
2026-05-27 21:33:10 +03:30
|
|
|
# docker compose -f docker-compose.yml -f docker-compose.admin.yml up -d --build
|
|
|
|
|
#
|
|
|
|
|
# URLs:
|
2026-05-28 18:54:55 +03:30
|
|
|
# Admin panel http://SERVER:3102/fa/admin/login
|
|
|
|
|
# Admin API http://SERVER:5081/swagger
|
2026-05-27 21:33:10 +03:30
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
admin-api:
|
|
|
|
|
build:
|
|
|
|
|
context: .
|
|
|
|
|
dockerfile: docker/admin-api/Dockerfile
|
2026-05-28 21:01:43 +03:30
|
|
|
extra_hosts:
|
|
|
|
|
- "mirror:host-gateway"
|
2026-05-27 21:33:10 +03:30
|
|
|
args:
|
2026-05-31 11:06:24 +03:30
|
|
|
DOTNET_SDK_IMAGE: ${DOTNET_SDK_IMAGE:-mirror.soroushasadi.com/dotnet/sdk:10.0}
|
|
|
|
|
DOTNET_ASPNET_IMAGE: ${DOTNET_ASPNET_IMAGE:-mirror.soroushasadi.com/dotnet/aspnet:10.0}
|
2026-05-27 21:33:10 +03:30
|
|
|
container_name: meezi-admin-api
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
depends_on:
|
|
|
|
|
postgres:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
redis:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
environment:
|
2026-06-12 10:16:01 +03:30
|
|
|
ASPNETCORE_ENVIRONMENT: "${ASPNETCORE_ENVIRONMENT:-Production}"
|
2026-05-27 21:33:10 +03:30
|
|
|
ASPNETCORE_URLS: http://+:8080
|
2026-05-31 20:10:56 +03:30
|
|
|
RUN_MIGRATIONS: "${RUN_MIGRATIONS:-true}"
|
2026-05-28 18:54:55 +03:30
|
|
|
ConnectionStrings__DefaultConnection: "${DB_CONNECTION_STRING:-Host=postgres;Port=5432;Database=meezi;Username=meezi;Password=meezi_local_pass}"
|
2026-05-27 21:33:10 +03:30
|
|
|
ConnectionStrings__Redis: redis:6379
|
2026-05-28 18:54:55 +03:30
|
|
|
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:-}"
|
2026-05-29 02:38:06 +03:30
|
|
|
Kavenegar__SenderNumber: "${KAVENEGAR_SENDER:-90005671}"
|
2026-05-31 20:10:56 +03:30
|
|
|
Seed__SystemAdminPhone: "${SEED_ADMIN_PHONE:-}"
|
|
|
|
|
Seed__SystemAdminUsername: "${SEED_ADMIN_USERNAME:-admin}"
|
|
|
|
|
Seed__SystemAdminPassword: "${SEED_ADMIN_PASSWORD:-}"
|
2026-05-27 21:33:10 +03:30
|
|
|
ports:
|
|
|
|
|
- "${ADMIN_API_PORT:-5081}:8080"
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD-SHELL", "bash -c 'cat </dev/null >/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
|
2026-05-28 21:01:43 +03:30
|
|
|
extra_hosts:
|
|
|
|
|
- "mirror:host-gateway"
|
2026-05-27 21:33:10 +03:30
|
|
|
args:
|
2026-05-31 11:06:24 +03:30
|
|
|
NODE_IMAGE: ${NODE_IMAGE:-mirror.soroushasadi.com/node:20-alpine}
|
|
|
|
|
NPM_REGISTRY: ${NPM_REGISTRY:-https://mirror.soroushasadi.com/repository/npm-group/}
|
2026-05-27 21:33:10 +03:30
|
|
|
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"
|