#!/bin/bash

# Останавливаем скрипт при любой ошибке
set -e

# Твои переменные
VPS_IP="77.110.106.113"
VPS_USER="root"
FRONTEND_TAG="ghcr.io/nineap/netrunner-landing:latest"
PROXY_TAG="ghcr.io/nineap/netrunner-landing-proxy:latest"

# Опции SSH/SCP для работы без зависаний (не будут ждать ручного ввода)
SSH_OPTS="-o BatchMode=yes -o StrictHostKeyChecking=accept-new"

echo "🚀 Запуск локальной сборки Netrunner..."

# 1. Сборка и пуш Фронтенда (Next.js)
# Добавлен --progress=plain, чтобы видеть детальный лог компиляции WASM
echo "📦 Билд Next.js..."
docker build --progress=plain -t $FRONTEND_TAG .
echo "☁️ Пуш Next.js в GHCR..."
docker push $FRONTEND_TAG

# 2. Сборка и пуш Прокси (Rust)
echo "🦀 Билд Rust Proxy (готовь кулеры)..."
docker build --progress=plain -t $PROXY_TAG ./proxy-ws
echo "☁️ Пуш Rust Proxy в GHCR..."
docker push $PROXY_TAG

# 3. Синхронизация docker-compose
echo "📄 Копирование docker-compose.yml на сервер..."
scp $SSH_OPTS docker-compose.yml $VPS_USER@$VPS_IP:/root/netrunner-frontend/docker-compose.yml

# 4. Выполнение команд на VPS по SSH
echo "⚙️ Обновление контейнеров на VPS..."
ssh $SSH_OPTS $VPS_USER@$VPS_IP << EOF
    cd /root/netrunner-frontend
    
    echo "Тянем свежие образы..."
    docker compose pull
    
    echo "Перезапускаем сервисы..."
    docker compose up -d --force-recreate --remove-orphans
    
    echo "Чистим старый мусор..."
    docker image prune -f
EOF

echo "✅ Деплой успешно завершен!"