Permet de tracker sa position géographique.
Avant on utilisait OwnTracks en mode HTTP (recorder exposé en /pub
avec htaccess). Maintenant tout passe par le broker MQTT (mosquitto)
exposé par Traefik en TCP + TLS. Le recorder ne reçoit plus rien en
HTTP : il subscribe au broker.
Dans le docker-compose.yml (en plus de l'entrypoint mqtts sur 8883
côté Traefik) :
mqtt:
image: eclipse-mosquitto:2.0
container_name: mqtt
restart: always
volumes:
- /root/docker/mqtt/config:/mosquitto/config
- /root/docker/mqtt/data:/mosquitto/data
- /root/docker/mqtt/log:/mosquitto/log
labels:
- traefik.enable=true
- traefik.tcp.routers.mqtts.rule=HostSNI(`mqtt.${DOMAIN}`)
- traefik.tcp.routers.mqtts.entrypoints=mqtts
- traefik.tcp.routers.mqtts.tls=true
- traefik.tcp.services.mqtts.loadbalancer.server.port=1883Côté Traefik il faut un entrypoint TCP mqtts :
- --entrypoints.mqtts.address=:8883
et publier le port 8883 sur le host. Traefik termine le TLS (avec le
cert wildcard letsencrypt) et forwarde en clair vers mosquitto:1883
en interne.
Config mosquitto (/root/docker/mqtt/config/mosquitto.conf) :
listener 1883 allow_anonymous false password_file /mosquitto/config/mosquitto.passwd persistence true persistence_location /mosquitto/data/
Créer le user :
docker exec -ti mqtt mosquitto_passwd -c /mosquitto/config/mosquitto.passwd admin
owntracks:
image: owntracks/recorder
environment:
- OTR_HOST=mqtt.${DOMAIN}
- OTR_PORT=8883
- OTR_USER=admin
- OTR_PASS=${PASSWORD}
- OTR_CAFILE=/etc/ssl/certs/ca-certificates.crt
volumes:
- /etc/localtime:/etc/localtime:ro
- /root/docker/owntracks/config:/config
- /root/dockerdata/owntracks:/store
labels:
- traefik.enable=true
- traefik.http.routers.owntracks.rule=Host(`owntracks.${DOMAIN}`)
- traefik.http.services.owntracks.loadbalancer.server.port=8083
- traefik.http.routers.owntracks.entrypoints=websecure
- traefik.http.routers.owntracks.middlewares=compressor,securityheaders,adminLe recorder subscribe au broker en TLS (OTR_CAFILE lui suffit pour
valider le cert letsencrypt). L'UI reste exposée sur
https://owntracks.${DOMAIN} derrière l'auth Traefik admin.
Mode MQTT (et plus HTTP) :
Liens :
économie de batterie
android :
Paramètres → Applications → OwnTracks → Batterie : Autoriser activité en arrière-plan
Paramètres → Applications → OwnTracks → Autorisations → Localisation : Autoriser tout le temps + Position précise
Paramètres → Applications → OwnTracks → Données mobiles : Autoriser données en arrière-plan