Hosting Gratis Ghost CMS Dengan Docker Menggunakan Fly.io

Menggunakan Fly.io sangat memudahkan mendeploy dan scaling App kamu di berbagai wilayah.

Hosting Gratis Ghost CMS Dengan Docker Menggunakan Fly.io
Hosting Gratis Ghost CMS Dengan Docker Menggunakan Fly.io

Sebelum nya saya sudah pernah membahas bagaimana cara mendeploy WordPress Menggunakan Biznet Gio Neo Lite, dan kali ini saya akan membahasa bagaimana menjalankan Docker Ghost CMS menggunakan Fly.io Secara Gratis.

Apa itu Fly.io?

Fly.io adalah platform untuk menjalankan aplikasi dan database sedekat mungkin dengan pengguna.

Apa itu Ghost CMS?

Ghost CMS adalah salah satu content management system yang kerap digunakan untuk membuat blog. CMS ini dibangun dengan menggunakan framework Node.js yang lebih efisien, ringan, dan fleksibel.

Saya Menggunakan Fly.io Hobby plan untuk mendeploy app saya yaitu Ghost dengan docker, Hobby Plan Menawarkan Sumber daya Gratis Sebagai Berikut ini:

  • Up to 3 shared-cpu-1x 256mb VMs†
  • 3GB persistent volume storage (total)
  • 160GB outbound data transfer

Jika Menurut kamu Sumber daya yang disediakan secara gratis kurang kamu bisa menambahkan Additional resources yang akan dikenakan biaya sesuai dengan penggunaan, untuk scaleup app kamu cukup mengetik fly cli sebagai berikut ini:

flyctl scale [command] [flags]

Deploy Ghost Menggunakan Fly.io

  1. Install Fly CLI
  2. Membuat Fly App
  3. Konfigurasi App
  4. Deploy Ghost

Install Fly CLI

Disini Saya menggunakan Alpine Linux dan install Fly CLI dengan perintah berikut ini:

curl -L https://fly.io/install.sh | sh

Setelah Berhasil install Fly CLI saat nya login dengan menggunakan perintah berikut ini:

flyctl auth login [flags]

Membuat Fly App

Sebelum membuat Fly app dan meluncurkan nya saya akan membuat folder terlebih dahulu dan menambahkan Ghost Docker Image perintah nya sebagai berikut ini:

mkdir husen-blog
cd husen-blog
flyctl launch --image=ghost:4.48.8-alpine --no-deploy
Membuat Fly App
Membuat Fly App

Disini saya hanya membuat app dan meluncurkan nya saja tidak mendeploy nya, Untuk Ghost Docker Image menggunakan Alpine dan Ghost Versi 4.48.8 karena sumber yang terbatas, Kamu bisa mengganti versi ghost yang lebih baru dan memilih nya di docker hub ini..

Konfigurasi App

Setelah saya membuat app dan meluncurkan nya di dalam folder terdapat file konfigurasi bernama fly.toml ini adalah konfigurasi yang di hasilkan dari membuat dan neluncurkan app dan ghost docker kamu bisa menambahkan pengaturan nya seperti ini:

# fly.toml file generated for husen-blog on 2023-05-31T14:39:41Z

app = "husen-blog"
primary_region = "sin"

kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[build]
  image = "ghost:4.48.8-alpine"

[env]
  url = "https://husen-blog.fly.dev"

[experimental]
  allowed_public_ports = []
  auto_rollback = true

[[services]]
  http_checks = []
  internal_port = 2368
  processes = ["app"]
  protocol = "tcp"
  script_checks = []

 [mounts]
  source="data"
  destination="/var/lib/ghost/content"
	
  [services.concurrency]
    hard_limit = 25
    soft_limit = 20
    type = "connections"

  [[services.ports]]
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"
		
		

Nama app saya adalah husen-blog dan region nya adalah Singapore, Env adalah url blog saya, sekarang saya akan membuat penyimpanan volume untuk database dan lain-lain sebesar 3GB, saya menggunakan SQLite3 sebagai database:

flyctl volumes create data --size 3
Membuat Penyimpanan Volume
Membuat Penyimpanan Volume

Deploy Ghost

Setelah Semua nya sudah selesai di konfigurasi saat nya saya mendeploy ghost dengan perintah berikut ini:

flyctl deploy
Deploy Ghost
Deploy Ghost

Setelah semua nya sudah selesai dan blog saya akhir nya sudah jadi😃🎉🎉🎊