Install Ghost di Ubuntu 22.04

Ghost CMS adalah sebuah platform sistem manajemen konten (CMS) open source yang dirancang khusus untuk publikasi konten atau blogging. Ghost CMS dibangun dengan kerangka kerja Node.js, yang membuatnya lebih ringan dan efisien daripada CMS lain yang sudah ada, seperti WordPress.

Berikut adalah langkah-langkah untuk menginstall Ghost di mesin Ubuntu 22.04, ini cara praktis dan mudah untuk install Ghost.

Update system Ubuntu

apt update
apt upgrade

Create User

Buat user untuk melakukan proses install Ghost, jangan menggunakan user root

adduser ghostadmin

Join user kedalam group sudo

usermod -aG sudo ghostadmin

Kemudian change ke user yang sudah dibuat yaitu ghostadmin

su - ghostadmin

Perhatikan dari sini langkah installasi Ghost akan menggunakan user ghostadmin

Install Nginx

Web Service menggunakan Nginx

sudo apt install nginx -y
sudo systemctl status nginx
sudo ufw allow 'Nginx Full'

Install Database Server

Database yang digunakan untuk Ghost adalah MySQL

sudo apt install mysql-server

Masuk ke mysql

sudo mysql

Merubah password root mysql

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
quit

Service mysql

sudo service mysql start
sudo service mysql restart
sudo service mysql status

Install Node.js Versi 18.21.1

Install Nodejs menggunakan NVM.
Tidak semua Nodejs kompatibel dengan Ghost, sudah beberapa kali error karena versi Nodejs.

Download nvm dan Install

wget https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh
bash install.sh
source ~/.bashrc

Cek versi nvm

nvm -v

Cek list versi nodejs yang bisa diinstall

nvm list-remote

Install Nodejs 18.21.1

nvm install 18.21.1
nvm install node

Apabila sudah ada nodejs dengan versi latest atau yang lainnya, bisa disetting nodejs versi tertentu yang aktif

nvm use 18.21.1
nvm alias default 18.21.1

Sampai disini langkah install Nodejs, silahkan cek version Nodejs

node -v

Install Ghost-cli

Note: user aktif masih menggunakan ghostadmin

sudo npm install -g ghost-cli@latest

Setting Permission

sudo mkdir -p /var/www/ghost
sudo chown ghostadmin:ghostadmin /var/www/ghost
sudo chmod 755 /var/www/ghost

Install Ghost

Ini adalah bagian utama melakukan install, bila terjadi error silahkan sesuaikan errornya. Misalnya

  • Versi nodejs
  • Permision /home/ghostadmin
cd /var/www/ghost
ghost install

Silahkan ikut langkahnya

✔ Checking system Node.js version - found v16.19.0
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking system compatibility
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking free space
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v5.26.3
✔ Finishing install process
? Enter your blog URL: http://yourdomain.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost
✔ Configuring Ghost
✔ Setting up instance
+ sudo useradd --system --user-group ghost
+ sudo chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
ℹ Setting up "ghost" mysql user [skipped]
? Do you wish to set up Nginx? Yes
+ sudo mv /tmp/yourdomain-com/yourdomain.com.conf /etc/nginx/sites-available/yourdomain.com.conf
+ sudo ln -sf /etc/nginx/sites-available/yourdomain.com.conf /etc/nginx/sites-enabled/yourdomain.com.conf
+ sudo nginx -s reload
✔ Setting up Nginx
? Do you wish to set up SSL? (Y/n) Y
? Enter your email (For SSL Certificate) [email protected]
+ sudo mkdir -p /etc/letsencrypt
+ sudo ./acme.sh --install --home /etc/letsencrypt
+ sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --server letsencrypt --domain yourdomain.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail [email protected]
+ 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/yourdomain-com/yourdomain.com-ssl.conf /etc/nginx/sites-available/yourdomain.com-ssl.conf
+ sudo ln -sf /etc/nginx/sites-available/yourdomain.com-ssl.conf /etc/nginx/sites-enabled/yourdomain.com-ssl.conf
+ sudo nginx -s reload
✔ Setting up SSL
? Do you wish to set up Systemd? (Y/n) Y
? Do you wish to set up Systemd? Yes
+ sudo mv /tmp/yourdomain-com/ghost_yourdomain-com.service /lib/systemd/system/ghost_yourdomain-com.service
+ sudo systemctl daemon-reload
✔ Setting up Systemd
+ sudo systemctl is-active yourdomain-com
? Do you want to start Ghost? Yes
+ sudo systemctl start ghost_yourdomain-com
☱ Starting Ghost
Ghost uses direct mail by default. To set up an alternative email method read our docs at https://ghost.org/docs/config/#mail

------------------------------------------------------------------------------

Ghost was installed successfully! To complete setup of your publication, visit:

    http://yourdomain.com/ghost/

Kemudian akses web sesuai url yang diberikan.