#!/bin/bash set -e SERVER_HOST="${SERVER_HOST:-192.168.1.89}" SERVER_USER="${SERVER_USER:-flagabat}" SERVER_PASS="${SERVER_PASS:-SuperTeam2026!}" PROJECT_DIR="${PROJECT_DIR:-$(dirname "$0")/..}" DEPLOY_DIR="/tmp/dauphincraft_deploy_$$" cd "$PROJECT_DIR" # Vérifier artifacts [ -f builds/DauphinCraft-Server-v0.1.tar.gz ] || { echo "ERREUR: builds/DauphinCraft-Server-v0.1.tar.gz manquant"; exit 1; } [ -f deploy/install.sh ] || { echo "ERREUR: deploy/install.sh manquant"; exit 1; } [ -f deploy/dauphincraft.service ] || { echo "ERREUR: deploy/dauphincraft.service manquant"; exit 1; } # Fonctions SSH/SCP avec password run_remote() { if command -v sshpass >/dev/null; then sshpass -p "$SERVER_PASS" ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_HOST" "$@" elif command -v plink >/dev/null; then echo "y" | plink -ssh -pw "$SERVER_PASS" "$SERVER_USER@$SERVER_HOST" "$@" else echo "ERREUR: sshpass ni plink disponibles"; exit 1 fi } copy_remote() { if command -v sshpass >/dev/null; then sshpass -p "$SERVER_PASS" scp -o StrictHostKeyChecking=no "$1" "$SERVER_USER@$SERVER_HOST:$2" elif command -v pscp >/dev/null; then echo "y" | pscp -pw "$SERVER_PASS" "$1" "$SERVER_USER@$SERVER_HOST:$2" else echo "ERREUR: scp ni pscp disponibles"; exit 1 fi } echo "=== Création dossier distant ===" run_remote "mkdir -p $DEPLOY_DIR" echo "=== Upload artifacts ===" copy_remote "builds/DauphinCraft-Server-v0.1.tar.gz" "$DEPLOY_DIR/" copy_remote "deploy/install.sh" "$DEPLOY_DIR/" copy_remote "deploy/dauphincraft.service" "$DEPLOY_DIR/" echo "=== Extract + install ===" run_remote "cd $DEPLOY_DIR && tar xzf DauphinCraft-Server-v0.1.tar.gz && chmod +x install.sh DauphinCraftServer.x86_64 run_server.sh 2>/dev/null && sudo -S ./install.sh" <<< "$SERVER_PASS" echo "=== Vérif service ===" run_remote "systemctl status dauphincraft.service --no-pager 2>&1 | head -15" run_remote "ss -uln | grep 7777" echo "=== Deploy terminé ==="