{"id":7419,"date":"2026-08-20T18:34:50","date_gmt":"2026-08-20T16:34:50","guid":{"rendered":"https:\/\/www.webhostingsrbija.rs\/?p=7419"},"modified":"2026-08-20T18:34:50","modified_gmt":"2026-08-20T16:34:50","slug":"nodejs-aplikacije","status":"publish","type":"post","link":"https:\/\/www.webhostingsrbija.rs\/en\/nodejs-aplikacije\/","title":{"rendered":"Node.js applications in WHSPanel"},"content":{"rendered":"<p>Node.js App Manager ti omogu\u0107ava da pokrene\u0161 Node aplikacije (Express, Next.js, NestJS i druge) direktno na hosting nalogu preko Nginx Unit, brzog aplikativnog servera sa podr\u0161kom za WebSocket i bez odlaganja pri pokretanju. Svaka aplikacija radi kao izolovan proces vezan za jedan domen.<\/p>\n\n<h2>1. Pregled<\/h2>\n<p>U meniju otvori <strong>Software<\/strong> well <strong>Node.js<\/strong>. Tabela prikazuje tvoje aplikacije sa kolonama <strong>Naziv aplikacije<\/strong> (i domen), <strong>Node verzija<\/strong>, <strong>Entry fajl<\/strong>, <strong>Status<\/strong> (stopped ili running) i <strong>Akcije<\/strong>.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a87774e4bf08&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a87774e4bf08\" class=\"wp-block-image size-large wp-lightbox-container\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"636\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-populated-a-1024x636.png\" alt=\"Node.js aplikacije u WHSPanelu\" class=\"wp-image-7541\" title=\"\" srcset=\"https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-populated-a-1024x636.png 1024w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-populated-a-300x186.png 300w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-populated-a-768x477.png 768w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-populated-a-1536x955.png 1536w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-populated-a-2048x1273.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-block-image__caption\">Populisano stanje: aplikacija sa kontrolama Pokreni\/Zaustavi\/Restartuj\/npm install\/Izmeni\/Obri\u0161i.<\/figcaption><\/figure>\n\n\n<h2>2. Kako da kreira\u0161 aplikaciju<\/h2>\n<ol>\n<li>Click <strong>Kreiraj aplikaciju<\/strong>.<\/li>\n<li><strong>Naziv aplikacije<\/strong> and <strong>Domain<\/strong> na kome radi.<\/li>\n<li><strong>Node.js verzija<\/strong> (na primer 20 LTS).<\/li>\n<li><strong>Direktorijum aplikacije<\/strong> gde je kod i <strong>Entry fajl<\/strong> (na primer <code>app.js<\/code>).<\/li>\n<li><strong>Promenljive okru\u017eenja<\/strong> u obliku <code>KEY=VALUE<\/code>, jedna po liniji.<\/li>\n<li>Click <strong>OK<\/strong>.<\/li>\n<\/ol>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a87774e4c71d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a87774e4c71d\" class=\"wp-block-image size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"640\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-create-p-1024x640.png\" alt=\"Dijalog Kreiraj Node.js aplikaciju\" class=\"wp-image-7542\" title=\"\" srcset=\"https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-create-p-1024x640.png 1024w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-create-p-300x188.png 300w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-create-p-768x480.png 768w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-create-p-1536x960.png 1536w, https:\/\/www.webhostingsrbija.rs\/wp-content\/uploads\/2026\/08\/node-create-p-2048x1280.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-block-image__caption\">Kreiranje Node aplikacije.<\/figcaption><\/figure>\n\n\n<h2>3. Kontrole nad aplikacijom<\/h2>\n<p>Kada je aplikacija napravljena, u koloni <strong>Akcije<\/strong> dobija\u0161 pun set kontrola:<\/p>\n<table>\n<thead><tr><th>Control<\/th><th>\u0160ta radi<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><strong>Pokreni<\/strong><\/td><td>Startuje aplikaciju (status prelazi u <em>running<\/em>) da po\u010dne da poslu\u017euje saobra\u0107aj.<\/td><\/tr>\n<tr><td><strong>Zaustavi<\/strong><\/td><td>Zaustavlja aplikaciju.<\/td><\/tr>\n<tr><td><strong>Restartuj<\/strong><\/td><td>Ponovo pokre\u0107e aplikaciju (na primer posle izmene koda).<\/td><\/tr>\n<tr><td><strong>npm install<\/strong><\/td><td>Instalira zavisnosti iz <code>package.json<\/code>, bez potrebe za SSH.<\/td><\/tr>\n<tr><td><strong>Izmeni<\/strong><\/td><td>Menja pode\u0161avanja (Node verzija, entry fajl, promenljive okru\u017eenja).<\/td><\/tr>\n<tr><td><strong>Obri\u0161i<\/strong><\/td><td>Uklanja aplikaciju.<\/td><\/tr>\n<\/tbody>\n<\/table>\n\n<blockquote><p><strong>Tok rada:<\/strong> prvo otpremi kod u izabrani direktorijum (preko Git repozitorijuma ili File Managera), pa <strong>kreiraj aplikaciju<\/strong>, klikni <strong>npm install<\/strong> da povu\u010de\u0161 zavisnosti, i na kraju <strong>Pokreni<\/strong>. Kada aplikacija radi (status <em>running<\/em>), dostupna je na svom domenu.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>How to run Node.js application (Express, Next.js, NestJS) in WHSPanel via Nginx Unit.<\/p>","protected":false},"author":1,"featured_media":7311,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[211,203],"tags":[],"class_list":["post-7419","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softver","category-whs-panel"],"_links":{"self":[{"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/posts\/7419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/comments?post=7419"}],"version-history":[{"count":1,"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/posts\/7419\/revisions"}],"predecessor-version":[{"id":7577,"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/posts\/7419\/revisions\/7577"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/media\/7311"}],"wp:attachment":[{"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/media?parent=7419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/categories?post=7419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webhostingsrbija.rs\/en\/wp-json\/wp\/v2\/tags?post=7419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}