Ручной деплой 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.