technicalDump Disqus for GiscusThis is an easy project. Sure it will probably take an hour or two to get your head around but don't put it off. The end result is great and means no ads or tracking are insidiously injected into your content anymore.
dockerConfiguring Traefik on Synology DSM7 using docker macvlansRecent changes in DSM7 have made guaranteeing being able to free up ports 80/443 for use by traefik rather difficult. Using a combination of several advanced techniques with docker networking we can circumvent this requirement once and for all with the macvlan driver.
carsVW Golf Mk4 R32 - Front Axles ReplacementI recently acquired a VW Golf Mk4 R32 from 2004 with 136k miles on the clock. All things considered it's in great shape but there are a few spots which need some love. This tag will document each project I undertake on the car throughout the many projects I have planned for it. Know that I'm new to this and very much a novice mechanic. Join me on the journey to knowing just enough to be dangerous. The front axle CV boots were torn on both the driver and passenger sides of the vehicle. The driv
technicalGitea Webhook ChangeA while back I wrote about deploying DroneCI and Gitea together to build projects automatically. A few months ago my CI broke and I've only just now gotten around to fixing it. In PR #17482 the Gitea project introduced a breaking change for security reasons. They introduced a new webhook.ALLOWED_HOST_LIST value which needed to be configured in order for webhooks to work. Diagnosis In Gitea open the repo in question and navigate to the repo specific settings -> webhooks. Next utilise the rec
technicalEliminating 3D Printer vibration noise transmissionIf you've been wanting to make your 3D printer quieter then these Sorbothane feet are the best way to do this. Using 6 of these little squash ball like rubber feet screwed into the bottom of a Prusa i3 MK3 the reduction in noise levels was truly *astonishing*. As you can see, I place my printer on a wooden butcher block countertop. Between the concrete paver and the countertop there are some anti vibration pads made of foam. The sound from the printer placed directly on the paver is much less
mkdocsMaking mkdocs tables look like Github markdown tablesAdding custom CSS to the mkdocs material theme is straightforward. Follow the docs and you can make tweaks to the CSS of the theme as you need. I'm a big fan of the way in which Githubs markdown rendering engine renders tables. Alternate coloured lines, reasonable padding for decent information density that is easy on the eyes and legible text. These are things I felt that the stock mkdocs material theme table "skin" failed on, so I spent a bit of time figuring out how to fix that today. Stoc
dockerMonolithic docker-compose files filtered with profilesThose of us who use docker-compose to manage our fleets of containers generally fall into two camps. Camp A prefers one monolithic docker-compose file per host using docker-compose <command> <service> to interact with each service. Camp B split up their configuration into multiple files with some kind of logical grouping which makes sense to them. This post will provide an overview of using profiles with docker-compose to address multiple services within a monolithic file. This aims to provide
dockerDeploying mkdocs using DroneCI and GiteaTodays post will discuss the steps required to deploy a fully self-hosted, automatically updating documentation stack using Gitea, mkdocs, nginx, traefik and Drone CI.
synologyAccess a Synology NAS with Traefik on DSM7With the recent update to DSM7 my Synology NAS has been transformed. It now runs a recent version of docker, I can use Ansible to manage docker-compose like I do with all my other systems and it now runs systemd! I use Traefik as my reverse proxy of choice, I understand it well and use it everywhere across about a dozen hosts - both at home and in the cloud. So it's logical to me to use Traefik to handle reverse proxying and TLS certification with the Synology box I have - the DS1621+. Pre-re
networkingPunching through tricky NAT with Nebula Mesh VPN and OPNSenseOPNsense rewrites all outgoing UDP traffic by default - here's how to make Nebula work whilst traversing NAT which does this.
technicalASRock Rack E3C246D4U - The Perfect Media Server Motherboard?The board only arrived today but I've gotten it working in a couple of hours exactly the way I wanted. It really is about as close to perfect as we're going to get in this space. Should you buy one? Yes, if you need it - you should!
technicalRoborock S5 Zoned Cleanup for Valetudo 2021.06Here's how to configure segment based cleanup for Valetudo based Robovacs.
technicalPiKVM - Control up to 4 servers simultaneously [archived]This is every homelabbers dream isn't it? Controlling multiple systems that don't have IPMI natively, remotely. Thanks to PiKVM, now we can.
makerBuilding my "Ultimate Mega Desk" (Part 2) - The Tinkerspace 1.0I needed a space where I could explode an entire computer, or 3d printer, or some other overly complex piece of equipment without getting in the way of the rest of the house.
technicalA USB Fan Controller that now works under LinuxRelying on the built-in motherboard headers on server grade motherboards to reliably control fans with Linux has been a crapshoot since forever. I'm pleased to report that last summer the Corsair Commander Pro received native Linux kernel driver support in the 5.9 release.
technicalWhy I stopped using Intel GVT-g on Proxmox with Quick SyncThe promise of GVT-g technically was very high. One box to rule them all. However in practice, it just didn't live up to expectations.
perfect-media-serverThe Perfect Media Server - 2020 EditionWe're back! A fresh new installment of Perfect Media Server ready for 2021 and we launch perfectmediaserver.com
bbqBrisket Smoking for n00bsI'm no expert but in the immortal words of Jeremy Clarkson, how hard can it be?
technicalPassthrough Intel iGPU with GVT-g to a VM and use Quick Sync with Plex in docker on ProxmoxPassing through an entire GPU is very useful for specific tasks but isn't a very efficient use of resources. Wouldn't it be nice if we could slice up 1 GPU and use it with multiple VMs at once?
drumsDrumming Advent Challenge!For some reason I woke up on December 1st and decided I'd try to play and record 25 songs in 25 days. So far we're 14 days in and I'm having a blast! You can find my covers on YouTube - each song was selected, learned and recorded in one day. Why? Well, why not? It seemed like a good way to encourage myself to play more and it's a chance for me to share my music taste with the world too. I hope you enjoy watching the covers as much as I have enjoyed playing them!
woodworkingBuilding a modified Paulk Smart WorkbenchShop projects are an opportunity to practice using new tools and techniques. After threatening for nearly 5 years, at last, I've finally built it.
technicalInstalling Valetudo on Xiaomi Roborock S5 Robovac - The easy way!In December I wrote a convoluted post on obtaining the token from a Xiaomi robovac. I'm pleased to detail a much simpler way in this post. We are going to install Valetudo which is a standalone binary that runs on rooted Vacuums of the Xiaomi ecosystem and aims to enable the user to operate the robot vacuum without any Cloud Connection whatsoever. Reset the Robovac to Factory Settings First, reset the Robovac to factory settings. * Press and hold the recharge button for 3-5 seconds - do no
traefikTraefik v2 and external services like Home Assistant and Blue IrisI recently made the switch from the nginx reverse proxy life to Traefik. I've written a couple of other posts recently about the process: * Running Unifi controller behind Traefik * Running InvoiceNinja behind Traefik Today's post is going to cover the final piece of the jigsaw I needed to solve before I could dump nginx, the file provider. In otherwords - how do I use Traefik to route traffic for services that aren't containers or published via another service discovery backend? In the case
technicalTraefik v2 and Unifi Controller in dockerDue to the fact that Unifi runs on port 8443 inside the container and expects TLS a couple of extra parameters were required. Here's the relevant docker-compose snippet.
technicalHow to setup InvoiceNinja v4 with Traefik v2 + nginx with TLSAs you may know I'm the sort of chap who runs everything I possibly can using containers. However, setting up a Self-Hosted InvoiceNinja with a reverse proxy - Traefik in this case - wasn't the easiest thing ever. Here's how I did it.