---
title: OwnTracks Frontend
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, front-end, tracking, gps, owntracks]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?q=owntracks+frontend]
---

# OwnTracks Frontend

> Interface web cartographique pour visualiser les positions GPS envoyées par OwnTracks.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://owntracks.org |
| **GitHub** | https://github.com/owntracks/frontend |
| **License** | MIT |
| **Langage principal** | JavaScript (Leaflet) |
| **Étoiles GitHub** | 67 |
| **Dernière MAJ** | 2026 |
| **Catégorie** | [[cat-front-end]] |

## Description
OwnTracks Frontend est une application web monopage qui permet de visualiser en temps réel les positions géographiques émises par les clients mobiles OwnTracks (Android, iOS) ou des scripts compatibles MQTT. C'est le composant "visualisation" de l'écosystème OwnTracks, le backend étant typiquement un broker MQTT (Mosquitto).

L'interface, construite avec Leaflet, affiche les points sur une carte OpenStreetMap, avec historique, traces de parcours, zones de présence (régions, cercles), et un système de filtres multi-utilisateurs. Les utilisateurs sont identifiés par leur `username`/`deviceId` (ex. `velli/phone`) et leurs cartes sont configurables individuellement.

L'application supporte la lecture d'archives depuis des fichiers JSON ou directement via le protocole MQTT. Elle peut fonctionner en mode **public** (carte partagée entre tous les utilisateurs OwnTracks pointant sur la même instance) ou en mode **privé** (carte personnelle). C'est l'outil idéal pour du tracking familial, de la flotte de véhicules, ou des capteurs IoT.

## Installation
### Via Docker (recommandé)
```yaml
services:
  owntracks-frontend:
    image: ghcr.io/owntracks/frontend:latest
    container_name: owntracks-frontend
    restart: unless-stopped
    ports:
      - "8083:8083"
    environment:
      OAUTH_CLIENT_ID: ${OAUTH_CLIENT_ID}
      OAUTH_CLIENT_SECRET: ${OAUTH_CLIENT_SECRET}
      MAP_URL: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png

  mosquitto:
    image: eclipse-mosquitto:2
    container_name: owntracks-mqtt
    restart: unless-stopped
    ports:
      - "1883:1883"
    volumes:
      - ./mosquitto.conf:/mosquitto/config/mosquitto.conf
```

### Installation manuelle
Cloner le dépôt, exécuter `npm install && npm run build`. Servir le dossier `dist/` via un serveur statique (Caddy, Nginx). Configurer ensuite les clients mobiles OwnTracks avec l'URL du broker MQTT et les identifiants.

## Configuration
Le fichier `js/config.js` permet de configurer : les paramètres de connexion MQTT/WebSocket (`localhost:9001` par défaut), la couche de tuiles (OpenStreetMap, Stamen, satellite), la liste des utilisateurs à afficher, le niveau de zoom initial, et l'auto-refresh. L'authentification OAuth2 peut être activée via les variables `OAUTH_*`.

## Alternatives
### Open source
- [[app-traccar]] — Solution de tracking GPS complète (serveur + web + mobile)
- [[app-gpslogger]] — Application Android émettrice
- [[app-meshtastic]] — Communication mesh LoRa avec tracking
- [[app-flightradar24-self-hosted]] — Tracking ADS-B d'avions

### Propriétaires
- Google Timeline — Historique de positions Google, peu contrôlable
- Life360 — Suivi familial, vend les données
- Find My iPhone — Outil Apple fermé

## Sécurité
- **Crucial** : protéger le broker MQTT avec TLS et authentification (utilisateur/mot de passe ou certificat client)
- Ne **jamais** exposer le port 1883 sur Internet ; utiliser un VPN ([[app-wireguard]]) ou WebSocket+TLS
- Activer l'authentification HTTP sur l'interface (via le reverse proxy)
- Configurer une rétention limitée sur le broker pour ne pas stocker indéfiniment les positions
- Le tracking GPS est sensible RGPD : informer les utilisateurs, base légale requise

## Ressources
- Site officiel : https://owntracks.org
- Code source : https://github.com/owntracks/frontend
- Documentation : https://owntracks.org/booklet
- Apps mobiles : https://owntracks.org/app

## Pages Liées
- [[cat-front-end]]
- [[recettes-docker-compose]]
