MCPSERV.CLUB
Wavelog

Wavelog

Self-Hosted

Self-hosted logbook for amateur radio enthusiasts

Active(95)
335stars
0views
Updated 9 days ago

Overview

Discover what makes Wavelog powerful

Wavelog is a self‑hosted PHP web application designed for amateur radio operators to log contacts (QSOs) from any location. At its core, it functions as a REST‑style web service that accepts QSO data via HTTP requests and persists it in a relational database, while also exposing a rich UI for browsing, editing, and exporting logs. The application is an enhanced fork of Cloudlog, adding new features such as improved data validation, better UI polish, and a more modular architecture that eases future extension.

Runtime

Web Framework

Database

Frontend

Overview

Wavelog is a self‑hosted PHP web application designed for amateur radio operators to log contacts (QSOs) from any location. At its core, it functions as a REST‑style web service that accepts QSO data via HTTP requests and persists it in a relational database, while also exposing a rich UI for browsing, editing, and exporting logs. The application is an enhanced fork of Cloudlog, adding new features such as improved data validation, better UI polish, and a more modular architecture that eases future extension.

Technical Stack

  • Runtime: PHP 8.0–8.2 (experimental support for 8.4) running under Apache or Nginx.
  • Web Framework: A custom MVC pattern built on top of the Slim micro‑framework for routing, coupled with Twig for templating. The codebase follows PSR‑4 autoloading and uses Composer for dependency management.
  • Database: MySQL 5.7+ or MariaDB 10.1+. All schema changes are tracked with Doctrine Migrations, allowing developers to roll forward or back database states seamlessly.
  • Frontend: Bootstrap 5 for responsive layout, jQuery and Alpine.js for lightweight interactivity. Charts are rendered with Chart.js.
  • Containerization: A ready‑to‑run Docker image is available, exposing the web server on port 80 and a MariaDB container via docker‑compose. The image is based on Alpine PHP, ensuring a minimal footprint.

Core Capabilities

  • QSO Import/Export: Supports DXCluster, Logbook of the World (LoTW) XML import, and the ADIF format for bulk data transfer.
  • Real‑time CAT Integration: The optional WavelogGate component streams rig data (frequency, mode, power) to the web UI via WebSockets, enabling instant QSO creation.
  • REST API: Exposes endpoints for CRUD operations on contacts, stations, and logs. Authentication is handled via API tokens or session cookies.
  • Webhooks: Developers can register custom URLs to be notified on new QSO events, facilitating integration with external services (e.g., Discord bots, telemetry dashboards).
  • Extensibility: The application implements a plugin hook system; developers can register new modules that listen to lifecycle events (e.g., onQSOCreate) and inject UI components.

Deployment & Infrastructure

  • Self‑Hosting: Requires a Linux (or Windows with WSL) server, PHP runtime, and a MySQL/MariaDB instance. Apache or Nginx can serve the application; HTTPS is recommended via Let’s Encrypt.
  • Scalability: The stateless nature of the PHP code allows horizontal scaling behind a load balancer. Database replication can be used for read‑heavy workloads, while write operations remain single‑writer to avoid conflicts.
  • Containerization: Docker images simplify deployment and CI pipelines. The docker-compose.yml file includes separate services for the web app, MariaDB, and optional Redis cache (for session handling).

Integration & Extensibility

  • Plugin API: Hooks are defined in src/Events and can be subscribed to by creating a service provider. Plugins are discovered automatically via Composer autoloading.
  • Webhooks & APIs: The REST API follows JSON‑API conventions, making it straightforward to consume from mobile apps or other web services. Custom webhook endpoints can be added by editing the routing configuration.
  • Custom Fields: The database schema allows adding arbitrary columns to the qsos table; migrations can be generated with Doctrine tools, and the UI will automatically expose them in forms.

Developer Experience

  • Configuration: All environment variables are defined in a .env file, with sensible defaults for development. The configuration system supports multiple environments (dev, staging, prod) out of the box.
  • Documentation: The project maintains a comprehensive Wiki that covers installation, API usage, plugin development, and troubleshooting. Inline PHPDoc comments are available for IDE autocomplete.
  • Community: A vibrant GitHub community actively reviews PRs and manages issues. The project’s license (MIT) allows unrestricted commercial use, encouraging adoption in private networks.

Use Cases

  1. Personal Logbook – Hobbyists running a local web server to log daily contacts and export them for ARRL contests.
  2. Club Operations – Amateur radio clubs hosting a shared logbook accessible to members via the intranet, with automated LoTW verification.
  3. Event Management – Operators at field events (e.g., 4‑day contests) can deploy a Docker container on a portable server and sync QSOs in real time using WavelogGate.
  4. Educational Platforms – Radio clubs at universities can integrate the API with learning management systems to auto‑grade QSO accuracy for coursework.

Advantages

  • Open Source & Free – MIT license eliminates licensing costs and allows full source inspection.
  • Performance – PHP 8’s JIT improves response times for large log imports; database indexing on call and datetime fields keeps query latency low.
  • Flexibility – The plugin architecture means developers can add new data fields or integrate with external services without touching core code.
  • Security – Built‑in CSRF protection, input validation, and optional HTTPS support make it safe for public deployment.
  • Community & Support – Active issue tracker and frequent releases ensure timely bug fixes and feature updates.

Wavelog offers a robust, extensible platform for amateur radio logging that balances developer friendliness with production‑ready performance. Whether you’re running a small club site or a large event server, the

Open SourceReady to get started?

Join the community and start self-hosting Wavelog today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
335
Technical Specs
Pricing
Open Source
Database
MySQL
Docker
Official
Supported OS
LinuxWindowsDocker
Author
wavelog
wavelog
Last Updated
9 days ago