Sadržaj
Tri načina: statički, cPanel, VPS
| Statički export | Node.js App u cPanel-u | VPS (PM2 ili Docker) | |
|---|---|---|---|
| SSR i dinamičke stranice | ne | da | da |
| API rute i Server Actions | ne | da | da |
| ISR i revalidacija | ne | da | da |
| Proxy (bivši middleware) | ne | da | da |
| Optimizacija slika | ne (images.unoptimized) | da | da |
| Gde se radi build | kod vas ili u CI-ju | kod vas ili u CI-ju | na serveru ili u CI-ju |
| Paket | svi, od START-a | STANDARD, ULTIMATE, WP STANDARD, WP PRO, BIZ PRO MAX | CLOUD 2 i jači |
| Cena od | 5.490 RSD godišnje | 8.800 RSD godišnje | 1.790 RSD mesečno |
Šta Next.js 16 traži od servera
- Node.js 20.9 ili noviji. U cPanel-u birajte 22 ili 24, istu glavnu verziju koju koristite lokalno.
- Proxy umesto middleware-a. U Next.js 16 fajl
middleware.tsje preimenovan uproxy.tsi radi u Node.js okruženju, pa mu ne treba edge platforma. - Turbopack je podrazumevan za
next devinext build. - Memorija za build.
next buildtroši znatno više memorije nego aplikacija dok radi. Na deljenom paketu zato build ne radite na serveru.
Statički export
Za sajt bez serverskog dela (blog, prezentacija, dokumentacija):
import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
output: 'export',
images: { unoptimized: true },
trailingSlash: true,
};
export default nextConfig;Posle npm run build sadržaj foldera out otpremite u public_html. Opcija trailingSlash pravi /o-nama/index.html, pa podstranice rade bez dodatnih pravila na serveru.
Next.js u cPanel-u (Setup Node.js App)
- Lokalno:
npm cipanpm run build, sa istom glavnom verzijom Node.js-a kao na serveru. - Otpremite u folder aplikacije (na primer
~/nextapp):.next,public,package.json,package-lock.json,next.config.ts(ili .js) iserver.jsiz primera ispod. Foldernode_modulesne otpremajte. - U Setup Node.js App napravite aplikaciju: verzija 22 ili 24, režim Production, folder
nextapp, domen, startni fajlserver.js. Dodajte promenljive okruženja. - Kliknite Run NPM Install, pa Restart.
const { createServer } = require('http');
const next = require('next');
const app = next({ dev: false });
const handle = app.getRequestHandler();
app.prepare().then(() => {
createServer((req, res) => handle(req, res)).listen(process.env.PORT || 3000);
});Next.js na VPS-u: standalone i PM2
Na VPS-u je najpraktičniji output: 'standalone': build pravi folder sa svim što aplikaciji treba, bez celog node_modules. Uključuje se u next.config.ts, inače folder .next/standalone neće postojati posle build-a.
import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
output: 'standalone',
};
export default nextConfig;npm ci
npm run build
cp -r public .next/standalone/
cp -r .next/static .next/standalone/.next/
cd .next/standalone
PORT=3000 HOSTNAME=127.0.0.1 pm2 start server.js --name next
pm2 startup systemd # pokrenite komandu koju ispiše
pm2 saveAplikacija sluša samo na 127.0.0.1:3000, pa nije dostupna spolja mimo Nginx-a. Ispred nje stavite Nginx sa SSL-om, isto kao za bilo koju Node.js aplikaciju (primer konfiguracije je na stranici Node.js hosting), ili ceo projekat pokrenite u Dockeru (Docker na VPS-u).
Prelazak sa Vercela: šta se menja
| Na Vercelu | Kod nas |
|---|---|
| Environment Variables u panelu | Promenljive u Setup Node.js App ili .env na VPS-u |
| Edge runtime za rute | Node.js runtime (podrazumevan) |
| Vercel Cron | Cron Jobs u cPanel-u ili cron na VPS-u |
| Vercel KV i Blob | Redis ili baza; fajlovi u folderu ili S3 |
| Preview po pull requestu | Ne postoji; testno okruženje na poddomenu |
| Globalni edge CDN | Jedan server; po želji Cloudflare ispred |
Vercel je bolji izbor ako vam trebaju preview okruženja za ceo tim i serveri blizu korisnika na više kontinenata. Kod nas dobijate fiksnu cenu u dinarima, fakturu firmi i domen, mejl i aplikaciju na istom mestu. Za aplikacije koje pozivaju AI modele pogledajte AI hosting.