Purchase a Virtual Dedicated Server with Ghost Installation

Build and scale your content business on your own terms with Ghost, the open-source publishing platform designed for independent creators. Write seamlessly in a distraction-free editor while leveraging built-in SEO, newsletter delivery, and membership management tools to grow your audience. Retain total ownership of your brand, subscriber data, and revenue without paying platform fees.

This article explains how to purchase a Bluehost Virtual Dedicated Server (VDS) hosting plan and set up and manage your Ghost installation.

Why Choose Ghost?

Ghost gives you complete ownership of your content, revenue, and audience when deployed on your VDS. Built with native SEO, clean editing, and automated newsletter tools, it lets you launch and scale a professional publishing business without third-party plugins

Uses of Ghost

There are many applications of Ghost in different fields:

  • Premium Memberships: Create exclusive content tiers and lock specific articles behind a paywall to turn occasional readers into paying supporters.
  • Integrated Newsletters: Deliver your latest stories directly to subscribers' inboxes automatically every time you publish, bypassing social media algorithms.
  • Independent Journalism: Launch a fully independent news site or niche magazine with zero platform fees, so more of your subscription revenue stays with you instead of going to a hosted platform.
  • Corporate Blogs: Build a fast-loading, security-conscious company publication that boosts search engine rankings and captures clean marketing leads.
  • Content Hubs: Manage a sleek, distraction-free home for podcasts, video series, or text articles without wrestling with clunky website plugins.

This flexibility makes Ghost an excellent choice for creators and companies wanting to grow a professional audience with total peace of mind.

How to Purchase a Virtual Dedicated Server with Ghost Installation

Ghost can be installed on a Bluehost Virtual Dedicated Server (VDS). You can choose to have Ghost installed during the initial VDS purchase or install it manually at a later time.

  1. In your browser, go to https://www.bluehost.com.
  2. Click Hosting in the top menu, then select Virtual Dedicated Server.

    Bluehost - Hosting tab - Virtual Dedicated Server
     

    You can also go to this link directly: https://www.bluehost.com/vds-hosting.

  3. On the Virtual Dedicated Server Hosting page, click Explore Plans. You can also scroll down to the hosting plans section.

    Bluehost - Hosting tab - Virtual Dedicated Server
     

  4. Choose a plan from either tab — Standard or High Performance — by clicking Choose Plan.

    VDS hosting - Choose plan
     

    Pricing is subject to change. Please visit https://www.bluehost.com/vds-hosting for the current introductory/sign-up offer for the Bluehost Virtual Dedicated Server hosting. For the most up-to-date renewal pricing, visit your Bluehost Portal's Renewal Center.
  5. On the next page, configure your VDS hosting to meet your requirements. The configuration options are divided into the following sections:
    • Location: Select your data center in this section.

      VDS hosting - Select your data center's location
       

    • Hardware: This section shows your pre-selected plan. You can also switch to another Virtual Dedicated Server plan in this section

      VDS hosting - Configure your server's hardware
       

    • Software:
      1. Under the Application tab, click on Ghost.

        VDS hosting - Software - Application tab - Ghost
         

        You can install only one application per purchase; the system will automatically select the best operating system for it.
      2. In the pop-up, click Confirm.

        VDS hosting - Software - Application tab - ghost - pop-up
         

    • Support & Security: You can add Premium Support - Recurring, which provides priority access to expert assistance and faster response times.

      VDS hosting - Support & Security
       

    • Advanced Options:
      • Extra IP's: You can add IP addresses for an additional fee. Pricing changes based on how many IPs you add.
      • Hostname: Assign a custom hostname to identify your server. This is optional.

        VDS hosting - Advanced Options
         

  6. Select your billing term and review your selected items on the right pane, along with the summarized total cost.

    VDS hosting - Select billing term and order summary
     

  7. Click Continue to checkout.
  8. Do the following on the Checkout page:


    If you're new to Bluehost:

    1. Create your Bluehost account by using your email address or by connecting with your Google, Apple, or GitHub account — whichever you prefer!

      Checkout page - Create an account
       

    2. Select your preferred payment method: credit card, Google Pay, or PayPal. Enter your billing information.

      Checkout page - Billing Information
       

    If you have an account with us, you will see your Bluehost login details when you are logged into your Bluehost Portal. If you are not logged in, please click the Log In link.

    VDS hosting - Log in
     

  9. In the Shopping Cart, choose your billing term if you did not choose one on the previous page.

    VDS hosting - Shopping Cart
     

  10. Add a Promo code if you have one, and then click Submit Payment to complete your purchase.

After completing the purchase, your VDS hosting will begin provisioning. You can access and manage your new VDS hosting in the Hosting tab of your Bluehost Portal.

If you have questions about purchasing the Virtual Dedicated Server (VDS) hosting, please contact us for assistance.

How to Set Up Ghost

After installation completes:

  1. Log in to your Bluehost Portal.
  2. In the left-hand menu, click the Hosting tab.

    Self Managed VPS
     

  3. Locate the server you want to manage, then click View Details in the bottom-left corner to expand the section and access additional server information.

    Self Managed VPS
     

  4. Click the Reset Password.

    Self Managed VPS
     

  5. In the pop-up window, type your new root password, then click Reset Password again to confirm and save the changes.

    Self Managed VPS
     

  1. Connect to your VDS via SSH.
    Use your VDS IP and credentials with an SSH client, follow the prompts, and enter your root password when asked:
    ssh root@your_server_ip
    
    Welcome to Ubuntu 24.04.4 LTS (GNU/Linux 6.8.0-117-generic x86_64)
    ********************************************************************************
    
      Ghost Publishing Platform
      Ghost   : 6.42.0
      Nginx   : active
      MySQL   : active
      Node.js : v22.22.2
    
      Blog    : http://50.6.6.130/
      Admin   : http://50.6.6.130/ghost/   (create your account on first visit)
    
      SSH : port 22  |  HTTP : port 80  |  HTTPS : port 443 (UFW open; add SSL cert to activate)
      UFW enabled
    
      Credentials (generated on first boot):
        cat /root/.app_passwords
    
      Quick start:
        su - ghostapp                  # switch to the Ghost service user
        ghost status                   # check Ghost process status
        ghost restart                  # restart Ghost
        ghost update                   # update to latest version
    
      Service management:
        systemctl status nginx         # Nginx reverse proxy
        systemctl status mysql         # MySQL database
        tail -f /var/www/ghost/content/logs/http___*_production.log
    
      Enable HTTPS (post-deploy):
        1. Point your domain DNS to this server's IP
        2. Run the SSL setup script (uses acme.sh bundled with Ghost):
             bash /opt/ghost/setup-ssl.sh yourdomain.com
        3. Update Ghost's URL to match:
             runuser -l ghostapp -c "ghost config set --dir /var/www/ghost url 'https://yourdomain.com'"
        4. ghost restart --dir /var/www/ghost
    
      For full details refer: /root/README.md
    
    ********************************************************************************
      To delete this message of the day: rm -rf /etc/update-motd.d/99-ghost
    ********************************************************************************
        
  2. View your first-boot credentials and URLs:

    On first boot, cloud-init generates all credentials (database, URLs) in /root/.app_passwords. Run:

    cat /root/.app_passwords

    Example Output:

    
    ghost_db_user="ghostapp"
    ghost_db_pass="23682b410ee4c0cf3e0193170930c52d45c5466d560bea45"
    ghost_db_name="ghost_prod"
    ghost_blog_url="https://50.6.6.130/"
    ghost_admin_url="https://50.6.6.130/ghost/"
    
    # ghost_magic_link: NOT available yet.
    # Magic links can only be generated AFTER the Setup Wizard is completed
    # and an admin account exists. To mint one post-setup, run:
    #
    #   curl -s -X POST http://localhost:2368/ghost/api/admin/authentication/magic-link/ \
    #     -H "Content-Type: application/json" \
    #     -d '{"email":"","emailType":"signin"}'
    #
    # The link will be emailed to the admin address (if SMTP is configured)
    # or can be retrieved from the Ghost logs.
        
  3. Access the Ghost Admin panel in your browser and set up your admin user:
    http://<server-ip>/ghost/
    • Open this URL in your browser (replace <server-ip> with your actual server IP from the credentials file).
    • Follow the on-screen wizard to create your admin account. This is only needed once.
  4. If you want API access, use the Content API endpoint:
    curl http://<server-ip>/ghost/api/content/posts/?key=<content-api-key>
    • Get your Content API key from the Ghost Admin panel.
  5. Use the Ghost CLI for management (run as the ghostapp user):
    • Switch to the Ghost user:
      su - ghostapp
    • Show Ghost process status:
      ghost status
    • Restart Ghost:
      ghost restart
    • Update Ghost to latest version:
      ghost update
    • Tail the Ghost log:
      ghost log
    • List all Ghost installations:
      ghost ls
  6. Service management commands (run as root):
    • Ghost systemd unit:
      systemctl status 'ghost_*'
    • Nginx reverse proxy:
      systemctl status nginx
    • MySQL database:
      systemctl status mysql
    • Follow Ghost journal logs:
      journalctl -u 'ghost_*' -f
    • Follow general Ghost log file:
      tail -f /var/www/ghost/content/logs/ghost.log
    • Follow production HTTP log file:
      tail -f /var/www/ghost/content/logs/http___localhost_production.log
  7. Run the test suite (advanced):
    prove /root/app_test/main.t

Supporting Information and Sample Output

You can run cat /root/README.md to see more information and useful commands:

Example Output:

root@server-123456:~# cat /root/README.md
# Ghost

## Description

Ghost is an open-source publishing platform that helps you create and grow a content-driven website, blog, or paid newsletter.

It includes a clean writing editor, built-in SEO tools, membership management, and subscription features, making it a strong choice for independent writers, journalists, and creators who want full ownership of their audience.


## Services

| Service        | Port | Protocol | Notes                                 |
| -------------- | ---- | -------- | ------------------------------------- |
| SSH            | 22   | TCP      | UFW rate-limited                      |
| Ghost / Nginx  | 80   | TCP      | HTTP - Ghost proxied via Nginx        |
| Ghost internal | 2368 | TCP      | Internal only, not exposed externally |


## How-to-use

### First-boot credentials

On first boot `cloud-init` generates all passwords and writes them to
`/root/.app_passwords`. Read them with:

```bash
cat /root/.app_passwords
```

### Accessing Ghost

```bash
# Admin panel (set up your account on first visit)
http:///ghost/

# Ghost Content API
curl http:///ghost/api/content/posts/?key=
```

### Ghost CLI (SSH into server)

```bash
# Run as the ghostapp user
su - ghostapp

ghost status                    # show Ghost process status
ghost restart                   # restart Ghost
ghost update                    # update Ghost to latest version
ghost log                       # tail the Ghost log
ghost ls                        # list all Ghost installations
```

### Service management

```bash
systemctl status 'ghost_*'    # Ghost systemd unit
systemctl status  nginx                       # Nginx reverse proxy
systemctl status  mysql                       # MySQL database
journalctl -u 'ghost_*' -f   # follow Ghost journal
#tail -f /var/www/ghost/content/logs/ghost.log
tail -f /var/www/ghost/content/logs/http___localhost_production.log
 # follow file logs
```

### Running the test suite

```bash
prove /root/app_test/main.t
```


## Links

- Documentation: [https://ghost.org/docs/](https://ghost.org/docs/)
- Ghost CLI reference: [https://docs.ghost.org/ghost-cli](https://docs.ghost.org/ghost-cli)
- Ghost API reference: [https://docs.ghost.org/content-api](https://docs.ghost.org/content-api)
- Ghost GitHub: [https://github.com/TryGhost/Ghost](https://github.com/TryGhost/Ghost)

Summary

Learn how to purchase, configure, and manage a Bluehost Virtual Dedicated Server (VDS) with Ghost pre-installed. This guide walks you through selecting your hardware and server options, connecting via SSH to complete the initial Ghost Admin wizard and set up your Content API. Finally, you will learn how to use systemd and Ghost CLI commands to update your installation, restart services, and monitor Nginx and MySQL logs.