Files
dauphincraft/deploy/deploy_server_ssh.sh
2026-04-19 17:55:52 +02:00

53 lines
1.9 KiB
Bash

#!/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é ==="