Cara Install Ghost di Ubuntu 20.04
Pada artikel sebelumnya kita sudah membahas tentang Ghost yang merupakan sebuah perangkat lunak open source publishing platform atau content management system dengan fitur tersedianya premium content. Nah, kali ini kita akan belajar bagaimana cara install Ghost di server milik sendiri. Jadi, kita bisa memakai Ghost tanpa harus berlangganan atau memakai premium hosting dari Ghost.
0.Prasyarat
Instalasi Ghost di server produksi yang direkomendasikan secara resmi memerlukan tech stack sebagai berikut:
- Ubuntu 16.04, 18.04, atau 20.04
- Nginx
- Node.js yang masih disupport
- MySQL 5.7 atau 8.0
- Systemd
- Minimum RAM 1GB
- Nama domain
Tutorial Environment
Untuk tutorial ini menggunakan environment:
- VPS Ubuntu 20.04
- Nginx 1.18.0
- Node.js 14.16.1 LTS
- MySQL 8.0
- Domain musaamin.my.id
- Ghost 4.2.2
1.Membuat User
Login SSH ke server dan buat user baru jika tidak ada user lain selain root.
1 2 | adduser musaamin usermod -aG sudo musaamin |
Login sebagai user yang baru dibuat.
1 | su - musaamin |
2.Update Packages
Sebelum instalasi, update packages terlebih dahulu.
1 2 | sudo apt update sudo apt upgrade -y |
3.Install Nginx
Install Nginx.
1 | sudo apt install nginx -y |
4.Install MySQL
Install MySQL database.
1 | sudo apt install mysql-server -y |
Login ke MySQL.
1 | sudo mysql |
Update password untuk user root.
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'rahasia'; |
Keluar dari MySQL.
1 | exit |
5.Install Node.js
Tambahkan repository Node.js versi LTS.
1 | curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash - |
Install Node.js.
1 | sudo apt install nodejs -y |
6.Install Ghost-CLI
Ghost-CLI adalah sebuah command line tool untuk membantu kita dalam instalasi dan konfigurasi Ghost secara cepat dan mudah.
1 | sudo npm install ghost-cli@latest -g |
7.Install Ghost
Membuat direktori untuk Ghost.
1 2 3 4 | sudo mkdir -p /var/www/musaamin.my.id sudo chown $USER:$USER /var/www/musaamin.my.id sudo chmod 775 /var/www/musaamin.my.id cd /var/www/musaamin.my.id |
Jalankan perintah install Ghost.
1 | ghost install |
Hasilnya.
1 2 3 4 5 6 7 8 9 10 11 | ✔ Checking system Node.js version ✔ 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 v4.2.2 ✔ Finishing install process |
Masukkan URL dan akses MySQL.
1 2 3 4 5 | ? Enter your blog URL: https://musaamin.my.id ? Enter your MySQL hostname: localhost ? Enter your MySQL username: root ? Enter your MySQL password: [input is hidden] ? Enter your Ghost database name: musaaminmyid |
Hasilnya.
1 2 3 4 5 | ✔ Configuring Ghost ✔ Setting up instance + sudo useradd --system --user-group ghost + sudo chown -R ghost:ghost /var/www/musaamin.my.id/content ✔ Setting up "ghost" system user |
Jawab y, untuk membuat “ghost” mysql user.
1 2 3 | ? Do you wish to set up "ghost" mysql user? (Y/n) y ✔ Setting up "ghost" mysql user |
Jawab y, untuk set up Nginx.
1 2 3 4 5 6 | ? Do you wish to set up Nginx? (Y/n) y + sudo mv /tmp/musaamin-my-id/musaamin.my.id.conf /etc/nginx/sites-available/musaamin.my.id.conf + sudo ln -sf /etc/nginx/sites-available/musaamin.my.id.conf /etc/nginx/sites-enabled/musaamin.my.id.conf + sudo nginx -s reload ✔ Setting up Nginx |
Jawab y, untuk set up SSL.
1 | ? Do you wish to set up SSL? (Y/n) y |
Masukkan alamat email untuk sertifikat SSL.
1 2 3 4 5 6 7 8 9 10 11 | ? Enter your email (For SSL Certificate) trial@musaamin.web.id + sudo mkdir -p /etc/letsencrypt + sudo ./acme.sh --install --home /etc/letsencrypt + sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain musaamin.my.id --webroot /var/www/musaamin.my.id/system/nginx-root --reloadcmd "nginx -s reload" --accountemail trial@musaamin.web.id + 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/musaamin-my-id/musaamin.my.id-ssl.conf /etc/nginx/sites-available/musaamin.my.id-ssl.conf + sudo ln -sf /etc/nginx/sites-available/musaamin.my.id-ssl.conf /etc/nginx/sites-enabled/musaamin.my.id-ssl.conf + sudo nginx -s reload ✔ Setting up SSL |
Jawab y, untuk set up Systemd.
1 2 3 4 5 6 | ? Do you wish to set up Systemd? (Y/n) y + sudo mv /tmp/musaamin-my-id/ghost_musaamin-my-id.service /lib/systemd/system/ghost_musaamin-my-id.service + sudo systemctl daemon-reload ✔ Setting up Systemd + sudo systemctl is-active ghost_musaamin-my-id |
Jawab y, untuk menjalankan Ghost.
1 2 3 4 5 6 | ? Do you want to start Ghost? (Y/n) y + sudo systemctl start ghost_musaamin-my-id + sudo systemctl is-enabled ghost_musaamin-my-id + sudo systemctl enable ghost_musaamin-my-id --quiet ✔ Starting Ghost |
Jika sukses, pesan yang ditampilkan.
1 2 3 4 5 6 7 | 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: https://musaamin.my.id/ghost/ |
Tapi jika instalasi terjadi kegagalan atau kesalahan, jalankan perintah uninstall dan coba lagi.
1 | ghost uninstall |
Jika instalasi terputus misalnya karena koneksi internet, jalankan perintah setup untuk memulai kembali proses konfigurasi.
1 | ghost setup |
8.Membuat Akun Admin
Browse https://namadomain.com/ghost untuk menyelesaikan instalasi. Klik Create your account.
Masukkan judul website, nama lengkap, email, dan password. Lalu klik Last step: Invite staff users.
Untuk tahapan invite user kita skip karena harus konfigurasi SMTP server. Klik I’ll do this later, take me to my site!.
Setelah semuanya selesai, akan masuk ke dashboard.
Selamat mencoba 🙂
Gratis saldo $100 untuk pendaftaran akun baru di Vultr. Daftar sekarang juga.