# Installation Traccar

## Info

Traccar ist ein Tracking Webinterface für Fahrzeuge und Mobiltelefone.

## Voraussetzungen

Sie benötigen eine MySQL oder MariaDB Datenbank und einen Reverseproxy wie NPM oder Caddy, am besten direkt auch mit Lets Encrypt Zertifikaten.

<p class="callout info">Sollten Sie die Voraussetzungen, so verwenden Sie bitte die Installationsanleitung des Herstellers unter [https://hub.docker.com/r/traccar/traccar](https://hub.docker.com/r/traccar/traccar).</p>

## Vorbereitungen

Kontrollieren Sie ob die Ports 8082 und 5000:5150 frei sind:

```
docker ps -a|grep 8082
```

Erstellen Sie die benötigen Ordnerstruktur:

<p class="callout info">Ich lege meine Daten unter /docker-data/projectname ab und die docker compose Dateien unter /docker-data/install/projectname - solltet ihr andere Pfade nutzen, so müsst ihr diese natürlich anpassen.</p>

```
mkdir -p /docker-data//install/traccar
mkdir -p /docker-data/traccar
mkdir -p /docker-data/traccar/conf
mkdir -p /docker-data/traccar/logs
mkdir -p /docker-data/traccar/media
```

Erstellen Sie im PHPMyadmin oder in der CLI die Datenbank traccar, richten Sie den Nutzer traccar ein und vergeben Sie ein Passwort:

```
docker exec -it mariadb bash
mariadb -u root -p
CREATE USER 'traccar'@'%' IDENTIFIED BY 'neues_passwort';
GRANT ALL PRIVILEGES ON traccar . * TO 'traccar'@'%';
CREATE DATABASE traccar;
FLUSH PRIVILEGES;
exit
exit
```

<p class="callout info">Passwort bitte anpassen!</p>

## Einrichtung

Erstellen Sie nun die Konfigurationsdatei wie folgt:

```
vi /docker-data/traccar/conf/traccar.xml
```

Fügen sie den folgenden Inhalt ein:

```
<?xml version='1.0' encoding='UTF-8'?>

<properties>

    <entry key='database.driver'>com.mysql.jdbc.Driver</entry>
    <entry key='database.url'>jdbc:mysql://192.168.33.4:3306/traccar?allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
    <entry key='database.user'>traccar</entry>
    <entry key='database.password'>neues_passwort</entry>
</properties>
```

<p class="callout info">Passwort bitte anpassen!</p>

Erstellen Sie nun die docker-compose Datei:

```
vi /docker-data/install/traccar/docker-compose.yml
```

Fügen sie den folgenden Inhalt ein:

```
services:
  traccar:
    container_name: traccar_latest
    image: traccar/traccar:alpine
    volumes:
      - /docker-data/traccar/conf/traccar.xml:/opt/traccar/conf/traccar.xml:rw
      - /docker-data/traccar/logs:/opt/traccar/logs:rw
      - /docker-data/traccar/media:/opt/traccar/media
    ports:
      - 5000-5150:5000-5150
      - 8082:8082
    restart: always
```

## Nacharbeiten

Öffnen Sie die Seite (http://dockerip:8082) und erstellen einen Adminaccount. Dokumentieren Sie diesen.

Erstellen Sie nun im Reverseproxy die benötigten Freigabe und auch unter NAT (sollten Sie noch einen weiteren Router vor ihrer Firewall vorgeschaltet haben, dann natürlich auch dort falls kein "exposed Host" erstellt wurde) für den oben angegebenen Range.

<p class="callout info">Reverse-geocoding informationen finden sie hier: [https://wiki.leibling.de/books/traccar/page/anpassungen](https://wiki.leibling.de/books/traccar/page/anpassungen).</p>

## Weitere Informationen

- [https://www.traccar.org/](https://www.traccar.org/)