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.