Semua sistem beroperasi normal 21 mata uang kripto yang diterima · Monero diterima dengan senang hati Kebijakan tanpa KYC
ChainVPS

Publishing · tanpa KYC

Host Ghost di VPS Offshore

Ghost adalah platform publishing modern yang cepat, bisa Anda self-host dalam hitungan menit di VPS offshore, sehingga tulisan, subscriber, dan pembayaran Anda tetap lepas dari cloud pihak ketiga.

Apa itu

Ghost adalah CMS open-source berbasis Node.js untuk blog, newsletter, dan situs membership, dengan langganan email native, tier berbayar, dan editor Markdown yang bersih. Tersedia sebagai image Docker resmi dengan MySQL 8 di baliknya, menyajikan situs Anda lewat port sendiri di belakang reverse proxy.

Mengapa hosting di offshore

Menjalankan Ghost di VPS tanpa KYC yang dibayar pakai kripto berarti publikasi Anda tidak terikat pada akun yang bisa dikaitkan dengan identitas, di-deplatform, atau diserahkan atas permintaan. Dengan lokasi privacy-tier offshore dan bandwidth unmetered, Anda memegang kendali penuh atas konten, daftar member, dan pencairan dana Stripe tanpa penyedia hosting yang menjadi gatekeeper atas tulisan Anda.

Proses deploy

Contoh setup referensi yang berfungsi

Salin ini ke instance ChainVPS baru. Ganti placeholder-nya, lalu jalankan.

docker-compose.yml
services:
  ghost:
    image: ghost:5-alpine
    restart: always
    ports:
      # Bind hanya ke localhost; hentikan TLS di reverse proxy (nginx/Caddy)
      - "127.0.0.1:2368:2368"
    environment:
      url: https://blog.example.com
      NODE_ENV: production
      database__client: mysql
      database__connection__host: db
      database__connection__port: 3306
      database__connection__user: ghost
      database__connection__password: CHANGE_ME_DB_PASSWORD
      database__connection__database: ghostdb
      # SMTP outbound opsional untuk email member/newsletter:
      # mail__transport: SMTP
      # mail__options__host: smtp.example.com
      # mail__options__port: 587
      # mail__options__auth__user: [email protected]
      # mail__options__auth__pass: CHANGE_ME_SMTP
    volumes:
      - ghost-content:/var/lib/ghost/content
    depends_on:
      - db

  db:
    image: mysql:8.0
    restart: always
    command: --default-authentication-plugin=caching_sha2_password
    environment:
      MYSQL_ROOT_PASSWORD: CHANGE_ME_ROOT_PASSWORD
      MYSQL_DATABASE: ghostdb
      MYSQL_USER: ghost
      MYSQL_PASSWORD: CHANGE_ME_DB_PASSWORD
    volumes:
      - ghost-db:/var/lib/mysql

volumes:
  ghost-content:
  ghost-db:

# Deploy:
#   apt-get update && apt-get install -y docker.io docker-compose-v2
#   docker compose up -d
# Lalu arahkan reverse proxy (Caddy/nginx) ke 127.0.0.1:2368 untuk menambahkan HTTPS,
# dan set `url:` ke domain https:// asli Anda sebelum boot pertama.

Firewall

Port yang perlu dibuka

PortProtokolTujuan
2368TCPPort app HTTP Ghost - tetap bind ke 127.0.0.1 dan reverse-proxy, jangan pernah expose ke publik
443TCPHTTPS untuk publik lewat reverse proxy Anda (Caddy/nginx)
80TCPHTTP untuk penerbitan sertifikat ACME/Let's Encrypt dan redirect ke 443
3306TCPMySQL - hanya jaringan internal Docker, jangan pernah dipublikasikan ke host

Penyesuaian ukuran yang tepat

Paket mana yang Anda butuhkan

Ringan

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

Blog pribadi atau newsletter kecil. Ghost + MySQL berjalan nyaman; tambahkan 1 GB swap sebagai jaring pengaman.

Menengah

VPS Pro (2-4 vCPU, 4-8 GB RAM)

Publikasi aktif dengan membership berbayar, post yang berat gambar, dan pengiriman email rutin. Ada headroom untuk cache MySQL dan lonjakan traffic.

Berat

Dedicated (dedicated cores, 16 GB+ RAM, NVMe)

Situs dengan traffic tinggi atau setup multi-blog dengan pustaka media besar; isolasi MySQL dan sajikan media lewat cache demi latensi yang konsisten.

Lokasi terbaik: Untuk publikasi yang harus tetap online tanpa terpengaruh tekanan takedown, pilih lokasi privacy-tier ChainVPS: Islandia (IS), Swiss (CH), Rumania (RO), Moldova (MD), Belanda (NL), atau Luksemburg (LU). CH dan IS memiliki perlindungan pers/kebebasan berbicara serta hukum privasi yang kuat; NL dan LU memberi jangkauan latensi rendah ke pembaca Eropa dengan bandwidth unmetered untuk situs yang berat gambar dan newsletter.

Amankan sekarang

Daftar periksa hardening

  • Jangan pernah publikasikan port 2368 atau 3306 ke 0.0.0.0. Jaga Ghost tetap bind ke 127.0.0.1 dan MySQL hanya di jaringan internal Docker; expose situs eksklusif lewat reverse proxy TLS (Caddy otomatis menerbitkan sertifikat Let's Encrypt, atau pakai nginx + certbot).
  • Set env var `url` ke domain https:// asli Anda sebelum boot pertama kali. Ghost menanamkan URL ke dalam link resource dan mengubahnya belakangan membutuhkan update database serta flush cache.
  • Kunci panel admin: wajibkan password unik yang panjang saat setup pertama, dan batasi /ghost/ dengan IP allowlist atau basic-auth di proxy jika Anda publikasi dari lokasi tetap. Aktifkan 2FA staff bawaan Ghost.
  • Backup kedua volume secara terjadwal: dump MySQL (`docker compose exec db mysqldump -u ghost -p ghostdb`) dan arsipkan volume content (`/var/lib/ghost/content`, yang menyimpan gambar dan theme). Kirim backup terenkripsi ke storage ChainVPS atau ke luar server.
  • Pin tag image (ghost:5-alpine, mysql:8.0) dan update dengan sengaja lewat `docker compose pull && docker compose up -d`; uji kompatibilitas theme/integrasi sebelum lompat ke versi mayor Ghost baru, dan biarkan proteksi DDoS bawaan paket tetap aktif di edge.

Pertanyaan

Hosting Ghost — FAQ

Apakah Ghost butuh MySQL, atau bisa pakai SQLite?

Ghost 5 resminya membutuhkan MySQL 8 untuk produksi. File compose di atas otomatis menyiapkan MySQL 8. SQLite hanya didukung untuk pengembangan lokal dan tidak disarankan untuk deployment offshore yang live.

Bagaimana cara menambahkan HTTPS?

Ghost sendiri menyajikan HTTP biasa di port 2368. Pasang reverse proxy di depannya - Caddy paling sederhana (otomatis menerbitkan dan memperbarui sertifikat Let's Encrypt), atau pakai nginx dengan certbot. Arahkan ke 127.0.0.1:2368 dan set `url` Ghost ke domain https:// Anda.

Bisakah saya mengirim newsletter tanpa jejak identitas pihak ketiga?

Ghost mengirim email member lewat provider SMTP apa pun atau Mailgun. Pada setup yang berfokus privasi, gunakan relay SMTP yang menerima kripto atau pendaftaran minimal dan konfigurasikan lewat environment variable mail__. Email transaksional tetap membutuhkan domain pengirim yang deliverable dengan SPF/DKIM.

Berapa banyak disk yang saya butuhkan?

Inti Ghost plus MySQL berukuran kecil (beberapa ratus MB). Pertumbuhan sesungguhnya datang dari gambar dan video yang diunggah ke volume content. Blog ringan berjalan lancar di 20-40 GB; situs yang berat gambar atau membership sebaiknya merencanakan storage NVMe dan backup rutin untuk volume content.

Apakah situs saya tahan lonjakan traffic atau DDoS?

Paket ChainVPS mencakup proteksi DDoS di edge jaringan, dan bandwidth bersifat unmetered sehingga post yang viral tidak akan menimbulkan biaya kelebihan pemakaian. Untuk lonjakan request murni, aktifkan caching di level proxy untuk page view offshore dan pindah ke paket VPS Pro atau dedicated jika Anda konsisten melihat concurrency tinggi.

Jalankan Ghost
dalam 60 detik ke depan.

Bandwidth unmetered · DDoS Termasuk · 21 mata uang kripto · Tanpa KYC.