#!/bin/bash # HotelSync — первоначальная настройка сервера set -e echo "🚀 HotelSync Server Setup" echo "=========================" # ── 1. Обновление системы ───────────────────────────────────────────────── echo "→ Обновление пакетов..." apt-get update -qq && apt-get upgrade -y -qq # ── 2. Установка Docker ─────────────────────────────────────────────────── echo "→ Установка Docker..." curl -fsSL https://get.docker.com | sh systemctl enable docker systemctl start docker # Docker Compose plugin apt-get install -y docker-compose-plugin echo "Docker версия: $(docker --version)" echo "Docker Compose: $(docker compose version)" # ── 3. Установка Git ────────────────────────────────────────────────────── echo "→ Установка Git..." apt-get install -y git # ── 4. Настройка проекта ────────────────────────────────────────────────── echo "→ Создание директории проекта..." mkdir -p /opt/hotelsync cd /opt/hotelsync # ── 5. Настройка Gitea (self-hosted Git) ────────────────────────────────── echo "→ Настройка Gitea..." mkdir -p /opt/gitea/data cat > /opt/gitea/docker-compose.yml << 'EOF' version: '3' services: gitea: image: gitea/gitea:latest container_name: hotelsync-gitea restart: unless-stopped environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=sqlite3 - GITEA__server__DOMAIN=git.hotelsync.ru - GITEA__server__ROOT_URL=https://git.hotelsync.ru - GITEA__server__HTTP_PORT=3000 ports: - "3001:3000" - "222:22" volumes: - /opt/gitea/data:/data EOF docker compose -f /opt/gitea/docker-compose.yml up -d echo "✓ Gitea запущен на порту 3001" # ── 6. Настройка bare git репозитория для деплоя ────────────────────────── echo "→ Настройка git deploy hook..." mkdir -p /opt/hotelsync/repo.git git init --bare /opt/hotelsync/repo.git cat > /opt/hotelsync/repo.git/hooks/post-receive << 'HOOK' #!/bin/bash echo "→ Получен push, запускаем деплой..." cd /opt/hotelsync/app git --work-tree=/opt/hotelsync/app --git-dir=/opt/hotelsync/repo.git checkout -f main docker compose build frontend docker compose up -d --no-deps frontend echo "✓ Деплой завершён!" HOOK chmod +x /opt/hotelsync/repo.git/hooks/post-receive mkdir -p /opt/hotelsync/app git init /opt/hotelsync/app echo "✓ Git deploy hook настроен" echo "" echo "==============================" echo "✅ Базовая настройка завершена" echo "==============================" echo "" echo "Следующий шаг: запустить deploy/ssl.sh для SSL сертификатов"