Тестовый сервер на ubuntu и node js

Часто возникает необходимость поднять тестовый север для разработки сайта работающего с БД. Т.к. мы работаем с NodeRed, нам удобно будет работать с сервером работающем на node js. Если для WordPress существует прекрасная система local, то для node js готовой системы я не знаю. Накидаю основные шаги для подъема такого сервера.

Возможны варианты, виртуальный сервер, docer и т.д. Мы рассмотрим использование виртуального сервера с установленной ubuntu. Текущая стабильная версия Ubuntu 20.04.

https://ubuntu.com/download/server

Как поднять виртуальный сервер? Просто: отдадим часть ресурсов нашего компьютера под будущий сервер. Для этого установим программу VirtualBox. Установки по умолчанию достаточно для начала работы.

https://www.virtualbox.org/wiki/Downloads

Для запуска виртуальной машины её нужно создать. Важные настройки: оперативная память, размер дискового пространства. До первого запуска нужно изменить параметры сетевого адаптера. Я устанавливаю «Сетевой мост». При первом запуске машины нужно будет указать скаченный файл дистрибутива iso.

Для начальной настройки сервера поможет статья https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04-ru. Много хорошего материала на сайте https://www.digitalocean.com и на русском и на английском языке. Ссылки на них у меня будут появляться часто. Для работы нам понадобится SSH.

sudo apt install openssh-server
ufw allow OpenSSH
ufw enable

Ну что, получилось поднять сервер? Хорошо. Едем дальше.

Давайте поднимем базу данных. Для большинства домашних задач достаточно бд MYSQL. Обычно, на ubuntu я ставлю MariaDB. Сравнение баз здесь. Описание БД здесь. Описание установки здесь.

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

Для работы с базой данных, а точнее с данными в БД нужен инструмент. Мне не удалось найти приличного инструмента для node js, поэтому я по старинке пользуюсь 2 инструментами: MySQL Workbench и phpmyadmin. Каждый решает свои задачи и делает это очень хорошо. Для phpmyadmin нужен LAMP. При создании таблиц в Workbench, перед сохранением таблицы, убирайте оператор VISIBLE (UNIQUE INDEX name_UNIQUE (name ASC) VISIBLE)). MariaDB его не понимает. Связи удобнее создавать в Workbench, а работать с запросами и данными, (мне) удобнее в phpmyadmin.

«LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый во Всемирной паутине. LAMP назван по первым буквам входящих в его состав компонентов:

https://ru.wikipedia.org/wiki/LAMP

Как всегда есть отличная статья по установке.

Устанавливаем phpmyadmin.

Устанавливаем node js. Не надо сразу копипастить, прочитайте. Там 3 способа. Я использовал последний. Выбирайте осмысленно.

Для фронта я использую VUE JS. Отличная вещь!

npm install -g @vue/cli

Ставим git. Хотел написать слово «обязательно», но это дело хозяйское.

git --version //проверка
sudo apt update
sudo apt install git
git --version
git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"
https://www.digitalocean.com/community/tutorials/how-to-install-git-on-ubuntu-20-04#setting-up-git

Установка express https://expressjs.com/ru/starter/installing.html

Пример разработки приложения: https://bezkoder.com/vue-js-node-js-express-mysql-crud-example/

Основное всё. Ниже полезные ссылки, не всем нужны, но посмотреть стоит:

PASPORT
http://www.passportjs.org/
JWT
https://jwt.io/

https://getbootstrap.com/docs/5.0/getting-started/introduction/

EXPRESS
https://expressjs.com/ru/guide/routing.html

Так… все работает, а как писать программу? Надо? Точно? Легко. Писать будем в любимой среде используя любимый редактор VS Code.

Есть несколько статей о том, как подключиться к удалённой машине через SSH. Меньше букв в этой.

Ещё раз про git – надо. Виртуальная машина может сломаться при отключении питания и т.д. Надо.


Давайте выпустим в мир наш сайт построенный на node js. Пока наше приложение работает на 3000 порту, а надо бы 80. Но 80 порт требует прав root, а это опасно. Для запуска сайта можно использовать менеджер PM2. Устанавливаем Nginx . Устанавливаем PM2.

Защита Nginx с помощью Let’s Encrypt в Ubuntu 20.04