services: app: container_name: UniVerse image: git.zetcraft.ru/serega404/universe/backend:main restart: always ports: - "8080:8080" environment: - ASPNETCORE_FORWARDEDHEADERS_ENABLED=true - AzureAd:Instance=${AzureAd_Instance:-https://login.microsoftonline.com/} - AzureAd:TenantId=${AzureAd_TenantId:-sfedu.ru} - AzureAd:ClientId=${AzureAd_ClientId} - AzureAd:ClientSecret=${AzureAd_ClientSecret} - AzureAd:Domain=${AzureAd_Domain:-sfedu.onmicrosoft.com} - AzureAd:CallbackPath=${AzureAd_CallbackPath:-/signin-oidc} # https:///api/v1/auth/callback/microsoft - AzureAd:RedirectUri=${AzureAd_RedirectUri} - AzureAd:PostLoginRedirectUri=${AzureAd_PostLoginRedirectUri:-} - Jwt:Secret=${JWT_SECRET} - Jwt:Issuer=${JWT_ISSUER:-UniVerse} - Jwt:Audience=${JWT_AUDIENCE:-UniVerse} - Jwt:AccessTokenExpirationMinutes=${JWT_ACCESS_TOKEN_EXPIRATION_MINUTES:-30} - Jwt:RefreshTokenExpirationDays=${JWT_REFRESH_TOKEN_EXPIRATION_DAYS:-30} - Cors:Origins=${CORS_ALLOWED_ORIGINS:-http://localhost:3000} - RateLimiting:PermitLimit=${RATE_LIMITING_PERMIT_LIMIT:-600} - RateLimiting:WindowSeconds=${RATE_LIMITING_WINDOW_SECONDS:-60} - RateLimiting:QueueLimit=${RATE_LIMITING_QUEUE_LIMIT:-100} - Llm:BaseUrl=${LLM_BASE_URL} - Llm:ApiKey=${LLM_API_KEY} - Llm:Model=${LLM_MODEL} - ModeusApi:BaseUrl=${MODEUS_API_BASE_URL} - ModeusApi:ApiKey=${MODEUS_API_KEY} - Email:Smtp:Host=${EMAIL_SMTP_HOST} - Email:Smtp:Port=${EMAIL_SMTP_PORT:-587} - Email:Smtp:EnableSsl=${EMAIL_SMTP_ENABLE_SSL:-true} - Email:Smtp:UserName=${EMAIL_SMTP_USERNAME} - Email:Smtp:Password=${EMAIL_SMTP_PASSWORD} - Email:Smtp:FromAddress=${EMAIL_SMTP_FROM_ADDRESS:-no-reply@universe.local} - Email:Smtp:FromName=${EMAIL_SMTP_FROM_NAME:-UniVerse} - ConnectionStrings:DefaultConnection=Host=db;Port=5432;Database=${POSTGRES_DATABASE:-universe};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD} networks: - backend - frontend db: image: postgres:18-alpine restart: always ports: - "5432" volumes: - database_data:/var/lib/postgresql environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DATABASE:-universe} networks: - backend healthcheck: test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}" ] interval: 10s timeout: 5s retries: 3 start_period: 30s frontend: image: git.zetcraft.ru/serega404/universe/frontend:main restart: unless-stopped ports: - "80" networks: - frontend networks: frontend: backend: