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 alternat-txt

Dann sollte man bereits seinen Standorte hoch laden können (Das mit dem Bild habe ich später noch geändert)

alternat-txt

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