Author Archives: Jonathan

How I Use Syncthing (2025)

This is a brief (2025) overview of my Syncthing setup and the method to the madness when it comes to synchronizing data across multiple computers with some phones thrown in to the party. It is a little different from other solutions such as Google Drive or Dropbox as the data rests (is stored) locally on my NAS instead of the cloud.

Continue reading

How I Use Ansible (2025)

As I am nearing 100 commits on one of my Ansible repos, I figured that it would be a good time to share how I use Ansible to configure VPSes, VMs and LXCs at home and in the lab, and at work.

TL;DR: Configuration files and tasks are documented which is helpful for when I configure a service and not look at it for months at a time. Also, regularly committing changes to the roles and playbooks also serves as a log of what I did and sometimes why certain changes made sense at the time.

Continue reading

Unable to play audio on GNOME and Firefox

A while ago I was unable to play audio on GNOME and Firefox running on Arch Linux. When I tried to play a video on YouTube, the video would just pause. To get things immediately working was to toggle my audio devices from the onboard audio interface to an external audio interface and then back to the onboard audio interface. Another workaround for the time being was to toggle the device’s profile via pavucontrol.

This affected both my desktop and recently my T460s laptop. This issue popping up on my laptop was almost problematic as I was using laptop as a playback device for live sound. Luckily I was able to set the playback interface in Audacity and get through it for the time being.

At some point, something in the stack decided to go all in on PipeWire and I missed the memo. Per the ArchWiki, it turned out that I needed to install pipewire-pulse. What slowed things down was that I had to remove pulseaudio-bluetooth first which did not necessarily make sense to me at first since my desktop does not have Bluetooth capabilities.

TL;DR

If your Arch Linux stack has gone all in on PipeWire and media playback is not working as expected, there is a chance that pipewire-pulse needs to be installed, replacing pulseaudio. If you are blocked by pulseaudio-bluetooth, remove that first.

Containerizing my PHP application from the 2010s

I have a PHP application I started writing back in 2010 and worked on it until 2016. Years later, I want to containerize the application since that is what we do. Also, I want to revisit the application and make some improvements. When I first started the project, the development landscape was a lot different back then which also includes tooling.

Continue reading

Running a reverse proxy to serve services on the Internet

I have the occasional need to make a local/self-hosted service be reachable on the world wide web. However, I do not want to host them on my cloud VMs for reasons such as:

  • RAM: I am currently using the lowest-priced tier of VMs, which means that I get only 1 GB of RAM
  • Storage: For the similar reason as RAM, my disk is 25 GB
  • CPU: Having access to more than 1 core would be nice

Although the easy answer is to provision a bigger VM, I have a small Proxmox cluster that is more than capable of running VMs and (LXC) containers with access to more compute, RAM, and storage. Also, running them in separate instances is also great for separation.

While services like Tailscale Funnel or Cloudflare Tunnel exists, I wanted to roll my own as a learning exercise.

Continue reading