######################################## ######### INSTALLATION GEOTREK ######### ######################################## Janvier 2018 ------------ Versions utilisées : - Geotrek-admin 2.16.0 - Geotrek-rando 2.18.0 Voir exemple d'installation bien plus complet de Geotrek-Jamaica : http://geotrek.ecrins-parcnational.fr/articles/en/2018-02-geotrek-jamaica.html Ainsi que la documentation officielle d'installation : https://geotrek.readthedocs.io ======= SERVEUR ======= Nécessite Ubuntu 14.04 ou 16.04 (sur un serveur ou en local). Serveur utilisé : VPS SSD chez OVH (3.99€/mois) en Ubuntu 16.04 Rapidement arrivé à saturation donc on est passé à un SSD 2 après intégration des tronçons. Sécurisation serveur : Voir https://docs.ovh.com/fr/vps/conseils-securisation-vps/ Commencer par se connecter avec l'utilisateur ROOT fourni. Mise à jour de sécurité : apt-get dist-upgrade On a aussi modifié le port SSH. Création d'un utilisateur (mylinuxuser à nommer comme vous souhaitez) dans le groupe sudo pour ne pas travailler en root : adduser mylinuxuser sudo usermod -a -G sudo mylinuxuser On désactive la connection SSH avec root. On se déconnecte et on travaillera désormais avec l'utilisateur mylinuxuser. On pourrait aller plus loin en ajoutant des règles au pare-feu. ========================== INSTALLATION GEOTREK-ADMIN ========================== Voir DOC https://geotrek.readthedocs.io cd /home/mylinuxuser wget https://github.com/GeotrekCE/Geotrek-admin/archive/2.16.0.zip sudo apt-get install unzip unzip Geotrek-admin-2.16.0.zip Renommer dossier Geotrek-admin-2.16.0 en Geotrek-admin cd Geotrek-admin ./install.sh Pendant l'installation, vous devrez renseigner le fichier de configuration settings.ini. (Nom de la structure par défaut, base de données, étendue du territoire...). Pensez à changer le mot de passe de la BDD, voir son nom et son utilisateur, pour plus de sécurité. Par contre il est conseillé de laisser la BDD sur le même serveur (localhost), sinon l'installation de celle-ci doit être fait à part. sudo reboot >> Geotrek-admin (application et BDD) est installé et accessible à la racine de votre serveur web (http://myserver). =================== INTEGRATION DONNEES =================== Voir DOC https://geotrek.readthedocs.io/en/master/loading-data.html On va intégrer les données de base, notamment les valeurs des listes déroulantes par défaut et un utilisateur admin/admin cd Geotrek-admin make load_data bin/django createsuperuser --username=admin --email=admin@corp.com >> On peut ouvrir les connexions PostgreSQL, uniquement accessible par le serveur en local par défaut. Cela permet d'accéder à la BDD depuis votre PC par exemple, avec QGIS ou PgAdmin. Attention, si vous ouvrez les connexions totalement, la sécurité de votre BDD est réduite. Il est conseillé de limiter l'accès à la BDD à certaines IP uniquement. Voir DOC https://github.com/PnEcrins/GeoNature-atlas/blob/master/docs/installation.rst#acc%C3%A9der-%C3%A0-votre-bdd sudo nano /etc/postgresql/9.5/main/postgresql.conf listen_adresses = * Puis on autorise toutes les IP dans pg_hba.conf, ou seulement certaines. On a téléchargé des DEM (MNT) à 90m sur http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp L'IGN propose un MNT plus précis en France (25m). Depuis 2017 le Japon propose aussi un MNT à 30m sur l'ensemble du monde : https://github.com/PnX-SI/GeoNature/issues/235#issuecomment-327423268 Pour fusionner plusieurs MNT, il faut utiliser Raster/Divers/Fusionner. Bien mettre une valeur nulle (-9999). Voir http://www.geoinformations.developpement-durable.gouv.fr/fichier/pdf/extraction_de_raster_avec_gdal_qgis_cle2adba1.pdf?arg=177829940&cle=ffaca3bd1744306c8f24588990e405d81f6774b6&file=pdf%2Fextraction_de_raster_avec_gdal_qgis_cle2adba1.pdf >> LOADDEM ne fonctionne pas car raster2pgsql n'est pas disponible. Il faut installer PostGIS, bizarre car il est déjà installé, mais ça fonctionne... sudo apt install postgis cd /home/mylinuxuser/Geotrek-admin bin/django loaddem ../MNT.tif On a téléchargé les limites de pays et de leurs régions sur http://www.gadm.org/ (On aurait aussi pu les télécharger sur OSM). On récupère les SHP des pays et régions et on les intègre dans les communes et secteurs avec QGIS. Au préalable on a renommé les colonnes souhaitées pour avoir les mêmes noms de champs que dans les tables de la BDD de Geotrek. On nettoie les traces GPS fournies avec QGIS (multiple TO simple, 2D, fusions, superposition). On les copie/colle dans geotrek.l_t_troncon avec QGIS. Avant d'enregistrer les tronçons, il faut renseigner la colonne "structure" avec un identifiant de structure. Pour en savoir plus, voir https://makina-corpus.com/blog/metier/2014/importer-une-couche-de-troncons-dans-geotrek On créé quelques randos (itinérances et étapes - https://geotrek.readthedocs.io/en/master/user-manual.html#edition-d-un-objet) et POIs depuis Geotrek-admin. TODO : - Modifier les types de POI et autres bibliothèques depuis l'Adminsite. - Intégrer un MNT complet. - Ajouter quelques pages statiques de présentation (https://geotrek.readthedocs.io/en/master/user-manual.html#pages-statiques). - Mettre en place des imports automatiques des contenus touristiques depuis un SIT (https://geotrek.readthedocs.io/en/master/import.html). ======================= SYNCHRONISATION DONNEES ======================= Voir DOC https://geotrek.readthedocs.io/en/master/synchronization.html cd /home/mylinuxuser/Geotrek-admin ./bin/django sync_rando -v2 -t /home/mylinuxuser/datas/ ========================== INSTALLATION GEOTREK-RANDO ========================== Voir DOC https://github.com/GeotrekCE/Geotrek-rando curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install nodejs build-essential cd /home/mylinuxuser wget https://github.com/GeotrekCE/Geotrek-rando/archive/2.18.0.zip Renommer le répertoire Geotrek-rando-2.18.0 en Geotrek-rando cd Geotrek-rando npm install npm run dist ======================== CONF NGINX GEOTREK-RANDO ======================== Voir DOC https://github.com/GeotrekCE/Geotrek-rando/blob/master/docs/http-server.md On a installé Geotrek-admin et Geotrek-rando sur le même serveur. Geotrek-admin étant configuré pour être accessible à la racine du serveur, on a besoin d'une autre URL pour Geotrek-rando. Différentes méthodes sont possibles. Ici on a gardé Geotrek-admin accessible à la racine du serveur, sur son IP et on a créé un domaine pour accéder à Geotrek-rando. sudo nano /etc/nginx/sites-available/geotrek-rando Faire la conf NGINX (mylinuxuser et myurl à remplacer) : server { listen 80; server_name myurl; root /home/mylinuxuser/Geotrek-rando/public; if_modified_since before; expires 1h; gzip on; gzip_types text/text text/html text/plain text/xml text/css application/x-javascript application/javascript application/json; include mime.types; types { application/json geojson; application/gpx+xml gpx; application/vnd.google-earth.kmz kmz; application/x-font-ttf ttf; } location ~ ^/(api|media|static|zip|meta)/ { root /home/mylinuxuser/datas/; } location / { try_files $uri @angular; } location @angular { if ($http_user_agent ~* "googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") { rewrite .* /meta/fr$request_uri/index.html last; } try_files /index.html =404; } } Activer la conf NGINX du Geotrek-rando et redémarrer NGINX pour qu'elle soit prise en compte : sudo ln -s /etc/nginx/sites-available/geotrek-rando /etc/nginx/sites-enabled/geotrek-rando sudo service nginx restart ================== CONF GEOTREK-RANDO ================== Voir DOC https://github.com/GeotrekCE/Geotrek-rando/blob/master/docs/settings.md Fichier Geotrek-rando/custom/settings.custom.json à compléter. Exemple à adapter : { "PLATFORM_ID": "geotrek-rando-xxxxxx", "API_URL": "", "BACKOFFICE_URL": "http://my-geotrek-admin-ip", "ENABLE_HTML_MODE": true, "LOGO_FILE": "logo-xxxxxxx.png", "FAVICON":{ "png":"favicon-xxxx.png" }, "DEFAULT_LANGUAGE": "en", "ENABLED_LANGUAGES": ["fr", "en"], "SHOW_HOME": false, "DEFAULT_ACTIVE_CATEGORIES": ["T"], "PERMANENT_TILELAYERS":[ { "LAYER_URL": "http://a.tile.opentopomap.org/{z}/{x}/{y}.png", "OPTIONS": { "attribution": "Map data: (c) OpenStreetMap contributors, SRTM | Map style: (c) OpenTopoMap (CC-BY-SA)" } } ], "ORTHOPHOTO_TILELAYERS_NAME": "Photo", "ORTHOPHOTO_TILELAYERS": { "LAYER_URL": "https://api.mapbox.com/v4/mapbox.satellite/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoiY2FtaWxsZW1vbmNoaWNvdXJ0IiwiYSI6ImNpdXNjeGJ1eTAwN3EyenF1a3cwdjRjZ28ifQ.N7fgtsamWADrM2QmOIXnrw", "OPTIONS": { "id": "satellite", "attribution": "(c) MapBox" } }, "TREKS_TO_GEOJSON_ZOOM_LEVEL":10, "NEAR_ELEMENTS_CATEGORIES": false, "LEAFLET_CONF": { "CENTER_LATITUDE": 50, "CENTER_LONGITUDE": -2, "DEFAULT_ZOOM": 6, "DEFAULT_MIN_ZOOM": 4, "DEFAULT_MAX_ZOOM": 17 }, "GOOGLE_ANALYTICS_ID":"UA-XXXXXXXXXXX", "FILTERS_DEFAULT_OPEN": true, "FILTER_BY_VIEWPORT_DEFAULT": true, "DISPLAY_ASIDES_COUNTERS": true, "POI_EXPANDED": true, "SHOW_ARROWS_ON_ROUTE": true, "ENABLE_STRUCTURE_FILTERING": false } Après chaque modification du fichier, relancer : npm run dist Ajouter logo, favicon. Customiser CSS Créer une page d'accueil HTML (en utilisant celles d'autres Geotrek-rando - http://geotrek.ecrins-parcnational.fr/ressources/technique/custom/)