Skip to content

Deploying Wavelog

Introduction

Wavelog is a self-hosted web-based amateur radio logging application designed for ham radio operators. It provides comprehensive logging capabilities, award tracking, and integrations with popular amateur radio services and software. Wavelog is a modern fork of Cloudlog, offering enhanced features and active development.

Built with PHP and supporting MySQL/MariaDB databases, Wavelog delivers a responsive web interface that works on desktop and mobile devices, allowing you to log contacts from anywhere.

Key features of Wavelog include:

  • Contact Logging: Log QSOs with comprehensive data fields including band, mode, frequency, RST, and notes
  • Award Tracking: Track progress for DXCC, WAS, WAZ, SOTA, POTA, IOTA, and other awards
  • QSL Management: Track QSL cards sent/received, LoTW, eQSL, and QRZ.com confirmations
  • CAT Integration: Connect to your radio via Hamlib for automatic frequency and mode logging
  • Digital Mode Integration: Support for WSJT-X, JTDX, and other digital mode software
  • Clublog/LoTW/eQSL: Automatic uploads to popular confirmation services
  • QRZ.com Integration: Lookup callsign information and upload logs
  • Statistics: Comprehensive statistics and charts for your radio activity
  • Multi-Station Support: Manage multiple callsigns and station locations
  • Contest Logging: Basic contest logging capabilities
  • ADIF Import/Export: Full ADIF file support for data exchange
  • API Access: REST API for integration with other software

This guide walks you through deploying Wavelog on Klutch.sh using Docker with persistent storage for your radio logs.

Prerequisites

Before deploying Wavelog on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your Wavelog configuration
  • A MySQL or MariaDB database (managed or deployed separately)
  • Basic familiarity with Docker concepts
  • Your amateur radio callsign and license information

Repository Structure

Create a GitHub repository with the following structure:

wavelog-deploy/
├── Dockerfile
└── .dockerignore

Dockerfile

Create a Dockerfile in your repository:

FROM ghcr.io/wavelog/wavelog:latest
# Wavelog web interface
EXPOSE 80
# The base image handles the entrypoint

Environment Variables

VariableRequiredDefaultDescription
DB_HOSTYes-MySQL/MariaDB host
DB_NAMEYes-Database name
DB_USERYes-Database username
DB_PASSWORDYes-Database password
APP_URLYes-Public URL of your Wavelog instance
TZNoUTCTimezone

Deployment on Klutch.sh

  1. Push your Dockerfile to your GitHub repository.
  2. Log in to Klutch.sh and create a new project.
  3. Create a new app within your project and connect your GitHub repository containing the Dockerfile.
  4. Configure the deployment settings: - Select **HTTP** as the traffic type - Set the internal port to **80**
  5. Add environment variables: - `DB_HOST`: Your database host - `DB_NAME`: Your database name - `DB_USER`: Your database username - `DB_PASSWORD`: Your database password (mark as sensitive) - `APP_URL`: Your app URL (e.g., `https://your-app.klutch.sh`) - `TZ`: Your timezone
  6. Attach a persistent volume: - Mount path: `/var/www/html/backup` - Recommended size: 5 GB - Purpose: Backup files and ADIF exports
  7. Click **Deploy** and wait for the build to complete.
  8. Access your Wavelog instance at the provided URL and complete the setup wizard.

Post-Deployment Configuration

After deployment:

  1. Complete the initial setup wizard
  2. Add your station profile(s) with callsign and location
  3. Configure QSL preferences (LoTW, eQSL, Clublog)
  4. Set up any CAT control or digital mode integrations
  5. Import existing logs via ADIF if migrating from another logger

Troubleshooting

Database Connection Failed

Verify your database credentials and ensure the MySQL/MariaDB server is accessible from Klutch.sh.

LoTW/eQSL Uploads Failing

Check that your credentials are correctly configured in the settings. Some services may require API keys or certificates.

Additional Resources