Skip to main content
Rino Puji Blog

Hanya Sebuah Blog untuk mengisi masa lapang

Simple Nginx Web Server Sync

Problem :

Untuk blog aku ni,aku generate menggunakan 11ty static site generator.Disebabkan aku memilih untuk hosting sendiri blog aku ni di server ubuntu,ade satu masalah yang aku hadapi.Masalah tersebut ialah aku perlu upload secara manual sebarang perubahan yang berlaku di antara local window dan nginx server.


Untuk static site generator,kita akan generate hasil website pada local machine,dan upload generated _site tersebut ke hosting pilihan kita.


Solution :

Disebabkan aku malas nak upload manual dan untuk menjimatkan masa,jadi aku buat simple java script untuk proses synchronize di antara local machine dan juga nginx webser.Flow script ni simple jer,dia akan follow file yang ade pada local machine dan update pada nginx server.


Kenapa javascript dan bukan python ?


Boleh je nak gune python,tapi disebabkan dah alang-alang 11ty pun gune node.js,aku buat je la script ni gune javascript.Jadi sekali harung je boleh buat sekaligus dekat satu terminal visual studio code.



Panduan

  1. Install Node.js pada Window
  2. Set Node.js pada Path Environment Variable
  3. Download SimpleStaticWebServerSync
  4. Configuration
  5. Run script



1.Install Node.js pada Window

Kepada yang guna 11ty,semestinya node.js dah tersedia betul tak ? Kepada yang guna static site generator yang lain,sebagai contoh jekyll,anda tak guna node.js sebab anda guna ruby.Tetapi untuk menggunakan script ni,korang nak kena install dulu la node.js : https://nodejs.org/en/download


2.Set Node.js pada Path Environment Variable

Untuk memudahkan kerja,pastikan anda set node.js pada path environment variable.Jadi,anda boleh seru node.js pada mana-mana terminal tanpa perlu selitkan sekali actual node.js path.Semasa proses install node.js,pada bahagian terakhir sila pastikan anda tick Set node.js to Environment Variable.Anda boleh check sama ada node.js dah tersedia atau belum pada environment variable menggunakan cmd atau visual studio terminal dengan command :

node -v

Sekiranya tiada isu,command di atas akan bagi kita maklumat berkaitan node version yang kita install pada window machine kita :

v20.16.0

3.Download SimpleStaticWebServerSync

Aku dah sediakan script ni dekat github.Boleh download atau copy : SimpleStaticWebServerSync


4.Configuration

Dalam script ni,ade 2 bahagian yang kita kena edit.

  1. Detail server ssh
  2. Detail local dan web server patch

Edit bahagian server details,isikan dengan maklumat web server kita :
const config = {
  host: 'server ip or domain',
  port: ssh server port;
  username: 'username_for_ssh',
  password: 'ssh_password',
};

Jangan lupa edit bahagian file path yang di gunakan pada local dan server :

const localDir = path.resolve('C:/Users/User/Desktop/staticblog/11ty/_site');
const remoteDir = '/var/www/domain';

5. Run script

Langkah terakhir kita run je la script ni dengan command :

node sync.js

6. Penutup

Jadi ni je la perkongsian aku berkaitan script simple untuk automatikkan proses synchronize antara local dan webserver sekiranya korang nak host sendiri static site dekat ubuntu server.


Script ni slow,hanya sesuai untuk website atau blog yang kecil,sekiranya website atau blog korang dalam skala yang besar,aku cadangkan korang guna tools lain seperti Rsync untuk proses synchronize yang cepat dan pantas.