Initial commit
This commit is contained in:
+172
@@ -0,0 +1,172 @@
|
||||
## ==============================================================================
|
||||
## ПОДГОТОВКА И НАСТРОЙКА VPS, УСТАНОВКА GO, DOCKER
|
||||
## ==============================================================================
|
||||
|
||||
## Обновить списки пакетов репозиториев, чтобы получить информацию о свежих версиях
|
||||
```bash
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
## Обновить все установленные в системе пакеты до актуальных версий (-y автоматически соглашается)
|
||||
```bash
|
||||
sudo apt upgrade -y
|
||||
```
|
||||
|
||||
## Скачиваем официальный архив с бинарными файлами Go 1.27.1 для Linux x64
|
||||
```bash
|
||||
wget https://go.dev/dl/go1.27.1.linux-amd64.tar.gz
|
||||
```
|
||||
|
||||
## Удалить старую версию Go (если она была), чтобы избежать конфликта файлов
|
||||
```bash
|
||||
sudo rm -rf /usr/local/go
|
||||
```
|
||||
|
||||
## Распаковать скачанный архив Go в системную директорию /usr/local
|
||||
```bash
|
||||
sudo tar -C /usr/local -xzf go1.27.1.linux-amd64.tar.gz
|
||||
```
|
||||
|
||||
## Добавить путь к бинарникам Go в переменную PATH текущего пользователя для автозапуска
|
||||
```bash
|
||||
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
|
||||
```
|
||||
|
||||
## Перезапустить профиль, чтобы изменения переменной PATH вступили в силу без перезагрузки сервера
|
||||
```bash
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
## Удалить скачанный архив Go, так как он больше не нужен и занимает место
|
||||
```bash
|
||||
rm go1.27.1.linux-amd64.tar.gz
|
||||
```
|
||||
|
||||
## Проверить успешность установки Go, выводя текущую версию в консоль
|
||||
```bash
|
||||
go version
|
||||
```
|
||||
|
||||
## ------------------------------------------------------------------------------
|
||||
## СЕТЕВОЙ ТЮНИНГ ЯДРА LINUX ДЛЯ ВЫСОКИХ НАГРУЗОК (HIGHLOAD UDP)
|
||||
## ------------------------------------------------------------------------------
|
||||
## По умолчанию буферы ОС слишком малы для STUN-сервера. Если их не увеличить,
|
||||
## при шторме UDP-пакетов ядро Linux начнет их просто дропать (терять).
|
||||
|
||||
## Увеличить максимальный размер буфера приема UDP-пакетов операционной системы до ~25 Мб
|
||||
```bash
|
||||
sudo sysctl -w net.core.rmem_max=26214400
|
||||
```
|
||||
|
||||
## Увеличить максимальный размер буфера отправки UDP-пакетов до ~25 Мб
|
||||
```bash
|
||||
sudo sysctl -w net.core.wmem_max=26214400
|
||||
```
|
||||
|
||||
## Устанавить дефолтный (стартовый) размер буфера приема для новых сокетов на ~25 Мб
|
||||
```bash
|
||||
sudo sysctl -w net.core.rmem_default=26214400
|
||||
```
|
||||
|
||||
## Устанавить дефолтный (стартовый) размер буфера отправки для новых сокетов на ~25 Мб
|
||||
```bash
|
||||
sudo sysctl -w net.core.wmem_default=26214400
|
||||
```
|
||||
|
||||
## Сохранить настройки
|
||||
```bash
|
||||
sudo tee -a /etc/sysctl.conf <<EOF
|
||||
```
|
||||
|
||||
## Настроить буферов сокетов для Highload UDP STUN-сервера
|
||||
```bash
|
||||
net.core.rmem_max=26214400
|
||||
net.core.wmem_max=26214400
|
||||
net.core.rmem_default=26214400
|
||||
net.core.wmem_default=26214400
|
||||
EOF
|
||||
```
|
||||
## Применить настройки
|
||||
```bash
|
||||
sudo sysctl -p
|
||||
```
|
||||
|
||||
## ------------------------------------------------------------------------------
|
||||
## УСТАНОВКА DOCKER И DOCKER COMPOSE
|
||||
## ------------------------------------------------------------------------------
|
||||
|
||||
## Устанавить утилиты для работы с SSL-сертификатами и скачивания файлов через терминал
|
||||
```bash
|
||||
sudo apt-get install ca-certificates curl
|
||||
```
|
||||
|
||||
## Создать защищенную директорию для хранения GPG-ключей сторонних репозиториев
|
||||
```bash
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
```
|
||||
|
||||
## Скачать официальный публичный GPG-ключ шифрования Docker для проверки подлинности пакетов
|
||||
```bash
|
||||
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||
```
|
||||
|
||||
## Выдать права на чтение этого ключа всем пользователям системы
|
||||
```bash
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
```
|
||||
|
||||
## Добавить официальный стабильный репозиторий Docker в список источников Ubuntu (apt)
|
||||
```bash
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
||||
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
```
|
||||
|
||||
## Обновить кэш пакетов apt, чтобы система «увидела» добавленный репозиторий Docker
|
||||
```bash
|
||||
sudo apt-get update
|
||||
```
|
||||
|
||||
## Устанавивить движок Docker, консольный клиент, контейнеризатор и плагин Docker Compose V2
|
||||
```bash
|
||||
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
|
||||
```
|
||||
|
||||
## ==============================================================================
|
||||
## НАСТРОЙКА ФАЙЕРВОЛЛА (БЕЗОПАСНОСТЬ)
|
||||
## ==============================================================================
|
||||
|
||||
## Разрешить входящий трафик на порт 3478 по протоколу UDP (основной порт STUN-сервера)
|
||||
```bash
|
||||
sudo ufw allow 3478/udp
|
||||
```
|
||||
|
||||
## ==============================================================================
|
||||
## НАСТРОЙКА И УПРАВЛЕНИЕ СЕРВЕРОМ
|
||||
## ==============================================================================
|
||||
|
||||
## Автоматически заменить значение PUBLIC_IP в файле .env на реальный IP-адрес вашего VPS
|
||||
```bash
|
||||
sed -i 's/^PUBLIC_IP=.*/PUBLIC_IP=ВНЕШНИЙ_IP/' .env
|
||||
```
|
||||
|
||||
## Сделать все bash-скрипты автоматизации в текущей папке исполняемыми (разрешаем их запуск)
|
||||
```bash
|
||||
chmod +x *.sh
|
||||
```
|
||||
|
||||
## Запустить STUN-сервер (внутри скрипта обычно вызывается docker compose up -d)
|
||||
```bash
|
||||
./start.sh
|
||||
```
|
||||
|
||||
## Открыть поток логов контейнера в реальном времени для мониторинга работы сервера
|
||||
```bash
|
||||
./get_logs.sh
|
||||
```
|
||||
|
||||
## Остановить STUN-сервер (внутри обычно вызывается docker compose down)
|
||||
```bash
|
||||
./stop.sh
|
||||
```
|
||||
Reference in New Issue
Block a user