Подготовка сервера
Подготовка сервера
Требования
- 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 -ysudo apt install -y curl git htop unzip gnupg2 ca-certificates lsb-release2. Docker Engine
# Добавить GPG ключ Dockercurl -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 pluginsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Добавить пользователя ubuntu в группу dockersudo usermod -aG docker ubuntu
# Проверитьdocker --versiondocker compose versionПосле добавления в группу — перелогиниться (
exit+ повторный SSH).
3. AWS CLI (для бэкапов в Object Storage)
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o awscliv2.zipunzip awscliv2.zipsudo ./aws/installaws --version4. GPG (шифрование бэкапов, 152-ФЗ)
sudo apt install -y gpggpg --version5. Firewall (ufw)
sudo ufw default deny incomingsudo 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 и HTTPSsudo ufw allow 80/tcpsudo ufw allow 443/tcp
sudo ufw enablesudo ufw status verboseПример вывода:
Status: activeTo Action From-- ------ ----22/tcp ALLOW 203.0.113.580/tcp ALLOW Anywhere443/tcp ALLOW Anywhere6. Директория приложения
sudo mkdir -p /opt/terma-grandsudo chown ubuntu:ubuntu /opt/terma-grand7. Логирование системы
Стандартный journald достаточен. Docker-логи управляются через json-file driver (настроено в docker-compose.prod.yml).
Для просмотра логов контейнеров:
docker compose -f /opt/terma-grand/docker-compose.prod.yml logs -f appdocker compose -f /opt/terma-grand/docker-compose.prod.yml logs -f bot