2 min read

Memasang Nuxtjs di Server Debian

Memasang Nuxtjs di Server Debian

Pertama yang harus disiapkan adalah memasang node js, saya sarankan menggunakan NVM agar mudah mengatur versi node js yang akan dipasang. Terus yang kedua saya menggunakan NGINX sebagai web servernya.

Memasang NUXT

Agar mudah memasang NUXT saya menggunakan vue-cli, kalau belum terpasang silahkan pasang terlebih dahulu dengan tautan berikut. Memasang Vue CLI. Jika sudah gunakan perintah berikut untuk memasang NUXT.

vue init nuxt/starter nama-folder

Tunggu sampai selesai.

Menjalankan NUXT

Untuk menjalankan NUXT ada 3 cara, pertama mode dev dengan perintah

nuxt

Kalau gagal gunakan

npm run dev

Mode ini cocok digunakan saat pengembangan, ada fungsi hot reload saat menjalankan mode ini.

Yang kedua ada generate fungsi ini akan menghasilkan html statis dari NUXT. Jalankan dengan perintah

nuxt generate

kalau gagal gunakan

npm run generate

Yang ketiga adalah Server Rendered Deployment metode ini yang akan saya gunakan. Yang perlu diperhatikan di sini adalah, pastikan lakukan proses build terlebih dahulu. Untuk menjalankannya gunakan perintah berikut

nuxt build
nuxt start

atau gunakan

npm run build
npm run start

Alasan kenapa tidak menggunakan generate saya tulis di lain kesempatan

Sekarang jika NUXT sudah terpasang mari kita jalankan

npm run build
npm run start

Biasanya NUXT akan berjalan di locahost:3000, karena ini berjalan di localhost maka untuk tahu ini berjalan benar atau tidak gunakan perintah curl untuk mengeceknya.

curl localhost:3000

Jika berhasil di terminal akan menampilkan struktur HTML.

Background Proses

Jika sudah benar terpasang sekarang bagaimana caranya agar fungsi start ini berjalan secara background oleh itu dibutuhkan paket node namanya pm2. Untuk memasangnya gunakan perintah

sudo npm install -g pm2

-g ini berarti berfungsi global di seluruh sistem.

Mendaftarkan NUXT ke PM2

Di dalam root folder nuxt yang sudah dipasang eksekusi perintah berikut

pm2 start npm --name "nuxt" -- start

“nuxt” di sana sebagai nama servis yang didaftarkan. Untuk melihat servis sedang berjalan atau tidak, bisa gunakan perintah curl di atas. Atau melalui perintah pm2 seperti berikut :

Menjalankan servis

pm2 start nama-servis

contoh : pm2 start nuxt

akan menghasilkan

┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬──────────┬────────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem      │ user   │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼──────────┼────────┼──────────┤
│ nuxt     │ 0  │ fork │ 22625 │ online │ 5       │ 0s     │ 0%  │ 9.9 MB   │ ariesm │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴──────────┴────────┴──────────┘

Menghentikan

pm2 stop nama-servis

Restart Servis

pm2 restart nama-servis

Monitoring

pm2 monit nama-servis

Silahkan periksa situs ofisial pm2 untuk perintah lainnya.

Mendaftarkan PM2 sebagai Startup

Gunakan perintah berikut agar pm2 bisa didaftarkan sebagai startup

pm2 startup systemd

Perintah di atas akan mengeluarkan hasil seperti berikut

sudo env PATH=$PATH:/home/username/.nvm/versions/node/v8.9.4/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username

Jangan copas bagian skrip di atas, silahkan salin sesuai hasil yang muncul di terminal sendiri.

Jika berhasil kita bisa mengecek status pm2 dengan cara

systemctl status pm2-username

Oke memasang nuxt sudah, sekarang bagaimana mengakses aplikasi nuxt yang berjalan di localhost:3000 ? Di sinilah NGINX berperan dengan proxy server, jika belum memasang NGINX anda bisa lihat di tautan berikut : Memasang NGINX + PHP + Webmin.

Pindah ke dalam folder konfigurasi NGINX

cd /etc/nginx/sites-available/

Salin terlebih dahulu konfigurasi default yang ada, ini tidak wajib sih tapi saran saya selalu backup konfigurasi asli jaga-jaga kalau ada masalah gampang balikin ke awalnya lagi.

cp default default.bak

Buka berkas default dengan editor favorit entah itu nano atau vim.

sudo vim default

Pada bagian location / ubah jadi seperti berikut

location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

Untuk mengecek konfigurasi NGINX gunakan perintah berikut, kali-kali aja ada typo atau kurang spasi gitu.

sudo nginx -t

Kalau sudah aman restart NGINX.

sudo systemctl restart nginx

Lalu silahkan akses alamat server anda di browser, seharusnya sudah bisa diakses seperti di sini : vps.arsmp.com

Referensi :
NUXT JS OFISIAL
Setup Nodejs Application on Ubuntu