Install CMS Ghost di Server Ubuntu

Jumat, 28 Mei 2021

Install CMS Ghost di Server Ubuntu. Oke kali ini saya akan membahas tentang bagaimana cara instalasi CMS Ghost di server Ubuntu. Ghost adalah CMS dan platform blogging yang dibangun menggunakan Nodejs dan dirilis secara open source.

Kenapa Ghost?

Saya sendiri akhirnya tertarik mencoba Ghost setelah membaca beberapa review di Google mengenai kelebihan CMS ini dibanding CMS populer lain seperti WordPress. CMS ini memiliki banyak fitur yang belum ada secara default di WordPress seperti optimasi SEO dll (kita butuh plugin tambahan di WordPress agar SEO lebih maksimal). 

Kedua, secara keseluruhan performa Nodejs lebih stabil dibanding PHP. Dan lebih aman juga tentunya.

Oke langsung saja. Disini saya menggunakan server Ubuntu 18.04. Yang kita perlukan disini adalah user dengan hak akses sudo. Jangan lupa DNS domain untuk Ghost harus sudah disetting mengarah ke server Ubuntu yang akan kita install Ghost.

Install Nginx

Kita akan menggunakan Nginx sebagai web server. Jika belum terinstall kalian bisa install dengan perintah

sudo apt update && sudo apt install -y nginx

Install Database MySQL

sudo apt-get update && sudo apt-get install -y mariadb-server mariadb-client

Selanjutnya jalankan perintah dibawah ini untuk setting root password, menghapus database test, serta menghapus anonymous users.

sudo mysql_secure_installation

Setup Database

Sebenarnya proses setup database bisa dilakukan saat proses instalasi Ghost. Namun saya pribadi lebih suka mengkonfigurasinya secara manual.

sudo mysql

create database ghost_database;

grant all privileges on ghost_database.* to ghost@localhost identified by 'Secur3PaSSword';

flush privileges;

exit;

Sesuaikan sendiri untuk nama database dan juga password user ghost nya.

Install Node.js LTS

Kita akan memasang Node.js versi LTS di Ubuntu dan memasang repositorynya ke sistem.

curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

sudo apt install nodejs -y

Install Ghost-CLI

Ghost-CLI ini nantinya akan digunakan untuk memasang dan juga mengkonfigurasi Ghost.

sudo npm install ghost-cli@latest -g

Install Ghost

Disini kita bisa langsung memulai proses instalasi Ghost CMS. Sesuaikan sendiri untuk nama direktori tempat kalian ingin memasang CMS Ghost.

sudo mkdir -p /var/www/blog.zafkiel.net

sudo chown $USER:$USER /var/www/blog.zafkiel.net

sudo chmod 775 /var/www/blog.zafkiel.net

cd /var/www/blog.zafkiel.net

Jika sudah berada di direktori kalian akan memasang Ghost, tinggal jalankan perintah berikut dengan user biasa (tanpa sudo).

ghost install

Nah saat muncul user input untuk memasukkan domain dan kredensial database, sesuaikan saja dengan yang sudah kalian siapkan diatas.

 ? Enter your blog URL: https://blog.zafkiel.net
 ? Enter your MySQL hostname: localhost
 ? Enter your MySQL username: ghost
 ? Enter your MySQL password: [hidden] <ENTER PASSWORD>
 ? Enter your Ghost database name: ghost_database 
Kemudian saat muncul dialog setup Nginx, pilih Yes.

? Do you wish to set up Nginx? (Y/n) y

+ sudo mv /tmp/blog-zafkiel-net/blog.zafkiel.net.conf /etc/nginx/sites-available/blog.zafkiel.net.conf
+ sudo ln -sf /etc/nginx/sites-available/blog.zafkiel.net.conf /etc/nginx/sites-enabled/blog.zafkiel.net.conf
+ sudo nginx -s reload
✔ Setting up Nginx
Untuk konfigurasi SSL nya juga pilih Yes.

? Do you wish to set up SSL? (Y/n) y

? Enter your email (For SSL Certificate) rin@linuxsec.org

+ sudo mkdir -p /etc/letsencrypt
+ sudo ./acme.sh --install --home /etc/letsencrypt
+ sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain blog.zafkiel.net --webroot /var/www/blog.zafkiel.net/system/nginx-root --reloadcmd "nginx -s reload" --accountemail rin@linuxsec.org
+ sudo openssl dhparam -dsaparam -out /etc/nginx/snippets/dhparam.pem 2048
+ sudo mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
+ sudo mv /tmp/blog-zafkiel-net/blog.zafkiel.net-ssl.conf /etc/nginx/sites-available/blog.zafkiel.net-ssl.conf
+ sudo ln -sf /etc/nginx/sites-available/blog.zafkiel.net-ssl.conf /etc/nginx/sites-enabled/blog.zafkiel.net-ssl.conf
+ sudo nginx -s reload
✔ Setting up SSL
Selanjutnya juga tinggal di Yes ketika ada dialog install service Systemd maupun start Ghost.
 sudo systemctl is-active ghost_blog-zafkiel-net
 ✔ Validating config
 ✔ Checking folder permissions
 ✔ Checking file permissions
 ✔ Checking content folder ownership
 ✔ Checking memory availability
 sudo systemctl start ghost_blog-zafkiel-net
 ✔ Starting Ghost
 sudo systemctl is-enabled ghost_blog-zafkiel-net
 sudo systemctl enable ghost_blog-zafkiel-net --quiet
 ✔ Enabling Ghost instance startup on server boot 
 Ghost uses direct mail by default. To set up an alternative email method read our docs at https://ghost.org/mail
 
 Ghost was installed successfully! To complete setup of your publication, visit: 
 https://blog.zafkiel.net/ghost/

Selanjutnya untuk menyelesaikan instalasi, akses https://domain.com/ghost di browser. Lakukan setup user admin sampai selesai.



Oke sampai disini kalian sudah sukses memasang CMS Ghost di server Ubuntu. Untuk selanjutnya tinggal lakukan konfigurasi di halaman dashboard seperti konfigurasi nama blog, hapus user default Ghost, dll.

Beberapa cheatsheet ghost-cli yang bisa kalian gunakan untuk mengelola CMS Ghost kalian.
  • ghost start: Start ghost
  • ghost restart: Restart ghost
  • ghost run: Test if the ghost can start successfully
  • ghost uninstall: Re-install ghost
  • ghost update: Upgrade ghost
  • ghost update --force: Force upgrade if there are errors
  • ghost update --rollback: Revert to the earlier version if an upgrade fails
  • sudo npm i -g ghost-cli@latest: Upgrade Ghost-CLI
  • ghost ssl-renew: Renew ssl certificate
  • ghost setup nginx: Manually Setup nginx
  • ghost setup nginx ssl: Setup nginx with SSL
  • ls ./system/files/*.conf: System configuration files
Oke mungkin sekian tutorial singkat kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.

Artikel Terkait Nodejs ,Server ,Ubuntu