Throughout this series I've shown you how to set up a Matrix server and client using Synapse and Riot, and make it much more robust as a service by integrating a database server and a mechanism for making VoIP more reliable. Now we'll wrap it up by doing something neat, building a simple agent network in Huginn to post what I'm listening to into a Matrix Room. I have an account on libre.fm that my media players log to which we'll be using as our data source. Of course, this is only a demonstration of the basic technique, you …
Previously in this series I showed you how to migrate a Matrix server to use Postgres, a database server designed for busy workloads, such as those of a busy chat server. This time around I'll demonstrate how to integrate Synapse with a STUN/TURN server to make the voice and video conferencing features of the Matrix network more reliable. It's remarkably easy to do but it does take a little planning. Here's why I recommend doing this:
If you are reading this, chances are you're behind a NATting firewall, which means that your device doesn't have a publically routable IP …
In my last post about the Matrix network I covered how to set up a public Synapse server as well as a web-based client called Riot. In so doing I left out a part of the process for the sake of clarity (because it's a hefty procedure and there's no reason not to break it down into logical modules), which was using a database back-end that's designed for workloads above and beyond what SQLite was meant for. I'll be the first to tell you, I'm not a database professional, I don't know a whole lot about how to use or …
EDIT - 20200804 - Updated the Nginx stanzas because the newer versions of Certbot do all the work of setting up SSL/TLS support for you, including the most basic Nginx settings. If you have them there you'll run into trouble unless you delete them or comment them out. Also, Certbot centralizes all of the appropriate SSL configuration and hardening settings into a single includable file (/etc/letsencrypt/options-ssl-nginx.conf) for ease of maintenance.
A couple of years ago I spent some time trying to set up Matrix, a self-hosted instant messaging and chat system that works a little like Jabber, a …
It doesn't seem that long ago that I put together a Pi-Top and started tricking it out to use as a backup system. It was problematic in some important ways (the keyboard's a bit wonky), but most of all the supported respin of Raspbian for use with the Pi-Top was really, really slow and a bit fragile. While Windbringer was busy doing a full backup last week I took my Pi-Top for a spin while out and about, and to be blunt it was too bloody slow to use. At first I figured that the microSD card I was using …
Let's say that you have a bunch of servers that you admin en masse using Ansible. You have all of them listed and organized in your /etc/ansible/hosts file. Let's say that each server is running a system service (like my Systembot) running under systemd in --user mode. (Yes, I'm going to use my exocortex-halo/ repository for this, because I just worked out a good way to keep everything up to date and want to share the technique for everyone new to Ansible. Pay it forward, you know?) You want to use Ansible to update your copy of Systembot …
Last weekend I was running short of stuff to hack around on and lamented this fact on the Fediverse. I was summarily challenged to find a way to archive posts to the Fediverse in an open, easy to understand data format that was easy to index, and did not use any third party services (like IFTTT or Zapier). I thought about it a bit and came up with a reasonably simple solution that uses three Huginn agents to collect, process, and write out posts as individual JSON documents to the same box I run that part of my exocortex on …
EDIT - 20230422 - Fixed the command to increase the amount of space used on a new and bigger drive. Also updated some of the links because the official btrfs page has changed.
EDIT - 20230129 - Changed the btrfs replacement command a bit. Added a command block to force the SATA controller to rescan the devices available to it.
EDIT - 20211120 - Edited the page so that it makes more sense. The last couple of edits were out of sequence. Cleaned up a few things, too.
EDIT - 20211107 @ 1324 UTC-7 - Added how to monitor the drive replacement process.
In September of 2019 a conference called Please Try This At Home was held in Pittsburgh, PA. One of the talks was given by Dr. Mixael Laufer on the topic of how to acquire pharmaceuticals such as mifepristone (local mirror) and misoprostol (local mirror) for emergency personal use. I spoke with Dr. Laufer and the person who made this recording, and they both agreed to let me post it for download and archival as long as I sent them the links to it. So, here it is.
A common task that people using Huginn set up as their "Hello, world!" project is getting the daily weather report because it's practical, easy, and fairly well documented. However, the existing example is somewhat obsolete because it references the Weather Underground API that no longer exists, having been sunset at the end of 2018. Recently, the Weather Underground code in the Huginn Weather Agent was taken out because it's no longer usable. But, other options exist. The US National Weather Service has a free to use API that we can use with Huginn with a little extra work. Here's what …