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:
parent
c74e5ec15e
commit
c6310ec359
79
.gitignore
vendored
Normal file
79
.gitignore
vendored
Normal 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
|
14
Makefile
14
Makefile
@ -2,7 +2,7 @@
|
|||||||
# Автор: Сергей Антропов
|
# Автор: Сергей Антропов
|
||||||
# Сайт: https://devops.org.ru
|
# Сайт: 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
|
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}'
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-15s$(NC) %s\n", $$1, $$2}'
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "$(YELLOW)Примеры использования:$(NC)"
|
@echo "$(YELLOW)Примеры использования:$(NC)"
|
||||||
|
@echo " make setup # Настроить переменные окружения"
|
||||||
@echo " make build # Собрать образ"
|
@echo " make build # Собрать образ"
|
||||||
@echo " make up # Запустить сервисы"
|
@echo " make up # Запустить сервисы"
|
||||||
@echo " make down # Остановить сервисы"
|
@echo " make down # Остановить сервисы"
|
||||||
@echo " make restart # Перезапустить сервисы"
|
@echo " make restart # Перезапустить сервисы"
|
||||||
@echo " make logs # Показать логи"
|
@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 образ
|
build: ## Собрать Docker образ
|
||||||
@echo "$(GREEN)Сборка Docker образа...$(NC)"
|
@echo "$(GREEN)Сборка Docker образа...$(NC)"
|
||||||
docker-compose -f $(COMPOSE_FILE) build --no-cache
|
docker-compose -f $(COMPOSE_FILE) build --no-cache
|
||||||
|
41
README.md
41
README.md
@ -33,6 +33,12 @@ cd logboard_plus
|
|||||||
# Показать доступные команды
|
# Показать доступные команды
|
||||||
make help
|
make help
|
||||||
|
|
||||||
|
# Настроить переменные окружения
|
||||||
|
make setup
|
||||||
|
|
||||||
|
# Отредактировать .env файл под свои нужды (опционально)
|
||||||
|
# nano .env
|
||||||
|
|
||||||
# Собрать и запустить проект
|
# Собрать и запустить проект
|
||||||
make build
|
make build
|
||||||
make up
|
make up
|
||||||
@ -46,6 +52,7 @@ http://localhost:9001
|
|||||||
| Команда | Описание |
|
| Команда | Описание |
|
||||||
|---------|----------|
|
|---------|----------|
|
||||||
| `make help` | Показать справку по всем командам |
|
| `make help` | Показать справку по всем командам |
|
||||||
|
| `make setup` | Настроить переменные окружения (копировать env.example в .env) |
|
||||||
| `make build` | Собрать Docker образ |
|
| `make build` | Собрать Docker образ |
|
||||||
| `make up` | Запустить сервисы в фоновом режиме |
|
| `make up` | Запустить сервисы в фоновом режиме |
|
||||||
| `make down` | Остановить и удалить сервисы |
|
| `make down` | Остановить и удалить сервисы |
|
||||||
@ -58,6 +65,36 @@ http://localhost:9001
|
|||||||
| `make dev` | Запуск в режиме разработки (с выводом логов) |
|
| `make dev` | Запуск в режиме разработки (с выводом логов) |
|
||||||
| `make rebuild` | Пересобрать и запустить сервисы |
|
| `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
|
```bash
|
||||||
@ -65,6 +102,10 @@ http://localhost:9001
|
|||||||
unzip logboard_plus_fanin_groups.zip
|
unzip logboard_plus_fanin_groups.zip
|
||||||
cd logboard_plus
|
cd logboard_plus
|
||||||
|
|
||||||
|
# Настроить переменные окружения
|
||||||
|
cp env.example .env
|
||||||
|
# Отредактировать .env файл
|
||||||
|
|
||||||
# Запуск через docker-compose
|
# Запуск через docker-compose
|
||||||
docker compose up --build -d
|
docker compose up --build -d
|
||||||
|
|
||||||
|
@ -5,15 +5,34 @@ services:
|
|||||||
build: .
|
build: .
|
||||||
container_name: logboard
|
container_name: logboard
|
||||||
environment:
|
environment:
|
||||||
LOGBOARD_PORT: "9001"
|
LOGBOARD_PORT: ${LOGBOARD_PORT:-9001}
|
||||||
LOGBOARD_TAIL: "500"
|
LOGBOARD_TAIL: ${LOGBOARD_TAIL:-500}
|
||||||
LOGBOARD_USER: "admin"
|
LOGBOARD_USER: ${LOGBOARD_USER:-admin}
|
||||||
LOGBOARD_PASS: "s3cret-change-me"
|
LOGBOARD_PASS: ${LOGBOARD_PASS:-s3cret-change-me}
|
||||||
# COMPOSE_PROJECT_NAME: "myproj" # filter only this compose stack
|
COMPOSE_PROJECT_NAME: ${COMPOSE_PROJECT_NAME:-}
|
||||||
LOGBOARD_SNAPSHOT_DIR: "/app/snapshots"
|
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:
|
ports:
|
||||||
- "9001:9001"
|
- "${LOGBOARD_PORT:-9001}:${LOGBOARD_PORT:-9001}"
|
||||||
volumes:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
- ./snapshots:/app/snapshots
|
- ./snapshots:${LOGBOARD_SNAPSHOT_DIR:-/app/snapshots}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
50
env.example
Normal file
50
env.example
Normal 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=
|
Loading…
x
Reference in New Issue
Block a user