Wavelog
Self-hosted logbook for amateur radio operators
Alternative to: qrz logbook, club log, hamrs
Wavelog is a self-hosted PHP application that lets radio amateurs log their contacts (QSOs) from any web browser with an internet connection. An enhanced fork of Cloudlog, it supports rig control data transfer via the companion WavelogGate tool, multi-language translations, and club/multi-operator logging. It's built with CodeIgniter and Bootstrap and runs on a classic PHP/MySQL stack.
Wavelog Docker Compose example
Self-host Wavelog on your own server, homelab, or VPS starting from this Docker Compose example.
It runs Wavelog in Docker containers using the official ghcr.io/wavelog/wavelog:latest, mariadb:latest images, with persistent volumes and automatic restarts preconfigured.
Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.
services:
wavelog:
image: ghcr.io/wavelog/wavelog:latest
depends_on:
db:
condition: service_healthy
restart: unless-stopped
environment:
# Marks the runtime as a Docker install; Wavelog reads its config from application/config/docker.
CI_ENV: "docker"
volumes:
- config:/var/www/html/application/config/docker
- uploads:/var/www/html/uploads
- userdata:/var/www/html/userdata
db:
image: mariadb:latest
restart: unless-stopped
environment:
# Generate a random root password on first init; the app connects with the dedicated user below.
MARIADB_RANDOM_ROOT_PASSWORD: "yes"
# Name of the database Wavelog stores its logbook in. Enter this in the first-run web installer.
MARIADB_DATABASE: "wavelog"
# Database user Wavelog connects as. Enter this in the first-run web installer.
MARIADB_USER: "wavelog"
# Password for the database user. Change this and enter the same value in the web installer.
MARIADB_PASSWORD: "wavelog"
volumes:
- dbdata:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
volumes:
config:
uploads:
userdata:
dbdata: Prefer a managed setup? WinterFlow installs, configures, and updates Wavelog for you using this same Docker Compose configuration.