- React 18 + TypeScript + Vite + Tailwind CSS - Шахматка бронирований (drag-to-book) - Страницы: Calendar, Bookings, Rooms, Housekeeping, Channels, API Docs, Settings - Роли: super_admin, hotel_manager, housekeeper - Светлая/тёмная тема - Docker + Nginx конфигурация - Лендинг hotelsync.ru
87 lines
3.3 KiB
Bash
87 lines
3.3 KiB
Bash
#!/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 сертификатов"
|