feat: добавлен env.example и команда make setup

- Создан файл env.example с полным набором переменных окружения
- Добавлена команда make setup для копирования env.example в .env
- Обновлен docker-compose.yml для использования переменных из .env
- Добавлен .gitignore для исключения .env и временных файлов
- Обновлен README.md с инструкциями по настройке переменных окружения
- Добавлена таблица основных переменных окружения
- Автор: Сергей Антропов (https://devops.org.ru)
This commit is contained in:
Сергей Антропов 2025-08-16 11:19:00 +03:00
parent c74e5ec15e
commit c6310ec359
5 changed files with 210 additions and 9 deletions

79
.gitignore vendored Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

50
env.example Normal file
View File

@ -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=