Commit ab661e6e authored by rg's avatar rg

Améliorations.

parent 1e81a025
......@@ -32,6 +32,7 @@ On considerera que :
- le domaine mapsft1.domain.tld pointe le premier serveur de tuiles
- le domaine mapsft2.domain.tld pointe le deuxième serveur de tuiles
- docker et docker-compose sont installés (voir annexes plus bas)
- nous disposons d'une carte de la planète au format `.mbtiles`
Et on considèrera que le projet git est cloné :
```
......@@ -45,19 +46,19 @@ Création d'abord d'un .env :
```
SSL=letsencrypt
USE_CACHE=true
MAPS_TOKEN=0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe
MAPS_TOKEN=0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe # Valeur pour exemple à modifier pour un autre hash aléatoire en production
BALANCER_IPLIST=mapsft1.domain.tld mapsft2.domain.tld
```
Puis copie d'une carte de la planete Terre dans `data/` et démarrage du conteneur : (voir plus bas comment fabriquer une carte)
```
tuileslb$> cp planet.mbtiles data/
tuileslb$> docker-compse up -d --build
tuileslb$> docker-compose up -d --build
```
## Premier serveur de tuiles
Création d'abord d'un .env : (utilisation du token du load balancer)
Création d'abord d'un .env : (utilisation du token du load balancer qui indique de télécharger la map sur le load balancer)
```
URL_DOWNLOADMAP=https://maps.domain.tld/0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe/planet.mbtiles
```
......@@ -76,7 +77,7 @@ URL_DOWNLOADMAP=https://maps.domain.tld/0bf68e49728c59e806807d4bf9082b53f94a6c09
Puis démarrage du conteneur :
```
tuileslb$> docker-compse up -d --build
tuileslb$> docker-compose up -d --build
```
# Paramétrage
......@@ -91,23 +92,25 @@ HTTP_PORTS | port https
BALANCER_IPLIST | liste des IP de serveurs de tuiles (ce qui active le repartiteur) | 127.0.0.1 |
SSL | true\|false\|letsencrypt | false |
SSL_LETSENCRYPTMAIL | mail de référence letsencrypt | root@$DOMAIN |
MAPS_TOKEN | token permettant à d'autres serveurs de télécharger la map | (valeur aléatoire) |
MAPS_TOKEN | token permettant à d'autres serveurs de télécharger la map | (sha256 aléatoire) |
USE_CACHE | true (=500m)\|false\|valeur (ex: 1000m): active un cache nginx | false |
USE_MAP | nom du fichiier de la map (.mbtiles) dans /data | (vide) |
URL_DOWNLOADMAP | URL de la map a télécharger et utiliser | (vide) |
***Note: USE_MAP n'est utile que si le répertoire `data/` contient plusieurs cartes. Il indique laquelle utiliser***
## Différentes configurations et parametrage
***Exemple de fichier `.env` en mode répartiteur de charge :***
```
MAPS_TOKEN=0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe
BALANCER_IPLIST=mapsft1.domain.tld:81 mapsft2.domain.tld mapsft3.domain.tld
BALANCER_IPLIST=mapsft1.domain.tld:81 mapsft2.domain.tld mapsft3.domain.tld # Répartition de la charge sur 3 autres serveurs
```
***Dans cet exemple, le conteneur sera lancé en mode repartiteur de charge vers 3 autres serveurs, dont un ouvert sur port 81***
***Autre exemple avec ssl de fichier `.env` en mode répartiteur de charge :***
***Autre exemple de fichier `.env` en mode répartiteur de charge, avec ssl :***
```
SSL=letsencrypt
HTTP_PORT=80
......@@ -117,7 +120,9 @@ MAPS_TOKEN=0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe
BALANCER_IPLIST=mapsft1.domain.tld:81 mapsft2.domain.tld mapsft3.domain.tld
USE_CACHE=1000m # Spécifie un cache de requete de 1 go
```
***Dans cet exemple, le répartiteur de charge va chercher un certificat ssl letsencrypt***
***Dans cet exemple, le répartiteur de charge va chercher un certificat ssl letsencrypt.***
***Note: DOMAIN n'est utile qu'avec letsencrypt, pour négocier le certificat de ce domaine.***
Le répartiteur de charge peut se servir lui-même en ajoutant l'ip 127.0.0.1, auquel cas il devient lui aussi serveur de tuiles.
......@@ -126,9 +131,9 @@ Le répartiteur de charge peut se servir lui-même en ajoutant l'ip 127.0.0.1, a
```
DOMAIN=maps.domain.tld
MAPS_TOKEN=0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe
BALANCER_IPLIST=127.0.0.1 mapsft1.domain.tld:81 mapsft2.domain.tld mapsft3.domain.tld
BALANCER_IPLIST=127.0.0.1 mapsft1.domain.tld mapsft2.domain.tld mapsft3.domain.tld
```
***Ici MAPS_TOKEN permet à un serveur de tuile de télécharger une map sur ce serveur***
***Ici MAPS_TOKEN permet au autres erveurs de tuiles de télécharger une map sur ce serveur s'ils le veulent.***
## Configuration en serveur de tuiles
......@@ -136,19 +141,21 @@ BALANCER_IPLIST=127.0.0.1 mapsft1.domain.tld:81 mapsft2.domain.tld mapsft3.domai
Les serveurs de tuiles servis par le répartiteur de charge peuvent être montés avec le même projet.
L'absence d'un fichier `.env` montera un simple serveur de tuiles. Toutefois il est conseillé de lui fournir quelques paramètres.
Exemple de fichier `.env` pour un noeud serveur de tuiles servi par le répartiteur de charge :
Exemple de fichier `.env` pour un noeud serveur de tuiles alimenté par le répartiteur de charge :
```
URL_DOWNLOADMAP=https://maps.domain.tld/0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe/planet.mbtiles
```
***Dans cet exemple, le conteneur va tenter de télécharger une map sur le serveur de répartition avant de lancer le serveur de tuiles***
***Dans cet exemple, le conteneur va tenter de télécharger une map `planet.mbtiles` sur le serveur de répartition avant de lancer le serveur de tuiles***
# Informations sur le fonctionnement
Un serveur de tuiles peut donc télécharger une carte au format `.mbtiles` via un serveur commun grâce à l'utilisation de `MAPS_TOKEN`. Ce paramètre doit rester rester secret et éviter d'utiliser des caractères alphanumériques uniquement.
Un serveur de tuiles peut donc télécharger une carte au format `.mbtiles` via un serveur commun grâce à l'emploi de `MAPS_TOKEN`. Ce paramètre doit rester secret et éviter d'utiliser des caractères alphanumériques uniquement. Si possible, générer plutôt un has sha256.
Si possible utiliser pour `MAPS_TOKEN` un hash sha256.
Le paramètre `URL_DOWNLOADMAP` peut être utiliser pour spécifier à un noeud de se synchnoniser avec une autre carte. (téléchargement)
La carte téléchargée par chaque noeud est d'abord comparée en taille avec celle présente sur le disque. Si la carte est absente, ou différente en taille, un nouveau téléchargement se lance avant de rendre disponible le service de tuiles.
La carte téléchargée par chaque noeud est d'abord comparée en taille avec celle présente sur le disque. Si la carte est absente localement, ou différente en taille, un nouveau téléchargement se lance avant de rendre disponible le service de tuiles.
Les cartes téléchargées sont stockées dans le répertoire `data/`. Pour réinitialiser les cartes, il faut effacer le contenu de ce répertoire.
......@@ -172,7 +179,7 @@ openmaptiles$> ./quickstart.sh france # Calcule la carte de france sur la base d
```
Un fichier `.env` peut être paramétré pour spécifier des profondeurs de zoom ainsi que d'autres infos.
***La carte générée est accessible dans `./data/` au format `.mbtiles`. Le fichier peut être copié sur le serveur servant de dépôt (voir plus haut).***
***La carte générée est accessible dans le répertoire `./data/` de ce projet, au format `.mbtiles`. Le fichier peut être copié sur le serveur servant de dépôt (voir plus haut).***
# Annexes
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment