New: the Homelab Planning Bundle. Both planners together for $19.99 instead of $27.98Save $7.99GET THE BUNDLE

Homelab Addiction

Self-Hosted / Projects / Ghost

Ghost

Stable
TryGhost/Ghost55.5k12k18h agoBlogging Platforms
DocsWebsiteSource

Specs verified September 1, 2026 · against vv6.61.0

Overview

Self-hosted publishing platform for blogs, newsletters, memberships, and paid subscriptions.

Ghost is a self-hosted publishing platform for creators, newsletters, and media brands that want one system for a website, content publishing, email newsletters, memberships, and paid subscriptions.

The real search intent is usually broader than “what is Ghost.” People are often deciding whether Ghost is a better fit than WordPress, Substack, or Beehiiv when they want more ownership of brand, audience, and revenue.

Why people choose Ghost

The official product site positions Ghost around professional publishing: custom websites, a modern editor, email newsletters, native memberships, subscriptions, and audience growth tools in one stack. That is a different job from a general-purpose site builder or a hosted newsletter silo.

Ghost also has unusually clear self-hosting tradeoff documentation. The official hosting guide explains that self-hosting gives you full control, SSH and database access, and the ability to modify the stack, while Ghost(Pro) removes the work of backups, updates, security, CDN, and email operations.

What you get in the stack

Official pages highlight publishing, themes, newsletters, sign-up flows, paid memberships, native analytics, offers, and integrations. The repository README also calls out Ghost as a headless Node.js CMS with APIs and theme tooling for developers who want to extend it.

For self-hosters, the documentation now matters just as much as the feature list. Ghost 6 adds a Docker-based self-hosting preview for web analytics and ActivityPub-related services, while the classic supported stack still centers on Ubuntu, Node.js, MySQL, NGINX, and systemd.

What to know before you deploy

Ghost is not a zero-ops static blog. The hosting docs recommend Ubuntu LTS, Node.js 22 LTS, MySQL 8, NGINX, systemd, and at least 1 GB memory for the supported self-hosted stack. The new Docker guide for Ghost 6 lists a Linux server, Docker, a real domain, and SMTP as prerequisites, with a 2 GB and 1 vCPU server example for the preview tooling path.

The operational tradeoff is the point of the product decision. Self-hosting means you handle updates, backups, SSL, email delivery, and usually some CDN or caching strategy yourself. The docs explicitly say Ghost(Pro) is the easier fit for most people, while self-hosting is best for teams that want maximum control and are comfortable managing servers.

Community signal supports that reality: the Ghost forum stays active around memberships, themes, integrations, self-hosting bugs, and missing media-library or checkout pain points. That is a healthy sign for support, but it also shows that running Ghost well involves more than writing blog posts.

Best fit

Choose Ghost when you want a publisher-first platform with newsletters and memberships built in, and you are comfortable owning the infrastructure or deliberately choosing Ghost(Pro) instead.

Compare WordPress, Substack, or Beehiiv more closely if your main priority is plugin breadth, a fully hosted writing business, or a simpler managed newsletter workflow with fewer infrastructure decisions.

Quick deploy

Paste into docker-compose.yml and run docker compose up -d
docker-compose.yml
1services:
2 ghost:
3 image: ghost:latest
4 restart: unless-stopped
5 ports:
6 - '2368:2368'
7 environment:
8 url: https://example.com
9 database__client: mysql
10 database__connection__host: db
11 database__connection__user: ghost
12 database__connection__password: change-me
13 database__connection__database: ghost
14 depends_on:
15 - db
16
17 db:
18 image: mysql:8
19 restart: unless-stopped
20 environment:
21 MYSQL_ROOT_PASSWORD: root-change-me
22 MYSQL_DATABASE: ghost
23 MYSQL_USER: ghost
24 MYSQL_PASSWORD: change-me
25 volumes:
26 - ghost-db:/var/lib/mysql
27
28volumes:
29 ghost-db:

Configuration

Environment variables

VariableWhat it doesExample
urlrequiredCanonical public URL of the Ghost publication.https://example.com
database__connection__passwordrequiredMySQL password for the Ghost application user.change-me
mail__transportMail transport used for transactional email delivery.SMTP
mail__options__hostSMTP host for Ghost email delivery.smtp.example.com

Ports

  • 2368/tcp — Default Ghost web service port before reverse-proxy termination.

Volumes to back up

  • /var/lib/mysql — Persistent MySQL storage for the Ghost database.

Interface previews

Screenshots of the Ghost interface.

Feature support

Feature support in Ghost
FeatureSupport
Website publishing with a modern editorThe official product site presents Ghost as a professional publishing platform with a purpose-built editor.Supported
Email newsletters built inNewsletters are a core Ghost feature, not a bolt-on plugin.Supported
Free and paid membershipsOfficial pages highlight native members, subscriptions, and premium tiers.Supported
Custom themes and design controlTheme marketplace and custom design workflows are part of the main product story.Supported
Developer APIs and headless CMS usageThe repository README and docs both point to APIs and developer tooling.Supported
Native analyticsGhost highlights analytics, but self-hosting the newer analytics stack requires the Docker-based preview tooling and Tinybird integration.Partial support
ActivityPub / social web supportSupported in Ghost 6, but the docs treat full self-hosting of the social-web services as an extra Docker-based path.Partial support
Automatic SSL and server bootstrap via Ghost CLIThe recommended Ghost CLI path configures production installs and automatic Let’s Encrypt SSL.Supported
Forum-based community support for self-hostersThe Ghost forum remains active across hosting, themes, memberships, and integration questions.Supported

Community signals

Stars
55.5k
Forks
12k
Open issues
207

Includes open pull requests

Last commit
18h ago
Latest release
v6.71.0

1d ago

Repo created
May 2013

Refreshed nightly from the GitHub API.

Alternatives

  • Substack

    Frequent comparison for hosted newsletters and paid subscription publishing.

  • WordPress

    Common CMS comparison when deciding between plugin breadth and a narrower publisher-first stack.

  • Beehiiv

    Hosted newsletter-platform comparison for creators focused on audience growth without self-hosting.

Questions

What is Ghost used for?

Ghost is used to run a self-hosted publishing site with blog posts, newsletters, member signups, and paid subscriptions from one platform.

Is Ghost a self-hosted alternative to Substack?

Yes, for many creators. Ghost includes newsletters, memberships, and paid subscriptions, while giving you more control over branding, audience data, and the underlying software.

Is Ghost a replacement for WordPress?

Sometimes. Ghost is narrower and more publisher-focused than WordPress, which can make it cleaner for newsletter and membership businesses. WordPress still has a much broader plugin ecosystem for sites that need many non-publishing extensions.

What server requirements does Ghost have?

The official hosting guide recommends Ubuntu LTS, Node.js 22 LTS, MySQL 8, NGINX, systemd, and at least 1 GB memory for the supported stack. The newer Docker preview docs also show a Linux server, domain, Docker, and SMTP as core prerequisites.

Does self-hosted Ghost need MySQL and SMTP?

Yes for the standard supported paths. The official docs center the stack on MySQL, and both the classic and Docker-based install guides call out email setup because transactional mail is part of real-world Ghost operation.

Is self-hosting Ghost cheaper than Ghost(Pro)?

It depends. Ghost’s own hosting guide says very light blogs can be cheaper to self-host, but once you add backups, email delivery, analytics, CDN, and operational time, Ghost(Pro) is often the better value for many users.

Who should choose self-hosted Ghost?

The official guidance says self-hosting is best for teams who are comfortable managing servers and want full control. If you mainly want the software without infrastructure work, Ghost(Pro) is usually the simpler fit.

support // the lab

Found this write-up useful?

If it saved you time or a rebuild, you can support more practical homelab guides.

Support the lab