# Boussole PLUSS ## Contribuer à la Boussole Le projet actuel est prévu pour travailler sur le thème de la production locale. Cet outil peut servir à évaluer des collectifs sur d’autres thématiques. Vous êtes encouragé à y réfléchir et à y travailler. La licence AGPL version 3 prévoit un partage des améliorations que vous porterez à l’outil. Si vous désirez faire un fork de l’outil, contactez-nous : contact@apes-hdf.org ## Installation Le projet backend contient la partie backend de la Boussole PLUSS. Le projet frontend, le site web communiquant avec le backend. Copier/coller le fichier `.env_template` en `.env` et modifier les variables d'environnements. En utilisant docker-compose : `docker-compose build` en modifiant au préalable l'argument BACKEND_BASE_URL du fichier docker-compose.yml pour spécifier l'URL sur laquelle pointera le backend. Au premier lancement, il faut initialiser la base de donnée. Pour ce faire : - `docker-compose up -d database` - `docker exec database psql -U postgres -c "CREATE DATABASE pluss_db ENCODING UTF8" postgres` En suite, les autres services peuvent être lancés avec `docker-compose up -d`. La base de données sera remplie automatiquement par le service backend. Le site est accessible via le service `frontend`, dans cet exemple du docker-compose.yml, depuis http://localhost:8190. Voici un exemple de configuration Nginx compatible avec le docker-compose de ce projet (URL_EXTERNE est à remplacer par l'URL publique) : ``` upstream springboot { server 127.0.0.1:8191; } server { server_name URL_EXTERNE; location / { proxy_pass http://127.0.0.1:8190; } location /api { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-NginX-Proxy true; rewrite ^/api/(.*)$ /$1 break; proxy_pass http://springboot; } error_log /var/log/nginx/pluss_error.log; listen [::]:80; listen 80; } ``` Ceci est un exemple à ne pas utiliser sur un environnement de production.