webdev & tech

Create a WireGuard® server on FreeBSD in no time

4 minute read Published:

How to create and configure a WireGuard® server on FreeBSD in less than 15 minutes (probably)
Since I started migrating most of the services I run from various TrueNAS jails/VMs to the Proxmox instance, I have also set up a WireGuard® server since I find it way easier to set up than OpenVPN for example, and my router’s implementation of WireGuard® is not the finest at this moment. Some earlier benchmarks that I’ve done on my home network, using two identical jails, one for OpenVPN and the other for WireGuard®, the WireGuard® instance could serve at least twice the bandwidth (tested using iperf from another external 1Gbit connection) while using less resources (relatively), and the peering was a bit better.

Easier DNS adblocking and management with AdGuardHome

2 minute read Published:

Setting up AdGuardHome in FreeBSD jails as a Pi-hole® replacement
A while ago I made a post regarding setting up a DNS adblocker on a FreeBSD jail by manually setting up dnsmasq and configuring the forwarding DNS servers, as well as the adlists in hosts1 file format. While it is still a (somewhat) valid instruction set, over the time I found myself in need of an all-in-one solution for handling the update of the adlists, as well as an easier way to whitelist and blocklist various domains.

It's good to be back

3 minute read Published:

Well, at least I think so. Getting back on track after two years
It’s been about three years since I wrote anything around here, or since I did any kind of work on my personal projects. A lot has happened since, and honestly it wasn’t the best of times. Two years ago I started experiencing some depressive episodes, some worse than I ever had, and slowly everything started going downhill. It affected my personal life, professional work, academia (not that I was too involved in that anyways), I was losing my grip pretty fast.

Testing the Waters With Emacs

3 minute read Published:

Starting a journey alongside Emacs
A few days ago I started to think about transitioning from Vim to GNU Emacs. As a Vim user for more than 6 years, considering the Holy Wars, I should’ve got skinned alive. I have tried Emacs in the past, but to no avail. I found the switch to be a little obtuse, as in Vim you’re used to working with multiple modes, one-key-commands, operators and motions, while Emacs is based on using (a lot of) key combinations and modifier keys to get the job done.


1 minute read Published:

Hold on a minute
I don't want to go outside
I don't want to face my pride
There's a limit to how long I can wait
To how long I can take before I start to show
How close I am to letting go of myself

Setting up a DNS adblocker on a FreeBSD jail

4 minute read Published:

Setting up a local DNS adblocker to get rid of ads, trackers, telemetry, and malware on a FreeBSD jail

We all heard about adblocking at DNS level, implemented by services like Pi-hole, or maybe just setting an external custom DNS server like Cloudflare's (fast & more private, not necessarily blocking requests), or Quad9.

These are all great options, but in my opinion they all lack a little bit of something, or provide too much. For example, external, custom DNS servers are good for a quick & easy setup, but you lack the ability of customizing the sources or manually whitelisting or blacklisting domains, and so on. On the other hand, a service like Pi-hole is great, it allows you to set up custom sources, you can whitelist and blacklist custom domains, you can set your own provider for the upstream DNS server, but it kinda requires a Debian-based distro in order to offer an easy setup via their own installer, in order to get the web ui.

Switching to Hugo From Ghost

3 minute read Published:

Switching to Hugo from Ghost - or how I moved from a JavaScript CMS to a Go static site generator


I am running this blog since the start of 2017, and while Hugo was something that I was really considering using, I ended up using Ghost, for its beautiful editor and other UI bling blings.

Ghost in the shell

At the time, Ghost was in his early minor-only version, and the set up was more or less manual. This meant that you needed to get an archive, install dependencies (Node.JS, npm, MySQL), set them up, and you’d end up with a working CMS. Updating it, though, was rough. Back up content, download archive again, install/update npm dependencies if needed, put content back, hope it’ll work. It worked, most of the times.