Jalankan blog dan newsletter Ghost Anda sendiri: domain, email, member, dan backup

Deploy Ghost dari template Zenavo, pasang domain HTTPS, buat akun admin, siapkan email agar pendaftaran member dan newsletter berfungsi, lalu cadangkan MySQL sekaligus folder konten.

Artikel ini juga tersedia dalam English, 简体中文, 繁體中文, 日本語, dan Español.

Ghost adalah platform penerbitan open source: tulisan, keanggotaan berbayar maupun gratis, dan newsletter semuanya ada dalam satu admin, dengan editor yang rapi dan tema yang ramah mesin pencari. Jika Anda ingin punya blog sendiri tanpa repot mengurus plugin WordPress, Ghost adalah pilihan yang tepat.

Panduan ini memakai template Ghost dari Zenavo untuk menjalankan Ghost dan MySQL di server yang Anda sewa atau miliki, lalu menyiapkan domain, email, dan backup.

Sebelum mulai

  • Server Linux yang terhubung ke Zenavo. Template meminta memori sekitar 1 GB; sisakan juga ruang untuk MySQL.
  • Domain untuk blog, seperti blog.example.com.
  • Akun SMTP dari penyedia email (dipakai nanti). Pendaftaran member, tautan login, dan undangan staf semuanya dikirim lewat email.

Deploy template

Buka template Ghost. Sebelum deploy, template meminta Site URL: alamat lengkap yang akan dipakai pembaca, seperti https://blog.example.com. Template ini membuat dua layanan:

Layanan Isinya
mysql MySQL 8.4, volume /var/lib/mysql, kata sandi root dibuat otomatis
ghost ghost:5-alpine di port HTTP 2368, folder konten /var/lib/ghost/content (gambar dan tema)

Site URL menjadi variabel url pada layanan ghost. Ghost membangun setiap tautan dari variabel ini, jadi nilainya harus sama persis dengan domain yang akhirnya Anda pakai, termasuk https://.

Pasang domain dan buat admin

Di tab Networking pada layanan ghost, pasang domain yang sama ke port 2368, tambahkan record A yang mengarah ke server, lalu tunggu HTTPS aktif (Domain & HTTPS).

Buka https://blog.example.com/ghost dan ikuti langkah-langkahnya untuk memberi nama situs dan membuat akun admin pertama. Admin selalu berada di /ghost. Seperti aplikasi self-hosted lainnya, lakukan ini sendiri segera setelah domain berfungsi.

Untuk pindah ke domain lain nanti, ubah variabel url, deploy ulang, lalu pasang domain baru. Mengganti domain tanpa mengubah url membuat tautan tetap mengarah ke alamat lama.

Siapkan email

Ghost mengirim dua jenis email:

  • Transaksional: undangan staf, reset kata sandi, pendaftaran member, dan tautan login. Layanan SMTP apa pun bisa dipakai.
  • Newsletter massal: tulisan yang dikirim ke setiap pelanggan. Saat ini Ghost hanya mengirimnya lewat Mailgun, yang dikonfigurasi di admin pada Settings → Email newsletter dengan domain dan kunci API Mailgun Anda.

Siapkan email transaksional di Variables pada layanan ghost. Ghost menulis pengaturan bertingkat dengan garis bawah ganda:

Variabel Contoh
mail__transport SMTP
mail__options__host smtp.example.com
mail__options__port 465
mail__options__secure true
mail__options__auth__user nama pengguna SMTP Anda
mail__options__auth__pass kata sandi SMTP Anda
mail__from "Nama blog" <noreply@example.com>

Deploy ulang layanan ghost, lalu undang seorang staf atau daftar sebagai member dengan alamat lain untuk memastikan emailnya sampai.

Sebagian penyedia server memblokir port SMTP keluar, yang terlihat sebagai timeout. Gunakan port lain yang disediakan penyedia email Anda (seperti 2525), atau minta penyedia server membuka blokirnya. Siapkan juga SPF dan DKIM untuk domain Anda sesuai petunjuk penyedia email, karena jika tidak, email cenderung masuk ke folder spam.

Beberapa pengaturan sebelum mulai menulis

  • Settings → General: judul situs, deskripsi, zona waktu, dan bahasa.
  • Settings → Design: pilih tema atau unggah tema Anda sendiri; tema disimpan di folder konten.
  • Settings → Membership: apakah pembaca bisa mendaftar, dan apakah sebagian tulisan hanya untuk member.
  • Settings → Code injection: tempat untuk skrip analitik, seperti Umami atau Plausible self-hosted.

Backup

Ghost menyimpan datanya di dua tempat: tulisan, member, dan pengaturan di MySQL; gambar, tema, dan unggahan di volume /var/lib/ghost/content pada layanan ghost. Cadangkan keduanya.

  • Cadangkan database kapan saja dari tab Backup & Restore pada layanan mysql.
  • Folder konten berupa volume: hentikan proyek saat mencadangkannya, lalu jalankan kembali.

Fitur ekspor bawaan Ghost (di pengaturan admin) menyimpan tulisan dan pengaturan sebagai JSON, berguna untuk pindah ke Ghost lain, tetapi tidak menyertakan gambar. Untuk data yang penting, unduh backup untuk disimpan dan pulihkan sekali ke proyek baru untuk memeriksanya. Lihat Backup & Restore.

Upgrade

Template menjalankan ghost:5-alpine, sehingga deploy ulang akan menarik Ghost 5 terbaru. Cadangkan MySQL dan folder konten serta baca catatan rilis terlebih dahulu. Upgrade versi mayor mungkin memigrasikan database, dan kembali ke image lama mungkin tidak membatalkannya; pulihkan backup dari sebelum upgrade sebagai gantinya.

Pertanyaan umum

Tautan di situs mengarah ke localhost atau domain lama? Variabel url tidak sama dengan alamat yang Anda pakai. Atur ke alamat lengkap yang benar lalu deploy ulang.

Member tidak menerima email login? Cari error email di log layanan ghost. Biasanya port SMTP diblokir, nama pengguna atau kata sandinya salah, atau domain mail__from belum diverifikasi di penyedia email Anda.

Bisakah saya pindah dari WordPress atau platform lain? Ghost punya alat dan panduan migrasi resmi untuk WordPress, Substack, dan lainnya. Gambar yang diimpor masuk ke folder konten, jadi sertakan folder itu dalam backup Anda.

Ghost atau WordPress? Untuk menulis dan newsletter dengan perawatan minim, pilih Ghost; untuk banyak plugin, toko online, atau halaman yang kompleks, WordPress lebih cocok. Zenavo juga punya template WordPress.

Mulailah dari template Ghost: samakan domain dan url terlebih dahulu, lalu buat admin, siapkan email, dan cadangkan database serta folder konten.