баг-фикс 30/34

This commit is contained in:
Zuev
2026-07-19 14:40:43 +03:00
parent 3d798c13e3
commit bc0e1ab1b4
172 changed files with 13431 additions and 2910 deletions

View File

@@ -1,36 +1,67 @@
services:
backend:
container_name: backend
restart: always
restart: unless-stopped
build:
context: ./backend
dockerfile: Dockerfile
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB:-app_db}
POSTGRES_USER: ${POSTGRES_USER:-myuser}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD должен быть задан в .env}
JWT_SECRET: ${JWT_SECRET:?JWT_SECRET должен быть задан в .env}
JWT_ACCESS_TOKEN_TTL: ${JWT_ACCESS_TOKEN_TTL:-15m}
JWT_REFRESH_TOKEN_TTL: ${JWT_REFRESH_TOKEN_TTL:-7d}
JWT_REFRESH_COOKIE_NAME: ${JWT_REFRESH_COOKIE_NAME:-magistr_refresh}
JWT_REFRESH_COOKIE_SECURE: ${JWT_REFRESH_COOKIE_SECURE:-false}
JWT_REFRESH_CLEANUP_ENABLED: ${JWT_REFRESH_CLEANUP_ENABLED:-true}
JWT_REFRESH_CLEANUP_RETENTION: ${JWT_REFRESH_CLEANUP_RETENTION:-30d}
JWT_REFRESH_CLEANUP_BATCH_SIZE: ${JWT_REFRESH_CLEANUP_BATCH_SIZE:-500}
JWT_REFRESH_CLEANUP_MAX_BATCHES: ${JWT_REFRESH_CLEANUP_MAX_BATCHES:-20}
JWT_REFRESH_CLEANUP_INTERVAL_MS: ${JWT_REFRESH_CLEANUP_INTERVAL_MS:-3600000}
JWT_REFRESH_CLEANUP_INITIAL_DELAY_MS: ${JWT_REFRESH_CLEANUP_INITIAL_DELAY_MS:-60000}
LOGIN_RATE_MAX_FAILURES: ${LOGIN_RATE_MAX_FAILURES:-5}
LOGIN_RATE_ATTEMPT_WINDOW: ${LOGIN_RATE_ATTEMPT_WINDOW:-15m}
LOGIN_RATE_BASE_BLOCK_DURATION: ${LOGIN_RATE_BASE_BLOCK_DURATION:-1m}
LOGIN_RATE_MAX_BLOCK_DURATION: ${LOGIN_RATE_MAX_BLOCK_DURATION:-15m}
LOGIN_AUDIT_CLEANUP_ENABLED: ${LOGIN_AUDIT_CLEANUP_ENABLED:-true}
LOGIN_AUDIT_RETENTION: ${LOGIN_AUDIT_RETENTION:-90d}
LOGIN_AUDIT_CLEANUP_BATCH_SIZE: ${LOGIN_AUDIT_CLEANUP_BATCH_SIZE:-500}
LOGIN_AUDIT_CLEANUP_MAX_BATCHES: ${LOGIN_AUDIT_CLEANUP_MAX_BATCHES:-20}
LOGIN_AUDIT_CLEANUP_INTERVAL_MS: ${LOGIN_AUDIT_CLEANUP_INTERVAL_MS:-86400000}
LOGIN_AUDIT_CLEANUP_INITIAL_DELAY_MS: ${LOGIN_AUDIT_CLEANUP_INITIAL_DELAY_MS:-120000}
TRUSTED_PROXY_CIDRS: ${TRUSTED_PROXY_CIDRS:-172.16.0.0/12}
BUSINESS_TIME_ZONE: ${BUSINESS_TIME_ZONE:-Europe/Moscow}
TZ: ${TZ:-Europe/Moscow}
JAVA_TOOL_OPTIONS: -Duser.timezone=${TZ:-Europe/Moscow}
OTEL_SDK_DISABLED: ${OTEL_SDK_DISABLED:-true}
depends_on:
db:
condition: service_healthy
healthcheck:
test: [ "CMD-SHELL", "wget --quiet --spider http://127.0.0.1:8080/actuator/health/liveness" ]
interval: 5s
timeout: 3s
retries: 12
start_period: 20s
networks:
- proxy
- magistr
frontend:
container_name: frontend
restart: always
restart: unless-stopped
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "${HTTP_PORT:-80}:80"
networks:
- proxy
- magistr
depends_on:
- backend
backend:
condition: service_healthy
db:
image: postgres:alpine3.23
container_name: db
restart: always
ports:
- "5432:5432"
image: postgres:16.3-alpine3.20
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-myuser}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD должен быть задан в .env}
@@ -41,8 +72,13 @@ services:
timeout: 5s
retries: 5
networks:
- proxy
- magistr
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
proxy:
external: true
magistr:
driver: bridge
volumes:
postgres_data: