Publishing, checked 2026-10-17

Ghost: Docker configuration reference

Self-hosted publishing platform for blogs and newsletters, with built-in members and Stripe subscriptions.

At a glance

Ports

Ports
PortWhat listensSource
2368Default HTTP listener inside the container. Map it to whatever host port the reverse proxy expects.source for port 2368

Environment variables

Environment variables
VariableRequiredWhat it doesExampleSource
urlYesThe public URL of the site. Every internal link, RSS entry, sitemap and email is generated from this value, so a wrong or missing one rewrites links across the whole site.https://blog.example.comsource for url
database__clientYesDatabase driver. Production mode requires an external MySQL 8 server; SQLite via database__connection__filename only works in development mode.mysqlsource for database__client
database__connection__hostYesHostname of the MySQL server, nested under the database__connection key using the double-underscore config syntax.dbsource for database__connection__host
mail__transportNoMail transport for member and staff emails. Required in production; without it, invites, password resets and newsletters cannot send.SMTPsource for mail__transport
NODE_ENVNoNode environment. The Docker image defaults to production, unlike a bare Ghost install which defaults to development.productionsource for NODE_ENV

Volumes that must persist

Volumes
PathWhat is in itSource
/var/lib/ghost/contentThemes, images, uploaded files and the SQLite database file in development mode. Everything Ghost cannot regenerate lives here.source for /var/lib/ghost/content

Behind a reverse proxy

What it needs alongside it

Dependencies
DependencyWhySource
MySQL 8Required application database in production mode. SQLite is only supported in development mode and is not persisted the same way.source for MySQL 8

Release timeline

Releases
VersionDateBreakingWhat changedSource
v6.71.02026-10-15NoAdded paid tier-based automation triggers and fixed self-hosted Portal, Search and Comments failing to load, plus relative SQLite paths failing after the 6.70 upgrade.source for release v6.71.0
v6.70.02026-10-13NoRemoved Ember from the codebase, released the React editor and billing screens and added navigation URL suggestions.source for release v6.70.0
v6.69.02026-10-07NoReleased automation analytics and self-serve site exports, plus Portal and Unsplash fixes.source for release v6.69.0
v6.68.02026-10-06NoReleased member location maps and the React posts list, and increased the maximum automation actions from 20 to 50.source for release v6.68.0
v6.67.02026-09-29NoFixed post history crashes, repeated Stripe portal errors and importing posts with empty mobiledoc content.source for release v6.67.0

If it is not coming up

Read from the upstream documentation, repository and container registry by Keita Emsden on 2026-10-17. Every row links the page it came from. Upstream changes without telling anyone, so check the source link before you rely on a value.

Other app references

All app references