Files
LogBoard/Makefile
T
inecs 86a2c44333 docs: Полная переработка документации проекта
- Удалена старая документация с эмодзи
- Создана новая техническая документация на русском языке
- Добавлены подробные руководства:
  * README.md - обзор проекта
  * docs/installation.md - установка и настройка
  * docs/configuration.md - конфигурация
  * docs/api.md - API документация
  * docs/management.md - управление проектом
  * docs/security.md - безопасность
  * docs/troubleshooting.md - устранение неполадок
- Обновлены конфигурационные файлы
- Улучшена структура проекта

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-08-18 22:03:27 +03:00

130 lines
6.1 KiB
Makefile

# Makefile для LogBoard+
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
.PHONY: help setup build up down restart logs clean status ps shell
# Переменные
COMPOSE_FILE = docker-compose.yml
SERVICE_NAME = logboard
# Цвета для вывода
GREEN = \033[0;32m
YELLOW = \033[1;33m
RED = \033[0;31m
NC = \033[0m # No Color
help: ## Показать справку по командам
@echo "$(GREEN)LogBoard+ - Команды управления$(NC)"
@echo ""
@echo "$(YELLOW)Основные команды:$(NC)"
@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)"; \
echo "$(YELLOW)Особенно важны переменные безопасности:$(NC)"; \
echo "$(YELLOW) - LOGBOARD_PASS$(NC)"; \
echo "$(YELLOW) - SECRET_KEY$(NC)"; \
echo "$(YELLOW) - ENCRYPTION_KEY$(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
@echo "$(GREEN)Образ собран успешно!$(NC)"
up: ## Запустить сервисы в фоновом режиме (с правами root)
@echo "$(GREEN)Запуск сервисов с правами root...$(NC)"
@mkdir -p snapshots
docker compose -f $(COMPOSE_FILE) up -d
@echo "$(GREEN)Сервисы запущены с правами root!$(NC)"
@if [ -f .env ]; then \
PORT=$$(grep "^LOGBOARD_PORT=" .env | cut -d'=' -f2 || echo "9001"); \
echo "$(YELLOW)Приложение доступно по адресу: http://localhost:$$PORT$(NC)"; \
else \
echo "$(YELLOW)Приложение доступно по адресу: http://localhost:9001$(NC)"; \
fi
down: ## Остановить и удалить сервисы (с правами root)
@echo "$(YELLOW)Остановка сервисов с правами root...$(NC)"
docker compose -f $(COMPOSE_FILE) down
@echo "$(GREEN)Сервисы с правами root остановлены!$(NC)"
restart: ## Перезапустить сервисы (с правами root)
@echo "$(YELLOW)Перезапуск сервисов с правами root...$(NC)"
docker compose -f $(COMPOSE_FILE) restart
@echo "$(GREEN)Сервисы с правами root перезапущены!$(NC)"
logs: ## Показать логи сервисов
@echo "$(GREEN)Логи сервисов:$(NC)"
docker compose -f $(COMPOSE_FILE) logs -f
clean: ## Остановить сервисы и удалить образы
@echo "$(RED)Очистка проекта...$(NC)"
docker compose -f $(COMPOSE_FILE) down --rmi all --volumes --remove-orphans
@echo "$(GREEN)Очистка завершена!$(NC)"
status: ## Показать статус сервисов
@echo "$(GREEN)Статус сервисов:$(NC)"
docker compose -f $(COMPOSE_FILE) ps
ps: status ## Алиас для команды status
shell: ## Подключиться к контейнеру сервиса
@echo "$(GREEN)Подключение к контейнеру $(SERVICE_NAME)...$(NC)"
docker compose -f $(COMPOSE_FILE) exec $(SERVICE_NAME) /bin/bash
start: up ## Алиас для команды up
stop: down ## Алиас для команды down
rebuild: ## Пересобрать и запустить сервисы
@echo "$(YELLOW)Пересборка и запуск сервисов...$(NC)"
docker compose -f $(COMPOSE_FILE) down
docker compose -f $(COMPOSE_FILE) build --no-cache
@mkdir -p snapshots
docker compose -f $(COMPOSE_FILE) up -d
@echo "$(GREEN)Сервисы пересобраны и запущены!$(NC)"
@if [ -f .env ]; then \
PORT=$$(grep "^LOGBOARD_PORT=" .env | cut -d'=' -f2 || echo "9001"); \
echo "$(YELLOW)Приложение доступно по адресу: http://localhost:$$PORT$(NC)"; \
else \
echo "$(YELLOW)Приложение доступно по адресу: http://localhost:9001$(NC)"; \
fi
config: ## Показать конфигурацию с подставленными переменными окружения
@echo "$(GREEN)Конфигурация Docker Compose с переменными окружения:$(NC)"
docker compose -f $(COMPOSE_FILE) config
validate: ## Проверить синтаксис docker-compose.yml
@echo "$(GREEN)Проверка синтаксиса docker-compose.yml...$(NC)"
docker compose -f $(COMPOSE_FILE) config --quiet
@echo "$(GREEN)Синтаксис корректен!$(NC)"
env-check: ## Проверить переменные окружения
@echo "$(GREEN)Проверка переменных окружения...$(NC)"
@if [ -f .env ]; then \
echo "$(GREEN)Файл .env найден$(NC)"; \
echo "$(YELLOW)Основные переменные:$(NC)"; \
grep -E "^(LOGBOARD_PORT|LOGBOARD_USER|LOGBOARD_PASS|SECRET_KEY|ENCRYPTION_KEY)=" .env || echo "$(RED)Переменные не найдены$(NC)"; \
else \
echo "$(RED)Файл .env не найден. Запустите make setup$(NC)"; \
fi