Files
2026-09-30 15:05:05 +03:00

61 lines
2.3 KiB
YAML

services:
app:
build:
context: .
ports:
- "${APP_BIND_ADDRESS:-127.0.0.1}:${APP_PORT:-8080}:8080"
env_file:
- .env
environment:
ASPNETCORE_HTTP_PORTS: "8080"
Security__RequireHttps: "${REQUIRE_HTTPS:-true}"
Security__DataProtectionKeysPath: /app/keys
Security__KnownProxies__0: "${REVERSE_PROXY_IP:-127.0.0.1}"
Security__CookieHours: "${COOKIE_HOURS:-8}"
Security__RevalidationMinutes: "${AUTH_REVALIDATION_MINUTES:-5}"
Database__InitializeOnStartup: "${DATABASE_INITIALIZE_ON_STARTUP:-true}"
Planner__DefaultRepetitions: "${PLANNER_DEFAULT_REPETITIONS:-10}"
Planner__DefaultWorkoutName: "${PLANNER_DEFAULT_WORKOUT_NAME:-Тренировка}"
Planner__DefaultWorkoutDuration: "${PLANNER_DEFAULT_WORKOUT_DURATION:-1 час}"
Planner__DefaultIntensityPercent: "${PLANNER_DEFAULT_INTENSITY_PERCENT:-80}"
Planner__AutosaveDelayMilliseconds: "${PLANNER_AUTOSAVE_DELAY_MS:-1200}"
ConnectionStrings__TrainingDatabase: "Host=database;Database=${POSTGRES_DB:?Set POSTGRES_DB};Username=${POSTGRES_USER:?Set POSTGRES_USER};Password=${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD}"
Planner__DefaultWeekCount: "${PLANNER_DEFAULT_WEEK_COUNT:-4}"
Planner__DefaultSetsCount: "${PLANNER_DEFAULT_SETS_COUNT:-3}"
Planner__DefaultRestMinutes: "${PLANNER_DEFAULT_REST_MINUTES:-1.5}"
BootstrapTrainer__UserName: "${BOOTSTRAP_TRAINER_USERNAME:-}"
BootstrapTrainer__Password: "${BOOTSTRAP_TRAINER_PASSWORD:-}"
volumes:
- data_protection_keys:/app/keys
depends_on:
database:
condition: service_healthy
networks:
- training
restart: unless-stopped
database:
image: "${POSTGRES_IMAGE:-postgres:18}"
environment:
POSTGRES_DB: "${POSTGRES_DB:?Set POSTGRES_DB}"
POSTGRES_USER: "${POSTGRES_USER:?Set POSTGRES_USER}"
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD}"
volumes:
- postgres_data:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U \"$$POSTGRES_USER\" -d \"$$POSTGRES_DB\""]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- training
restart: unless-stopped
networks:
training:
volumes:
postgres_data:
data_protection_keys: