MakeFile created.

This commit is contained in:
2025-09-18 18:43:39 +09:00
parent 0566901fa4
commit 9281388959
28 changed files with 376 additions and 977 deletions

75
Makefile Normal file
View File

@@ -0,0 +1,75 @@
# Makefile для Telegram Tinder Bot
.PHONY: help install update run migrate fix-docker clean
# Значения по умолчанию
DB_HOST ?= db
DB_PORT ?= 5432
DB_NAME ?= telegram_tinder_bot
DB_USERNAME ?= postgres
DB_PASSWORD ?= postgres
# Основные команды
help:
@echo "========== Telegram Tinder Bot Makefile =========="
@echo "make install - Установка зависимостей"
@echo "make update - Обновление кода из репозитория"
@echo "make run - Запуск бота в контейнере"
@echo "make migrate - Применение миграций базы данных"
@echo "make fix-docker - Исправление проблем с Docker"
@echo "make clean - Очистка и остановка контейнеров"
install:
@echo "Установка зависимостей..."
@if ! command -v docker &> /dev/null || ! command -v docker-compose &> /dev/null; then \
echo "Установка Docker..."; \
sudo apt update && sudo apt install -y docker.io docker-compose; \
fi
@if [ ! -f .env ]; then \
echo "Создание .env файла..."; \
cp .env.example .env 2>/dev/null || cp .env.production .env 2>/dev/null || echo "NODE_ENV=production" > .env; \
echo "Пожалуйста, отредактируйте файл .env!"; \
fi
@mkdir -p logs uploads && chmod -R 777 logs uploads
update:
@echo "Обновление кода..."
@git fetch --all
@git pull origin main || git pull origin master || echo "Не удалось обновить код"
@if [ -f package.json ]; then npm ci || npm install; fi
run:
@echo "Запуск бота..."
@docker-compose down || true
@make fix-docker
@docker-compose build
@docker-compose up -d
@echo "Бот запущен! Для просмотра логов: docker-compose logs -f"
migrate:
@echo "Применение миграций..."
@if [ -d migrations ]; then \
mkdir -p temp_migrations; \
find migrations -name "*.js" -exec cp {} temp_migrations/ \; 2>/dev/null || true; \
DATABASE_URL=postgres://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME} \
npx node-pg-migrate up --migrations-dir=migrations || true; \
fi
@if [ -d sql ]; then \
for sql_file in sql/*.sql; do \
[ -f "$${sql_file}" ] && docker-compose exec -T db psql -U ${DB_USERNAME} -d ${DB_NAME} -f "/app/$${sql_file}" || true; \
done; \
fi
fix-docker:
@echo "Исправление Docker конфигурации..."
@if [ -f Dockerfile ] && grep -q "RUN npm run build" Dockerfile; then \
sed -i 's/RUN npm run build/RUN npm run build:linux/g' Dockerfile; \
fi
@docker rm -f postgres-tinder adminer-tinder telegram-tinder-bot 2>/dev/null || true
@docker system prune -f --volumes >/dev/null 2>&1 || true
clean:
@echo "Очистка..."
@docker-compose down || true
@rm -rf temp_migrations node_modules/.cache
@echo "Очистка завершена"