Configuration de Cloudflare
Ce guide explique comment acheter un nom de domaine, configurer Cloudflare pour exposer vos serveurs Traccar et créer le Worker qui réplique les données GPS vers tous les serveurs.
Prérequis
- Un compte Cloudflare actif (gratuit)
- Une carte de crédit pour l'achat du domaine
- Serveurs Traccar déployés et fonctionnels
0. Achat du nom de domaine sur Cloudflare
Cloudflare propose l'enregistrement de domaines au prix coûtant (sans marge), ce qui en fait une option économique.
0.1 Créer un compte Cloudflare
- Aller sur https://dash.cloudflare.com/sign-up
- Créer un compte avec votre email
- Valider l'email de confirmation
0.2 Rechercher et acheter un domaine
- Dans le dashboard, aller dans Domain Registration → Register Domains
- Rechercher le nom de domaine souhaité (ex:
trackteur.cc,montracker.com) - Vérifier la disponibilité et le prix
.com: ~$10/an.cc: ~$10/an.io: ~$35/an- Cliquer sur Purchase
- Remplir les informations WHOIS (contact)
- Cloudflare masque automatiquement vos infos personnelles (WHOIS privacy gratuit)
- Entrer les informations de paiement
- Confirmer l'achat
0.3 Vérifier la configuration DNS
Après l'achat, le domaine est automatiquement configuré avec les DNS Cloudflare:
- Aller dans Websites → Sélectionner votre domaine
- Aller dans DNS → Records
- Vous devriez voir les nameservers Cloudflare actifs
0.4 Activer les fonctionnalités gratuites
Dans les paramètres du domaine, activez:
- SSL/TLS → Mode Full (strict)
- Security → Bot Fight Mode (optionnel)
- Speed → Auto Minify (optionnel)
Architecture
1. Créer les tunnels Cloudflare (pour chaque serveur)
Répétez ces étapes pour chaque serveur Traccar.
1.1 Créer le fichier .env
Le service cloudflared a besoin d'un token de tunnel pour s'authentifier.
touch .env
Ajoutez votre token de tunnel :
TUNNEL_TOKEN=<VOTRE_TOKEN_DE_TUNNEL_CLOUDFLARE>
1.2 Créer le tunnel sur Cloudflare
- Sur le dashboard Cloudflare, vérifiez que votre domaine est géré par Cloudflare
- Rendez-vous dans Zero Trust → Networks → Tunnels
- Cliquez sur Add a tunnel / Create a tunnel
- Choisissez Docker comme méthode d'installation
- Copiez le token fourni et collez-le dans votre fichier
.env - Dans Public Hostnames, créez un enregistrement :
- Subdomain :
serveur1(ouserveur2,serveur3, etc.) - Domain : Votre domaine
- Service :
HTTPethttp://traccar:8082 - Enregistrez le tunnel
1.3 Démarrer les services
sudo docker-compose up -d
2. Créer le Worker Cloudflare
Le Worker reçoit les données GPS du traceur et les réplique vers tous les serveurs Traccar simultanément.
2.1 Créer le Worker
- Sur le dashboard Cloudflare, allez dans Workers et Pages
- Cliquez sur Create Worker
- Donnez un nom au Worker (ex:
traccar-replicator) - Cliquez sur Deploy
2.2 Configurer le code du Worker
- Cliquez sur Edit code
- Remplacez le contenu par :
export default {
async fetch(request, env, ctx) {
const targets = [
env.TRACCAR_A,
env.TRACCAR_B,
env.TRACCAR_C,
];
const url = new URL(request.url);
const method = request.method;
const queryString = url.search; // garde ?id=...&lat=...
const body = await request.arrayBuffer();
const headers = new Headers(request.headers);
headers.delete("Host");
headers.delete("Content-Length");
const promises = targets.map(async (baseUrl) => {
if (!baseUrl) {
return { target: baseUrl, ok: false, error: "missing target" };
}
const targetUrl = baseUrl + queryString;
try {
const resp = await fetch(targetUrl, {
method,
headers,
body: method === "GET" ? undefined : body,
});
return { target: targetUrl, ok: resp.ok, status: resp.status };
} catch (e) {
return { target: targetUrl, ok: false, error: String(e) };
}
});
ctx.waitUntil(
(async () => {
const results = await Promise.all(promises);
console.log("Traccar fan-out results", JSON.stringify(results));
})()
);
return new Response("OK\n", { status: 200, headers: { "Content-Type": "text/plain" } });
},
};
- Cliquez sur Save and Deploy
2.3 Configurer les variables d'environnement
- Allez dans l'onglet Settings du Worker
- Dans Variables and Secrets, ajoutez les variables suivantes :
| Type | Nom | Valeur |
|---|---|---|
| Text | TRACCAR_A |
https://serveur1.votredomaine.com |
| Text | TRACCAR_B |
https://serveur2.votredomaine.com |
| Text | TRACCAR_C |
https://serveur3.votredomaine.com |
- Cliquez sur Save
2.4 Configurer le domaine personnalisé
- Allez dans l'onglet Domains & Routes du Worker
- Cliquez sur Add → Custom Domain
- Entrez le sous-domaine pour le point d'entrée GPS (ex:
gps.votredomaine.com) - Cliquez sur Add Domain
3. Configurer le traceur GPS
Dans la configuration du traceur (fichier config.h), utilisez l'URL du Worker :
#define TRACCAR_SERVER_URL "https://gps.votredomaine.com"
Le traceur enverra ses données au Worker, qui les répliquera automatiquement vers tous les serveurs Traccar.
Notes utiles
- Le Worker répond toujours
OKau traceur, même si certains serveurs sont indisponibles - Les logs du Worker (accessibles dans Observability) montrent le résultat de chaque réplication
- Vous pouvez ajouter ou retirer des serveurs en modifiant les variables d'environnement