Tento návod vás stručne prevedie s vytvorením a nastavením Node.js na virtuálnom serveri (VPS) v prostredí ISPConfig. Vyžadujú sa základné znalosti prostredia Linux a SHELL (SSH).
ISPconfig
Najprv si vytvorte web v ISPConfig.
Hore v menu kliknite na Sites, následne napravo v sekcii Websites kliknite na Websites a potom na Add new website:
Na karte Domain do políčka Domain zadajte svoju doménu. Napr. exotest.sk:
Na karte Options označte Enable PROXY Protocol a do políčka Apache Directives vložte tieto príkazy:
ProxyPreserveHost On ProxyPass / http://127.0.0.1:8000/ RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 127.0.0.0/8
Kliknite dole na Save.
SHELL
Teraz sa prihláste na server pomocou SSH na server a do príkazového riadku zadajte:
a2enmod remoteip
systemctl restart apache2
a následne
nano /etc/systemd/system/node-server@.service
Otvorí sa editor a do neho skopírujte túto sekvenciu:
[Unit] Description=NODEJS server service After=network.target [Service] Type=simple ExecStart=/usr/bin/npm start --prefix /var/www/%i/web StandardOutput=syslog [Install] WantedBy=multi-user.target
Uložte to (CTRL+X, potom stlačte ešte Y (Yes) pre potvrdenie)
Po pridaní záznamu hore, spustite ešte tento príkaz:
systemctl daemon-reload
Inštalácia Node.js
Spustite tieto príkazy
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
source /root/.bashrc
a potom ešte
nvm list-remote
tento príkaz vypíše zoznam verzií, tak napríklad môžete si nainštalovať verziu 21.6.2
nvm install v21.6.2
A nakoniec ešte treba nastaviť symlink:
ln -s "$(which node)" /usr/bin/node
ln -s "$(which npm)" /usr/bin/npm
Týmto je Node.js nainštalovaný na virtuálnom serveri.
Následne do webového adresára pridajte súbor package.json s obsahom:
{ "scripts": { "start": "node index.js" } }
a index.js s obsahom:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('It\'s working\n'); }).listen(8000, '127.0.0.1');
Do príkazového riadku napíšte ešte:
systemctl start node-server@<nazov-domeny.tld>
... a ak všetko ste spravili správne, tak po navštívení lokality by ste mali vidieť It's working.