- Python 3.6 + pipenv
- PostgreSQL 10 + PostGIS 2.4.4
- Git
- Apache + mod_wsgi
- NodeJs with Microsoft Build Tools (option of NodeJs installer)
- Cloner le dépôt
git clone <REPO_LINK>
cd perturbtrafic
-
Configurer le fichier development.ini. Attention à ne pas simplement copier-coller un production.ini car les options de debug y sont désactivées. Toutefois les sections ldap, mail et dossiers XML peuvent être copiées telles quelles. Il est conseillé d'avoir une base de données de developpement. Pour cela, un dump et retore peuvent être faits depuis pgAdmin. Des dumps sont faits chaque jour de la base de prod (pas la prepub!) et disponibles sur le disque
d:\postgres_backups
du serveur. -
Installer le webservice
cd back
$env:PIPENV_VENV_IN_PROJECT="true"
pipenv install
pipenv shell
pip install -e .
- Tester si le service fonctionne
pserve --reload development.ini
Cette commande devrait répondre Serving on http://<votre_poste.ne.ch:####>
. Vous pouvez tester la connexion à la base de données en rajoutant /perturbtrafic/api/types_evenements
devant cette url sur un navigateur dont la réponse ressemble à ça:
[
{
"id": 1,
"description": "Autre"
},
{
"id": 2,
"description": "Chantier"
}
La debug toolbar de pyramid est accessible à l'adresse /_debug_toolbar/
- Aller dans
front/src/assets/config/config.json
et remplacer l'adresse du wsPath pour la faire pointer sur votre pserve. Par exemple:
"wsPath": "http://localhost:6543/perturbtrafic/api/",
- Ouvrir un nouveau shell à la racine du projet (laisser l'autre ouvert avec pserve) puis:
cd front
npm install
npm run start
- Clone this repository. Replace
<REPO_LINK>
with your origin remote and<TAG_NAME>
with a specific tagged version.
git clone <REPO_LINK>
git fetch --all --tags --prune
git checkout tags/<TAG_NAME> -b <TAG_NAME>
cd perturbtrafic
cd apache
cp app.wsgi.sample app.wsgi
cp wsgi.conf.sample wsgi.conf
cd ..
-
In the folder
apache
, editapp.wsgi
andwsgi.conf
with the paths where your api is located. -
Install the api
cd back
$env:PIPENV_VENV_IN_PROJECT="true"
pipenv install
pipenv shell
pip install -e .
cp production.ini.sample production.ini
-
Configure the api with
production.ini
file. -
You can test your app by serving it through pserve without errors
pserve production.ini
If you have errors check troubleshooting section.
- Kill pserve with CTRL+C and go back to the root of your app
cd ..
- Check if it runs with Apache
mod_wsgi
must be installed. Edit your httpd.conf
file to include the app .conf files like this:
Include /path/to/your/apache/folder/in/app/*.conf
Restart apache and check this url: http://localhost/perturbtrafic/api/types_evenements
It should answer a JSON that looks like this:
[
{
"id": 1,
"description": "Autre"
},
{
"id": 2,
"description": "Chantier"
}
- Build your front-end with npm
cd front
npm install
npm run build
cp .htaccess dist\PerturbTrafic\.htaccess
cd ..
If you are unable to run these steps on servers because of Firewall limitations which avoid access to aws URLs, then build the front on your computer and copy the dist folder.
-
Make sure your Apache has the right path in
DocumentRoot
parameter. It should link to thedist/PerturbTrafic
folder newly created by the build. -
Edit
dist/PerturbTrafic/assets/config/config.json
file and set the right url to the api back-end -
Restart Apache.
- Install
requests
system wide with pip:
pip install requests
-
Change your api url inside both files in
/scripts
folder -
Create a scheduled task that runs both files.
-
Run Active Directory once by navigating to /mise_a_jours_groupes_ad
If this error shows up:
configparser.MissingSectionHeaderError: File contains no section headers.
It means something is wrong with encoding. Check either production.ini
or setup.py
and change it's encoding to UTF-8
without BOM.