Гайд по Ubuntu серверам и запуску Node JS софтов
Статья написана с прицелом на запуск консольных скриптов, которые не требуют использование графического интерфейса в обычном понимании этого слова. Имейте в виду: для запуска программ, типа BAS / ADS RPA автоматизации и других подобных вещей, данный гайд не подходит!
Оглавление:
- Выбор и покупка сервера
- SSH-клиенты
- Предварительная настройка сервера
- Утилиты для работы на сервере
- Полезные команды
- Запуск софта
🖥️Выбор и покупка сервера
Для запуска консольных скриптов не требуется много мощностей. Подойдут даже самые дешевые серверы, но лучше всегда делать запас по мощности. Примерная цена подобных виртуальных серверов ~5$ :
Где купить? Оплата криптой: xorek.cloud | pq.hosting
Остановимся на xorek.cloud. Ниже пошагово продемонстрировал процесс:
2. Откройте левое меню и выберите "Виртуальные серверы"
4. Выбираем интересующий нас сервер и нажимаем кнопку заказать. Я остановил свой выбор на DE-R9-4
5. Выбираем операционную систему Ubuntu 22.04, соглашаемся с правилами предоставления услуг и оплачиваем заказ
После оплаты, ждём некоторое время, пока хостер установит для вас сервер
Когда ваш сервер будет готов, на почту придёт информация для авторизации на сервере. Информация имеет такой вид:
Нас интересуют несколько параметров:
IP, Порт, Логин и Пароль. Если в письме не указан Порт для подключения, значит он является стандартным: 22
На этом работа с сайтом хостера окончена, переходим к подключению
💻SSH-клиенты
Все взаимодействия с удалённым сервером, осуществляются путём подключения через SSH туннель. Для подключения к SSH туннелю используются SSH-клиенты.
SSH-клиенты — это программы, которые позволяют пользователям безопасно подключаться к удалённым компьютерам через сеть с использованием протокола SSH (Secure Shell). SSH обеспечивает зашифрованное соединение между клиентом и сервером, защищая данные от перехвата или изменения.
Что бы подключится к нашему удалённому серверу, нам необходимо использовать консоль нашей операционной системы или же, воспользоваться одной из программ, представленных ниже:
MobaXterm - на мой взгляд, лучшее решение для бытовых задач. Встроенный файловый менеджер, возможность подключаться к удалённым рабочим столам, сохранение сессий и паролей, индикаторы параметров сервера [Отображает загруженность процессора, оперативной памяти, показывает свободное место на диске]. Не требует регистрации, бесплатной версии хватает с головой. Только для Windows!
Termius - модный, стильный, молодёжный кросс-платформенный SSH-клиент. Встроенный SFTP модуль обмена файлами, сохранение сессий и паролей. Поддержка Windows, macOS, Linux, Android и iOS.
PuTTY - Популярный SSH-клиент для Windows, поддерживает SSH, SCP, SFTP, а также другие сетевые протоколы.
OpenSSH — Один из наиболее распространённых SSH-клиентов. Он предустановлен в большинстве Unix-подобных операционных систем (например, Linux, macOS).
Так же, стоит упомянуть удобный файловый менеджер FileZilla, который работает непосредственно с файлами и осуществляет их обмен между вашим пк и сервером. Поддержка Windows, Linux, macOS.
Что бы гайд был максимально универсальным, остановимся на Termius. Проходим регистрацию, скачиваем установщик и устанавливаем программу.
🔐Подключение к серверу
Выбираем раздел Host и нажимаем New Host
Укажите ip сервера и название сессии
Промотайте вниз, укажите данные от аккаунта и SSH порт, если он отличается от 22. Нажмите Connect
Нажмите Add and continue, что бы сессия сохранилась в клиенте
Готово! Мы подключились к серверу
⚙️Предварительная настройка сервера
Для запуска софтов, нам необходимо предварительно установить среду Node JS и дополнительный утилиты, которые, в дальнейшем, облегчат нам жизнь.
Я заранее упаковал всё необходимое в один скрипт, который облегчит установку. Скопируйте команду и запустите на своём сервере:
wget https://tekkaido.com/files/node_server_init.sh && sudo chmod +x node_server_init.sh && ./node_server_init.sh
Данная команда автоматически проверит и установит все обновления для Unbuntu Server 22.04, а так же установит Node JS, Unzip, Screen, Nano и PM2.
Если во время установки появляется розовое окно - нажимаем Enter и продолжаем установку
Если сервер никак не реагирует на Enter, то нажмите сочетание клавиш Ctrl + C или CMD + C. Стрелкой вверх, на клавиатуре, выберите и запустите команду установки заново.
Теперь пройдёмся по каждой утилите более подробно
📜Утилиты для работы на сервере
- Node JS и утилита NPM
Среда для запуска Java Script кода
- Unzip
Утилита для распаковки zip-архивов
- Screen
Утилита для работы с окнами сервера. Запуск скриптов в фоновом режиме
- Nano
Текстовый редактор внутри окна терминала
- PM2
Удобный менеджер процессов для Java Script. Альтернатива для запуска скриптов в фоновом режиме и отслеживания их состояния. Автоматическое логирование всех процессов, снепшот процессов и автозапуск при перезагрузке сервера
⚡Полезные команды
Что бы освоится и ориентироваться в Ubuntu системе, ниже приведу ряд команд, для взаимодействия с файловой системой и скриптами:
Системные команды:
ls -1 - выведет в консоль список содержимого внутри папки, где сейчас находится пользователь. 1 означает вывести один файл/папку в ряд
cd имя_папки - перейти в указанную папку
cd ../ - вернёт вас на 1 папку назад
mkdir имя_папки - создаст папку с нужным названием
rm имя_файла - удалит указанный файл
rm -rf имя_папки - удалит указанную папку
cp -r имя_папки ./путь_до_новой_папки/новое_имя_папки - скопировать папку с другим названием или в другую деректорию
cp имя_файл новое_имя_файла - скопировать файл с другим названием или в другую деректорию mv имя_файл новое_имя_файла - изменить название файла
Nano - текстовый редактор:
nano имя_файла.расширение - открыть файл в текстовом редакторе или создать новый текстовый файл с необходимым расширением
Управление внутри редактора осуществляется посредством стрелок.
Сохранить файл: Ctrl + O или CMD + O, далее указываем название файла и нажимаем Enter
Закрыть редактор: Ctrl + X или CMD + X, если изменения не сохранены, вам предложат это сделать
Screen - диспетчер фоновых окон
Данная утилита помогает запускать софт в фоновом режиме. Если запустить код напрямую из главного окна, то при закрытии терминала - работа кода остановится
screen -S название_окна - создаст новое окно, которое будет работать в фоновом режиме screen -r название_существующего_окна - откроет окно, которое уже работает в фоновом режиме screen -list покажет все окна, которые были созданы screen -S номер_окна -X quit - удалит существующее окно
Внутри окна нажмите сочетание клавиш Ctrl+A+D или CMD+A+D, что бы выйти из него в главное окно терминала
PM2 - процесс менеджер для Java Script кода
Подходит для скриптов, где нету меню, т.к. внутри pm2 отсутствует возможность управления
pm2 start code.js - запустить код через процесс менеджер pm2 stop имя_процесса - остановить выполнение кода pm2 restart имя_процесса - перезапустить процесс pm2 delete имя_процесса - удалить процесс из менеджера pm2 monit - показать окно с информацией о всех процессах pm2 save - сохранить снепшот всех запущенных процессов pm2 startup - запустит все процессы после перезапуска системы, которые были сохранены в снепшоте
Unzip - распаковщик zip архивов
unzip имя_архива.zip имя_папки_куда_распаковать
🚀Запуск софта
В данном гайде, в качестве примера будет приведён запуск софта для NotPixel, как через Screen, так и через PM2
Создадим папку soft, где будут хранится все наши софты
Запуск через Screen
Переходим в папку soft и создаём новый screen с названием notpixel
Загрузим софт командой, которая указана в приватке, в посте с обновлением
После успешной загрузки и установки, можем запускать софт и проводить остальные манипуляции
После запуска скрипта, выходим из screen`а, сочетанием клавиш Ctrl+A+D или CMD+A+D. Софт будет работать в фоновом режиме.
Вернутся к окну screen -r notpixel
Запуск через PM2
Переходим в папку soft и запускаем команду, которая указана в приватке в посте с обновлением
Выполняем настройку софта, добавляем аккаунты, после всех манипуляций - выходим из софта
Переименовываем файл pm2startup.cjs в ecosystem.config.cjs, если файл ещё не переименовали
mv pm2startup.cjs ecosystem.config.cjs
pm2 start ecosystem.config.cjs && pm2 monit
Выйти из мониторинга можно сочетанием клавиш Ctrl+C или CMD+C
pm2 monit - вернутся к мониторингу
Все логи софта доступны по пути /root/.pm2/logs/
Дополнительная информация о работе PM2: https://pm2.keymetrics.io/docs/usage/quick-start/