Wie man Owntracks mit Traefik-Reverse-Proxy (HTTP-Modus) in nur 3 Minuten einrichtet
Owntracks ist eine der wenigen Open-Source-Ortungsverfolgungs-Apps, die sowohl für Android als auch für iOS verfügbar sind. Es ist eine großartige Möglichkeit, Ihren Standort zu verfolgen und mit anderen zu teilen.
Für das Traefik-Setup siehe Einfaches Traefik docker-compose-Setup mit Lets Encrypt Cloudflare DNS-01 & TLS-ALPN-01 & HTTP-01 Challenges
Erstellen Sie zuerst docker-compose.yml
services:
otrecorder:
image: owntracks/recorder
volumes:
- ./otrecorder_config:/config
- ./otrecorder_store:/store
environment:
OTR_HOST: "mosquitto"
OTR_USER: "otrecorder"
OTR_PASS: "${MOSQUITTO_OTRECODER_PASSWORD}"
depends_on:
- mosquitto
labels:
- "traefik.enable=true"
- "traefik.http.routers.owntracks.rule=Host(`owntracks.mydomain.com`)"
- "traefik.http.routers.owntracks.entrypoints=websecure"
- "traefik.http.routers.owntracks.tls.certresolver=cloudflare-ec384"
- "traefik.http.routers.owntracks.tls.domains[0].main=mydomain.com"
- "traefik.http.routers.owntracks.tls.domains[0].sans=*.mydomain.com"
- "traefik.http.services.owntracks.loadbalancer.server.port=8083"
- "traefik.http.middlewares.owntracks-compress.compress=true"
- "traefik.http.routers.owntracks.middlewares=owntracks-compress,owntracks-auth"
- "traefik.http.middlewares.owntracks-auth.basicauth.users=owntracks:$$apr1$$WE6pu5/y$90pvQQXZrTlFRpQGAKb15.
restart: unless-stopped
mosquitto:
image: eclipse-mosquitto
volumes:
- ./mosquitto_data:/mosquitto/data
- ./mosquitto_logs:/mosquitto/logs
- ./mosquitto_config:/mosquitto/config
restart: unless-stoppedVergessen Sie nicht, mydomain.com durch Ihre tatsächliche Domain zu ersetzen!
Sie können jede Zertifikatskonfiguration verwenden. Dieses Beispiel verwendet die DNS-01-Challenge, sodass wir ein Wildcard-Zertifikat für *.mydomain.com erhalten können (das mit anderen Subdomains geteilt werden kann). Wenn Sie keine Wildcard-Zertifikate benötigen, können Sie stattdessen die ALPN-01-Challenge verwenden (HTTP-01 funktioniert auch, aber ich empfehle immer ALPN-01, da es so nahtlos mit Traefik funktioniert).
Erstellen des Basic-Auth-gehassten Passworts
Hier müssen Sie die Basic-Auth-Informationen durch Ihr eigenes Passwort ersetzen! Dies ist ein globales Passwort für die gesamte Owntracks-Instanz.
Führen Sie aus
htpasswd -c /dev/stdout owntracksGeben Sie das Passwort zweimal ein, es wird Folgendes ausgeben
New password:
Re-type new password:
Adding password for user owntracks
owntracks:$apr1$WE6pu5/y$90pvQQXZrTlFRpQGAKb15.Sie müssen jedes $ durch $$ ersetzen! Vergessen Sie diesen Schritt nicht!
Mosquitto initialisieren
Mosquitto benötigt auch ein zufälliges Passwort, das in .env gespeichert wird. In dieser Konfiguration exponieren wir Mosquitto jedoch nicht.
Erstellen Sie init.sh, das hauptsächlich Mosquitto initialisiert.
#!/bin/sh
# Init script for Owntracks with Docker setup
mkdir -p mosquitto_config
cat << 'EOF' > mosquitto_config/mosquitto.conf
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/logs/mosquitto.log
listener 1883
## Authentication ##
# allow_anonymous false
password_file /mosquitto/config/mosquitto.passwd
EOF
# Generate random MQTT password
echo "MOSQUITTO_OTRECODER_PASSWORD=$(pwgen 30 1)" > .env
# Initialize Mosquitto password file
source .env
echo "${MOSQUITTO_OTRECODER_PASSWORD}"
docker-compose run mosquitto mosquitto_passwd -b -c /mosquitto/config/mosquitto.passwd otrecorder ${MOSQUITTO_OTRECODER_PASSWORD}
docker-compose run mosquitto chown root:root /mosquitto/config/mosquitto.passwd /mosquitto/config/mosquitto.conf
docker-compose run mosquitto chmod 0700 /mosquitto/config/mosquitto.conf
mkdir -p mosquitto_config
cat << 'EOF' > mosquitto_config/mosquitto.conf
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/logs/mosquitto.log
listener 1883
## Authentication ##
# allow_anonymous false
password_file /mosquitto/config/mosquitto.passwd
EOF
# Generate random MQTT password
echo "MOSQUITTO_OTRECODER_PASSWORD=$(pwgen 30 1)" > .env
# Initialize Mosquitto password file
source .env
echo "${MOSQUITTO_OTRECODER_PASSWORD}"
docker-compose run mosquitto mosquitto_passwd -b -c /mosquitto/config/mosquitto.passwd otrecorder ${MOSQUITTO_OTRECODER_PASSWORD}
docker-compose run mosquitto chown root:root /mosquitto/config/mosquitto.passwd /mosquitto/config/mosquitto.conf
docker-compose run mosquitto chmod 0700 /mosquitto/config/mosquitto.confFühren Sie nun init.sh aus:
bash init.shAutostart einrichten
Nun empfehle ich, den systemd-basierten Autostart für Ihre Instanz einzurichten. Erstellen Sie einen systemd-Service für Ihr docker-compose-Projekt in 10 Sekunden :
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdinDies wird Owntracks auch sofort starten.
App-Setup
In der App müssen Sie diese im HTTP-Modus konfigurieren und eine URL wie
https://owntracks.my-domain.com/pubsetzen.
Vergessen Sie das /pub am Ende nicht!
Setzen Sie Benutzername und Passwort auf owntracks und das Passwort, das Sie zuvor mit htpasswd eingerichtet haben.
Für den Browser-Zugriff können Sie https://owntracks.my-domain.com/ verwenden, um auf das Web-Interface zuzugreifen. Als Benutzer verwenden Sie owntracks und das Passwort, das Sie zuvor mit htpasswd eingerichtet haben.