Wie man Owntracks mit Traefik-Reverse-Proxy (HTTP-Modus) in nur 3 Minuten einrichtet

English Deutsch

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

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-stopped

Vergessen 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

create_htpasswd.sh
htpasswd -c /dev/stdout owntracks

Geben Sie das Passwort zweimal ein, es wird Folgendes ausgeben

htpasswd_output.txt
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.

init.sh
#!/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.conf

Führen Sie nun init.sh aus:

call_init.sh
bash init.sh

Autostart 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 :

setup_systemd_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin

Dies wird Owntracks auch sofort starten.

App-Setup

In der App müssen Sie diese im HTTP-Modus konfigurieren und eine URL wie

owntracks_url.txt
https://owntracks.my-domain.com/pub

setzen.

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.


Check out similar posts by category: Docker