diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..51e4ff9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,79 @@ +# LogBoard+ - .gitignore +# Автор: Сергей Антропов +# Сайт: https://devops.org.ru + +# Переменные окружения +.env +.env.local +.env.production +.env.staging + +# Логи +*.log +logs/ +log/ + +# Временные файлы +*.tmp +*.temp +*.swp +*.swo +*~ + +# Снимки логов +snapshots/ +*.snapshot + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# Virtual environments +venv/ +env/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Docker +.dockerignore + +# Backup files +*.bak +*.backup +*.old diff --git a/Makefile b/Makefile index 177074e..f1f43c9 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # Автор: Сергей Антропов # Сайт: https://devops.org.ru -.PHONY: help build up down restart logs clean status ps shell +.PHONY: help setup build up down restart logs clean status ps shell # Переменные COMPOSE_FILE = docker-compose.yml @@ -21,12 +21,24 @@ help: ## Показать справку по командам @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-15s$(NC) %s\n", $$1, $$2}' @echo "" @echo "$(YELLOW)Примеры использования:$(NC)" + @echo " make setup # Настроить переменные окружения" @echo " make build # Собрать образ" @echo " make up # Запустить сервисы" @echo " make down # Остановить сервисы" @echo " make restart # Перезапустить сервисы" @echo " make logs # Показать логи" +setup: ## Настроить переменные окружения (копировать env.example в .env) + @echo "$(GREEN)Настройка переменных окружения...$(NC)" + @if [ ! -f .env ]; then \ + cp env.example .env; \ + echo "$(GREEN)Файл .env создан из env.example$(NC)"; \ + echo "$(YELLOW)Не забудьте отредактировать .env под свои нужды!$(NC)"; \ + else \ + echo "$(YELLOW)Файл .env уже существует.$(NC)"; \ + echo "$(YELLOW)Для пересоздания удалите .env и запустите make setup$(NC)"; \ + fi + build: ## Собрать Docker образ @echo "$(GREEN)Сборка Docker образа...$(NC)" docker-compose -f $(COMPOSE_FILE) build --no-cache diff --git a/README.md b/README.md index 593c100..335f227 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,12 @@ cd logboard_plus # Показать доступные команды make help +# Настроить переменные окружения +make setup + +# Отредактировать .env файл под свои нужды (опционально) +# nano .env + # Собрать и запустить проект make build make up @@ -46,6 +52,7 @@ http://localhost:9001 | Команда | Описание | |---------|----------| | `make help` | Показать справку по всем командам | +| `make setup` | Настроить переменные окружения (копировать env.example в .env) | | `make build` | Собрать Docker образ | | `make up` | Запустить сервисы в фоновом режиме | | `make down` | Остановить и удалить сервисы | @@ -58,6 +65,36 @@ http://localhost:9001 | `make dev` | Запуск в режиме разработки (с выводом логов) | | `make rebuild` | Пересобрать и запустить сервисы | +### Настройка переменных окружения + +Проект использует файл `.env` для хранения всех настроек. Для настройки: + +1. **Автоматическая настройка:** + ```bash + make setup + ``` + +2. **Ручная настройка:** + ```bash + cp env.example .env + nano .env # или любой другой редактор + ``` + +#### Основные переменные окружения: + +| Переменная | Описание | Значение по умолчанию | +|------------|----------|----------------------| +| `LOGBOARD_PORT` | Порт веб-интерфейса | `9001` | +| `LOGBOARD_USER` | Имя пользователя для Basic Auth | `admin` | +| `LOGBOARD_PASS` | Пароль для Basic Auth | `s3cret-change-me` | +| `LOGBOARD_TAIL` | Количество строк истории | `500` | +| `LOGBOARD_SNAPSHOT_DIR` | Директория для снимков | `/app/snapshots` | +| `COMPOSE_PROJECT_NAME` | Фильтр по проекту Docker Compose | (пусто) | +| `SECRET_KEY` | Секретный ключ для шифрования | `your-secret-key-here` | +| `ENCRYPTION_KEY` | Ключ шифрования | `your-encryption-key-here` | + +**⚠️ Важно:** Измените значения `LOGBOARD_PASS`, `SECRET_KEY` и `ENCRYPTION_KEY` в продакшене! + ### Классический способ ```bash @@ -65,6 +102,10 @@ http://localhost:9001 unzip logboard_plus_fanin_groups.zip cd logboard_plus +# Настроить переменные окружения +cp env.example .env +# Отредактировать .env файл + # Запуск через docker-compose docker compose up --build -d diff --git a/docker-compose.yml b/docker-compose.yml index 1ef13a7..dd85c15 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,15 +5,34 @@ services: build: . container_name: logboard environment: - LOGBOARD_PORT: "9001" - LOGBOARD_TAIL: "500" - LOGBOARD_USER: "admin" - LOGBOARD_PASS: "s3cret-change-me" - # COMPOSE_PROJECT_NAME: "myproj" # filter only this compose stack - LOGBOARD_SNAPSHOT_DIR: "/app/snapshots" + LOGBOARD_PORT: ${LOGBOARD_PORT:-9001} + LOGBOARD_TAIL: ${LOGBOARD_TAIL:-500} + LOGBOARD_USER: ${LOGBOARD_USER:-admin} + LOGBOARD_PASS: ${LOGBOARD_PASS:-s3cret-change-me} + COMPOSE_PROJECT_NAME: ${COMPOSE_PROJECT_NAME:-} + LOGBOARD_SNAPSHOT_DIR: ${LOGBOARD_SNAPSHOT_DIR:-/app/snapshots} + 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:-basic} + 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:-} ports: - - "9001:9001" + - "${LOGBOARD_PORT:-9001}:${LOGBOARD_PORT:-9001}" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - - ./snapshots:/app/snapshots + - ./snapshots:${LOGBOARD_SNAPSHOT_DIR:-/app/snapshots} restart: unless-stopped diff --git a/env.example b/env.example new file mode 100644 index 0000000..7bdc0f2 --- /dev/null +++ b/env.example @@ -0,0 +1,50 @@ +# LogBoard+ - Переменные окружения +# Автор: Сергей Антропов +# Сайт: https://devops.org.ru + +# Основные настройки приложения +LOGBOARD_PORT=9001 +LOGBOARD_TAIL=500 +LOGBOARD_USER=admin +LOGBOARD_PASS=s3cret-change-me + +# Директория для снимков логов +LOGBOARD_SNAPSHOT_DIR=/app/snapshots + +# Фильтр по проекту Docker Compose (опционально) +# COMPOSE_PROJECT_NAME=myproj + +# Настройки Docker +DOCKER_HOST=unix:///var/run/docker.sock + +# Настройки безопасности +# Измените эти значения на свои в продакшене +SECRET_KEY=your-secret-key-here +ENCRYPTION_KEY=your-encryption-key-here + +# Настройки логирования +LOG_LEVEL=INFO +LOG_FORMAT=json + +# Настройки веб-интерфейса +WEB_TITLE=LogBoard+ +WEB_DESCRIPTION=Веб-панель для просмотра логов микросервисов +WEB_VERSION=1.0.0 + +# Настройки производительности +MAX_CONNECTIONS=100 +CONNECTION_TIMEOUT=30 +READ_TIMEOUT=60 + +# Настройки аутентификации +AUTH_ENABLED=true +AUTH_METHOD=basic +SESSION_TIMEOUT=3600 + +# Настройки уведомлений +NOTIFICATIONS_ENABLED=false +SMTP_HOST= +SMTP_PORT=587 +SMTP_USER= +SMTP_PASS= +SMTP_FROM=