Source for
git clone git://
Log | Files | Refs | README | LICENSE

commit 43d27d59dfa41fee65700013d46941f3ba0819e2 (patch)
parent a691e9ddbd6ca87637074ebaddcc6bc80a43401c
Author: Alex Karle <>
Date:   Sun, 19 Jul 2020 16:09:20 -0400

thoughts: Add post on migrating to self-hosting

I've been wanting to write this for a long time. For one, I wanted to
set the record straight that no, I was _NOT_ using Fastmail's "files"
GUI anymore (I mean... it worked, but it was painful and not
particularly technically impressive!)

And it felt like a necessary followup to the ramblings on domains. Yes,
I settled on, and yes I've happily moved on to bigger and
better things (like self-hosted git repos! how awesome is that!)

I'd love to dive deeper into the topic, but I wanted to write at least
something so that my future self (AFAIK, the only reader) can look back
and say "wow! I remember those days"


Acontent/ | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcontent/ | 1+
2 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/content/ b/content/ @@ -0,0 +1,54 @@ +<!-- {% include=head %} --> + +### July 17, 2020: Migrating to a Self-Hosted Site + +If you look at the [first post][1] on this site, you'll see that this site +started as a series of static HTML files that I was, by hand, uploading to +Fastmail via their "files" GUI. + +Being a total nerd for automation, I was always on the lookout for an excuse to +migrate to my own server, where I could (over)engineer a pipeline to build my +static content and deploy it without ever leaving the terminal. + +That excuse presented itself in the form of needing to get a VPS to stand up my +hobby-project, [``][el]. If I was going to pay for a tiny VM, it was +a no-brainer to move my personal site to it too. + +This turned out to be a great learning experience -- getting hands on experience +with reverse proxies, DNS, and a variety of operating systems and webservers +(first hosted on Alpine Linux and migrated to OpenBSD). Additionally, I could +self-host git repos, which has long been a nerd-goal of mine :) + +I plan to write a lengthier post about the joys of self-hosting in the future, +but for now, I really just wanted to give a brief update on where I landed and +what the current stack is. + +I'm currently running (in no particular order): + +* **OS:** OpenBSD +* **Web server:** OpenBSD's `httpd(8)` + - Serves the `www.` static content + - Also serves [][git] +* **Reverse proxy:** OpenBSD's `relayd(8)` + - Used to send traffic between [``][el] (which uses a [Mojolicious][mojo] + web server as the backend) and `` based on URL +* **`www` content:** + - 100% static content + - No metrics, ads, or tracking + - Posts and pages written in markdown + - HTML generated with a pipeline of the original `` into a small + templating Perl script that I home-rolled +* **Git:** + - Public repos served with `git-daemon(1)` over the `git://` protocol + - Push access via the `ssh://` protocol + - static HTML of content generated via post-receive hook with [stagit][stagit] + +That's all for now! + +[1]: 12-19-19-a-new-hope.html +[el]: +[git]: +[stagit]: +[mojo]: + +<!-- {% include=post-tail %} --> diff --git a/content/ b/content/ @@ -4,6 +4,7 @@ <p style="color:grey">(Because I couldn't commit to calling it a blog)</p> +* [Jul. 17, 2020: Migrating to a Self-Hosted Site](07-19-20-self-hosted.html) * [Jul. 13, 2020: Black Lives Matter](07-13-20-blm.html) * [Mar. 24, 2020: What's in a (domain) name?](03-24-20-domain-name.html) * [Dec. 19, 2019: A New Hope](12-19-19-a-new-hope.html)