Commit 573b8edc authored by rg's avatar rg

1ere version.

parent 09efea71
# Tuileslb
Permet de monter une plateforme de serveur de tuiles pilotée par [le load balancer tuileslb](https://git.beta.pole-emploi.fr/open-source/tuiles/tuileslb).
Ce docker ouvre un port 80 et télécharge un fichier de tuiles au format `.mbtiles`.
Ce document traite de :
- L'installation du load balancer de serveur de tuiles
- le parametrage
# Installation
Une fois le projet cloné, le lancement de l'application se réalise simplement à la racine du projet par :
```
$> git clone ssh://git@git.beta.pole-emploi.fr:23/open-source/tuiles/tuileslb.git
$> cd tuileslb
tuileslb$> sudo docker-compose up -d --build
```
Le projet peut se paramétrer au niveau des ports, token... par le biais du fichier ".env" lu par docker-compose.
***Pour l'installation de docker, suivre les prérequis en annexes.***
## Paramétrage
L'application peut se paramétrer par le biais d'un fichier `.env` à créer à la racine du projet :
Paramètre | Options | Defaut |
-----------------------|:-------------------------------------------|:-------------------|
DOMAIN | nom de domaine web | maps.domaine.tld |
HTTP_PORT | port http | 80 |
HTTP_PORTS | port https | 443 |
BALANCER_IPLIST | liste des IP de serveurs de tuiles | 127.0.0.1 |
SSL | true\|false\|letsencrypt | letsencrypt |
SSL_LETSENCRYPTMAIL | mail de référence letsencrypt | root@$DOMAIN |
MAPS_TOKEN | token de l'url de téléchargement de la map | (valeur aléatoire) |
Exemple de fichier .env:
```
HTTP_PORT=81
HTTPS_PORT=443
MAPS_TOKEN=0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe
BALANCER_IPLIST=mapsft1.domain.tld:81 mapsft2.domain.tld mapsft3.domain.tld
```
***Note: le [projet de frontal de tuiles](https://git.beta.pole-emploi.fr/open-source/tuiles/tuilesft) propose un serveur de tuiles capable d'être servi par le loadbalancer.***
***Le loadbalancer peut devenir serveur de dépot commun de la map grâce au paramètre MAPS_TOKEN***
Une fois le fichier `.env` renseigné, relancer l'application par :
```
tuileslb$> sudo docker-compose up -d --build
```
Le serveur ouvrira alors les ports `81` et `443` (dans l'exemple) et proposera une url de téléchargement sur `https://maps.domain.tld/0bf68e49728c59e806807d4bf9082b53f94a6c096ae33434ad4b1e2686b97efe/<fichier>.mbtiles`.
Il repartira la charge sur mapsft1.domain.tld:81, mapsft2.domain.tld et mapsft3.domain.tld.
***Fonctionnement***
> Si SSL est à false, seul le port HTTP_PORT répondra au web.
> Si SSL est à true, alors les fichiers de certificat et clef privés devront être stockés dans loadbalancer/etc/nginx/ssl sous les noms respectifs: `fullchain.pem` et `privkey.pem`.
# Annexes
## Prérequis : installer docker et docker-compose
### Docker pour Ubuntu & Debian
```
$> sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
$> sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$> sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable"
$> sudo apt-get update
$> sudo apt-get install -y docker-ce
$> sudo usermod -aG docker $USER
```
### Docker-compose (nécéssite Python)
```
$> sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$> sudo chmod +x /usr/local/bin/docker-compose`
```
......@@ -8,7 +8,7 @@ services:
context: .
dockerfile: ./dockerfile_loadbalancer
args:
- DOMAIN=${DOMAIN:-domain.tld}
- DOMAIN=${DOMAIN:-maps.domain.tld}
- BALANCER_IPLIST=${BALANCER_IPLIST:-127.0.0.1}
- SSL=${SSL:-letsencrypt}
- SSL_LETSENCRYPTMAIL=${SSL_LETSENCRYPTMAIL:-root@$DOMAIN}
......
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