Sadržaj
cPanel ili VPS
| cPanel paket (Setup Node.js App) | VPS | |
|---|---|---|
| Kako se pokreće | Web server pokreće aplikaciju na zahtev i ponovo je diže posle greške | Vi pokrećete proces (PM2 ili systemd), Nginx je ispred |
| Verzija Node.js-a | Bira se u panelu, među verzijama instaliranim na serveru | Bilo koja (NodeSource, nvm) |
| Memorija i procesi | Limit celog naloga: STANDARD 6 GB RAM i 400 procesa | Ceo server: od 4 GB (CLOUD 2) do 32 GB (CLOUD 16) |
| Procesi koji rade stalno | Ne; aplikacija odgovara na zahteve | Da (redovi čekanja, botovi, zakazani poslovi) |
| Baze | MySQL 8.0 i PostgreSQL iz cPanel-a | Šta instalirate: PostgreSQL, MySQL, MongoDB, Redis |
| Domen i SSL | Iz cPanel-a, besplatan Let’s Encrypt | Nginx i Certbot (primer ispod) |
| Održavanje sistema | Mi | Vi (upravljanje se doplaćuje) |
| Cena od | 8.800 RSD godišnje | 1.790 RSD mesečno |
Paketi sa Node.js-om u cPanel-u:
| Paket | RAM | CPU | Procesi | NVMe | Cena |
|---|---|---|---|---|---|
| STANDARD | 6 GB | 6 CPU jezgara @3.90GHz | 400 | 40 GB NVMe | 8.800 RSD godišnje |
| ULTIMATE | 8 GB | 8 CPU jezgara @3.90GHz | 600 | 80 GB NVMe | 15.500 RSD godišnje |
| WP STANDARD | 9 GB | 8 CPU jezgara @4.20GHz | 600 | 40 GB NVMe | 14.500 RSD godišnje |
| WP PRO | 12 GB | 12 CPU jezgara @4.20GHz | 800 | 80 GB NVMe | 21.500 RSD godišnje |
| BIZ PRO MAX | 14 GB | 16 CPU jezgara @4.20GHz | 1500 | Neograničen NVMe | 39.000 RSD godišnje |
Express aplikacija u cPanel-u, korak po korak
- Otpremite kod u folder van
public_html, na primer~/nodeapp(File Manager, FTP ili Git). Foldernode_modulesne otpremajte: cPanel ga drži u posebnom okruženju aplikacije. - U cPanel-u otvorite Software → Setup Node.js App → Create Application. Izaberite verziju (22 ili 24), režim Production, folder
nodeapp, domen ili poddomen i startni fajl (na primerapp.js). - U istom prozoru dodajte promenljive okruženja: ključeve API-ja, podatke za bazu,
NODE_ENV=production. - Kliknite Run NPM Install. Ako koristite SSH, panel ispisuje komandu za ulazak u okruženje aplikacije (
source ~/nodevenv/nodeapp/22/bin/activate), posle koje radenpminode. - Kliknite Restart i otvorite domen. Besplatan SSL (Let’s Encrypt) se izdaje automatski.
const express = require('express');
const app = express();
app.use(express.json());
app.get('/api/zdravo', (req, res) => {
res.json({ poruka: 'Aplikacija radi', vreme: new Date().toISOString() });
});
// U cPanel-u port dodeljuje web server; PORT je za lokalni rad i VPS.
app.listen(process.env.PORT || 3000);Objava iz Git-a
Na paketima sa SSH-om (STANDARD i jači) imate i Git Version Control u cPanel-u: repozitorijum klonirate na nalog i povlačite izmene iz panela ili preko SSH-a. Tipična izmena koda izgleda ovako:
cd ~/nodeapp
git pull
source ~/nodevenv/nodeapp/22/bin/activate
npm ci --omit=dev
# zatim Restart u Setup Node.js AppAko aplikacija ima korak izgradnje (TypeScript, Next.js), radite ga na svom računaru ili u GitHub Actions-u i otpremajte rezultat. Izgradnja na deljenom nalogu troši memoriju i procese istog naloga na kome radi sajt. Za Next.js je postupak opisan na stranici Next.js hosting.
Node.js na VPS-u: PM2 i Nginx
Primer za Ubuntu 24.04 i domen api.vasdomen.rs koji je već usmeren na IP adresu servera.
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs nginx certbot python3-certbot-nginx
sudo npm install -g pm2
cd /var/www/api && npm ci --omit=dev
pm2 start app.js --name api
pm2 startup systemd # pokrenite komandu koju ispiše
pm2 saveserver {
server_name api.vasdomen.rs;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d api.vasdomen.rsAplikacija iz primera sluša na portu 3000 na svim adresama servera. Da bi se do nje stizalo samo preko Nginx-a i HTTPS-a, uključite firewall i ostavite otvorene samo SSH, HTTP i HTTPS. Drugi način je da aplikacija na VPS-u sluša samo lokalno: app.listen(3000, '127.0.0.1').
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enableAko više volite kontejnere, isti posao radi Docker; vodič je na stranici Docker na VPS-u.
Kada preći sa cPanel-a na VPS
- U logu aplikacije se ponavljaju greške zbog memorije ili aplikacija odgovara sporo kad poraste broj korisnika.
- Treba vam proces koji radi stalno: red čekanja (BullMQ), bot koji stalno osluškuje, posao na svakih nekoliko sekundi.
- Aplikacija drži mnogo otvorenih WebSocket veza.
- Treba vam sistemski softver: Docker, ffmpeg, Chromium za Puppeteer, MongoDB ili sopstveni Redis.
- Želite da birate tačnu verziju Node.js-a, nezavisno od servera.
Prelazak sa cPanel paketa na VPS ne menja domen ni mejlove: mejlovi i sajt mogu da ostanu na cPanel paketu, a na VPS ide samo aplikacija (na poddomenu). Za AI aplikacije pogledajte i AI hosting.