{"id":2542,"date":"2025-10-02T15:46:13","date_gmt":"2025-10-02T08:46:13","guid":{"rendered":"https:\/\/www.domosquare.com\/tutorial\/?p=2542"},"modified":"2025-10-02T15:47:00","modified_gmt":"2025-10-02T08:47:00","slug":"mengupload-nextjs-ke-hosting","status":"publish","type":"post","link":"https:\/\/www.domosquare.com\/tutorial\/hosting\/mengupload-nextjs-ke-hosting.html","title":{"rendered":"Mengupload NextJS ke hosting"},"content":{"rendered":"\n<p>Di era modern ini, aplikasi web tidak hanya sekadar menampilkan konten statis; pengguna menginginkan interaksi yang cepat, pengalaman mulus, dan performa yang tinggi. <strong>Next.js<\/strong> hadir sebagai salah satu framework React yang memungkinkan developer membuat aplikasi <strong>server-side rendering (SSR)<\/strong> maupun <strong>static site generation (SSG)<\/strong>, yang sangat optimal untuk SEO dan kecepatan loading.<\/p>\n\n\n\n<p>Namun, membuat aplikasi yang bagus di komputer lokal hanyalah setengah perjalanan. Tantangan sebenarnya muncul ketika kita ingin <strong>mengunggah aplikasi ke hosting<\/strong>. Hosting tradisional seperti cPanel atau shared hosting biasanya tidak mendukung Node.js secara native seperti server VPS. Jadi, perlu pemahaman tambahan tentang build output Next.js, struktur folder, dan cara menjalankan aplikasi di lingkungan hosting.<\/p>\n\n\n\n<p>Di tutorial ini, kita akan membahas <strong>cara mengunggah Next.js yang sudah di-build ke hosting<\/strong> dengan langkah-langkah praktis dan jelas, sehingga aplikasi Anda bisa berjalan lancar di internet.<\/p>\n\n\n\n<p>Paket yang cocok untuk Next.js<\/p>\n\n\n\n<p>NextJS membutuhkan proses yang cukup banyak, dari pengetesan Kami rata-rata proses (dengan fork) NextJS mencapai 100 lebih. Oleh karenanya paket yang cocok untuk Next.JS adalah paket <a href=\"https:\/\/www.domosquare.com\/hosting-enterprise-cloud\/\">Enterprise<\/a>.<\/p>\n\n\n\n<p>Anda juga boleh melakukan trial jika sebelumnya Anda belum memiliki hosting di Domosquare, hal ini dapat memastikan aplikasi Anda dapat berjalan atau tidak tanpa khawatir bayar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tutorial Upload Next.js ke Hosting (Setelah Build)<\/h3>\n\n\n\n<p>Dikarenakan build nextjs memerlukan proses dan resource yang banyak, maka pastikan sebelum Anda upload ke cPanel Anda.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Buat aplikasi di Setup Node.JS<\/h4>\n\n\n\n<p>Di cpanel pada bagian Software, klik Setup Node.js App<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1009\" height=\"398\" src=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-1.png\" alt=\"\" class=\"wp-image-2544\" srcset=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-1.png 1009w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-1-300x118.png 300w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-1-768x303.png 768w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-1-960x380.png 960w\" sizes=\"auto, (max-width: 1009px) 100vw, 1009px\" \/><\/a><\/figure>\n\n\n\n<p>Setelah ada di halaman Setup Node.js App, klik tombol &#8220;CREATE APPLICATION&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"353\" src=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-2.png\" alt=\"\" class=\"wp-image-2545\" srcset=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-2.png 813w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-2-300x130.png 300w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-2-768x333.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/a><\/figure>\n\n\n\n<p>Setelah Anda buat Anda dapat coba test sesuai URL yang tadi Anda tentukan, jika berjalan, seharusnya Anda akan melihat tulisan:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-fbbd8f9fca1d5992dafd166cc4c14196\"><code>It works!\nNodeJS 22.18.0<\/code><\/pre>\n\n\n\n<p>Setelah memastikan nodejs nya berjalan, lakukan upload file project nextjs Anda di local ke folder nodejs apps yang baru saja Anda buat.<\/p>\n\n\n\n<p class=\"has-vivid-red-color has-text-color has-link-color wp-elements-c4424f64c4446889d4eab0ac92361040\"><strong>Perhatian<\/strong>: Jangan mengupload dengan folder node_modules nya<\/p>\n\n\n\n<p>Setelah upload selesai, pada halaman aplikasi nodejs tadi yang Anda buat, klik tombol &#8220;Run NPM Install&#8221;, ini untuk menginstall package yang diperlukan sesuai package.json<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"906\" height=\"238\" src=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-3.png\" alt=\"\" class=\"wp-image-2547\" srcset=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-3.png 906w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-3-300x79.png 300w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-3-768x202.png 768w\" sizes=\"auto, (max-width: 906px) 100vw, 906px\" \/><\/a><\/figure>\n\n\n\n<p>Jika sudah selesai, selanjutnya Anda perlu mengedit file app.js pada folder aplikasi nodejs yang sudah Anda buat dengan kode berikut:<\/p>\n\n\n\n<div style=\"height: 250px; position:relative; margin-bottom: 50px;\" class=\"wp-block-simple-code-block-ace\"><pre class=\"wp-block-simple-code-block-ace\" style=\"position:absolute;top:0;right:0;bottom:0;left:0\" data-mode=\"javascript\" data-theme=\"monokai\" data-fontsize=\"14\" data-lines=\"Infinity\" data-showlines=\"true\" data-copy=\"false\">const { createServer } = require('http')\nconst { parse } = require('url')\nconst next = require('next')\n\nconst dev = process.env.NODE_ENV !== 'production'\nconst hostname = 'localhost'\nconst port = process.env.PORT || 3000\nconst app = next({ dev, hostname, port })\nconst handle = app.getRequestHandler()\n\napp.prepare().then(() => {\n  createServer(async (req, res) => {\n    try {\n      const parsedUrl = parse(req.url, true)\n      const { pathname, query } = parsedUrl\n\n      if (pathname === '\/a') {\n        await app.render(req, res, '\/a', query)\n      } else if (pathname === '\/b') {\n        await app.render(req, res, '\/b', query)\n      } else {\n        await handle(req, res, parsedUrl)\n      }\n    } catch (err) {\n      console.error('Error occurred handling', req.url, err)\n      res.statusCode = 500\n      res.end('internal server error')\n    }\n  }).listen(port, (err) => {\n    if (err) throw err\n    console.log(`> Ready on http:\/\/${hostname}:${port}`)\n  })\n})\n<\/pre><\/div>\n\n\n\n<p>Jika sudah, simpan.<\/p>\n\n\n\n<p>Dan selanjutnya terakhir yang perlu Anda lakukan Adalah restart kembali aplikasi nodejs nya.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"230\" src=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-5.png\" alt=\"\" class=\"wp-image-2549\" srcset=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-5.png 768w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-5-300x90.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/figure>\n\n\n\n<p>Coba cek kemudian sesuai URL NodeJS app yang tadi sudah Anda tentukan, seharusnya jika kompatible dengan shared hosting, maka webnya sudah bisa diakses \ud83d\ude42<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"641\" src=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-4-1024x641.png\" alt=\"\" class=\"wp-image-2548\" srcset=\"https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-4-1024x641.png 1024w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-4-300x188.png 300w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-4-768x481.png 768w, https:\/\/www.domosquare.com\/tutorial\/wp-content\/uploads\/2025\/10\/image-4.png 1077w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\">Perhatian: NextJS menggunakan banyak resource, dan juga banyak module yang mungkin membutuhkan hak akses atau proses yang lebih tinggi dari yang disediakan di shared hosting. Jika kondisi demikian, kami sangat menganjurkan menggunakan <strong><a href=\"https:\/\/www.domosquare.com\/managed-virtual-private-server\/\">VPS Managed Kami<\/a><\/strong>. Kami akan bantu setup VPS nya free tanpa biaya hingga aplikasi Anda jalan.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Di era modern ini, aplikasi web tidak hanya sekadar menampilkan konten statis; pengguna menginginkan interaksi yang cepat, pengalaman mulus, dan performa yang tinggi. Next.js hadir sebagai salah satu framework React yang memungkinkan developer membuat aplikasi server-side rendering (SSR) maupun static site generation (SSG), yang sangat optimal untuk SEO dan kecepatan loading. Namun, membuat aplikasi yang [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"rating_form_position":"","rating_results_position":"","mr_structured_data_type":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,802],"tags":[9,870,831],"class_list":["post-2542","post","type-post","status-publish","format-standard","hentry","category-hosting","category-pemrograman","tag-cpanel","tag-nextjs","tag-nodejs"],"jetpack_featured_media_url":"","multi-rating":{"mr_rating_results":[{"adjusted_star_result":0,"star_result":0,"total_max_option_value":5,"adjusted_score_result":0,"score_result":0,"percentage_result":0,"adjusted_percentage_result":0,"count":0,"post_id":2542}]},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/posts\/2542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/comments?post=2542"}],"version-history":[{"count":2,"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/posts\/2542\/revisions"}],"predecessor-version":[{"id":2551,"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/posts\/2542\/revisions\/2551"}],"wp:attachment":[{"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/media?parent=2542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/categories?post=2542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.domosquare.com\/tutorial\/wp-json\/wp\/v2\/tags?post=2542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}