Files
docker/server-setup/cloud-init/upload-data.sh
T
eberkheevandClaude Opus 4.6 ba4b395a4a Add server setup scripts (manual + cloud-init)
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>
2026-03-21 16:07:57 +04:00

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"