Uwaga! Na wstępie chcielibyśmy podkreślić, że nie świadczymy wsparcia w zakresie administracji i debugowania dla aplikacji Node.js. Poniższa instrukcja przedstawia jedynie opis uruchomienia aplikacji za pomocą narzędzia dostępnego w panelu administracyjnym hostingu.
Dla usług hostingowych jest możliwe uruchomienie aplikacji opartej o Node.js z poziomu modułu „Aplikacje Node.js” w panelu Direct_Admin
Zalecane jest posiadanie pakietu z dostępem do SSH.
Aplikacje Node.js mogą znacznie obciążać usługę, dla tego należy upewnić się, że parametry pakietu są wystarczające względem danej aplikacji:
https://cyberfolks.pl/specyfikacja-techniczna-uslug.pdf
Aby uruchomić aplikację Node.js wykonaj następujące kroki:
1. Dodanie aplikacji
Nową aplikację można dodać z poziomu panelu hostingu w „Pozostałe ustawienia” -> „Aplikacje Node.js”
Następnie wybieramy opcję „Create Aplication”
2. Konfiguracja aplikacji
Po stworzeniu aplikacji przechodzimy do okna edycji, gdzie możemy zarządzać wersją Node.js, katalogiem głównym aplikacji czy plikami konfiguracyjnymi.
Node.js version
Wybieramy jedną z dostępnych wersji Node.js.
Uwaga! Jeżeli oczekiwanej wersji nie ma na liście należy wykonać instalację wybranej paczki binarnej albo użyć NVS (sekcja „Instalacja Node.js – inne sposoby” – opisane na końcu instrukcji).
Adds value for NODE_ENV variable
Służy do przełączania między wersjami development lub production
Application root
W tym miejscu podajemy ścieżkę do katalogu z naszą aplikacją – jest to lokalizacja, do której zostaną wgrane pliki aplikacji (lokalizacja z plikiem startowym package.json). Katalog domowy aplikacji nie musi znajdować się w katalogu domowym domeny, może być to dowolny katalog użytkownika.
Przykład ścieżki dla katalogu domyślnego public_html:
/home/login_serwera/domains/nazwa_domeny/public_html
Ścieżkami do katalogu domowego można zarządzać z poziomu panelu administracyjnego hostingu w „Serwer www i domeny” -> „Przypisz katalog domeny”.
Z uwagi na to, że zostanie utworzony specjalny wpis do pliku .htaccess przekierowujący z katalogu domeny głównej do katalogu naszej aplikacji, zalecamy tworzyć aplikacje na osobnych domenach z odseparowanymi katalogami.
Application URL
Tutaj należy podać nazwę domeny, pod jaką będzie odpowiadać aplikacja
Application startup file
Tutaj podajemy nazwę pliku startowego – w tym przypadku app.js
Zatwierdzenie Ustawień – Create
Po ustaleniu wstępnej konfiguracji generujemy aplikację przyciskiem „Create”. Zostanie
utworzone wirtualne środowisko. W katalogu głównym domeny tworzony jest też plik
.htaccess odpowiedzialny za ustawienia przekierowania na katalog aplikacji i działanie
Passenger’a. Z tego powodu zalecamy tworzenie aplikacji w wydzielonych domenach,
katalogach, aby nie kolidowały z innymi aplikacjami/stronami, zwłaszcza jeżeli chodzi o
ustawienia w pliku .htaccess
3. Sprawdzenie działania aplikacji
Na tym etapie należy sprawdzić, czy serwer Node.js poprawnie odpowiada. Pod zadeklarowaną nazwą domeny powinna zostać wyświetlona informacja o działającej wersji Node.js.
It works!
NodeJS 16.17.1
Dopiero teraz można rozpocząć zgrywanie plików właściwej aplikacji.
4. Logowanie do wirtualnego środowiska
Aby korzystać z serwera Node.js, wymagane jest zalogowanie do wirtualnego środowiska
poprzez SSH poleceniem dostępnym u góry aplikacji w sekcji „Enter to the virtual
environment.To enter to virtual environment, run the command.”
Teraz możemy odpytać dostępną wersję Node.js oraz wersję npm następującymi
poleceniami:npm -v
node -v
Uwaga #1 ! npm jest wbudowany dla Node.js, dla tego będzie dostępny dopiero po zalogowaniu
do wirtualnego środowiska z uruchomionym serwerem Node.js.
Uwaga #2 ! Aplikacje Node.js mogą działać bez dostępu do SSH, aczkolwiek jest wskazane
posiadanie dostępów SSH do pracy na wirtualnym środowisku i tam wykonywanie dalszych
skryptów.
4. Konfiguracja pliku startowego package.json
Do poprawnego uruchomienia operacji npm install wymagany jest plik konfiguracyjny. Można
go utworzyć ręcznie lub za pomocą polecenia:npm init -y
Dodatkowe informacje
Run NPM Install
Jeżeli aplikacja jest uruchomiona oraz posiada wygenerowany plik package.json to opcja
Run NPM Install powinna się podświetlić jako dostępna. Pojawi się też komunikat:
NPM Install completed successfully.
Do wykonania tego polecenia jest potrzebny poprawnie zadeklarowany plik package.json.
Zalecamy posługiwanie się konsolą ssh i wirtualnym środowiskiem, podając polecenie:npm install
Run scripts
Służy do uruchomiania poleceń zadeklarowanych w package.json. Te same polecenia
możemy wykonywać z poziomu konsoli SSH w zależności od deklaracji w pliku package.json.
Zmienne środowiskowe
Zalecamy korzystanie z pliku .env jako miejsca do deklarowania zmiennych środowiskowych
Wskazanie na port
Domyślnie aplikacja uruchamiana jest na porcie http. Jeżeli chcemy skierować aplikację na
konkretny port można to zrobić z poziomu pliku .htaccess dla domeny w następujący sposób:DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:NR_PORTU/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:NR_PORTU/$1 [P,L]
gdzie NR_PORTU – numer portu – najlepiej podać z zakresu: 35100:35599
FAQ – Najczęściej zadawane pytania/błędy
Serwer Node.js można uruchomić na każdej usłudze, która ma dostęp do SSH. Aplikacje Node.js są dostępne na wszystkich serwerach współdzielonych. Dla serwerów VPS i Dedykowanych można dokonać ręcznej instalacji, patrz Instalacja Node.js – inne sposoby (poniżej FAQ)
Manager pakietów npm jest domyślnie wbudowany dla Node.js. Upewnij się, czy jesteś poprawnie zalogowany do środowiska wirtualnego i czy serwer jest aktywny.
Uruchomić będzie można wszystkie frameworki, dla których node.js ma spełnioną określoną wersję. Przykłady takich technologii to: React.js, Next.js. Nest.js, Nuxt.js, Vue.js, Gatsby. Nie świadczymy wsparcia technicznego w zakresie administracji i instalacji dla tych technologii
Najczęściej tego typu błąd dotyczy problemów z przekierowaniem aplikacji z katalogu domeny do katalogu aplikacji dla subdomen. Zalecamy tworzenie aplikacji node.js w osobnych domenach, gdzie katalogi i pliki .htaccess są odseparowane
Jeżeli pojawia się problem z zatrzymaniem/usunięciem, należy najpierw zatrzymać dla niej procesy. Procesy można zatrzymać z poziomu ssh/htop poleceniem kill. Uwaga: Przed usunięciem aplikacji nie należy usuwać plików Node.js oraz pliku .htaccess. Jeżeli dojdzie do takiej operacji, należy użyć opcji Destroy z poziomu Edycji aplikacji
Jeżeli pojawia się komunikat o błędnej ścieżce, należy zatrzymać aplikację i dokonać edycji. Kiedy błąd dalej się pojawia, a aplikacji nie można zatrzymać, konieczne będzie zatrzymanie procesu z poziomu ssh/htop poleceniem kill
Instalacja Node.js – inne sposoby
Serwer Node.js można zainstalować samodzielnie. Wymagany będzie dostęp do SSH.
Metoda 1 – Archiwum binarne
1. Logujemy się na danego użytkownika i następnie:cd $HOME
2. Pobieramy plik Node.js z oficjalnej strony. Wersję dobieramy do danego projektu.wget https://nodejs.org/dist/v18.13.0/node-v18.13.0-linux-x64.tar.xz
3. Należy pobrany plik, rozpakować go oraz przekopiować jego zawartość do konta:tar -xvf node-v18.13.0-linux-x64.tar.xz
cp -a node-v18.13.0-linux-x64/{bin,lib,include,share} $HOME/
4. npm powinien być już dostępny, sprawdzamy wersjenpm -v
node -v
5. W przypadku braku dostępności należy ponownie ustawić linki symboliczne:unlink npm
unlink npx
ln -s $HOME/node-v18.13.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js npm
ln -s $HOME/node-v18.13.0-linux-x64/lib/node_modules/npm/bin/npx-cli.js npx
Metoda 2 – NVS
NVS jest wieloplatformowym narzędziem do przełączania się między różnymi wersjami Node.js. Następujące polecenia podajemy kolejno z poziomu SSH z katalogu domowego użytkownika:export NVS_HOME="$HOME/.nvs"
git clone https://github.com/jasongin/nvs "$NVS_HOME"
"$NVS_HOME/nvs.sh" install