docs: обновил документацию
🚀 Create and publish a Docker image / Detect changes in backend and frontend (push) Successful in 5s
🚀 Create and publish a Docker image / Build & publish backend image (push) Successful in 44s
🚀 Create and publish a Docker image / Build & publish frontend image (push) Successful in 22s
🚀 Create and publish a Docker image / Update stack on Portainer (push) Successful in 3s

This commit is contained in:
2026-05-08 03:02:09 +03:00
parent 444415c84b
commit 3af1932480
4 changed files with 22 additions and 5 deletions
+3 -3
View File
@@ -29,7 +29,7 @@ builder.Services.AddDbContext<AppDbContext>(options =>
npgsql =>
{
npgsql.EnableRetryOnFailure(3);
npgsql.MigrationsAssembly("UniVerse.Infrastructure");
npgsql.MigrationsAssembly("UniVerse.Infrastructure"); // Указывает EF Core, в какой сборке искать/хранить миграции.
});
});
@@ -50,7 +50,7 @@ builder.Services.AddAuthentication(options =>
ValidIssuer = builder.Configuration["Jwt:Issuer"],
ValidAudience = builder.Configuration["Jwt:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Secret"] ?? "default-dev-secret-key-change-in-production-32chars!!"))
Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Secret"]!))
};
});
builder.Services.AddAuthorization();
@@ -114,7 +114,7 @@ builder.Services.AddSwaggerGen(options =>
{
Title = "UniVerse API",
Version = "v1",
Description = "University schedule, reviews, and gamification platform"
Description = "Universe"
});
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
-61
View File
@@ -1,61 +0,0 @@
services:
app:
container_name: UniVerse
image: git.zetcraft.ru/serega404/universe/backend:main
restart: always
ports:
- "8088: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}
- 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}
- 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}
- Gamification:XpThresholds=${GAMIFICATION_XP_THRESHOLDS:-[0, 100, 300, 600, 1000, 1500, 2500, 4000]}
- ConnectionStrings:DefaultConnection=Host=db;Port=5432;Database=${POSTGRES_DATABASE:-universe};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD}
networks:
- backend
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
networks:
frontend:
backend:
-56
View File
@@ -1,56 +0,0 @@
services:
app:
container_name: UniVerse
build:
context: ./backend
dockerfile: Dockerfile
restart: always
ports:
- "8088:8080"
environment:
- ASPNETCORE_ENVIRONMENT=Development
- 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}
- Jwt:Secret=${JWT_SECRET}
- Jwt:Issuer=${JWT_ISSUER:-UniVerse}
- Jwt:Audience=${JWT_AUDIENCE:-UniVerse}
- Jwt:AccessTokenExpirationMinutes=${JWT_EXPIRE_DAYS:-30}
- Jwt:RefreshTokenExpirationDays=${JWT_EXPIRE_DAYS:-30}
- Cors:Origins=${CORS_ALLOWED_ORIGINS:-http://localhost:3000}
- 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}
- Gamification:XpThresholds=${GAMIFICATION_XP_THRESHOLDS:-[0, 100, 300, 600, 1000, 1500, 2500, 4000]}
- ConnectionStrings:DefaultConnection=Host=db;Port=5432;Database=${POSTGRES_DATABASE};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD}
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}
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}" ]
interval: 10s
timeout: 5s
retries: 3
start_period: 30s