Gegara diskusi ringan dengan kakak kelas kuliah, saya jadi pengin nyoba install ghost di vps sembari mencoba project blog bule yang mau saya coba optimasi SEO. Katanya ghost ini cukup mumpuni untuk SEO.
Kebutuhan dari blog yang akan saya bangun ini memang hanya untuk menulis dan optimasi SEO saja karena untuk monetize dengan adsense dan affiliate. Mumpung ada proyek iseng, kenapa nggak iseng juga nyobain ghost?
Baca: Panduan Install Wordpress di VPS
Nggak pake lama, langsung build server saja di Vultr. Kenapa kok nggak Digital Ocean? Meski ghost ini punya vps partner di Digital Ocean, saya pilih pakai VULTR karena harganya lebih murah. Dengan spesifikasi yang sama di digital Ocean per bulan $7 sedangkan di VULTR cuma %6.
Dapatkan saldo $10 dengan mendaftar melalui link ini.
Deploy Server di VULTR
Meski saya sudah punya beberapa vps di VULTR, saya putuskan untuk deploy server baru karena Ghost memiliki kebutuhan yang berbeda dengan wordpress. Kalau wordpress pakai PHP, sedangkan Ghost ini pakai NodeJS. Saya belum pernah pakai nodejs sebelumnya,. Langsung saja kita mulai percobaan ini!
Pilih Spesifikasi Server
Pilih Lokasi Server
Berhubung target visitor untuk blog baru saya ada di Amerika Serikat, saya memilih lokasi server di Amerika. Kalau teman-teman punya target visitor orang Indonesia, saya sarankan untuk ambil yang Singapore saja. Karena lebih dekat sehingga loading website bisa lebih cepat ketika diakses dari Indonesia.
Pilih Sistem Operasi Server
Kemudian pilih sistem operasi, Ghost menyarankan untuk menggunakan Ubuntu. Saya manut dengan install Ubuntu 22.04 LTS. Setidaknya selama 2 tahun nggak perlu update OS.
Pilih Ukuran Server
Pilih ukuran server yang sesuai dengan blog / website yang kamu gunakan. Saya memilih yang paling murah untuk spesifikasi ini, yaitu 1vCPU, RAM 1Gb, SSD 25 Gb (ini kebanyakan sih sebenernya). Minimal requirements untuk install Ghost adalah memiliki RAM 1Gb.
Berinama Server
Jangan lupa untuk memberi nama server supaya lebih enak nyarinya. Kalau sudah punya SSH ya bisa langsung tambahkan sekalian sshnya biar makin masyuk.
Dasar Keamanan Server
Setelah VPS sudah bisa digunakan, langkah selanjutnya adalah mengatur basic server security. Seperti menonaktifkan root login, buat username untuk login, dan buat ssh key.
Buat User Baru
Hal pertama yang harus dilakukan ketika membuat server baru adalah login kemudian membuat user baru. Login ke server baru menggunakan perintah
ssh root@ipserver
Kemudian buat user baru menggunakan perintah
adduser namauser
Jangan menggunakan username ghost, karena bisa memicu konflik saat proses instalasi Ghost. Oleh karena itu lebih baik menggunakan nama lain. Masukkan username tersebut ke group superuser supaya punya privileges admin, gunakan perintah berikut ini
usermod -aG sudo namauser
Setting Login SSH Key
Langkah selanjutnya adalah mematikan login root dan gunakan ssh key untuk login. Sehingga untuk masuk ke server hanya bisa menggunakan perangkat yang sudah di daftarkan.
Buka terminal di komputer / laptop linux / mac kemudian jalankan perintah di bawah ini
ssh-keygen -t rsa
Kamu bisa pilih lokasi penyimpanan kunci ini. Lokasi defaultnya sih ada di ~/.sshd/id_rsa.pub . Kamu juga akan diminta untuk mengisi passphrase yang merupakan pin ketika kamu login ke server menggunakan ssh. passphrase ini hanya dibutuhkan sekali di setiap sesinya.
Sekarang kamu bisa buka file id_rsa.pub yang sudah dibuat oleh ssh-keygen dan copy semua isinya untuk diletakkan ke dalam vps.
Sekarang kembali lagi ke terminal VPS, dan beberapa langkah berikut ini supaya bisa login ke VPS dengan mudah
mkdir ~/.ssh
chmod 700 ~/.ssh
Dalam folder .ssh yang ada di VPS, kamu buat file dengan nama authorized_keys
, gunakan perintah
nano ~/.ssh/authorized_keys
Paste isi konten yang ada pada file id_rsa.pub
yang sudah kita copy sebelumnya ke dalam file authorized_keys
. Kemudian simpan. Ubah permission authorized_keys
menjadi 600 menggunakan perintah
chmod 600 ~/.ssh/authorized_keys
Disable Root Login
Langkah selanjutnya adalah mematikan login root dan login menggunakan password. Sehingga hanya komputer yang sudah didaftarkan saja yang bisa login ke vps tersebut. Jalankan perintah
sudo nano /etc/ssh/sshd_config
Cari PermitRootLogin yes ubah menjadi PermitRootLogin no
Kemudian cari juga PasswordAuthentication yes ganti PasswordAuthentication no
Jangan lupa untuk restart ssh service menggunakan perintah
sudo service ssh restart
Setelah melakukan perintah tersebut, kamu tidak bisa login ke vps sebagai root, dan nggak bisa login menggunakan password lagi. Hanya komputer yang memiliki terdaftar di authorized_keys yang bisa masuk. Penak to?
Install Firewall
Langkah selanjutnya adalah mengaktifkan firewall, ini juga merupakan salah satu layer keamanan. Gunakan perintah
sudo apt-get install ufw
Sedangkan untuk konfigurasinya bisa jalankan perintah di bawah ini
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
Ketika perintah tersebut digunakan untuk memberikan izin akses ssh, http dan https.
Setup Ghost Server
Setelah persiapan dasar keamanan server dilakukan, langkah selanjutnya adalah mempersiapkan beberapa software yang dibutuhkan oleh Ghost, yaitu
- Nginx
- Node.js
- MySQL
Sebelum install software-software tersebut, ada baiknya untuk mengarahkan domain ke server baru terlebih dahulu. Saya biasanya melakukan ini kalau semua data di server sudah siap sehingga bisa meminimalisir situs down.
Tetapi dalam proses instalasinya, ghost akan langsung install SSL sehingga ada baiknya domain sudah diarahkan ke server baru. Kalau belum diarahkan, proses instalasi ssl ini akan gagal.
Pointing Domain
Buka DNS Manager yang kamu gunakan, kemudian arahkan A name dari domain ke ip server yang sudah kamu buat. Saya lebih suka menggunakan Cloudflare untuk DNS Manager. Selain gratis, propagasi domain menurutku bisa dikatakan hampir real time.
Install Nginx
Nginx merupakan web server yang digunakan untuk menjalankan ghost. Untuk install bisa gunakan perintah
sudo apt-get install nginx
Install MySQL
Langkah selanjutnya adalah install MySQL (minimal versi 8.0 ketika saya menulis artikel ini), gunakan perintah
sudo apt-get install mysql-server
Setelah berhasil install MySQL, langkah selanjutnya adalah membuat database dan user baru di MySQL untuk digunakan ghost nantinya. Memang sih agak ribet, tapi bisa dibilang ini akan memperlancar semuanya. Lakukan beberapa langkah berikut untuk membuat database baru di MySQL
Login ke MySQL dulu dengan perintah
sudo mysql / sudo mysqladmin
Kemudian set root password menggunakan perintah
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'passwordmu';
Setelah sudah tahu password root, selanjutnya sekalian bikin database yang mau digunakan untuk Ghost. Jalankan perintah berikut ini
CREATE DATABASE ghostblog;
Setelah itu buat user dan setting password dengan perintah
CREATE USER 'blog'@'localhost' IDENTIFIED BY 'pass-blog';
Kemudian berikan user game semua privileges di database igamerss dengan perintah
GRANT ALL PRIVILEGES ON ghostblog.* TO 'blog'@'localhost';
Setelah itu flush privileges dengan perintah
flush privileges;
dan keluar dari console mysql dengan perintah
quit;
Install Node.js
Setelah MySQL, selanjutnya install Node.js. Sebelum itu tambahkan node.js repository dengan perintah
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
Setelah selesai jalankan perintah berikut untuk install Node.JS
sudo apt-get install -y nodejs
Install Ghost-CLI
Selanjutnya install Ghost-CLI yang mempermudah kita untuk setting dan install Ghost. Jalankan perintah
sudo npm install ghost-cli@latest -g
Semua persiapan untuk instalasi ghost sudah selesai, sekarang saatnya melanjutkan install Ghost.
Install Ghost
Sama dengan ketika install wordpress di VPS, kita harus buat folder dulu untuk data-data Ghost. Buat folder untuk Ghost dimanapun kamu mau. Kamu bisa menggunakan perintah di bawah ini
sudo mkdir -p /var/www/domain.com
Kemudian ubah permission folder domain.com menjadi milik user, bisa gunakan perintah di bawah ini
sudo chown $USER:$USER /var/www/domain.com
Jangan lupa untuk ubah permission folder menjadi 755 dengan perintah
sudo chmod 775 /var/www/domain.com
Kemudiah masuk ke folder domain.com menggunakan perintah
cd /var/www/domain.com
Jalankan perintah di bawah ini untuk install Ghost
ghost install
Selama proses instalasi, ada beberapa pertanyaan yang harus kamu jawab, diantaranya adalah sebagai berikut ini
- Blog url, isi yang komplit dengan httpsnya. Misalnya https://domain.com/ Ketika kita input protokol yang digunakan https, ghost akan membantu install SSL.
- MySQL hostname: localhost , langsung enter saja kalau databasenya ada dalam server tersebut.
- MySQL username / password: masukkan username dan password dari user yang sudah kita buat tadi untuk database yang akan digunakan. Dalam contoh ini saya tadi menggunakan username
blog
sedangkan passwordnya menggunakanpass-blog
- Ghost database name: Nama databasenya sesuai dengan yang saya buat tadi yaitu
ghostblog
. - Setup ghost MySQL user, pilih aja Y
- Setup Nginx, pilih Y
- Setup SSL, pilih Y
- Masukkan email aktif untuk SSL:
- Setup Systemd, karena direkomendasikan ya pilih Yes dong.
- Start Ghost? jawabannya adalah Y
Instalasi ghost sudah selesai!
Setup Ghost Website
Setelah membuka halaman website, akan muncul default ghost page seperti gambar di bawah ini
Lalu bagaimana cara login? Apa username dan passwordnya? Kan belum disetting sebelumnya? Jangan khawatir, karena sekarang kita akan mulai untuk mengatur ghost yak!
Buka domain.com/ghost, kamu akan diminta untuk mengisi judul website, nama lengkap, alamat email, dan password. Tampilannya kurang lebih seperti di bawah ini
Setelah mengisi, kamu sudah bisa masuk dan mulai menulis, mendesain dan macem-macem. Jangan bandingkan dengan wordpress ya, karena ghost dibuat untuk para penulis sehingga nggak banyak pengaturan yang bisa kamu lakukan. Untuk custom template agak susah sih.
First Impression Ghost
Saya belum begitu ngeh dengan konfigurasi server block nginx yang digunakan oleh Ghost, sehingga nggak saya apa-apain. Saya pakai default pengaturan saat instalasi Ghost. Semua baik-baik saja.
Saya mencoba menulis artikel sekitar 1000 kata. Menggunakan sekitar 7 gambar dengan resolusi 1200px x 675px. Saya menggunakan format gambar webp, sehingga ukuran gambarnya nggak bengkak. Kemudian saya coba test page menggunakan Google Page Speed Insight, hasilnya mengejutkan sih :))
Yang tidak saya sukai dari Ghost!
Setelah menulis di blog, ada beberapa hal yang membuat saya tidak menyukai ghost, salah satunya adalah galeri gambar! Tidak ada fitur galeri gambar di ghost, jadi kamu hanya bisa upload gambar setiap ingin menambahkan gambar. Kamu tidak bisa menggunakan gambar di postingan lain untuk digunakan lagi.
Dalam jangka waktu lama, tentu ini akan memakan banyak space di server karena gambar-gambar yang tidak terpakai. Untuk menghapusnya pun harus melalui ssh ke server. Sangat ndak praktis bos.
Padahal di Ghost bisa insert gambar dari unsplash, tetapi kenapa dia nggak membiarkan user untuk browser dari local servernya saja? Entahlah. Itu salah satu hal yang membuatku menunda untuk memindah blog ini untuk menggunakan platfrom Ghost.
Kalau kamu minim dalam penggunaan gambar, masalah ini bukan menjadi masalah sih.
Sering Ditanyakan
Berikut beberapa hal yang sering ditanyakan oleh orang-orang sebelum memutuskan untuk pindah ke Ghost. Kalau kamu ada pertanyaan, tulis aja di kolom komentar. Nanti akan saya coba balas satu persatu.
Leave a Comment