㬋 @0x3b0b@bw3.dev

Some developer named Bob who wants to write in the Indieweb and the Fediverse, and therefore has a blog that supports both ActivityPub and Webmentions.

Matrix

@3b0b:bw3.dev

Keybase

3b0b

Twit

@0x3b0b

  • Notes
  • Articles
  • Followers 9
  • Following 10
  • Remote follow

Why a blog, why this blog, and why now?

Dec 11, 2022

I should write a blog.

I have been coming across this recommendation for years, with various reasons attached to it. I am not sure when I started thinking about it. While I'd played around with making a "family newsletter" as a kid and thought about having a personal website later on, I don't think I started considering having a blog - nor started coming across the suggestion - until sometime between 2005 and 2014. Yes, that's a wide range. But for about the past year it seems like reminders have been catching my attention more frequently.

Around the end of last year, Disroot, a provider I'd had an eye on for a while for various services, announced on their blog that they were starting to test a Pleroma instance. About a month or so later, I signed up for an account with them, partly because that was around when the future was becoming unclear for old grandfathered Google Apps for Domains accounts like mine. So from that point forward, the fact that I had that account available to me was in the back of my mind.

Later in the year, I came across this list of reasons to have a blog, some of which I'd seen before and others of which were new to me. Part of why I set that thread aside to revisit was because reason 17 reminded me that just the idea of tinkering with things and kicking tires was part of what appealed to me (whether it was self-hosting or just picking out services to use), and that I'd even seen "How I Set Up My Blog" suggested before as a good topic to blog about.

Then came Scott Hanselman's keynote at All Things Open 2022. (The whole talk is good, and the segment I linked into starts at about 3:15, but I wanted to link to it right before the part that really made me sit up and take notice.) This is a point he's been making for a long time (if native support has landed yet or you have a browser extension for fragmentations, that should take you straight to the CONSERVE YOUR KEYSTROKES section).

And recently, there's been all the recent consternation over on the Birdsite lately about its future under new ownership...with lots of people adding their Fediverse identities to their profiles, or laughing about the spectacle going on with Twitter staff, or scoffing at the people who are concerned and saying everything's going to be fine. It's less that I'm that worried about what happens to me if something happens to Twitter - it isn't a huge part of my life - and more that the surge in those sorts of tweets reminded me of my existing interests in the Fediverse and in Indieweb principles, which I'll get into later.

So now, with the holidays were approaching, vacation time to use up, I realized I ought to have the time to get into it, here while my interest in the topic is at a high point. So I decided to start writing first, and decide how I was going to post about it - and what I was going to do - after I had some momentum. No promises whether that momentum lasts as far as finishing the process, though.

Choices, goals, philosophies, and convenience

Scott has talked before about walled gardens, and I have been a fan of the #IndieWeb concept of owning your data for...possibly longer than I've known about the Indieweb itself. The idea of POSSE (Publish on your Own Site, Syndicate Elsewhere) and of the canonical source for what I post living at my own domain appeals to me. There's also some (less) appeal to managing the hosting myself rather than relying on a blogging service, and some (even less, to the point of I'm definitely not doing this for now) appeal to hosting on my own hardware. However, going the other direction, I'm not entirely opposed to considering PESOS (Publish Elsewhere, Syndicate on your Own Site) if It would make things enough easier, and I'm not even entirely sure how much effort I'm willing to put into microformats (so some of what I've done may not end up being long-lived).

I definitely wanted to connect with the #Fediverse/#ActivityPub, whether by using a Fediverse-connected solution to begin with or by syndicating, and as long as I'm syndicating I figure I'd also target Twitter, and keep using that in the limited way I already do (although I might try for the Indieweb approach of posting even my Twitter interactions to my own site first).

With those preferences in mind, I came up with a tentative short list of options, and started investigating.

I wound up taking a detour along the way because I decided I also wanted to set up my own #Matrix homeserver, and after discovering this guide - which in turn refers to this guide, which I subsequently saw mentioned in several places as the easiest way to get started - I decided to do that first, and went and logged into the Oracle Cloud account I already had sitting around unused.

I followed the guide from Gitlab almost exactly, except I cranked the specs on the shape up one notch because I planned to put the blog on the same one; I went back later and turned monitoring back on instead of removing the agent; I didn't enable the element web client; and I discovered that the playbook autodetects architecture now so I didn't need the matrix_architecture line.

Once I was connected with my new matrix account and hooked into the bridged Indieweb channels, it was time for the blog part. I had looked at several different options for that, including https://micro.blog, https://pine.blog, https://https://withknown.com, and https://i.haza.website - up until this point I hadn't settled with certainty on self-hosting. Micro.blog, write.as, or i.haza.website combined with https://brid.gy would have been top picks - and still might be, someday - if I'd decided that hosting it for myself was too much effort, but having decided I wanted Matrix at my own domain and that I was too stubborn to pay for someone else to maintain my homeserver, I decided for now that I should go self-hosted all the way, and settled on (as you can see in the footer, if you're reading this on my website) https://microblog.pub, because it's specifically designed to work as a combination Indieweb and Fediverse citizen, so I don't have to try to tack that on top of it. Woohoo!

...It took me a little to get that working, and then to get it looking how I wanted (I customized the colors - hopefully not so that I'm the only one who can read it - and a little of the CSS). But I was quite pleased that I was able to do all the customization I wanted so far (except for one trick I thought would work but doesn't yet; I may come back to that in a future post) with just five file customizations, all of which are either part of what the instructions said to modify or extra files that sit beside everything else or both:

  • microblog.pub's profile.toml, which it creates for you during setup and I then modified in several ways per the documentation
  • microblog.pub's _theme.css, where I made my styling changes
  • the Matrix ansible playbook's Hosts file, also set up as per the instructions
  • the playbook's vars.yaml, which I set up mostly according to the guide...but this is where I went farthest off the trail
  • and a docker-compose.override.yml, which I'll get to momentarily.

See, here's what happened. I got partway into setting up the Matrix homeserver, and realized that it expects you either not to host anything else at the root domain, or to host something pretty simple at the root domain, or to have whatever else you've set up at the root domain keep up with certificates and host the .well-known files Matrix needs. Unless you're using DNS entries for that, which is considered more advanced - I'm guessing that's actually partly because it involves DNS entries, but from my perspective it's because it seems to make dealing with the certificates more complicated. But one thing work noting is that one of the suggested ways of handling things if you wanted to host something more complex than a static site was to have your existing webserver reverse-proxy to the one the playbook sets up.

So while I was pondering that, I went and looked at the installation instructions for microblog.pub...which include instructions for running it in docker, and which expect you to put a reverse proxy in front of it.

At which point I formulated my plan: I would turn half the instructions back to front, tell the playbook to host the root domain but not to create the simple homepage for it (which also means I can rely on the playbook's letsencypt support), and use the matrix_nginx_proxy_proxy_domain_additional_server_configuration_blocks support (ain't that a mouthful? I found out it exists because the documentation mentioned matrix_nginx_proxy_proxy_http_additional_server_configuration_blocks and I came across the slightly different one while digging in the templates) to add the location block for the blog, telling it the name of the blog container as the proxy to pass to.

And it didn't work.

I figured out pretty quickly that this was because I'd forgotten to attach the blog to the same docker network so the reverse proxy could see it, so I did that.

Worked like a charm, once I figured out the right syntax - I broke it at first because I didn't look up how to do the necessary kind of entry in YAML. In fact, I broke several things along the way because of typos and syntax errors due to working with a "try this first, if it doesn't work look up why" approach.

Then I realized that whenever I made changes and restarted either component the microblog container wasn't being told to attach itself to the right docker network again; hence the docker-compose.override.yml, which does that and nothing else.

I'm still trying to figure out exactly how I want this to fit together with everything else. I don't think I want to syndicate everything to my other Fediverse account when my blog already acts as one, but I might "boost"/repost. (I do have each profile indicating that the other is also me. There is actually an "alias" concept that appears to be supported, but I'm leery of using that because everything I've seen about it is as part of the instructions for moving to a different account.) I may or may not post links to my content on Twitter. I may try to use brid.gy to backfeed Twitter responses - I don't think that makes sense to do for anything else, unless I've misunderstood something, because the site already supports both ActivityPub and Webmentions. In fact, I got followed and shared by someone on http://infosec.exchange within minutes of writing and sharing my introduction post!

...And hopefully, even if it doesn't end up being much, I'll keep writing, and get better at it.

However much people who get emails from me wish I would stop.

Anyhow, now that I've gotten this to a point I'm happy with, it's time to set it aside for now and get started on #AdventOfCode and #KringleCon.

Homepage microblogpub's microblog
  • permalink
  • interact from your instance
  • 1 like
  • 1 share
Likes
@jlgatewood@mastodon.cloud
Shares
@0x3b0b@fe.disroot.org
Powered by microblog.pub 2.0.0+dev and the ActivityPub protocol. Admin.