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>
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# Настройка нового сервера (копия kirgysia)
|
||||
|
||||
## Что внутри
|
||||
|
||||
```
|
||||
server-setup/
|
||||
├── setup.sh # Скрипт автоматической настройки
|
||||
├── README.md # Эта инструкция
|
||||
└── data/
|
||||
├── x-ui.db # База данных 3x-ui
|
||||
├── fullchain.pem # SSL-сертификат
|
||||
├── privkey.pem # SSL-ключ
|
||||
└── authorized_keys # SSH-ключ для доступа
|
||||
```
|
||||
|
||||
## Требования
|
||||
|
||||
- Ubuntu 22.04 LTS
|
||||
- Root-доступ
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### 1. Скопировать папку на новый сервер
|
||||
|
||||
```bash
|
||||
scp -r server-setup/ root@IP_НОВОГО_СЕРВЕРА:/root/
|
||||
```
|
||||
|
||||
### 2. Подключиться к серверу
|
||||
|
||||
```bash
|
||||
ssh root@IP_НОВОГО_СЕРВЕРА
|
||||
```
|
||||
|
||||
### 3. Запустить скрипт
|
||||
|
||||
```bash
|
||||
cd /root/server-setup
|
||||
sudo bash setup.sh
|
||||
```
|
||||
|
||||
Всё. Скрипт сам установит пакеты, создаст пользователя, настроит SSH, поднимет 3x-ui в Docker.
|
||||
|
||||
## Настройки (при необходимости)
|
||||
|
||||
В начале `setup.sh` есть переменные — обычно менять их не нужно:
|
||||
|
||||
| Переменная | По умолчанию | Описание |
|
||||
|-------------|----------------|----------|
|
||||
| `NEW_USER` | `eberkheev` | Имя пользователя |
|
||||
| `SSH_PORT` | `10001` | Порт SSH |
|
||||
| `TIMEZONE` | `UTC` | Часовой пояс |
|
||||
| `STATIC_IP` | *(пусто)* | IP сервера, например `5.144.180.119/24`. Оставить пустым если сеть настраивается автоматически (DHCP) — так на большинстве VPS |
|
||||
| `GATEWAY` | *(пусто)* | IP шлюза, например `5.144.180.1`. Нужен только если задан `STATIC_IP` |
|
||||
| `DNS` | `8.8.8.8,8.8.4.4` | DNS-серверы |
|
||||
|
||||
## Что настраивает скрипт
|
||||
|
||||
1. Обновление системы
|
||||
2. Установка пакетов: docker, git, htop, mc, nmap, fail2ban, certbot, curl, wget, unzip
|
||||
3. Создание пользователя с sudo (без пароля)
|
||||
4. SSH: порт 10001, вход только по ключу, root запрещён
|
||||
5. Сеть (только если задан STATIC_IP)
|
||||
6. 3x-ui в Docker (network_mode: host) с восстановлением базы и сертификатов
|
||||
7. Скрипт обновления `~/update.sh`
|
||||
|
||||
## После установки
|
||||
|
||||
Подключение:
|
||||
```bash
|
||||
ssh -p 10001 eberkheev@IP_НОВОГО_СЕРВЕРА
|
||||
```
|
||||
|
||||
Панель 3x-ui:
|
||||
```
|
||||
https://IP_НОВОГО_СЕРВЕРА:10002
|
||||
```
|
||||
(порт панели зависит от настроек в x-ui.db)
|
||||
|
||||
Проверка контейнера:
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
|
||||
Обновление 3x-ui:
|
||||
```bash
|
||||
bash ~/update.sh
|
||||
```
|
||||
|
||||
## Обновление сертификатов
|
||||
|
||||
Если нужен новый сертификат — положите `fullchain.pem` и `privkey.pem` в `~/3x-ui/cert/` и перезапустите контейнер:
|
||||
```bash
|
||||
docker restart 3xui_app
|
||||
```
|
||||
Reference in New Issue
Block a user