Installation von Owntracks auf einem Raspberry Pi
Owntracks scheint eine gute Alternative zu sein um einem berechtigten Kreis von Bekannten Informationen über seinen Standort mitzuteilen. Mal sehen wie stabil und “einfach” das läuft. Hier die Schritte die notwendig waren um das System auf einem Pi und einem Androidgerät zu installieren
Die Installation eines Brokers ist an dieser stelle beschrieben. Um die Verbindung mit TLS abzusichern sind meine Schritte im wesentlichen an die Beschreibung von JPMens angelehnt. Nur das ich die Zertifikate bei Startssl erstellt habe und dann die server.crt, den key und das Bundles auf den Server hoch geladen habe. Dann noch die Anpassungen für den Broker
vi /etc/mosquitto/mosquitto.conf
listener 1883 127.0.0.1
listener 8883
tls_version tlsv1
cafile /etc/ssl/quo/ca-bundle.crt
certfile /etc/ssl/quo/server.crt
keyfile /etc/ssl/quo/server.key
Jetzt müssen wir noch das Zertifikat auf dem Android Gerät bekannt machen. Mir ist das mit der App Certificate Installer auf Android gelungen nachdem ich das Zertifikat auf das Gerät kopiert habe.
Jetzt haben wir die Verbindung zwischen Broker und dem Android gesichert. Jetzt die eigentliche Anwendung. Die Installation von Owntrack aus geht aus dem dem Appstore und in den Einstellungen müssen nur die Serverinformationen angepasst werden
Dann sollte man bereits seinen Standorte hoch laden können (Das mit dem Bild habe ich später noch geändert)
Jetzt kommen zwar die Standortinformationen beim Server an. Nur brauchen wir jetzt noch ein Backend in das diese Daten regelmäßig und dauerhaft gespeichert werden. Ich habe den Weg über eine MySQL Datenbank gewählt.
Zuerst Datenbankserver installieren und Datenbank anlegen
apt-get install python-pip mysql-server
mysql -u root -p
create database owntrack;
CREATE USER 'owntrack_admin'@'localhost' IDENTIFIED BY 'geheim';
grant all on owntrack.* to 'owntrack_admin'@'localhost';
Dann weitere Voraussetzungen installieren und die “Backendschnittstelle” installieren:
pip install peewee
mkdir /opt/caserio
cd /opt/caserio/
git clone https://github.com/owntracks/backend.git owntrack
cd owntrack/m2s/
cp settings.py.sample settings.py
vi settings.py # Datenbanknamen, user, Kennwort anpassen
Der erste Versuch die Datenbankschemata zu installieren scheiterte:
python dbschema.py Traceback (most recent call last):
File "dbschema.py", line 59, in <module> mysql_db.connect()
File "/opt/caserio/owntrack/m2s/peewee.py", line 1827, in connect **self.connect_kwargs)
File "/opt/caserio/owntrack/m2s/peewee.py", line 2096, in _connect raise ImproperlyConfigured('MySQLdb must be installed.')
peewee.ImproperlyConfigured: MySQLdb must be installed
Nach einem:
apt-get install python-mysqldb
ging es dann und man konnte die “Datenbankimportroutine” starten. Im Logfile kann man auch sehen das “etwas” passiert
./m2s.py &
tail -f logfile
2014-05-13 16:36:28,795 ---- in storage: owntracks/hbauer/5bca35ae41cdcdc3
2014-05-13 16:36:28,813 ('INSERT INTO `location` (`batt`, `tst`, `waypoint`, `lat`, `username`, `
Um ganz sicher zu gehen kann man auch noch in der Mysql Datenbank noch mal nachsehen
mysql -u owntracks -p
use owntrack;
Reading table information for completion of table and column names
Database changed
select * from location;
So jetzt könnte man eigentlich loslegen (hoffe ich zu mindestens) Allerdings kann zu diesem Zeitpunkt jeder der den Server kennt mit einem mqtt Client mit hören was alles so passiert. Absichern kann man diesen Dienst dann so:
Zuerst legen wir eine neue Kennwortdatei an
mosquitto_passwd -c /etc/mosquitto/users hbauer
Password:
Reenter password:
und tragen diese dann in die Konfiguration ein und starten den Broker neu
vi /etc/mosquitto/mosquitto.conf
allow_anonymous false
password_file /etc/mosquitto/users
/etc/init.d/mosquitto restart
So damit ist erst mal die Basis gelegt. Mal sehen wie sich das ganze im “Livebetrieb” verhält und was man damit noch alles anstellen kann