Ghost VPS Sizing: RAM, CPU & Storage Requirements
Ghost VPS requirements and sizing for RAM, CPU, storage, Docker, MySQL, backups, monitoring, and safe scaling.
Disclosure: WealthLab.life may earn a commission when you register through some links on this page, at no additional cost to you. Recommendations are based on fit, operational risk, and reader needs before referral economics.
For most small self-hosted Ghost sites, start with 1 vCPU and 2 GB RAM. Ghost's official Ubuntu guide lists 1 GB memory as the minimum, while its Docker guide uses a 2 GB / 1 CPU server as the prerequisite example. The larger starting point leaves useful headroom when Ghost, MySQL, a reverse proxy, image processing, updates, and backups share one VPS.
Ghost VPS requirements: quick answer
- Testing only: 1 vCPU / 1 GB RAM can work, but treat it as a tight minimum rather than a comfortable production target.
- Small public Ghost site: 1 vCPU / 2 GB RAM is a practical baseline for Ghost, MySQL, and a reverse proxy on one server.
- Growing publication or multiple services: 2 vCPU / 4 GB RAM or more gives extra room for image uploads, database work, monitoring, updates, and backup jobs.
These are planning baselines, not benchmark results. Theme complexity, traffic shape, image volume, newsletter activity, analytics, and other containers can change the answer. Measure the complete stack after launch and resize from real evidence.
What uses RAM and CPU on a Ghost server?
A typical Ghost Docker deployment includes the Ghost Node.js process, MySQL, Caddy or another reverse proxy, container logs, backup jobs, and monitoring. SMTP is normally provided by an external mail service, but newsletter and transactional-email activity still creates application and database work. Optional analytics or social-web components add more services.
- Ghost: serves pages, runs the admin interface, processes images, and handles publishing work.
- MySQL: stores posts, members, settings, and operational data; its memory use and disk activity grow with the database and workload.
- Reverse proxy: terminates HTTPS and routes traffic. It is usually modest, but it still shares the server.
- Maintenance: image pulls, database migrations, exports, backups, and log rotation can create short resource spikes.
- Other containers: monitoring, analytics, automation, or unrelated apps consume the same CPU, RAM, and disk unless separated.
1 GB RAM: minimum, not much margin
Ghost's official self-hosting requirements allow a server with at least 1 GB memory. That can be enough for learning, staging, or a very small site, but the number describes minimum compatibility rather than resilience during updates and maintenance. If MySQL and the reverse proxy run on the same 1 GB server, memory pressure can appear during image processing, backups, or upgrades.
Swap can reduce the chance of an abrupt out-of-memory kill, but it is slower than RAM and does not turn an undersized VPS into a well-sized one. Monitor swap use and application response time instead of treating swap as permanent capacity.
2 GB RAM: practical baseline for a small Ghost site
The official Ghost Docker guide uses a 2 GB / 1 CPU Linux server as its example prerequisite. That is a sensible starting shape for one modest publication when Ghost, MySQL, and Caddy share the VPS. It gives more room for routine admin work, TLS, database buffers, image uploads, and controlled backups without claiming that every traffic level will fit.
A single shared vCPU is usually the economical place to start for a small site. Move to more CPU when sustained measurements show CPU saturation, slow image processing, delayed admin actions, or contention with database and backup jobs.
4 GB RAM and 2 vCPU: headroom for growth
Consider 4 GB RAM or more when the VPS hosts several containers, the image library is growing quickly, imports and exports are frequent, or the publication must remain responsive while backups and updates run. Two vCPUs can also reduce contention during short bursts. More capacity is not a substitute for caching, backups, monitoring, and a clean deployment, but it makes normal operations less fragile.
Storage sizing and disk headroom
Ghost storage grows through original images, generated image sizes, themes, exports, logs, and MySQL data. Do not size disk from the current database alone. Estimate the image library, expected monthly uploads, backup retention, Docker images, and room required to pull a new image during an update.
- Keep database and content backups off the VPS as well as on it; a server loss should not remove every copy.
- Set log retention so container or proxy logs cannot silently fill the root filesystem.
- Keep enough free space for database maintenance, temporary exports, and parallel old/new Docker image layers.
- Use provider snapshots as one recovery layer, not the only backup method.
How to measure before resizing
Check the host during normal traffic and again during image uploads, backups, and updates. Useful read-only commands include:
free -h
df -h
docker stats --no-stream
docker system df
free -h shows memory and swap pressure, df -h shows filesystem capacity, docker stats --no-stream captures current container CPU and memory use, and docker system df summarizes Docker disk usage. Do not run broad prune commands just because Docker reports reclaimable space; first confirm that no image, container, or volume is needed for rollback or recovery.
Signals that the VPS needs more capacity
- The kernel or container logs show out-of-memory kills.
- Swap remains heavily used and the site slows during routine work.
- CPU remains saturated rather than briefly spiking.
- Ghost Admin, image uploads, or database operations become slow during backups.
- Disk free space keeps shrinking despite sensible log and backup retention.
- You are adding analytics, automation, or other production containers to the same host.
Before resizing, identify the constrained resource. More RAM will not fix a full disk, and more CPU will not fix an unbounded log file.
Self-hosted Ghost or Ghost(Pro)?
Choose self-hosting when you want server control and are prepared to own OS updates, Ghost updates, MySQL, HTTPS, SMTP, monitoring, backups, and recovery. Ghost(Pro) is the better fit when you want Ghost's managed service and do not want routine server operations. A VPS can have a lower headline infrastructure cost, but the fair comparison includes your time and the supporting services you must operate.
Disclosure: WealthLab.life may earn a commission when you register through some links in this section, at no additional cost to you.
Provider fit
DigitalOcean is a reasonable option when you value a straightforward Droplet workflow and extensive documentation. Vultr is worth comparing when location or instance-family choice matters more. Neither is automatically best: verify the current plan, region, backup cost, bandwidth policy, and upgrade path before creating a server.
Operational checklist before launch
- Use SSH keys and restrict public ports with a firewall.
- Put Ghost behind HTTPS with correct forwarded host and protocol headers.
- Use a supported production MySQL version and keep the database private.
- Configure a working SMTP service before relying on transactional email.
- Back up both MySQL and the Ghost content directory, then test a restore path.
- Monitor the homepage,
/ghost/,robots.txt,sitemap.xml, container health, disk, and memory. - Keep database files, content data, and secrets out of git.
FAQ
Can Ghost run on a 1 GB VPS?
Yes. Ghost's official Ubuntu prerequisites list at least 1 GB memory. Use that as a minimum for a small installation, not a guarantee of comfortable headroom when MySQL, Docker, backups, and other services share the server.
Is 2 GB RAM enough for Ghost?
It is a practical starting point for many small publications, and Ghost's Docker guide uses a 2 GB / 1 CPU server in its prerequisite example. Measure your own theme, traffic, image work, database, and supporting containers before deciding that it is enough permanently.
How many CPU cores does Ghost need?
One shared vCPU is a reasonable small-site starting point. Add CPU when sustained measurements show contention or when imports, image processing, backups, and other containers need to run concurrently.
Should MySQL run on the same VPS?
For a small site, keeping Ghost and MySQL together is simpler. A separate or managed database can make sense when database availability, independent scaling, or recovery requirements justify the extra cost and network complexity.
What should a Ghost backup include?
Back up the MySQL database and the Ghost content directory, which contains images, themes, and other site files. Keep an off-server copy and test restoration; a snapshot alone is not a complete recovery plan.
Related Ghost and VPS guides
- How to Install Ghost with Docker on a VPS
- DigitalOcean vs Vultr: Which VPS Should You Choose?
- Docker VPS Launch Checklist Before You Go Public
Choosing between platforms? The VPS vs shared hosting guide explains why Ghost and WordPress lead to different hosting decisions.
Sources checked
- Ghost hosting and self-hosting requirements
- Official Ghost Docker installation guide
- Ghost manual backup documentation
- Docker container stats reference
- Docker disk usage reference
Bottom line
Use 1 GB for a minimal or disposable installation, start a small public Ghost site at 2 GB when the full stack shares one VPS, and consider 4 GB or more when operational work or additional services need headroom. Measure memory, CPU, and disk during the busiest maintenance task—not only while the homepage is idle.
Last updated: 2026-08-31