Lokaler, webbasierter Contest-Logger für UKW-Contests (DARC / IARU Region 1) Basiert auf DD3KU WinContest · ein Server im LAN, loggen von jedem Browser Integrierter ON4KST-Chat (je Station, DMs, Rundruf) · Aircraft-Scatter wie AirScout direkt auf der Karte · Operator-Fenster für den zweiten Monitor
Download · Live-Demo · Wiki · Installation · Server-Deploy · Tastenkürzel · Fehlersuche
Ein kleiner Server (portable Datei, kein Python nötig) ist der zentrale Speicher für euren Contest. Alle am Standort loggen im Browser, jeder nur mit einem Nickname. Mehrere Stationen (2 m, 70 cm, 23 cm …) laufen parallel, jede mit eigenem Log, eigener laufender Nummer und eigenem ON4KST-Chat. Punkte, Dupes und Statistik rechnet der Server so wie WinContest, verifiziert gegen echte Logs.
| Loggen | Rufzeichen, RST, Nummern und/oder DOK (Austausch je Contest wählbar, z. B. Köln-Aachen-Contest), Locator, Kommentar; Vorschläge aus der Stationsdatenbank und allen eigenen Logs; Locator, km und Grad automatisch; Dupe-Warnung; Plausibilitätsprüfung Rufzeichen ↔ Locator; Bearbeiten und Löschen; Zeit in UTC |
| Stationen und Contests | Globale Stationen mit Stammdaten (Passwort, KST-Zugang, EDI-Angaben), Contest anlegen mit Stationsauswahl, Operatoren schalten per Passwort frei |
| Chat, ON4KST, DM | Team-Chat je Contest (wer ist online), KST-Chat je Station (Nutzerliste mit km und Richtung, Textbausteine, „an mich“-Markierung); ein Klick auf eine Station übernimmt Rufzeichen und Locator in den Logger; Direktnachrichten wie ein Messenger, Rundruf an noch nicht gearbeitete Stationen im Umkreis |
| Operator-Fenster | Zweiter Monitor: live Rufzeichen, Nummern, RST, Locator, Entfernung/Richtung, Dupe-Warnung, Hinweis vom Logger, Statistik, Karte, letzte QSOs |
| Karte | Richtungspfeil zum Partner, alle QSOs, Großfelder mit Rufzeichen, Offline-Kachelcache mit Vorab-Laden; Flugzeug-Scatter (ADS-B, wie AirScout): Zone gemeinsamer Sichtbarkeit, Flugzeuge im Korridor, Mindesthöhe und Höhenreserve, vorhergesagte Kreuzungszeit und -punkt, Größenklasse, Höhenprofil des Pfads; Klick in der Liste springt zum Flugzeug |
| Statistik | Contest gesamt und je Station: Stundenverlauf, Entfernungs- und Richtungsverteilung, Großfelder, Länder, ODX, Großanzeige |
| Import | WinContest-Ordner (.mdb ohne Zusatzsoftware, .txt, .EXP), EDI, ADIF, Ergebnislisten (DARC/IARU), DARC-Contest-Hub direkt |
| Export / Abgabe | EDI (REG1TEST) mit Pflicht-Log-Prüfung und Online-Abgleich (HamQTH/QRZ), Cabrillo, ADIF, CSV, alle Bänder als ZIP; Wertung je Contest (km oder Punkte je QSO, Multiplikator Großfelder/DOKs) |
| Stationsdatenbank | Rufzeichen, Locator, Name, DOK; wächst mit jedem QSO, der KST-Nutzerliste, Importen (DARC-Hub mit DOK) und Online-Abfragen; Export und Abgleich mit dem Repo |
| CAT / CW | Frequenz vom Funkgerät (Hamlib, flrig), Sprachbausteine F2–F8 als CW |
| Betrieb | Backups auf dem Server (crash-sicher), Aktionsprotokoll, Update-Prüfung mit Selbst-Aktualisierung, „Was ist neu“, mehrsprachig, hell/dunkel, Hilfe mit F1 |
Ohne Installation ausprobieren: beamlogdemo.lhprinting.de – eine öffentliche BeamLog-Instanz mit
Beispiel-Contest zum Herumklicken (Loggen, Karte, Statistik, Operator-Fenster). Alles, was du dort einträgst, ist für
andere Besucher sichtbar und wird täglich zurückgesetzt – bitte keine echten Logs oder Passwörter verwenden.
Admin- und Stations-Passwort: demo. Eine eigene Demo-Instanz einrichten: Wiki › Server-Deploy.
- ZIP für dein System laden und entpacken.
BeamLog.exe(Windows) bzw../BeamLog(Linux/macOS) starten. Der Browser öffnethttp://localhost:8000; andere Rechner nutzen die beim Start angezeigte LAN-Adresse oder den QR-Code (📱).- Admin-Passwort festlegen, unter Verwaltung die Stationen anlegen und den ersten Contest erstellen.
- Im Reiter Loggen Station wählen und loslegen. F1 zeigt alle Tastenkürzel.
Umstieg von ContestLogger 0.9.x: BeamLog hieß bis Version 0.9 „ContestLogger“. Version 1.0 einmal von Hand laden und entpacken – liegt der neue Ordner
BeamLogneben dem alten OrdnerContestLogger(oder darin), übernimmt BeamLog beim ersten Start automatisch eine Kopie vondata/undcontestlogger.env(die Datenbank heißt danachbeamlog.db, die Einstellungen.env). Ab 1.0 aktualisiert sich BeamLog wieder selbst; alte Links auf das GitHub-Projekt leiten weiter.
Dauerhafte Einstellungen (Port, Datenbank, Adresse für den QR-Code …) stehen in .env neben dem Programm (Vorlage .env.example).
Als Dienst auf einem Debian-/Ubuntu-Server oder Raspberry Pi (systemd, nginx auf Port 80, tägliches Backup) – im entpackten Linux-ZIP:
sudo bash deploy/install.sh --url http://contest.local/ # Erstinstallation
sudo bash deploy/install.sh --update # später: neue Version einspielenTeile lassen sich weglassen, auch mehrere gleichzeitig: --no-nginx (eigener Reverse-Proxy oder PORT=80 direkt),
--no-service (ohne systemd-Dienst), --no-backup (ohne Backup-Cron); die Wahl wird für spätere Updates gemerkt,
--with-… schaltet wieder ein, --help zeigt alles.
Mit Dienst kopiert das Skript BeamLog nach /opt/beamlog (Einstellungen in /opt/beamlog/.env) und sagt das
deutlich. Ohne Dienst wird nichts kopiert, BeamLog bleibt im aktuellen Ordner: --deps-only installiert nur Python & Co.,
--here bleibt im Ordner und richtet trotzdem Dienst, nginx und Backup ein. Anleitung im
Wiki › Server-Deploy (dort auch die öffentliche Demo-Instanz mit DEMO=1).
Aus dem Quellcode (Python 3.11+): ./start.sh (Linux/macOS/Raspberry Pi) bzw. start.bat (Windows) – legt beim ersten Mal die virtuelle Umgebung .venv an, installiert die Pakete und hält sie nach git pull aktuell. Danach startet auch python run.py (nimmt .venv automatisch).

Statistik mit Karte, Großfeldern und Diagrammen

Verwaltung: Contests & Stationen (weitere Bereiche: Stationsdatenbank & Import, Server & Updates, Einstellungen)
Das Wiki erklärt alles ausführlich: Installation, Server-Deploy, Erste Schritte, Loggen, Tastenkürzel, Chat/KST/DM, Operator-Fenster, Statistik, Import/Export, Log-Prüfung, Stationsdatenbank, Flugzeug-Scatter, CAT/CW, Verwaltung, Updates, Fehlersuche.
Python 3.11, FastAPI + uvicorn, SQLite (WAL, synchron), WebSockets, Vanilla JS/HTML/CSS, Leaflet (lokal gebündelt), PyInstaller-Builds über GitHub Actions. Tests: python -m pytest -q. Portable Pakete: python build_tools/build.py.
Datenquellen: Flugzeuge von adsb.fi (nicht-kommerziell) oder einem eigenen ADS-B-Empfänger; Karten von OpenStreetMap; Ergebnislisten vom DARC-Contest-Hub.
Eigenwerbung – BeamLog bleibt kostenlos und frei. Wer das Projekt unterstützen möchte: Lars Hölker (DN2LH) betreibt mit LH Printing eine kleine 3D-Druckerei, unter anderem mit Zubehör für Funkamateure.
![]() Mastschellen 35 mm Für Masten und Antennen, mit V2A-Edelstahlschrauben M6, wetterfest – ideal für Portabel- und Fieldday-Aufbauten Zum Shop → |
![]() Wetterschutzgehäuse Outdoor-Gehäuse für Kamera, Außensteckdose oder Sensor – hält Regen ab, 137 × 104 × 90 mm Zum Shop → |
![]() Messleitungshalter Ordnung im Shack, Labor und in der Werkstatt: Wandhalter für Messleitungen und Kabel 4–10 mm, 2 Stück Zum Shop → |
![]() QSL-Kartenablage Stapelbare Ablage für QSL-Karten und Postkarten – damit nach dem Contest nichts liegen bleibt Zum Shop → |
Alle Amateurfunk-Artikel: lhprinting.de › Amateurfunk · Sonderwünsche (eigene Halter, Gehäuse, Adapter) über die Anfrage.
BeamLog ist freie Software unter der GNU Affero General Public License v3.0 (GNU AGPLv3).
BeamLog – Contest-Logger für UKW-Contests
Copyright (C) 2026 Lars Hölker (DN2LH)
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU Affero General Public License as published by the Free Software Foundation, version 3.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details: https://www.gnu.org/licenses/agpl-3.0
Kurz gesagt: Nutzen, weitergeben und verändern ist erlaubt. Wer eine veränderte Version weitergibt oder anderen über das Netz (z. B. als Server im LAN oder Internet) zur Verfügung stellt, muss deren Quellcode ebenfalls unter der AGPLv3 offenlegen. Der Link „Quellcode“ in der Fußzeile der Oberfläche zeigt auf dieses Projekt.

















