Cara Instalasi Ghost Di CloudPanel

cara install ghostcms.jpg
May 26, 2023
Uncategorized
2
Share

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).

⚠️
Untuk alasan keamanan, segera akses CloudPanel menggunakan alamat IP Anda. Jika memungkinkan, buka port 8443 hanya untuk IP Anda melalui firewall.

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.

Recommended:  Cerita Dibalik Migrasi Dari WordPress Ke Ghost

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.

⚠️ Jangan lupa menautkan alamat IP dengan nama domain yang telah dibuat sebelumnya di pengelola domain atau DNS Anda, seperti CloudFlare atau GoDaddy.

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/
⚠️ Ubah DATABASE_USERNAME, DATABASE_USER_PASSWORD, DATABASE_NAME, SITE_USER, dan DOMAIN dengan kredensial database dan domain Anda.

Tunggu sampai proses instalasi selesai.

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

Recommended:  Koenig, Editor Ghost CMS Kini Open Source

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 .webp 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.