Страница 1 из 1

Как добавить Node.js?

Добавлено: Вт окт 20, 2020 1:02 pm
edeed
Node.js установил, но при добавлении сайта его нельзя выбрать, только php. Как его туда добавить и надо ли вобще?

Моя задача, запустить свое приложение на node.js и настроить ssl, может где то есть информация по этому вопросу? Честно говоря, первый раз с панелью работаю.

Пока жду ответа, попробовал установить ssl сертификат let`s encrypt, но почему то хром пишет, что соединение все равно не защищено. Если кликнуть по этой надписи, то он показывает, что сертификат все же есть, но видио он ему не доверяет. Как это исправить?

Re: Как добавить Node.js?

Добавлено: Вс ноя 17, 2024 3:38 pm
corsarix
Присоединюсь к вопросу

Re: Как добавить Node.js?

Добавлено: Вс ноя 17, 2024 3:44 pm
sbury
Какая версия системы и версия панели?
покажите выводы

Код: Выделить всё

cat /etc/os-release
Какая Web связка установлена?

Re: Как добавить Node.js?

Добавлено: Пн ноя 18, 2024 8:25 am
alenka
Вы установили nodejs через менеджер приложений?

Re: Как добавить react + Node.js?

Добавлено: Пн ноя 18, 2024 2:14 pm
corsarix
Да, немного не разобрался, надо было это в настройках включить. Этот вопрос решен.

Но теперь у меня следующий вопрос. где и как расположить публичную папку react, чтобы она подхватывалась? она же по сути, лежит в глубине пользовательской директории, а доступ к ней нужен nginx. ну или перенастраивать nginx с нуля, что как бы противоречит идеологии панели...

Re: Как добавить react + Node.js?

Добавлено: Вт ноя 19, 2024 11:55 am
sbury
corsarix писал(а):
Пн ноя 18, 2024 2:14 pm
Да, немного не разобрался, надо было это в настройках включить. Этот вопрос решен.

Но теперь у меня следующий вопрос. где и как расположить публичную папку react, чтобы она подхватывалась? она же по сути, лежит в глубине пользовательской директории, а доступ к ней нужен nginx. ну или перенастраивать nginx с нуля, что как бы противоречит идеологии панели...
на текущий момент панель не настраивает react. Вам надо создать сайт для nodejs, Зайти в терминал под именем этого пользователя и в папке необходимого сайта(смотрите каталог sites) установить react. Используйте команду pwd, чтобы узнать в каком каталоге вы сейчас находитесь.

Код: Выделить всё

npm install create-react-app
В панели надо откруть доступ для этого юзера к шелу, установив параметр Шел доступ в Y
Информацию об активном порте для этого сайта, вы найдете в панели меню Сайты в списке активных сайтов, значение Port.

Re: Как добавить Node.js?

Добавлено: Вс ноя 24, 2024 7:36 pm
sbury
после этого создать сайт на react. Допустим у него имеется сайт с именем a1.domain.com.
Тогда в каталоге сайта a1.domain.com, который физически находится в директории пользователя
sites/a1.domain.com надо выполнить.

Код: Выделить всё

export PATH=$HOME/a1.domain.com/.node_modules_global/bin:$PATH
npx create-react-app my-app
в каталоге sites/a1.domain.com/ появится my-app
Команда env вам раскажет где $HOME у этого пользователя

Перед запуском npm start. Определяем порт для приложения react, который указан в панели в меню Сайты
было

Код: Выделить всё

  "scripts": {
    "start": "react-scripts start",
делаем

Код: Выделить всё

  "scripts": {
    "start": "PORT=ХХХХ react-scripts start",
Или устанавливаем порт в environment

Должно в результате в браузере появится чтото такое

Re: Как добавить react + Node.js?

Добавлено: Вс ноя 24, 2024 9:56 pm
sbury
corsarix писал(а):
Пн ноя 18, 2024 2:14 pm
Да, немного не разобрался, надо было это в настройках включить. Этот вопрос решен.

Но теперь у меня следующий вопрос. где и как расположить публичную папку react, чтобы она подхватывалась? она же по сути, лежит в глубине пользовательской директории, а доступ к ней нужен nginx. ну или перенастраивать nginx с нуля, что как бы противоречит идеологии панели...
Да, забыл про это.
Когда в панели создается сайт nodejs , то управляется его приложение через systemd. Панель создает в /lib/systemd/system унит сервиса вида

Код: Выделить всё

nodejs@3001.service
где в данном случае 3001 это некий номерпорта, который формирует сама панель. Менять єтот номер, как и имя самого юнита в целом нельзя!
Для React его содержимое надо немного изменить. Для a1.domain.com и некого юзера с именем USER, будет так

Код: Выделить всё

root@ub24:/lib/systemd/system# cat nodejs@3001.service
[Unit]
Description=LTPS NodeJS Application
After=network-online.target

[Service]
Type=simple
Environment=CI=true
Environment=NODE_PORT=%i
Restart=on-failure
# do chdir before running the service
WorkingDirectory=/home/USER/sites/a1.domain.com/my-app
ExecStart=/home/sasha/usr/bin/npm start --prefix /home/USER/sites/a1.domain.com/my-app
StandardOutput=inherit
StandardError=inherit

# limit CPU and RAM quota for our service
#CPUAccounting=true
#CPUQuota=10%
#MemoryAccounting=true
#MemoryLimit=50M
#

[Install]
WantedBy=multi-user.target
После редактирования подаем команды

Код: Выделить всё

systemctl daemon-reload
systemctl restart nodejs@3001
Вводим в браузере
a1.domain.com
И должны увидеть то, что на картинке в посту выше.
чуть позже добавим поддержу React в панель, где такое шаманство больше не понадобится

Re: Как добавить Node.js?

Добавлено: Вт дек 10, 2024 6:06 pm
sbury
В последнем обновлении в панель добавлена поддержка React