Ghostを利用するときに公式インスタンスであるGhost Proを利用するか、すべての制御を行えるセルフホストの方が自由度が高そうに思えたりと悩みが多い。本稿ではどちらがいいのかをどちらも利用した身から比較していく。
標準的な項目
当たり前ですが、インストールやセットアップは自動的に行われます。アップデートは毎週行われ、常に最新の状態が保たれます。サーバーメンテナンスやアップデートはすべて自動的に行われ、インシデント発生時も自動的に復旧されます。最近ではあって当たり前のSSL証明も自動的に行われます。サイトの接続障害やメンテナンスによるダウンは最小限になるようGhostのチームが管理します。詳細は公開されていませんが、Enterprise-grade security
をうたっています。また、E-mailによるサポートが受けられます。
GhostはNode.js上で動いています。マイナーアップデートなら適当に済ませられますが、メジャーアップデートなどは依存関係や勝手も変わるので自分でやるのは面倒です。ブログは長期的に利用していくので、バックアップをとっていてもアップデートで失敗するとやる気がそがれるのでシステム上の面倒は減らしていきたいです。やる気のあるときはサーバーメンテなど苦にもなりませんが、時間がたつにつれて面倒になってくるため、マネージドなGhost Proはいいと思います。
Ghost Proの明確な優位点
CDNやロードバランサーによるDDOS対策
CDNによる高速なページキャッシュに加え、負荷分散によるDDOS対策が行われています。
E-mailによるニュースレター
E-mailによるニュースレターはコアなファンの獲得に有効な手段です。
しかし、E-mailでは迷惑メールが年々増加していることの対策のために、規制が厳しく鳴り続けています。送信者の検証などが必要になるなど、メールを大量に送付するための簡単な手法は減りつつあります。
Ghost ProではE-mailニュースレターに関する設定を自動的に行います。一方で、セルフホストをする場合は事実上Mailgunのサブスクリプションが必須になります。
![](https://images.ctfassets.net/y6oq7udscnj8/6z6GrPIK38toad7U6f2rh5/daedbd65d2c58ab731c83868cb3280e6/MG-Meta-Home.png?w=1200&h=628&q=50&fm=png)
メンバーの認証にもメールは利用されていますが、これに関してはバルクメールでないため、Ghost標準のメール機能を利用するため問題ないそうです。
![](https://ghost.org/images/meta/ghost-docs.png)
常時フルサイトバックアップ
システムのエラーによるデータの損失を避けるために、定期的なバックアップが必要ですし、リカバリーを行う必要があります。Ghost Proではバックアップが自動的に行われるため、好きなときにExportできます。
画像のシームレスな編集
Ghostでは画像の編集をエディター画面から直接行うことができます。この機能はPinturaという外部サービスを利用しています。Ghost ProではPinturaが利用できますが、セルフホストをしている場合、別途ライセンスを購入し、導入する必要があります。
![](https://pqina.nl/pintura/static/assets/share/banner.png)
欠点
Ghost Proを利用した場合、サーバーへのSSH接続やDBへの接続はできません。すべての管理を任せられるので問題なさそうに見えますが、現在(2024年1月)ではGhostでアップロードされた画像はエディター上で削除しても、実体は削除されません。つまりハッシュ化されているとはいえ、画像URLを直打ちされた場合意図していないアクセスが行われる危険性があります。
これはGhostにコンテンツマネージャーが存在しないことに起因する問題です。
これは何度かGhostの公式フォーラム上で議論されていますが、公式の回答として優先度の低い問題として明確に位置づけられているため、諦めるか、自分で実装してOSSに貢献するほか解決法はありません。
![](https://global.discourse-cdn.com/business4/uploads/ghost2/original/2X/8/8d4e1be1543b3ed506f105953a0d062b84797e42.png)
![](https://global.discourse-cdn.com/business4/uploads/ghost2/optimized/3X/e/1/e1a2e818f71667d91896259f18ebe91ca987c39c_2_1024x724.jpeg)
![](https://global.discourse-cdn.com/business4/uploads/ghost2/original/2X/8/8d4e1be1543b3ed506f105953a0d062b84797e42.png)
![](https://global.discourse-cdn.com/business4/uploads/ghost2/original/2X/8/8d4e1be1543b3ed506f105953a0d062b84797e42.png)
TLDR: It’s a lot of work to implement for no discernible benefit. Storage is extremely cheap, and filename has no impact on image output. Most platforms scramble filenames to a hash, so no matter what you upload it ends up being rendered as /images/34khds92lk20990923klnsd.jpg
- generally speaking you just don’t need to worry about it.