Ручной деплой NestJS и Angular приложений на выделенном сервер через "Docker Compose" и "PM2"
Покупаем выделенный сервер и настраиваем SSH доступ к нему с локального компьютера.
Добавляем https://github.com/SteveLTN/https-portal в "Docker compose" для автоматической генерации и продления сертификатов.
1. Находим бесплатный или покупаем выделенный сервер
Шаги по этому пункту не буду расписывать, я уже расписывал ранее в разделе "Buy VPS" другого поста - Deploy nestjs project to VPS with dokku.
В рамках текущих постов я купил на том же сайте самый дешевый выделенный сервер.
Операционная система: Ubuntu 22.04 x64
Доступ в мир: 100 MB/sec (shared)
RAM: 2GB
CPU: 2 vCPU
Количество IPv4 адресов: 1
При покупке выделенного сервера мне также дали домен третьего уровня: vps1724252356.tech0.ru, в будущем этот проект переедет на домен https://fullstack.nestjs-mod.com.
2. Настройка подключение к выделенному серверу по SSH
После покупки необходимо установить пароль если он не был установлен, разные сайты имеют свои интерфейсы для этого, в моем случаи установка пароля находится на странице https://ztv.su/clientarea.php?action=productdetails&id=33376#tabChangepw.
Копируем наш локальный публичный SSH на удаленный сервер, при запуске появится запрос на ввод пароля, необходимо ввести свой пароль и нажать "Enter".
Если SSH-ключа на компьютере не было, то его нужно создать с помощью команды ssh-keygen
Команды
ssh-copy-id root@194.226.49.162
Вывод консоли
$ ssh-copy-id root@194.226.49.162
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/id_rsa.pub"
The authenticity of host '194.226.49.162 (194.226.49.162)' can't be established.
ECDSA key fingerprint is SHA256:SOME_SYMBOLS.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@194.226.49.162's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@194.226.49.162'"
and check to make sure that only the key(s) you wanted were added.
3. Подключение к удаленному серверу
Команды
ssh root@194.226.49.162
Вывод консоли
$ ssh root@194.226.49.162
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-91-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Wed Aug 21 18:42:37 MSK 2024
System load: 0.02734375 Processes: 103
Usage of /: 9.4% of 24.05GB Users logged in: 0
Memory usage: 10% IPv4 address for eth0: 194.226.49.162
Swap usage: 0%
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Wed Aug 21 18:41:46 2024 from X.X.X.X
root@vps1724252356:~#