diff --git a/app/core/config.py b/app/core/config.py index ef4fb17..55c74d2 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -21,6 +21,7 @@ HEALTH_CHECK_TIMEOUT = int(os.getenv("LOGBOARD_HEALTH_CHECK_TIMEOUT", "2")) # Настройки безопасности SECRET_KEY = os.getenv("SECRET_KEY", "your-secret-key-here-change-in-production") +ENCRYPTION_KEY = os.getenv("ENCRYPTION_KEY", "your-encryption-key-here-change-in-production") ALGORITHM = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("SESSION_TIMEOUT", "3600")) // 60 # 1 час по умолчанию @@ -40,3 +41,38 @@ templates = Jinja2Templates(directory="app/templates") # Директории SNAP_DIR = os.getenv("LOGBOARD_SNAPSHOT_DIR", "./snapshots") STATIC_DIR = os.getenv("LOGBOARD_STATIC_DIR", "./app/static") +INDEX_HTML = os.getenv("LOGBOARD_INDEX_HTML", "./app/templates/index.html") + +# Настройки веб-интерфейса +WEB_TITLE = os.getenv("WEB_TITLE", "LogBoard+") +WEB_DESCRIPTION = os.getenv("WEB_DESCRIPTION", "Веб-панель для просмотра логов микросервисов") +WEB_VERSION = os.getenv("WEB_VERSION", "1.0.0") + +# Настройки производительности +MAX_CONNECTIONS = int(os.getenv("MAX_CONNECTIONS", "100")) +CONNECTION_TIMEOUT = int(os.getenv("CONNECTION_TIMEOUT", "30")) +READ_TIMEOUT = int(os.getenv("READ_TIMEOUT", "60")) + +# Настройки аутентификации +AUTH_ENABLED = os.getenv("AUTH_ENABLED", "true").lower() == "true" +AUTH_METHOD = os.getenv("AUTH_METHOD", "jwt") + +# Настройки уведомлений +NOTIFICATIONS_ENABLED = os.getenv("NOTIFICATIONS_ENABLED", "false").lower() == "true" +SMTP_HOST = os.getenv("SMTP_HOST", "") +SMTP_PORT = int(os.getenv("SMTP_PORT", "587")) +SMTP_USER = os.getenv("SMTP_USER", "") +SMTP_PASS = os.getenv("SMTP_PASS", "") +SMTP_FROM = os.getenv("SMTP_FROM", "") + +# Настройки Docker +DOCKER_HOST = os.getenv("DOCKER_HOST", "unix:///var/run/docker.sock") +DOCKER_TLS_VERIFY = os.getenv("DOCKER_TLS_VERIFY", "") +DOCKER_CERT_PATH = os.getenv("DOCKER_CERT_PATH", "") +DOCKER_NETWORKS = os.getenv("DOCKER_NETWORKS", "iaas,infrastructure_iaas") + +# Настройки логирования +LOG_FORMAT = os.getenv("LOG_FORMAT", "json") + +# Временная зона +TZ_TS = os.getenv("TZ_TS", "Europe/Moscow") diff --git a/docker-compose.yml b/docker-compose.yml index be55b4a..d1d656f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,82 +2,20 @@ services: logboard: build: . container_name: logboard - environment: - # Основные настройки приложения - LOGBOARD_PORT: ${LOGBOARD_PORT:-9001} - LOGBOARD_TAIL: ${LOGBOARD_TAIL:-500} - LOGBOARD_USER: ${LOGBOARD_USER:-admin} - LOGBOARD_PASS: ${LOGBOARD_PASS:-admin} - LOGBOARD_PROJECTS: ${LOGBOARD_PROJECTS:-} - LOGBOARD_SNAPSHOT_DIR: ${LOGBOARD_SNAPSHOT_DIR:-/app/snapshots} - LOGBOARD_INDEX_HTML: ${LOGBOARD_INDEX_HTML:-./templates/index.html} - TZ_TS: ${TZ_TS:-Europe/Moscow} - - # Настройки безопасности - SECRET_KEY: ${SECRET_KEY:-your-secret-key-here} - ENCRYPTION_KEY: ${ENCRYPTION_KEY:-your-encryption-key-here} - - # Настройки логирования - LOG_LEVEL: ${LOG_LEVEL:-INFO} - LOG_FORMAT: ${LOG_FORMAT:-json} - - # Настройки веб-интерфейса - WEB_TITLE: ${WEB_TITLE:-LogBoard+} - WEB_DESCRIPTION: ${WEB_DESCRIPTION:-Веб-панель для просмотра логов микросервисов} - WEB_VERSION: ${WEB_VERSION:-1.0.0} - - # Настройки производительности - MAX_CONNECTIONS: ${MAX_CONNECTIONS:-100} - CONNECTION_TIMEOUT: ${CONNECTION_TIMEOUT:-30} - READ_TIMEOUT: ${READ_TIMEOUT:-60} - - # Настройки аутентификации - AUTH_ENABLED: ${AUTH_ENABLED:-true} - AUTH_METHOD: ${AUTH_METHOD:-jwt} - SESSION_TIMEOUT: ${SESSION_TIMEOUT:-3600} - - # Настройки уведомлений - NOTIFICATIONS_ENABLED: ${NOTIFICATIONS_ENABLED:-false} - SMTP_HOST: ${SMTP_HOST:-} - SMTP_PORT: ${SMTP_PORT:-587} - SMTP_USER: ${SMTP_USER:-} - SMTP_PASS: ${SMTP_PASS:-} - SMTP_FROM: ${SMTP_FROM:-} - - # Настройки Docker - DOCKER_HOST: ${DOCKER_HOST:-unix:///var/run/docker.sock} - DOCKER_TLS_VERIFY: ${DOCKER_TLS_VERIFY:-} - DOCKER_CERT_PATH: ${DOCKER_CERT_PATH:-} - DOCKER_NETWORKS: ${DOCKER_NETWORKS:-iaas,infrastructure_iaas} - - # Настройки фильтрации контейнеров - LOGBOARD_SKIP_UNHEALTHY: ${LOGBOARD_SKIP_UNHEALTHY:-true} - LOGBOARD_CONTAINER_LIST_TIMEOUT: ${LOGBOARD_CONTAINER_LIST_TIMEOUT:-10} - LOGBOARD_CONTAINER_INFO_TIMEOUT: ${LOGBOARD_CONTAINER_INFO_TIMEOUT:-3} - LOGBOARD_HEALTH_CHECK_TIMEOUT: ${LOGBOARD_HEALTH_CHECK_TIMEOUT:-2} - - # Настройки AJAX обновления - LOGBOARD_AJAX_UPDATE_INTERVAL: ${LOGBOARD_AJAX_UPDATE_INTERVAL:-2000} - - # Настройки режима отладки - DEBUG_MODE: ${DEBUG_MODE:-false} - + env_file: + - .env ports: - - "${LOGBOARD_PORT:-9001}:${LOGBOARD_PORT:-9001}" - + - "${LOGBOARD_PORT}:${LOGBOARD_PORT}" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./snapshots:/app/snapshots - ./:/app - restart: unless-stopped user: 0:0 - networks: - iaas - infrastructure_iaas - networks: iaas: external: true diff --git a/env.example b/env.example index 6eac9fe..37e1c27 100644 --- a/env.example +++ b/env.example @@ -37,12 +37,12 @@ TZ_TS=Europe/Moscow # Фильтр по проекту Docker Compose (опционально) # Если указано, будут показаны только контейнеры из этого проекта -# COMPOSE_PROJECT_NAME=myproj +COMPOSE_PROJECT_NAME=myproj # Настройки множественных проектов # Укажите проекты через запятую для отображения контейнеров из нескольких проектов # Если не указано или пустое значение - показываются ВСЕ контейнеры из всех проектов -# LOGBOARD_PROJECTS=project1,project2,project3 +LOGBOARD_PROJECTS= # Путь к Docker socket для подключения к Docker daemon DOCKER_HOST=unix:///var/run/docker.sock @@ -102,9 +102,6 @@ WEB_VERSION=1.0.0 # В продакшене обязательно установите в false DEBUG_MODE=false -# Уровень логирования (DEBUG, INFO, WARNING, ERROR, CRITICAL) -LOG_LEVEL=INFO - # ============================================================================= # НАСТРОЙКИ ПРОИЗВОДИТЕЛЬНОСТИ # =============================================================================