logboard/Makefile
Sergey Antropoff 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
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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