geo detection

This commit is contained in:
2025-11-06 15:09:15 +09:00
parent 88d9ccd75d
commit 0bbeb0767b
47 changed files with 1355 additions and 93 deletions

View File

@@ -21,9 +21,20 @@ help:
install:
@echo "Установка зависимостей..."
@if ! command -v docker &> /dev/null || ! command -v docker-compose &> /dev/null; then \
@if ! command -v docker &> /dev/null; then \
echo "Установка Docker..."; \
sudo apt update && sudo apt install -y docker.io docker-compose; \
echo "Удаление конфликтующих пакетов..."; \
sudo apt remove -y docker.io containerd runc 2>/dev/null || true; \
sudo apt update; \
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common; \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg; \
echo "deb [arch=$$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null; \
sudo apt update; \
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin; \
sudo systemctl start docker; \
sudo systemctl enable docker; \
sudo usermod -aG docker $$USER; \
echo "Docker установлен. Перелогиньтесь для применения группы docker."; \
fi
@if [ ! -f .env ]; then \
echo "Создание .env файла..."; \
@@ -37,6 +48,14 @@ update:
@git fetch --all
@git pull origin main || git pull origin master || echo "Не удалось обновить код"
@if [ -f package.json ]; then npm ci || npm install; fi
@echo "Пересборка контейнеров..."
@docker compose down || docker-compose down || true
@docker compose build || docker-compose build
@docker compose up -d || docker-compose up -d
@echo "Применение миграций к базе данных..."
@sleep 5
@make migrate
@echo "✅ Обновление завершено! Бот перезапущен с новой версией."
run:
@echo "Запуск бота..."
@@ -47,18 +66,26 @@ run:
@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; \
@echo "Применение миграций к базе данных..."
@if [ ! -f .env ]; then \
echo "❌ Файл .env не найден! Создайте его перед применением миграций."; \
exit 1; \
fi
@. ./.env && export $$(cat .env | grep -v '^#' | xargs) && \
echo "Подключение к БД: $$DB_HOST:$$DB_PORT/$$DB_NAME ($$DB_USERNAME)" && \
echo "Создание расширения uuid-ossp..." && \
PGPASSWORD="$$DB_PASSWORD" psql -h $$DB_HOST -p $$DB_PORT -U $$DB_USERNAME -d $$DB_NAME \
-c "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";" 2>/dev/null || true && \
echo "Применение consolidated.sql..." && \
PGPASSWORD="$$DB_PASSWORD" psql -h $$DB_HOST -p $$DB_PORT -U $$DB_USERNAME -d $$DB_NAME \
-f sql/consolidated.sql 2>&1 | grep -E "(ERROR|CREATE|ALTER)" || true && \
echo "Применение дополнительных миграций..." && \
for sql_file in sql/add_*.sql; do \
[ -f "$$sql_file" ] && echo " - Применение $$(basename $$sql_file)..." && \
PGPASSWORD="$$DB_PASSWORD" psql -h $$DB_HOST -p $$DB_PORT -U $$DB_USERNAME -d $$DB_NAME \
-f "$$sql_file" 2>&1 | grep -v "NOTICE" || true; \
done && \
echo "✅ Миграции применены успешно!"
fix-docker:
@echo "Исправление Docker конфигурации..."