Wavelog ist ein fantastisches, webbasiertes Logbuch für Funkamateure, das man selbst hosten kann. Die Installation kann aufwendig sein, aber mit Docker wird der Prozess planbar und sauber. Docker packt die Anwendung und ihre Datenbank in isolierte Container, ohne dein Mac-System zu «verschmutzen».
Alle die mich kennen wissen, ich liebe es neben dem Funkbetrieb Software zu testen. Ich habe mir Wavelog in Docker installiert um es testen zu können.
Diese Anleitung führt dich Schritt für Schritt durch die Installation von Wavelog (der App) und MariaDB (der Datenbank) auf einem Mac mithilfe von docker-compose.
Contents
1. Voraussetzungen
Bevor du beginnst, stelle sicher, dass die folgende Software auf deinem Mac installiert ist und läuft:
- Docker Desktop für Mac: Dies ist die Hauptanwendung, die Docker und das
docker-compose-Tool bereitstellt. Du kannst es kostenlos von der offiziellen Docker-Website herunterladen. - Git: Wird benötigt, um den Wavelog-Quellcode zu klonen. Git ist oft schon auf macOS vorinstalliert, wenn du die «Xcode Command Line Tools» hast. Du kannst es im Terminal mit
git --versionprüfen. - Terminal: Du benötigst das macOS-Terminal (oder ein alternatives Terminal wie iTerm2), um die Befehle einzugeben.
2. Installationsschritte
Schritt 1: Projektordner erstellen
Wir erstellen einen zentralen Ordner, der alle unsere Konfigurationsdateien und den Wavelog-Code enthalten wird.
- Öffne das Terminal.
- Erstelle einen Ordner namens
wavelog-docker(oder einen Namen deiner Wahl) und wechsle in dieses Verzeichnis:Bashmkdir wavelog-docker cd wavelog-docker
Schritt 2: Wavelog-Quellcode klonen
Diese Anleitung baut das Wavelog-Docker-Image direkt aus dem offiziellen Quellcode. Das gibt uns die Flexibilität, die benötigten PHP-Erweiterungen hinzuzufügen.
- Klone das Wavelog-Repository in deinen Projektordner:Bash
git clone https://github.com/wavelog/wavelog.gitDies erstellt einen neuen Unterordnerwavelog/in deinemwavelog-docker-Verzeichnis.

Schritt 3: Dockerfile für Wavelog erstellen
Die Dockerfile ist das «Rezept», nach dem Docker das Wavelog-Image baut. Hier stellen wir sicher, dass alle Abhängigkeiten (wie php-gd für Grafiken) installiert werden.
- Erstelle die
Dockerfileimwavelog-Unterordner:Bashnano wavelog/Dockerfile - Kopiere den folgenden Inhalt vollständig in die Datei:Dockerfile
# Startet mit dem offiziellen PHP 8.3 Image mit Apache-Server FROM php:8.3-apache # Installiere System-Abhängigkeiten und PHP-Erweiterungen RUN apt-get update \ && apt-get install -y git curl libxml2-dev libonig-dev libzip-dev \ libpng-dev libjpeg62-turbo-dev libfreetype6-dev libgd-dev \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Konfiguriere und installiere die PHP-Erweiterungen RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install mysqli mbstring xml zip gd # PHP-Upload-Einstellungen für QSL-Karten etc. anpassen RUN touch /usr/local/etc/php/conf.d/uploads.ini \ && echo "file_uploads = On" >> /usr/local/etc/php/conf.d/uploads.ini \ && echo "memory_limit = 256M" >> /usr/local/etc/php/conf.d/uploads.ini \ && echo "upload_max_filesize = 64M" >> /usr/local/etc/php/conf.d/uploads.ini \ && echo "post_max_size = 64M" >> /usr/local/etc/php/conf.d/uploads.ini \ && echo "max_execution_time = 600" >> /usr/local/etc/php/conf.d/uploads.ini - Speichere und schließe die Datei (bei
nano:Ctrl+O,Enter, dannCtrl+X).
Schritt 4: docker-compose.yml erstellen
Die docker-compose.yml ist die «Dirigenten-Datei». Sie definiert, welche Container (App und DB) gestartet, wie sie vernetzt und welche Daten gespeichert werden sollen.
- Stelle sicher, dass du wieder im Hauptordner
wavelog-dockerbist (nicht imwavelog-Unterordner). - Erstelle die
docker-compose.yml-Datei:Bashnano docker-compose.yml - Kopiere den folgenden Inhalt hinein:YAML
version: '3' services: # Der Datenbank-Container (MariaDB) wavelog-db: image: mariadb:latest container_name: wavelog-mysql restart: unless-stopped environment: MARIADB_RANDOM_ROOT_PASSWORD: 'yes' MARIADB_DATABASE: wavelog MARIADB_USER: wavelog # ÄNDERE DIESES PASSWORT! MARIADB_PASSWORD: DEIN-SICHERES-PASSWORT volumes: - wavelog-dbdata:/var/lib/mysql # Der Wavelog-App-Container wavelog-main: container_name: wavelog-main restart: unless-stopped # Sagt Docker, das Image aus dem 'wavelog'-Ordner # mit unserer 'Dockerfile' zu bauen build: context: ./wavelog/ ports: # Mappt Port 8086 deines Macs auf Port 80 im Container - "8086:80" depends_on: - wavelog-db volumes: # Hängt den Quellcode direkt ein (erleichtert Updates) - ./wavelog:/var/www/html # Persistente Volumes für wichtige Daten - wavelog-backup:/var/www/html/application/backup - wavelog-uploads:/var/www/html/application/uploads # Definition der persistenten Volumes volumes: wavelog-dbdata: wavelog-backup: wavelog-uploads:
WICHTIG: Ersetze
DEIN-SICHERES-PASSWORTin derdocker-compose.yml(Zeile 14) durch ein starkes, eigenes Passwort.
Schritt 5: Container starten und Wavelog bauen
Jetzt sind alle Konfigurationen abgeschlossen.
- Stelle sicher, dass Docker Desktop läuft.
- Führe im Terminal (im Hauptordner
wavelog-docker) folgenden Befehl aus:Bashdocker compose up -d --buildup: Startet die Container.-d: Startet im «Detached-Modus» (im Hintergrund).--build: Erzwingt den Bau des Wavelog-Images basierend auf unsererDockerfile.
Der erste Start wird einige Minuten dauern, da das MariaDB-Image heruntergeladen und dein Wavelog-Image (inkl. aller PHP-Erweiterungen) gebaut werden muss.
3. Wavelog im Browser einrichten

Sobald das Terminal meldet, dass die Container «done» oder «healthy» sind, kannst du die Installation im Webbrowser abschließen.
- Öffne deinen Browser (z.B. Safari oder Chrome) und gehe zu: http://localhost:8086
- Du solltest den Wavelog-Installations-Assistenten sehen.
- Gib im Datenbank-Setup-Schritt die folgenden Details ein:
- Hostname:
wavelog-db(Dies ist der Name des Datenbank-Dienstes aus derdocker-compose.yml) - Database Name:
wavelog - Username:
wavelog - Password: Das sichere Passwort, das du in der
docker-compose.ymlfestgelegt hast.
- Hostname:
- Klicke auf «Test Connection» und fahre mit der Installation fort, um deinen Admin-Account zu erstellen.
Fertig! Deine Wavelog-Instanz läuft nun vollständig in Docker auf deinem Mac.

4. Nützliche Docker-Befehle (Verwaltung)
Du verwaltest deine Wavelog-Instanz über das Terminal, indem du die Befehle im wavelog-docker-Ordner ausführst.
- So stoppst du Wavelog (App und DB):Bash
docker compose down(Deine Daten bleiben in den Volumes erhalten.) - So startest du Wavelog (App und DB) erneut:Bash
docker compose up -d - So aktualisierst du Wavelog auf die neueste Version: Da wir den Quellcode direkt eingebunden haben, ist das Update einfach:Bash
# 1. Gehe in den Wavelog-Code-Ordner cd wavelog # 2. Hole den neuesten Code von GitHub git pull # 3. Gehe zurück in den Hauptordner cd .. # 4. Baue das Image neu (falls sich PHP-Abhängigkeiten geändert haben) # und starte die Container neu. docker compose up -d --build
Import ADIF mit fast 9000 Einträgen
