DEV Community

Cover image for A Ghost blog for $0
Miguel Piedrafita
Miguel Piedrafita

Posted on • Originally published at miguelpiedrafita.com on

7 3

A Ghost blog for $0

You may have noticed my blog is running Ghost, one of the best blog platforms in the world. But what if I told you you can get your own Ghost blog for free.

Hosting

There are three main hosting options for Ghost: you can either use Ghost's own hosting, use a DigitalOcean droplet or use Heroku. For this blog, I decided to go with the cheapest option: Heroku.

Deploy Ghost to Heroku

Deploying Ghost to Heroku is very simple: Just click the button above, fill in the name and URL and click Deploy. Here's a quick GIF to illustrate the process:

A Ghost blog with zero budget
Heroku walkthrough

Configuring your blog

After your app finishes its first deploy (should take around two minutes), you'll be redirected to your blog's admin, where you'll be guided on the rest of the setup (naming the blog and creating an admin user). At this point, we already have our blog up and running, but with a limitation: we're using a herokuapp.com subdomain. Let's see how we can fix it.

Custom Domain

Heroku offers free custom domains once you verify your account. This means that if you add a credit card to your heroku account, you'll be able to configure a custom domain for your blog. Fortunately, the entire process is free and you won't be billed, but you'll have to take care of what you do from now on.

Anyways, access your blog from your Heroku dashboard and go to the settings tab. If you scroll down, you'll find a section called Domains and Certificates, where you can add a custom domain. After pointing your DNS to Heroku, you'll also have to update your PUBLIC_URL variable. To do this, scroll back up and click on the Reveal Config Vars button, then find the PUBLIC_URL variable and change it to point to your new domain. After you've done this, restart all your dynos. Here's another GIF:

A Ghost blog with zero budget
Another Heroku walkthrough

Keeping your dyno up

In the Heroku free plan, dynos (the programs that serve your blog) are disabled when there are no requests to your blog, and enabled again on new requests. A commonly known hack around this would be to use some uptime checker service that pings your site every 10 minutes to keep it up.

Conclusion

Before using this approach, check if Ghost's official hosting or DigitalOcean works better for you. After all, every setup is different.


Liked this article? Consider helping me achieve my dream :)

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (3)

Collapse
 
truongoi profile image
Truong Nguyen

Heroku is no longer allow you to add SSL certificate to your custom domain on Free plan. I've tried so many ways to add using Let's Encrypt and sslforfree.com but Heroku CLI said only allows when upgrading to Hobby or Pro plans.

Once I setup domain and DNS, I switched to Heroku Hobby (paid) plan and it went on smoothly with Auto Certificate Managerment.

So is your blog still running on Heroku free plan with SSL? If so, can you share how to set it up? Thanks.

Collapse
 
idblogger profile image
Farhamdani

thanks

Collapse
 
bayuangora profile image
Bayu Angora

Great. Do you have instant deploy button to Netlify?

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay