Ghost on DigitalOcean
DigitalOcean publishes its own guide for deploying Ghost.
Open-source publishing platform running as a long-lived Node process, requiring MySQL in production and a writable content directory for uploads and themes.
What Ghost needs.
Every host claims to run Ghost, so the claim on its own decides nothing. These are the things Ghost actually requires from the platform underneath it, and what DigitalOcean publishes about each. DigitalOcean documents 5 of the 6.
Persistent storage
Supported
Ghost writes uploaded images and installed themes into its content directory at runtime. On an ephemeral filesystem those disappear at the next deploy, and the posts referencing them break.
Sources (1) →Sources ↓
- Volume Features — DigitalOcean Docs ↗
“Volumes are network-attached block storage. You can use them with Droplets or Kubernetes clusters, move or resize them, and create snapshots at any time.”
Read 2026-09-14 · official docs
Managed databases
Supported
Ghost 5 supports only MySQL 8 for production. SQLite works for development, so a guide that sets one up is not showing you a production install.
Sources (1) →Sources ↓
- Managed Databases | DigitalOcean Documentation ↗
“DigitalOcean Managed Databases are a fully managed, high performance database cluster service.”
Read 2026-09-05 · official docs
Persistent processes
Supported
Ghost is one long-running Node process that serves requests and fires scheduled publishing. It is not a set of functions and cannot be deployed as one.
Sources (1) →Sources ↓
- Droplets | DigitalOcean Documentation ↗
“DigitalOcean Droplets are Linux-based virtual machines (VMs) that run on top of virtualized hardware.”
Read 2026-09-05 · official docs
Storage (entry plan)
10 GiB SSD on the cheapest Basic Droplet (Regular CPU, 512 MiB / 1 vCPU, $4.00/mo).
A publication's image library grows steadily and is almost never pruned, so disk is the cap a busy Ghost site reaches before any other.
Sources (1) →Sources ↓
- Droplet Pricing — DigitalOcean ↗
“Memory vCPU Transfer SSD $/hr $/mo 512 MiB 1 vCPU 500 GiB 10 GiB $0.00595 $ 4.00”
Read 2026-09-13 · official pricing
Scheduled jobs
Supported
Ghost publishes posts at a future time and sends newsletters on a schedule, both fired by timers inside the running process. A host that sleeps the process or offers no scheduler will publish late or not at all.
Sources (1) →Sources ↓
- How to Schedule Functions | DigitalOcean Documentation ↗
“To run functions on a schedule, you can create a function trigger and then specify a schedule using standard cron syntax.”
Read 2026-09-05 · official docs
Backup retention
Not documented
A Ghost install is a MySQL database plus a content directory, and losing either loses the publication. How far back the host's own backups reach is the difference between an incident and an outage.
What DigitalOcean documents.
DigitalOcean publishes its own guide for deploying Ghost.
In addition to creating a Droplet from the Ghost 1-Click App via the control panel, you can also use the DigitalOcean API.
Sources (1) →Sources ↓
- Ghost — DigitalOcean Marketplace ↗
“In addition to creating a Droplet from the Ghost 1-Click App via the control panel, you can also use the DigitalOcean API.”
Read 2026-09-05 · official docs
Ghost features on DigitalOcean
Capabilities DigitalOcean documents specifically for Ghost, with the constraint it documents alongside each.
mysql_database
Supported
Node.js 22 LTS (NodeSource) MySQL 8 nginx (reverse proxy / SSL via Ghost CLI) [...] MySQL server 8.0.29 GPL 2 with modifications
smtp_email
Limited
nginx (reverse proxy / SSL via Ghost CLI) Postfix (loopback-only for mail) fail2ban
one_click_install
Supported
The Ghost 1-Click App allows you to self-host your own Ghost instance up and running in two minutes. [...] After the Ghost One-Click Droplet is created and the domain and DNS records are set up, you'll need to log into the Ghost Droplet to complete its setup.
Sources (1) →Sources ↓
- Ghost — DigitalOcean Documentation ↗
“Node.js 22 LTS (NodeSource) MySQL 8 nginx (reverse proxy / SSL via Ghost CLI) [...] MySQL server 8.0.29 GPL 2 with modifications”
Read 2026-09-13 · official docs
What it costs to run there.
- Entry paid plan
- $4.00
- Pricing model
- billed per second with a minimum charge of 60 seconds or $0.01, whichever is higher
- When you exceed a cap
- Billed automatically — outbound transfer beyond the pooled plan allowance is charged at $0.01 per GiB; inbound transfer is free
- Regions
- Thirteen regions holding 16 datacenters: New York City (NYC1, NYC2, NYC3), Amsterdam (AMS3), San Francisco (SFO2, SFO3), Singapore, London, Frankfurt, Toronto, Bangalore, Sydney, Atlanta, Richmond, Kansas City and Memphis.
Sources (3) →Sources ↓
- Droplet Pricing — DigitalOcean ↗
“Memory vCPU Transfer SSD $/hr $/mo 512 MiB 1 vCPU 500 GiB 10 GiB $0.00595 $ 4.00 1 GiB 1 vCPU 1,000 GiB 25 GiB $0.00893 $ 6.00”
Read 2026-09-13 · official pricing
- Droplet Pricing | DigitalOcean Documentation ↗
“billed per second with a minimum charge of 60 seconds or $0.01, whichever is higher”
Read 2026-09-05 · official docs
- Regional Availability — DigitalOcean Docs ↗
“DigitalOcean has 16 datacenters across 13 regions. [...] Datacenter Region Slug NYC1 New York City, United States nyc1 NYC2 New York City, United States nyc2 NYC3 New York City, United States nyc3 AMS3 Amsterdam, the Netherlands ams3 SFO2 San Francisco, United States sfo2 SFO3 San Francisco, United States sfo3 SGP1 Singapore sgp1 LON1 London, United Kingdom lon1 FRA1 Frankfurt, Germany fra1 TOR1 Toronto, Canada tor1 BLR1 Bangalore, India blr1 SYD1 Sydney, Australia syd1 ATL1 Atlanta, United States atl1 RIC1 Richmond, United States ric1 MKC1 Kansas City, United States mkc1 MEM1 Memphis, United States mem1”
Read 2026-09-14 · official docs
Whether it suits you.
Teams that want plain Linux virtual machines with predictable per-second billing from $4 a month, and the option of managed databases beside them. App Platform adds Git and Docker deploys on top.
Consider something else if…
You want a platform that manages the runtime for you rather than a server you administer.
Visit DigitalOcean documentation