Ghost merupakan CMS berbasis Node.js yang cukup mudah digunakan, ada dua pilihan menggunakan CMS ini, yaitu berlangganan Ghost(Pro) atau memasang sendiri di server kita (self-hosted).
Pada tutorial kali ini, saya akan menggunakan metode kedua yaitu menggunakan self-host. Langkah-langkahnya seperti berikut:
Siapkan VPS
Buat satu instance VPS, bisa menggunakan shared atau dedicated (harga dan spesifikasi tergantung penyedia layanan yang digunakan). Untuk penyedia cloud, Anda dapat menggunakan AWS, GCP, Vultr atau penyedia lainnya.

Region yang saya gunakan adalah region Singapore (ap-southeast-1), karena dekat dengan wilayah Indonesia sehingga latensinya akan cukup rendah dan diakses dengan cepat oleh pengguna. Untuk spesifikasi server, saya menggunakan instance t3.small dengan 2 vCPU dan 2 GB RAM, penyimpanan tipe gp3 dengan kapasitas 10 GB.
Pastikan semua opsi di bagian Firewall (security groups) dicentang agar port 80 (HTTP)
dan 443 (HTTPS)
terbuka secara default. Untuk port lainnya dapat dilakukan setelah instalasi selesai.

Konfigurasi
Elastic IP
Setelah instalasi selesai, saya menyarankan Anda menggunakan Elastic IP untuk menghindari alamat IP yang berubah-ubah jika server di reboot. Elastic IP merupakan IP statis yang tidak akan berubah kecuali kita ganti secara manual.
Untuk membuat Elastic IP, skrol kebawah dan berhenti di bagian Network & Security > Elastic IPs, klik menu Allocate Elastic IP Address.

Klik tombol Action
dan pilih menu Associate Elastic IP address
untuk menyelesaikan pembuatan Elastic IP.

Pilih Instance
yang diinginkan, centang kolom Allow this Elastic to be reassociated
agar IP dapat digunakan di kemudian hari.

Elastic IP sukses diterapkan ke Instance.

Security Group/Firewall
Konfigurasi port agar dasbor CloudPanel dapat diakses melalui port 8443
. Caranya klik Network & Security
, cari security group yang sesuai kemudian klik nama tersebut dan klik tombol Edit inbound rules
.

Klik Save rules untuk menyimpan perubahan.
Akses CloudPanel
Setelah menambahkan port 8443
, kita dapat langsung masuk ke dasbor CloudPanel dengan mengakses alamat https://ElasticIP:8443
(ubah dengan alamat IP Anda).
Abaikan peringatan sertifikat yang ditandatangani sendiri untuk masuk ke CloudPanel. Klik Accept the Risk and Continue
untuk melanjutkan.

Buat nama pengguna, alamat email dan kata sandi untuk pengguna Admin, lakukan dengan segera untuk menghindari hal-hal yang tidak diinginkan.

Setelah selesai registrasi, langkah selanjutnya adalah masukkan nama pengguna dan kata sandi yang telah dibuat sebelumnya.

Setelah login berhasil, layar akan menampilkan halaman dasbor CloudPanel.

Klik tombol +ADD SITE
untuk menambahkan situs baru. kemudian pilih Node.js.


Isi kolom pada tampilan diatas dengan konfigurasi sebagai berikut:
Domain Name (nama domain) |
nama domain, misal ghost.maucariapa.com |
Node.js Version (versi yang akan digunakan) |
16.0 |
App Port (port yang akan digunakan) |
2368 |
Site User (buat nama pengguna) |
misalnya maucariapa-ghost |
Site Password (buat kata sandi) |
kata sandi yang kuat, misal BKQPrbo5Wa2ptb8 |
Klik tombol Create untuk menyelesaikan langkah ini. Nama pengguna dan kata sandi yang dibuat tersebut akan digunakan untuk login SSH.
Gambar dibawah ini menunjukkan bahwa situs Node.js telah berhasil dibuat.

Langkah selanjutnya klik Manage untuk membuat database yang akan digunakan pada instalasi Ghost nanti.

Klik menu Add Database, isi kolom nama database, nama pengguna dan kata sandi sesuai keinginan, harap diingat kredensial tersebut karena nantinya akan digunakan untuk instalasi.
Setelah sukses dibuat, database tersebut akan tampil pada tab Database di dasbor CloudPanel.

Setelah alamat IP dan nama domain terhubung, selanjutnya kita mulai instalasi Ghost di SSH. Gunakan nama pengguna dan kata sandi yang telah dibuat pada langkah sebelumnya, Untuk login SSH kita dapat menggunakan aplikasi Termius.

Setelah berhasil login, masuk ke direktori ~/htdocs/<nama_situs>
dan lakukan instalasi Ghost menggunakan perintah npm install ghost-cli@latest -g
.
Eksekusi perintah dibawah ini untuk membuat situs Ghost:
ghost install --db mysql --port 2368 --dbhost 127.0.0.1 --dbuser $DATABASE_USER_NAME --dbpass $DATABASE_USER_PASSWORD --dbname $DATABASE_NAME --process local --no-setup-linux-user --no-setup-ssl --no-setup-nginx --dir /home/$SITE_USER/htdocs/$DOMAIN/
Tunggu sampai proses instalasi selesai.

Jika tidak ada kendala, instalasi akan berjalan dengan baik seperti pada gambar dibawah ini.

Setelah selesai buka situs Ghost Anda untuk menyelesaikan instalasi, misalnya https://ghost.maucariapa.com/ghost
. Klik Create account & start publishing untuk menyelesaikan langkah ini.

Kita telah berhasil melakukan instalasi Ghost. Pada dasbor Ghost, kita dapat membuat postingan atau mengganti tema dan pekerjaan lainnya.

Karena service Ghost tidak akan berjalan otomatis ketika server di restart, kita harus membuat skrip bash agar service Ghost dapat berjalan otomatis ketika server di restart. Gunakan skrip berikut:
#!/bin/bashexport NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvmghost start --dir $HOME/htdocs/ghost.site/ --no-setup-linux-user > $HOME/logs/ghost.log &
Simpan file dengan nama ghost-start.sh
. Jangan lupa mengubah direktori $HOME/htdocs/ghost.site/
dengan direktori milik Anda.
Atur permission menggunakan perintah chmod 700 ghost=-start.sh
. Jalankan perintah crontab -e
, masukkan baris perintah @reboot /home/$SITE_USER/scripts/ghost-start.sh &> /dev/null
. Jangan lupa mengubah $SITE_USER
menjadi user yang Anda gunakan.
Restart server dan uji coba apakah service Ghost berjalan secara otomatis atau tidak.
Kesimpulan
Ghost merupakan CMS yang modern, mendukung SEO dan format gambar terbaru seperti .avif dan .avif tanpa memerlukan plugin tambahan. Satu-satunya hal yang perlu Anda perhatikan adalah beradaptasi dengan beberapa baris perintah dan antarmuka terminal.
Mencari hosting terutama shared-hosting untuk menggunakan Ghost saya rasa bukan pekerjaan mudah, pastikan layanan hosting Anda mendukung aplikasi Node.js agar dapat menggunakan CMS ini. Tanyakan kepada CS pihak hosting apakah mereka menyediakan dukungan Node.js atau tidak, sebelum Anda memesan hosting mereka.
Pada artikel lainnya saya akan menjelaskan beberapa perintah yang biasa digunakan pada Ghost-CLI, cara menggunakan format gambar avif dan webp, dan lain-lain.
Artikel Terkait
Cerita dibalik migrasi dari WordPress ke Ghost
May 20, 2023
Saran artikel ini dibuat oleh Kudatuli Project
FlexClip adalah solusi pengeditan video yang paling mudah digunakan untuk pemula.