Cara Install Ghost CMS di NAT VPS

NATVPS.idGhost adalah sebuah CMS gratis dan open-source. Ghost CMS dapat menjadi salah satu alternatif lain dari WordPress, untuk membuat platform blogging yang ringan serta user friendly.

Pada artikel ini kita akan membahas mengenai langkah-langkah instalasi Ghost di NAT VPS, beserta konfigurasi NGINX untuk reverse-proxy. Artikel ini menggunakan Ubuntu 22.04 sebagai acuan. Untuk OS lain, lihat dokumentasi resminya untuk informasi lebih lanjut.

Konfigurasi Port Forwarding

Mengingat kita menggunakan NAT, kita perlu menambahkan 2 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu port forwarding HTTP dan HTTPS untuk domain Ghost.

Sebagai contoh, pada artikel ini akan menggunakan domain cms-tutorial3.mdinata.my.id sebagai domain URL shortener kita. Anda bebas mengganti domain sesuai pilihan Anda. Catat port dan domain ini, karena kita akan menggunakannya lagi pada proses deploy.

Jangan lupa untuk menambahkan DNS record yang menuju ke IP publik NAT VPS Anda, seperti ini:

Install Docker

Kita akan menggunakan Docker dan Docker Compose untuk men-deploy Dockge & Dozzle.

Pertama, Install curl menggunakan perintah:

apt update && apt install curl -y

Kemudian, jalankan script instalasi otomatis dari Docker dengan memasukkan:

curl -fsSL get.docker.com | sh

Tunggu hingga proses instalasi selesai.

Deploy Ghost

Buat direktori baru dengan nama ghost

cd ~/
mkdir ghost
cd ghost

Buat file baru dengan nama docker-compose.yml menggunakan nano:

apt install nano -y
nano docker-compose.yaml

Lalu tempelkan konfigurasi Compose berikut:

# Docker Compose untuk deploy Ghost di NAT VPS
# https://natvps.id/install-ghost-nat-vps
# Source: https://hub.docker.com/_/ghost/ (adapted)

services:
  ghost:
    image: ghost:5-alpine
    restart: always
    ports:
      - 2368:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: example
      database__connection__database: ghost
      # URL Ghost
      url: https://cms-tutorial3.mdinata.my.id
    volumes:
      - ghost:/var/lib/ghost/content

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db:/var/lib/mysql

volumes:
  ghost:
  db:

Pada bagian url:, sesuaikan dengan domain Ghost Anda.

# URL Ghost
url: https://cms-tutorial3.mdinata.my.id

Simpan file tersebut dengan menekan Ctrl-X, y, kemudian Enter.

Terakhir, Jalankan Ghost menggunakan Docker Compose:

docker compose up -d

Tunggu hingga proses deploy selesai.

Konfigurasi NGINX (Reverse Proxy)

Agar kita dapat mengakses URL melalui domain seperti cms-tutorial3.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.

Pertama, install NGINX melalui perintah:

# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ)
apt purge apache2* -y

# Install NGINX
apt install nginx -y

Buat konfigurasi host baru khusus untuk Ghost:

nano /etc/nginx/sites-available/ghost

Kemudian tempelkan konfigurasi berikut:

# Konfigurasi NGINX untuk deploy Ghost di NAT VPS
# https://natvps.id/install-ghost-nat-vps

server {
    server_name cms-tutorial3.mdinata.my.id;
    listen 80;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:2368;
    }
}

Sesuaikan cms-tutorial3.mdinata.my.id dengan domain Ghost Anda.

Aktifkan konfigurasi tersebut dengan:

ln -sf /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost

# Restart NGINX
systemctl restart nginx

Generate Sertifikat SSL (Let’s Encrypt)

Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.

Install Certbot dan plugin NGINX nya menggunakan perintah:

apt install python3-certbot python3-certbot-nginx

Lalu, generate sertifikat melalui Certbot dengan perintah

certbot --nginx -d cms-tutorial3.mdinata.my.id

Ganti cms-tutorial3.mdinata.my.id dengan domain Anda.

Selamat! Domain Anda saat ini dapat diakses melalui koneksi aman HTTPS.

Mengakses Ghost

Ghost CMS dapat diakses melalui domain Ghost Anda. Contoh: https://cms-tutorial3.mdinata.my.id.

Untuk mengakses halaman Admin, tambahkan /ghost ke dalam URL.

Penutup

Demikianlah artikel ini mengenai langkah-langkah deploy Ghost CMS di NAT VPS. Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!

You May Also Like

About the Author: Hendra Manudinata