Repeatermap nach Datenpanne wieder vollständig online

Am Montag, den 21.02.2022 wurde durch den Hosting-Provider von repeatermap.de ein Update des Datenbanksystems auf eine neue Version durchgeführt. Dieses Update war angekündigt und ich wurde auch darauf hingewiesen, dass die Daten von repeatermap.de nicht 100% kompatibel zu der neuen Version sind und dass meine Webseite nach dem Update nicht mehr funktionieren wird.

Mein Plan war es, das Update abzuwarten, die Fehlermeldungen zu analysieren und dann die nötigen Reparaturen durchzuführen.

Allerdings wurde mir nicht gesagt, dass mit dem Update des Datenbanksystems meine Datenbank komplett gelöscht wird und ich damit auch den Zugriff auf die täglichen Backups verliere, die normalerweise für 7 Tage vorhanden sind. Unglücklicherweise war das letzte Backup, was ich auf meinem Rechner gespeichert hatte bereits über ein Jahr alt und so kam gegen Mittag des 21. Februar das böse Erwachen: Repeatermap.de funktioniert nicht mehr, und alle aktuellen Backups sind weg. Das wurde mir zunächst auch telefonisch durch den Hoster bestätigt.

Als erste Reaktion habe ich zunächst das veraltete Backup wieder eingespielt und die Seite für Änderungen vorläufig gesperrt. Es folgte ein Aufruf über mehrere Kanäle in der Hoffnung, dass jemand die Daten noch im Cache des Browsers hatte. Außerdem habe ich mich noch einmal schriftlich an den Hoster gewandt.

Nach über einer Woche Hoffen und Bangen kam am 02. März dann die erlösende Nachricht, dass der Hoster mir ein Backup der alten Datenbank zur Verfügung stellen kann. Nach einer kleinen Anpassung der Datenstruktur konnte ich kurze Zeit später die Datenbank aus dem Backup wieder einspielen und seit dem späten Abend vom 02.03. ist repeatermap wieder vollständig mit aktuellem Datenbestand nutzbar.

Ich möchte mich an dieser Stelle ausdrücklich für die unzähligen Nachrichten, Ideen und Hilfsangebote bedanken die mich auf zahlreichen Wegen erreicht haben.

Mein besonderer Dank gilt dabei Winni, DL3XU, der seit vielen Jahren undermüdlich das Einpflegen von Änderungen oder neuen Repeatern übernimmt und dessen Arbeit bei einem Datenverlust besonders betroffen gewesen wäre.

Umso mehr freue ich mich, dass der zunächst befürchtete Datenverlust nicht eingetreten ist und ich so mit einem blauen Auge davongekommen bin.

Ich habe das ganze zum Anlass genommen und inzwischen ein eigenes, vom Provider unabhängiges Backup implementiert.

Repeatermap nach Datenpanne wieder auf aktuellem Stand!

Update: Ich habe am 02.03.2022 ein Backup erhalten und bereits eingespielt. Die Daten sind nun wieder auf einem aktuellen Stand. Es gibt noch ein paar technische Probleme zu lösen, aber die Seite wird in den nächsten Tagen wieder vollständig nutzbar sein!

Leider kam es heute, am 21.02.2022 zu einer Datenpanne bei repeatermap.de.

Grund war ein Update des Datenbank-Servers durch den Hoster. Das Update war zwar angekündigt und es wurde auch gesagt, dass meine Datenbank mit der neuen Version so nicht kompatibel ist, und dass ich etwas tun muss, allerdings wurde mir nicht gesagt, dass mit dem Update die Datenbank komplett gelöscht wird inkl. aller Backups, die normalerweise für 7 Tage vorgehalten werden.

Mein letztes lokales Backup war auf dem Stand vom 24.01.2021, also ca. 13 Monate alt.

Repeatermap läuft nun also auf einem alten Datenbestand und ich warte auf die Antwort vom Support des Hosters, ob die Daten nicht doch noch irgendwie zu retten sind.

Bis auf weiteres habe ich deshalb das Melden von neuen Repeatern und Korrekturen deaktiviert.

Ich habe außerdem noch ein wenig Hoffnung, dass vielleicht jemand die Daten noch im Browser-Cache hat und mir helfen kann, den Schaden zu begrenzen.

Sollte also jemand die Seite vor dem 21.02.2022 besucht haben, dann meldet euch bitte bei mir, so dass ich gemeinsam mit euch versuchen kann, die Daten ggf. auf Eurem Browser-Cache auszulesen, damit ich den Schaden begrenzen kann. Wichtig ist, dass ihr die Seite dann so lange nicht mehr besucht, da das ggf. die Daten aus dem Cache überschreibt und sie dann endgültig verloren sind.

Solltet ihr denken, dass ihr mir ggf. helfen könnt, dann schreibt bitte eine Mail an dk3ml(at)darc.de

Ich werde euch an dieser Stelle auf dem Laufenden halten.

Vielen Dank

Martin, Dk3ML

Updates und Hintergründe:

02.03.2022 – Der Hoster hat ein Backup finden können und es ist bereits eingespielt!
Ich habe am 02.03.2022 ein Backup erhalten und bereits eingespielt. Die Daten sind nun wieder auf einem aktuellen Stand. Es gibt noch ein paar technische Probleme zu lösen, aber die Seite wird in den nächsten Tagen wieder vollständig nutzbar sein!

01.03.2022 – Rückmeldung vom Hoster – möglicherweise gibt es doch noch ein Backup
Heute kam eine Antwort vom Hoster, dass möglicherweise doch noch ein Backup existiert. Das Backup soll mir nun zur Verfügung gestellt werden. Nun heißt es noch einmal: Daumen drücken!

28.02.2022 – Noch keine Antwort vom Hoster
Leider gibt es zu dem Ticket vom Hoster noch keine Antwort. Ich habe heute noch einmal nachgefragt und eindringlich um die Herausgabe des letzten Backups vor der Umstellung gebeten.

25.02.2022 – Die Idee die Daten von archive.org zu bekommen, funktioniert leider nicht, da Datenbestand noch älter als mein letztes Backup

In zahlreichen E-Mails und Nachrichten wurde ich darauf hingewiesen, dass es unter http://web.archive.org/web/20211226043229/https://repeatermap.de/ ein archivierte Version der Repeatermap vom 26.12.2021 gibt. Das war zunächst ein vielversprechender Hinweis, doch der Teufel steckt hier im Detail.

Die Version vom 26.12.2021 bezieht sich nur auf das Frontend. Die Daten selbst kommen über eine API. Die Antwort der API ist zwar auch auf web.archive.org gespeichert, allerdings in einer deutlich älteren Version aus dem Jahre 2020.

Das sieht man, wenn man sich die Abfragen genauer anguckt. Die Abfrage der Daten wird über eine http 302 (found) Weiterleitung auf eine Version vom 07.08.2020 weitergeleitet. Damit sind die Daten auf web.archive.org noch ein halbes Jahr älter, als mein letztes Backup:

Ich danke aber allen, die mir diese Idee gemeldet haben. Sie war wirklich gut und wären die Daten aktuell gewesen, hätte mir das sehr geholfen.

24.02.2022 – E-Mail vom Hoster, dass mein Anliegen zur Prüfung der Widerherstellung des letzten Backups unter einem Ticket bearbeitet werden

Ein Funken Hoffnung ist also noch da. Nun heißt es: abwarten.

23.02.2022 – Weiterhin viele Rückmeldungen, leider weiterhin erfolglos – Keine Rückmeldung vom Hoster…

Nach wie vor erreichen mich zahlreiche E-Mails und Nachrichten mit Hilfsangeboten. Leider weiterhin ohne Erfolg. Im Browsercache sind die Daten bisher nirgends aufgetaucht.

Meine Anfragen an den Hoster sind bisher leider auch unbeantwortet.

22.02.2022 – Mehrere Hilfsangebote per E-Mail / Whatsapp / Twitter

Nach meinem Aufruf gestern, erreichen mich zahlreiche Hilfsangebote und Ideen auf den unterschiedlichsten Kanälen. Auch wenn mir bisher leider niemand helfen konnte, bin ich doch überwältigt von der Hilfsbereitschaft und dem Ideenreichtum. Vielen Dank dafür!

21.02.2022, 22:30 – Hilfeaufruf über mehrere Verteiler gesendet.

Beim Laden von repeatermap.de werden alle Repeater an den Browser übertragen und dort möglicherweise gecached. Ich habe also ein wenig Hoffnung, dass es vielleicht jemanden gibt, der die Seite kurz vor dem 21.02.2022 geöffnet hat und sich die Daten jetzt noch im Browsercache befinden.

21.02.2022, 22:00 – Repeatermap aus dem letzten vorhandenen lokalen Backup wieder hergestellt

Das letzte lokale Backup, was ich auf dem Rechner hatte war leider schon sehr alt und vom 24.01.2021. Immerhin konnte ich es einspielen, so dass die Seite jetzt grundsätzlich wieder funktioniert, allerdings auf einem sehr alten Datenbestand. Ich hoffe weiterhin auf eine Antwort vom Support, dass es vielleicht doch noch eine Möglichkeit gibt, die Daten zu retten, aber sehr optimistisch bin ich leider nicht.

21.02.2022, 15:17 – Anruf bei der Hotline des Hosting – Providers

Nach einer kurzen internen Rückfrage teilte man mir mit, dass die Datenbank inkl. Backups unwiederbringlich gelöscht sind und dass man mich darüber ja bereits zuvor per Mail informiert hat. Ich war ein wenig sprachlos, da von einem Löschen der Datenbank + Backups in der Mail vom 11.01. nicht die Rede war, sondern lediglich darauf hingewiesen wurde, dass die Webseite nach dem Update nicht mehr funktioniert. Natürlich liegt der Fehler auf meiner Seite, da ich mich nicht selbst um eigene Backups gekümmert habe, aber ich habe wirklich nicht damit gerechnet, dass die Backups, die vom Provider angefertigt werden, so sang- und klanglos gelöscht werden.

Ich habe danach noch eine E-Mail an den Support geschickt, aber bisher keine Antwort erhalten.

21.02.2022, 12:42 – Mail von DL3XU: Die Punkte sind weg!
Eine kurze Analyse des Fehlers zeigte die Ursache: Die Verbindung zur Datenbank konnte nicht hergestellt werden. Ich erinnerte mich wieder an die Mail vom Hosting-Provider und loggte ich in das Admin-Interface ein, auf der Suche nach den Backups der Datenbank. Allerdings musste ich feststellen, dass die Datenbank komplett gelöscht war und es auch keinen Zugriff mehr auf die Backups gab, die normalerweise für 7 Tage vorgehalten werden.

20.02.2022 – Gedankenblitz: War da nicht eine Mail vom Hosting-Anbieter? Naja, gucke ich mir morgen an und repariere ggf. wenn es kaputt ist

11.01.2022 – E-Mail vom Hosting – Anbieter:

Hallo …,

damit Sie bei XXX auch weiterhin modernste Website-Systeme einsetzen können, aktualisieren wir unsere Datenbank-Infrastruktur auf MySQL 5.7. Die Umstellung erfolgt am 21.02.2022.

Die Datenbank XXX in Ihrem Paket XXXX ist nicht mit der MySQL Version 5.7 kompatibel. Mögliche Gründe sind zu lange Primärschlüssel in Tabellen, leere Felder in Geometriewerten oder voneinander abweichende Kollationen (Zeichensätze) innerhalb der Datenbank.

Nach der Migration unserer Datenbank-Server am 21.02.2022 wird Ihre Datenbank XXX nicht mehr funktionieren. Verknüpfte Websites können dann nicht mehr auf die Datenbank zugreifen.

Anleitung, um unter Firefox herauszufinden, ob es noch Daten im Cache gibt:

In der Adresszeile folgendes eingeben (Nicht draufklicken, die gesamte Zeile kopieren und einfügen)

about:cache-entry?storage=disk&context=&eid=&uri=https://repeatermap.de/api.php

Da müsste dann so eine Seite kommen:

Wenn “last modified” älter ist, als gestern, dann bitte die Seite speichern (Datei => Seite speichern unter”) und mir schicken. Die Seite selbst dann bitte offen lassen, falls das mit dem Speichern nicht geklappt hat.

RPI-Control – A simple webinterface for monitoring and maintenance of a Raspbbery Pi


I while ago I was working with Manfred, DK1MC on an APRS project. Manfred is responsible for DB0HHH and was looking for a solution to do simple maintenance and monitoring operations on the Raspberry Pi he is using to control the repeater. So far he was using a terminal solution which he developed, but this requires SSH access and is nothing that can be used easily on the road and without at least some basic Linux knowledge. The idea of a simple web interface was born…

Here are some items from our first list of ideas:

  • Should be used with a browser, also on a Smartphone or tablet
  • Simple and flexible configuration
  • Simple monitoring and maintenance of systemd services
  • Buttons for any kind of commands
  • User management
  • Simple installation, minimal dependencies

A few weeks later the first version was ready for testing.

The configuration is done through a json file. The most important parts are “systemd” where you can add a list of systemd-services. The second section is “Buttons” with the possibility to define a list of buttons and the command that should be executed once the button is pressed.

Here is an example of the config file:

{
    "webserver": {
        "port" : 8080,
        "title": DK3ML-10 APRS RX-Igate",
        "headline": "DK3ML-10"
    },
    "systemd": [
        {"name": "cron", "description": "Cron"},
        {"name": "direwolf", "description": "Direwolf"},
    ],
    "buttons": [
        {"headline": "System-Info", "buttons": [
            {"name": "Date + time", "command": "date"},
            {"name": "Uptime", "command": "uptime"},
            {"name": "df -h", "command": "df -h"},
            {"name": "ifconfig", "command": "ifconfig"}
            ]}
    ],
    ...
}

The app offers a simple web interface. Once a button is pressed, the command that is defined in the config file will be executed on the Raspberry Pi. Other commands than defined in the config file are not possible, so the admin still has full control about whatever he wants to offer to his users. The output of any command is shown on a log window.

The possibility of defining any command makes this app a very powerful and flexible tool. The configuration requires solid Linux knowledge as the app will execute any command you define. So with the wrong commands you can destroy your system with just one click. But once it’s set up and configured it offers a very simple way to monitor and maintain the system even without Linux knowlege.

Of course the software can also be used in other areas than amateur radio repeaters.

Some technical details:

The app was developed in “Go” (also called Golang). Software written in Go can be compiled for many systems and achitectures. All dependencies and libraries are part of the compiled binary. To install the app, all that needs to be done is to copy the binary (and some template and asset folders) to the Raspberry Pi. Any installation of additional packages or dependencies is not needed. As even the webserver is built in, you also don’t need to install and configure a complex webserver like Apache or nginx.

SSL is not supported yet, but it’s on the TODO-List.

The software is alrady running on several repeaters, for example: DB0HHH.

I already had the question if there is any plan to publish the code under an open source license. In general I am happy to do that, but it requires some careful code review and cleanup first. At the moment it’s hard to say when I will find time for it.

So for now I can only offer to send a test version. As mentioned above the installation and configuration requires solid Linux knowledge and you have to agree that you will run the software at your own risk.

RPI-Control – eine einfaches Webinterface für die Fernwartung eines Raspberry Pi

Vor einiger Zeit kam ich im Rahmen eines APRS-Projektes mit Manfred, DK1MC ins Gespräch. Manfred ist Relaisbetreiber von DB0HHH und war auf der Suche nach einer einfachen Lösung, um ein paar Wartungs- und Überwachungsaufgaben auf dem Raspberry PI durchzuführen, der für die Relaissteuerung eingesetzt wird. Bisher war das nur über SSH oder über Teamviewer möglich. Zwar hat Manfred bereits eine Terminal-Lösung entwickelt, die auch bereits produktiv im Einsatz ist, aber auch die erforderte einen SSH Zugang und war damit nichts, was man mal eben schnell von unterwegs und ohne viel Fachkenntnis nutzen kann. Die Idee einer webbasierten Steuerung war geboren.

Hier ein Auszug unserer ersten Ideen-Liste:

  • Bedienung über den Browser, auch über Smartphone
  • Frei konfigurierbar durch den Admin
  • Einfache Überwachung von Systemd-Diensten
  • Buttons, die mit beliebigen Aufgaben hinterlegt werden können
  • Login für mehrere User
  • Einfache Konfiguration
  • Einfache Installation, minimale Abhängigkeiten

Ein paar Wochen später war die erste Version fertig und konnte getestet werden.

Die Konfiguration erfolgt über eine json-Datei. Die wesentlichen Blöcke sind “systemd”, wo eine beliebige Anzahl an Systemd-Diensten definiert werden kann, sowie der Bereich “buttons”, wo eine beliebige Anzahl an Buttons eingetragen und der jeweilige Befehl hinterlegt werden kann.

Hier ein Beispiel:

{
    "webserver": {
        "port" : 8080,
        "title": DK3ML-10 APRS RX-Igate",
        "headline": "DK3ML-10"
    },
    "systemd": [
        {"name": "cron", "description": "Cron"},
        {"name": "direwolf", "description": "Direwolf"},
    ],
    "buttons": [
        {"headline": "System-Info", "buttons": [
            {"name": "Date + time", "command": "date"},
            {"name": "Uptime", "command": "uptime"},
            {"name": "df -h", "command": "df -h"},
            {"name": "ifconfig", "command": "ifconfig"}
            ]}
    ],
    ...
}

Angezeigt wird das ganze über eine einfache Weboberfläche. Wird ein Knopf gedrückt, so wird auf dem Raspberry PI der in der config hinterlegte Befehl ausgeführt. Andere Befehle, als in der config hinterlegt sind, können nicht ausgeführt werden. So hat der Admin immernoch die volle Kontrolle, welche Befehle er den anderen Relais-Betreibern zur Verfügung stellen möchte. Außerdem wird die Ausgabe des Befehls in einem Log-Fenster angezeigt.

Dadurch, dass quasi beliebige Befehle hinterlegt werden können, ist das ganze ein sehr flexibles und mächtiges Instrument bei dessen Konfiguration man allerdings wissen muss, was man tut. Einmal konfiguriert, bietet es dann aber auch Relais-Betreibern ohne Linux-Kentnisse die Möglichkeit, einfache Wartungs- und Überwachungstätigkeiten auszuführen.

Selbstverständlich lässt sich die Software nicht nur für Amateurfunk-Relais einsetzen. Durch die flexible Konfiguration sind die Möglichkeiten nahezu unbegrenzt.

Noch ein paar Worte zur Technik:

Entwickelt wurde das Tool in der Programmiersprache “Go” oder auch “Golang” genannt. Programme, die in Go geschrieben sind, lassen sich für viele Zielsysteme und -architekturen kompillieren. Das kompillierte Programm enthält dann alle Abhängigkeiten und Bibliotheken, die für die Programmausführung benötigt werden. Zur Installation muss dann nur das kompillierte Programm auf den Raspberry Pi kopiert werden. Eine Installtion von weiteren Paketen ist nicht nötig. Selbst der Webserver ist integriert, so dass eine aufwändige Installation und Konfiguration von Servern wie Apache oder nginx entfällt.

SSL wird zur Zeit noch nicht unterstützt, steht aber auf der ToDo Liste.

Das Programm ist bereits auf mehreren Repeatern im Einsatz, unter anderem auf DB0HHH.

Auch habe ich bereits die Frage bekommen, ob ich plane, das ganze als Opensource zu veröffentlichen. Das kann ich mir durchaus vorstellen, allerdings müsste ich vorher noch einmal den Code überarbeiten und Aufräumen und im Idealfall auch noch einmal durch einen weiteren Entwickler mit Go-Erfahrung überprüfen lassen. Ob und bis wann ich dazu komme, kann ich im Moment noch nicht sagen.

Bis auf weiteres kann ich deshalb nur anbieten, bei Interesse eine Testversion zur Verfügung zu stellen. Auch wenn die Benutzung des Programms hinterher sehr einfach ist, erfordert die Installation und Konfiguration solide Linux Kenntnisse. Die Benutzung erfolgt dann außerdem auf eigenes Risiko, insbesondere wenn das ganze später direkt über das Internet erreichbar und nicht z.B. durch ein VPN geschützt ist.

How to work the APRS digipeater on the International Space Station ISS

Working the APRS digipeater on the ISS is not hard, but it requires some planning and knowledge. It took me a lot of reading, trial and error until I made my first successful contact some years ago. Maybe I can save somebody’s time a bit with this article. Would be great to get some feedback, if it was helpful or if there are any further questions.

Continue reading

SSTV von der ISS empfangen und dekodieren

Am Wochenende vom 8. bis zum 10.02.2019 fand wieder ein “Slow Scan Television (SSTV) Event” von Bord der Internationalen Raumstation ISS statt. In der Zeit gab es insgesamt 12 verschiedene Bilder zu empfangen. In diesem Artikel möchte ich beschreiben, wie man die Signale empfangen und auswerten kann. Ich beschränke mich dabei auf die Arbeit unter Linux, aber für Windows gibt es ähnliche Software, so dass das Betriebssystem eigentlich keine Rolle spielen sollte.
Continue reading

Find out the next ISS pass with APRS

Recently I found a twitter post from WA1GOV about a new service he offers (). If you send an APRS message with the content “ISS” to the callsign WA1GOV-10, you will receive the next ISS pass at your location as a message.

The only condition is that you are in the range of a TX-igate and that this TX-igate is aware of your position, so that it sends the message from the APRS-IS back to HF. I had some trouble with this. At the beginning I did not receive the ISS data, but I saw it at aprs.fi, so I sent a couple of more beacons and now I sucessfully received a message back. Beside the ISS there are also the following satellites available: AO-85,AO-91,AO-92,SO-50