Files
DevOpsLab/app/core/config.py
Сергей Антропов 1fbf9185a2 feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile
- Добавлена колонка 'Тип' во все таблицы истории сборок
- Для push операций отображается registry вместо платформ
- Сохранение пользователя при создании push лога
- Исправлена ошибка с logger в push_docker_image endpoint
- Улучшено отображение истории сборок с визуальными индикаторами
2026-02-15 22:59:02 +03:00

65 lines
1.6 KiB
Python

"""
Конфигурация приложения
Автор: Сергей Антропов
Сайт: https://devops.org.ru
"""
from pydantic_settings import BaseSettings
from pathlib import Path
from typing import Optional
class Settings(BaseSettings):
"""Настройки приложения"""
# Проект
PROJECT_ROOT: Path = Path("/workspace")
PROJECT_NAME: str = "devops-lab"
# FastAPI
API_HOST: str = "0.0.0.0"
API_PORT: int = 8000
API_RELOAD: bool = True
API_WORKERS: int = 1
# База данных
DATABASE_URL: str = "sqlite:///./devopslab.db"
# Redis
REDIS_URL: str = "redis://localhost:6379/0"
# Безопасность
SECRET_KEY: str = "dev-secret-key-change-in-production"
ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
# Docker
DOCKER_HOST: str = "unix:///var/run/docker.sock"
DOCKER_BUILDER_URL: str = "http://docker-builder:8001"
# Проверка доступности Docker socket
@property
def docker_available(self) -> bool:
"""Проверка доступности Docker"""
from pathlib import Path
docker_sock = Path("/var/run/docker.sock")
return docker_sock.exists() and docker_sock.is_socket()
# Ansible
ANSIBLE_FORCE_COLOR: str = "1"
ANSIBLE_STDOUT_CALLBACK: str = "yaml"
# Логирование
LOG_LEVEL: str = "INFO"
LOG_FILE: Optional[str] = "logs/app.log"
# Отладка
DEBUG: bool = False
class Config:
env_file = ".env"
case_sensitive = True
settings = Settings()