Self Hosting Your Blog

There have been so many things cooking for the past year that choosing the topic for a first post is incredibly difficult.

But! I think the easiest option is to describe how we arrived at today's blogpost itself, what the setup looks like for replication purposes, and what the long-term purpose of this site will be.

This is a simple Ghost website, a well known opensource WordPress alternative, self hosted on a Raspberry Pi 4 sitting on my desk, running as a docker container.

The domain is managed by porkbun for its registrar, and was transferred to me by the lovely friend DJ. The nameservers are pointed to some Cloudflare provided options to allow management via Cloudflare.

Access to the site itself, along with TLS cert management and termination, is handled by a Cloudflare tunnel pointed at the Ghost process. The magic of these interactions are continually impressive, so much value provided for free that its turning me into a Cloudflare shill.... which leads me into some additional Cloudflare shilling!

Access to the Admin panel (/ghost* routes) is also managed by a Cloudflare product! Originally I was given quite the scare by a friend (Brong) about potential escalation of privilege, but after consulting my local Cloudflare expert (aolkin) I was learned in the ways of Cloudflare Access. Using that access to all of the admin paths is now blocked by 2FA using my personal email, which hopefully means we're safe πŸ˜„

The docker compose file for setting up ghost and its associated MySQL instance + the cloudflare tunnel will be uploaded to a github repo for sharing at some point in the near future, and I'll edit this to include it.

Until then, I hope you enjoyed this simple little writeup of the process of self hosting a blog! Next posts to hopefully be less specifically technical, more monthly, and to have a note on how I setup backups to R2 πŸ™

Peace,

Dayne

Subscribe to The Monthly Review

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]
Subscribe