- Создан LogBoard клиент для отправки логов с удаленных серверов - Добавлен API эндпоинт /api/logs/remote с аутентификацией - Реализована структурированная система сохранения логов - Исправлена совместимость Docker client библиотеки - Добавлена полная документация и тестирование
84 lines
3.5 KiB
Python
84 lines
3.5 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
LogBoard+ - Конфигурация приложения
|
||
Автор: Сергей Антропов
|
||
Сайт: https://devops.org.ru
|
||
"""
|
||
|
||
import os
|
||
from fastapi.templating import Jinja2Templates
|
||
|
||
# Настройки приложения
|
||
APP_PORT = int(os.getenv("LOGBOARD_PORT", "9001"))
|
||
DEFAULT_TAIL = int(os.getenv("LOGBOARD_TAIL", "500"))
|
||
DEFAULT_PROJECT = os.getenv("COMPOSE_PROJECT_NAME", "")
|
||
DEFAULT_PROJECTS = os.getenv("LOGBOARD_PROJECTS", "")
|
||
SKIP_UNHEALTHY = os.getenv("LOGBOARD_SKIP_UNHEALTHY", "true").lower() == "true"
|
||
CONTAINER_LIST_TIMEOUT = int(os.getenv("LOGBOARD_CONTAINER_LIST_TIMEOUT", "10"))
|
||
CONTAINER_INFO_TIMEOUT = int(os.getenv("LOGBOARD_CONTAINER_INFO_TIMEOUT", "3"))
|
||
HEALTH_CHECK_TIMEOUT = int(os.getenv("LOGBOARD_HEALTH_CHECK_TIMEOUT", "2"))
|
||
|
||
# Настройки безопасности
|
||
SECRET_KEY = os.getenv("SECRET_KEY", "your-secret-key-here")
|
||
ENCRYPTION_KEY = os.getenv("ENCRYPTION_KEY", "your-encryption-key-here")
|
||
ALGORITHM = "HS256"
|
||
ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("SESSION_TIMEOUT", "3600")) // 60 # 1 час по умолчанию
|
||
|
||
# Настройки пользователей
|
||
ADMIN_USERNAME = os.getenv("LOGBOARD_USER", "admin")
|
||
ADMIN_PASSWORD = os.getenv("LOGBOARD_PASS", "admin")
|
||
|
||
# Настройки AJAX обновления
|
||
AJAX_UPDATE_INTERVAL = int(os.getenv("LOGBOARD_AJAX_UPDATE_INTERVAL", "2000"))
|
||
|
||
# Настройки режима отладки
|
||
DEBUG_MODE = os.getenv("DEBUG_MODE", "false").lower() == "true"
|
||
|
||
# Инициализация шаблонов
|
||
templates = Jinja2Templates(directory="/app/templates")
|
||
|
||
# Директории
|
||
SNAP_DIR = os.getenv("LOGBOARD_SNAPSHOT_DIR", "/app/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_LEVEL = os.getenv("LOG_LEVEL", "INFO")
|
||
LOG_FORMAT = os.getenv("LOG_FORMAT", "json")
|
||
|
||
# Настройки API ключей для удаленных клиентов
|
||
LOGBOARD_API_KEYS = os.getenv("LOGBOARD_API_KEYS", "")
|
||
LOGBOARD_DEFAULT_API_KEY = os.getenv("LOGBOARD_DEFAULT_API_KEY", "dev-key-123")
|
||
|
||
# Временная зона
|
||
TZ_TS = os.getenv("TZ_TS", "Europe/Moscow")
|