Skip to content

Подготовка сервера

Подготовка сервера

Требования

  • Ubuntu 22.04 LTS
  • Минимум 2 vCPU, 8 GB RAM, 50 GB SSD
  • Публичный IPv4, доступ по SSH

1. Системное обновление

Окно терминала
ssh ubuntu@<VM_IP>
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git htop unzip gnupg2 ca-certificates lsb-release

2. Docker Engine

Окно терминала
# Добавить GPG ключ Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Добавить репозиторий
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установить Docker + Compose plugin
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Добавить пользователя ubuntu в группу docker
sudo usermod -aG docker ubuntu
# Проверить
docker --version
docker compose version

После добавления в группу — перелогиниться (exit + повторный SSH).


3. AWS CLI (для бэкапов в Object Storage)

Окно терминала
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o awscliv2.zip
unzip awscliv2.zip
sudo ./aws/install
aws --version

4. GPG (шифрование бэкапов, 152-ФЗ)

Окно терминала
sudo apt install -y gpg
gpg --version

5. Firewall (ufw)

Окно терминала
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH — только с вашего IP (замените 203.0.113.5 на ваш IP)
sudo ufw allow from 203.0.113.5 to any port 22 proto tcp
# HTTP и HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

Пример вывода:

Status: active
To Action From
-- ------ ----
22/tcp ALLOW 203.0.113.5
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere

6. Директория приложения

Окно терминала
sudo mkdir -p /opt/terma-grand
sudo chown ubuntu:ubuntu /opt/terma-grand

7. Логирование системы

Стандартный journald достаточен. Docker-логи управляются через json-file driver (настроено в docker-compose.prod.yml).

Для просмотра логов контейнеров:

Окно терминала
docker compose -f /opt/terma-grand/docker-compose.prod.yml logs -f app
docker compose -f /opt/terma-grand/docker-compose.prod.yml logs -f bot

Следующий шаг

03 — Деплой приложения