QSO Logging

In the past my logbook was a patchwork: a paper sheet on the desk, an ADIF file on the laptop, an export from one program that a second program refused to import cleanly. It worked, but it was never in one place, and it was never with me when I actually needed it.

What I wanted for my new station was a single log that lives on my own hardware, that I can reach from the shack, from the laptop, and from a field somewhere with only a phone in my pocket. That turned into a small project of its own, and the result has been running happily now.

Wavelog

Wavelog

The logbook I chose is Wavelog, an open-source, self-hosted web logbook. It is a PHP application backed by a MariaDB database, and it does all the things I used to spread across three tools: ADIF import and export, LoTW and eQSL upload, QSL card tracking, award progress, an online callbook lookup, and a map of worked grids. Because it is a web app, the "client" is just a browser, so every device I own sees exactly the same log with no syncing to think about.

Where it runs

Wavelog runs in a Docker container on my home server. That machine is a small, low-power PC tucked away at home that does nothing but run containers — this logbook, a handful of other services, the usual home-lab clutter. Linux is a hobby in its own right for me, quite apart from radio, and this is where the two overlap.

I also rent a cloud server at Hetzner. That one faces the public internet and, among other things, hosts the blog you are reading right now. Both machines run Arch Linux, which keeps the mental model simple: same package manager, same init system, same everything, whether I am logged into the box in the spare room or the one in a data centre.

One VPN to tie it together

All of it sits on a single WireGuard network: the home server, the Hetzner server, my desktop, my phone. The Hetzner machine has a static public address, which makes it a convenient fixed point for the other peers to find each other through.

The practical upshot is that "my server" is reachable from anywhere I am, not just from the home network. The home server never has to expose a port to the internet; if a device is on the VPN, it can talk to Wavelog, and if it is not, there is nothing to see.

Logging in the field

Wavelog has an Android app, and this is where the VPN really pays off. I bring up WireGuard on the phone, open the app, and I am logging into the same database that sits at home — live, from a hilltop or a car park, with no offline file to reconcile later. By the time I am home the contacts are already in the log, already uploaded, already on the map.

Automatic rig data with WavelogGate

At the desk I run WavelogGate, a small bridge that reads the radio's CAT data and feeds it into Wavelog's real-time API. In my case the CAT link is the same network connection to the transceiver that I use with wfview for remote operating, so WavelogGate can pick up frequency and mode over the network without anything extra plugged in.

The effect is that when I start a new QSO, the band, frequency and mode are already filled in from whatever the radio is actually doing. I type the callsign, add a note if there is one, and save. It removes exactly the fields I used to get wrong when logging in a hurry.

Backups

A logbook you cannot restore is not really a logbook. A cron job on the home server dumps the MariaDB database on a schedule, keeps a rotation of recent copies, and pushes one off the machine so there is a copy that does not depend on that little PC still being alive. Having a second server already on the VPN makes the off-site copy almost free.

Where this leaves me

The whole thing is unremarkable to use, which is the point. Every contact lands in one database on hardware I control, with the radio filling in the details it knows and a cron job quietly making sure none of it can vanish.

Comments

← Back to overview

Who am I?