Two deployment options for recreating the kirgysia server: - manual-setup/: bash script for manual server provisioning - cloud-init/: cloud-init config + data upload script for automated VPS setup Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
63 lines
1.8 KiB
Bash
Executable File
63 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Загрузка данных на сервер после cloud-init
|
|
# Запускается с ЛОКАЛЬНОЙ машины
|
|
#
|
|
# Использование: bash upload-data.sh <IP сервера>
|
|
#
|
|
|
|
set -euo pipefail
|
|
|
|
if [ $# -lt 1 ]; then
|
|
echo "Использование: bash $0 <IP сервера>"
|
|
echo "Пример: bash $0 5.144.180.119"
|
|
exit 1
|
|
fi
|
|
|
|
SERVER_IP="$1"
|
|
SSH_PORT="10001"
|
|
SSH_USER="eberkheev"
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
DATA_DIR="$SCRIPT_DIR/../data"
|
|
|
|
# Проверка наличия файлов
|
|
for f in x-ui.db fullchain.pem privkey.pem; do
|
|
if [ ! -f "$DATA_DIR/$f" ]; then
|
|
echo "ERROR: Файл $DATA_DIR/$f не найден"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
SCP="scp -P $SSH_PORT"
|
|
SSH="ssh -p $SSH_PORT ${SSH_USER}@${SERVER_IP}"
|
|
|
|
echo "=== Загрузка данных на $SERVER_IP ==="
|
|
|
|
echo "[1/4] Загрузка базы данных x-ui..."
|
|
$SCP "$DATA_DIR/x-ui.db" "${SSH_USER}@${SERVER_IP}:~/3x-ui/db/x-ui.db"
|
|
$SCP "$DATA_DIR/x-ui.db" "${SSH_USER}@${SERVER_IP}:~/x-ui-backup.db"
|
|
|
|
echo "[2/4] Загрузка сертификатов..."
|
|
$SCP "$DATA_DIR/fullchain.pem" "$DATA_DIR/privkey.pem" "${SSH_USER}@${SERVER_IP}:~/3x-ui/cert/"
|
|
$SCP "$DATA_DIR/fullchain.pem" "$DATA_DIR/privkey.pem" "${SSH_USER}@${SERVER_IP}:~/cert/"
|
|
|
|
echo "[3/4] Запуск контейнера 3x-ui..."
|
|
$SSH "docker run -d \
|
|
--name 3xui_app \
|
|
--restart unless-stopped \
|
|
--network host \
|
|
--env XRAY_VMESS_AEAD_FORCED=false \
|
|
--env XUI_ENABLE_FAIL2BAN=true \
|
|
-v ~/3x-ui/db/:/etc/x-ui/ \
|
|
-v ~/3x-ui/cert/:/root/cert/ \
|
|
-t \
|
|
ghcr.io/mhsanaei/3x-ui:latest"
|
|
|
|
echo "[4/4] Проверка..."
|
|
$SSH "docker ps | grep 3xui"
|
|
|
|
echo ""
|
|
echo "=== Готово! ==="
|
|
echo "Панель: https://$SERVER_IP:10002"
|
|
echo "SSH: ssh -p $SSH_PORT $SSH_USER@$SERVER_IP"
|