Ghost Hosting
Ghost(Pro) makes setup simple - and charges accordingly as your audience grows. A self-hosted Ghost instance on a VPS delivers the same publishing platform at a flat monthly price, regardless of how many subscribers you have. Ghost CLI installs and configures Node.js, MySQL, Nginx, and SSL automatically. You connect to your server, point it at your domain, and run one command.
Important: Ghost CLI officially supports Ubuntu 20.04, 22.04, and 24.04 LTS only. If you're ordering a VPS specifically for Ghost, choose Ubuntu at checkout.
What Ghost CLI handles for you
Self-hosting a Node.js application with MySQL, Nginx, and SSL is not trivial to configure from scratch. Ghost CLI removes that problem. It's the official command-line tool for installing and managing Ghost - and it handles the full environment setup automatically, not just the application itself.
ghost install - the full stack in one command
Ghost CLI installs Node.js (the correct version for your Ghost release), MySQL 8, Nginx (with a pre-configured server block and reverse proxy), and Certbot with a Let's Encrypt SSL certificate - all from a single command. By the time ghost install finishes, your publication is live at your domain over HTTPS. No manual Nginx configuration, no separate Certbot setup, no MySQL database creation by hand.
Process management via systemd
Ghost CLI configures a systemd service for your Ghost instance automatically. Your publication restarts on crash and survives server reboots without any additional configuration. ghost start, ghost stop, and ghost restart manage the process from the command line.
Safe updates via ghost update
Updating Ghost is a single command. Ghost CLI backs up your database, downloads the new release, applies database migrations, and restarts the service. If something goes wrong, it rolls back. You do not manage Node modules, database migrations, or process restarts manually.
Multiple publications via ghost ls
Ghost CLI supports multiple Ghost instances on a single server. Each instance runs on a separate internal port; Nginx routes traffic to the correct instance based on the domain. ghost ls lists all instances and their status. Useful for agencies managing several client publications or for running a personal blog alongside a paid newsletter publication.
ghost doctor - configuration diagnostics
If something is not working as expected, ghost doctor checks your environment and flags configuration issues - wrong Node version, missing system user, port conflicts, or MySQL connection problems. It is the first step to take before opening a support ticket anywhere.
Plans
Ghost runs alongside MySQL on the same server, and MySQL is memory-hungry. The combined RAM usage of Ghost and MySQL means VPS-1 is the minimum - and it is tight. VPS-2 is the recommended starting point for most Ghost publications.
| VPS-1 Low-traffic blogs or testing - Ghost + MySQL uses most of the available RAM | VPS-2 Most Ghost publications - comfortable headroom for Ghost, MySQL, and traffic spikes | VPS-4 High-traffic publications, large member lists, or multiple Ghost instances | VPS-6 Large-scale publications or agencies running many Ghost sites on one server | |
|---|---|---|---|---|
| vCPU | 1 | 2 | 4 | 6 |
| RAM | 1GB DDR5 | 2GB DDR5 | 4GB DDR5 | 8GB DDR5 |
| Storage | 25GB NVMe | 50GB NVMe | 100GB NVMe | 200GB NVMe |
| Bandwidth | 1TB | 2TB | 4TB | 6TB |
| IPv4 | 1 | 1 | 1 | 1 |
| Price | [price] | [price] | [price] | [price] |
| Deploy your VPS. | Deploy your VPS. | Deploy your VPS. | Deploy your VPS. |
These are renewal prices. What you pay today is what you pay next year.
All VPS plans are unmanaged. Bitfoo handles the hardware and network; Ghost installation, configuration, updates, and backups are your responsibility.
If your server exceeds its monthly bandwidth allocation, throughput is throttled for the remainder of the billing cycle - no additional charges.
Ghost and MySQL together typically use 400-700MB of RAM at rest. VPS-1's 1GB allocation leaves limited headroom for traffic spikes and background tasks. If your publication has a regular audience or you're sending newsletters to a list, VPS-2 gives you a noticeably more comfortable environment.
Getting started
Ghost CLI compresses what would otherwise be a multi-step server configuration process - Node.js, MySQL, Nginx, SSL, systemd - into a single command. The main steps:
- Order a VPS and choose Ubuntu
Ghost CLI officially supports Ubuntu 20.04, 22.04, and 24.04 LTS. Select Ubuntu at order time - Ghost CLI does not support Debian, AlmaLinux, Rocky Linux, or CentOS. This is the one hard requirement Ghost imposes on your server environment. - Point your domain at your server
Before running Ghost CLI, point your domain's A record at your VPS IP address and wait for DNS to propagate. Ghost CLI's--urlflag takes your domain and uses it to configure Nginx server blocks and request an SSL certificate from Let's Encrypt - this step requires your domain to already be resolving to your server. - Run
ghost install
SSH into your server and follow the official Ghost CLI installation guide at ghost.org/docs/install/ubuntu/. The guide walks through the system user setup and theghost installcommand. Ghost CLI installs Node.js, MySQL, Nginx, and Certbot, configures everything, and starts your Ghost instance. By the end of this step, your publication is live at your domain. - Configure your publication settings
Log into your Ghost admin panel atyourdomain.com/ghostto set your publication name, upload your logo, and connect any integrations - Mailgun for newsletter delivery, Stripe for paid memberships. These are configured through the Ghost admin interface, not the command line.
What every VPS plan includes
Relevant features for Ghost, from the VPS hosting page:
Full root access and SSH from first boot - required for Ghost CLI installation and ongoing management
KVM virtualization - your own kernel; Ghost CLI's system dependencies, MySQL, and Nginx all install and configure without host-imposed restrictions
Ubuntu support - order your VPS with Ubuntu 22.04 or 24.04 LTS; both are fully supported by Ghost CLI
NVMe SSD storage - fast disk I/O for MySQL database reads, Ghost theme assets, and uploaded media
AMD Ryzen 9 9900X - strong single-core performance for Ghost's Node.js rendering and MySQL query processing
99.9% uptime SLA - measured monthly, service credit issued for any shortfall
Self-service control panel - OS reinstall, power control, SSH key management, and resource monitoring; use the browser-based emergency console if SSH becomes unreachable
Automated provisioning - server ready within minutes of payment
5 datacenter locations at order time: US East, US West, UK, EU, Asia-Pacific
10Gbps network ports on all plans
Who uses this
Ghost is used by independent writers, newsletter publishers, media teams, and developers who want a clean, content-focused platform without the WordPress plugin overhead. Self-hosting on a VPS suits anyone who's outgrown Ghost(Pro)'s pricing or wants full ownership of their infrastructure.
Entrepreneurs & independent creators · Small businesses · Agencies · Developers
Common questions
Which Linux distribution does Ghost require?
Ghost CLI - the official installation tool - supports Ubuntu 20.04, 22.04, and 24.04 LTS only. This is a Ghost requirement, not a Bitfoo restriction. Other Linux distributions (Debian, AlmaLinux, Rocky Linux, CentOS) are not supported by Ghost CLI and will produce errors during installation. When you order your VPS, select Ubuntu 22.04 or 24.04 LTS. If you order with a different distribution and want to switch, you can reinstall the OS from the Bitfoo client panel at no charge.
How much RAM does Ghost need?
Ghost's official documentation lists 1GB RAM as the minimum. In practice, Ghost and MySQL together use 400-700MB at rest - which leaves limited headroom on a 1GB server when traffic spikes or newsletter sends trigger additional database and rendering activity. VPS-1 works for low-traffic blogs or testing environments. For a publication with a regular audience or an active member list, VPS-2's 2GB allocation gives you a noticeably more stable environment. If you're running multiple Ghost instances on one server, size up accordingly.
How do I handle email delivery for Ghost newsletters?
Ghost's newsletter and transactional email (welcome emails, member confirmations, password resets) require an external email provider. Ghost has native Mailgun integration - connect your Mailgun account in Ghost's admin settings under Email Newsletter, and Ghost routes all outbound email through Mailgun. SMTP credentials from other providers (Postmark, SendGrid, AWS SES) can also be used via Ghost's custom SMTP settings.
Can I use Stripe paid memberships on a self-hosted Ghost?
Yes. Ghost's paid membership and subscription features (paid tiers, member-only content, one-time payments) connect to Stripe through your Ghost admin settings. There is no hosting-level configuration required - you connect your Stripe account in the Ghost admin panel and Stripe handles payment processing directly. Self-hosted Ghost has access to the same membership features as Ghost(Pro). The only difference is that you manage your own infrastructure instead of paying Ghost to manage it for you.
Can I migrate from Ghost(Pro) to self-hosted Ghost?
Yes. Ghost provides a built-in export tool in the admin panel that exports your entire publication - posts, pages, members, tags, and settings - as a JSON file. On your new self-hosted instance, import that file through the Ghost admin panel's import tool. Member email addresses migrate with your content; existing paid subscribers would need to be reconnected to Stripe on the new instance. Ghost's official documentation covers the migration process in detail. DNS propagation is the main timing consideration - point your domain at your VPS after confirming the import is complete.
Can I run multiple Ghost publications on one server?
Yes. Ghost CLI supports multiple instances on a single server. Each publication runs on a separate internal port; Nginx routes traffic to the correct instance based on the domain name. Use ghost install for the first publication and ghost install --port [port] for subsequent ones. ghost ls shows all instances and their status. The practical limit is RAM - each Ghost instance plus a shared MySQL server adds to your total memory footprint. VPS-4 handles four to six Ghost instances comfortably depending on traffic levels.
Which plan should I choose for my Ghost publication?
VPS-1 is adequate for a low-traffic blog or a site you're setting up to test before migrating an existing publication. VPS-2 is the recommended starting point for most Ghost publications - it gives Ghost and MySQL enough combined RAM to handle regular traffic and newsletter sends without running close to limits. VPS-4 suits high-traffic publications, large member lists that generate significant database activity during sends, or servers running two to four Ghost instances. VPS-6 suits agencies or developers running many Ghost publications from one server. If you're migrating from Ghost(Pro) and unsure of your traffic profile, start with VPS-2 - you can upgrade without migrating your data.