biommap/README.md

257 lines
7.6 KiB
Markdown
Raw Normal View History

2021-06-02 09:45:30 +00:00
Geonature - Biommap
===================
2021-05-22 19:19:01 +00:00
L'instance Geonature-Citizen de Champs-Libres.
2021-06-02 09:45:30 +00:00
# Multi-container instructions
2021-06-02 13:11:46 +00:00
## Installation
2021-06-02 09:45:30 +00:00
Clone this repo
```
$ git clone git@gitea.champs-libres.be:champs-libres/biommap.git
```
Get the code (using git-submodule) for : citizen & taxhub.
```
$ git submodule update --init --recursive
```
### DB init
Creation of the table `referentielsdb` that will be used for storing data.
```
$ docker-compose up -d db
$ docker-compose exec db createdb -U postgres referentielsdb
$ docker-compose exec db psql -U postgres -d referentielsdb -c "CREATE SCHEMA taxonomie"
$ docker-compose exec db psql -d -U postgres -d referentielsdb -c "CREATE EXTENSION postgis"
```
2021-06-02 12:33:06 +00:00
### Build the other containers
```
$ docker-compose up
```
At this stage, you still have to install Taxhub and compile the front to see the app running!
2021-06-02 13:11:46 +00:00
### Compile the front
2021-06-02 12:33:06 +00:00
2021-06-02 13:11:46 +00:00
```
$ docker-compose run --rm citizen-front npm install
$ docker-compose run --rm citizen-front npm run build:i18n-ssr
```
### Taxhub installation
2021-06-02 09:45:30 +00:00
```
$ docker-compose run taxhub bash install_db.sh
$ docker-compose up -d taxhub
```
#### Compilation du JS de Taxhub
2021-06-02 09:45:30 +00:00
This is probably not needed as we don't use Taxhub.
##### Mise à jour de npm
2021-06-02 09:45:30 +00:00
```
$ docker-compose exec -u root taxhub bash
taxhub $ npm install npm@latest -g
2021-06-02 09:45:30 +00:00
```
#### Compilation du code
```
$ docker-compose exec taxhub bash
taxhub $ cd static
taxhub $ cp app/constants.js.sample app/constants.js
taxhub $ npm install
```
2023-07-12 07:52:48 +00:00
### nginx
Redirige de 8080 vers autres services :
- 4000 (citizen-front)
- 5002 (citizen-back)
- 5000 (taxon)
### Starting
For starting the application again, you may start the db container first
2021-06-02 09:45:30 +00:00
```
$ docker-compose up -d db
$ docker-compose up
2021-06-02 09:45:30 +00:00
```
2023-07-12 07:52:48 +00:00
### Post-installation
2021-10-12 12:21:15 +00:00
2023-07-12 07:52:48 +00:00
1) Create a user account through the application and/or in the admin
2) Create a project, a "zone géographique", a form, a "type de site", a program (see https://gitea.champs-libres.be/champs-libres/biommap/wiki/Gestion-des-programmes)
2021-06-02 09:45:30 +00:00
## Development
2021-06-02 09:45:30 +00:00
### Inspect db
There is a pgweb container that allows to inspect the db, at <http://localhost:8081/>. Use the following credentials to connect:
* host: db
* un: postgres
* pw: postgres
* dbname: referentielsdb
* port: 5432
* SSL mode: disable
### Front-end development
In order to interactively edit the js code, the frontend folder is mounted into the frontend container. To interactively develop the frontend code and watch the results, enter the running frontend container and launch `ng serve` with the following arguments (see <http://imaginativethinking.ca/heck-get-connection-reset-peer-containerizing-angular-4-application/> for why the host argument is required):
```bash
docker-compose exec citizen-front bash
2024-01-15 18:30:29 +00:00
root@9c0fea7720a0:/home/appuser/citizen/frontend# npm run ng serve -- --host 0.0.0.0 --port 4200 --configuration=fr --poll 2000 --sourceMap=false
```
2021-06-02 09:45:30 +00:00
2022-10-05 15:46:35 +00:00
The app must be looked at **http://localhost:4200/**.
2021-08-24 11:50:17 +00:00
But note that for persistently-built frontend files, you must run:
```bash
docker-compose exec citizen-front bash
root@9c0fea7720a0:/home/appuser/citizen/frontend# npm run build:i18n-ssr
```
2022-09-13 08:02:44 +00:00
or `npm run build:fr` for speeding up.
2021-08-24 11:50:17 +00:00
2022-09-13 08:02:44 +00:00
### Back-end development
When developing the app and serving it with `docker-compose up`, the changes should be automatically loaded (meaning, the app is watching the changes) (Note that this is not the case anymore). However, it is more practical to change the command of the backend container from `command: bash start_gunicorn.sh` to `command: python wsgi.py` in order to have some logs.
You can access a flask shell terminal with the following:
```bash
docker-compose exec citizen-back bash
appuser@5d4fc6b169b2:~/citizen/backend$ flask shell
```
2022-09-13 08:02:44 +00:00
2021-06-15 09:27:33 +00:00
## Deploiement sur un serveur distant
2021-06-02 09:45:30 +00:00
### 0) Si on change le fichier app.config.ts
```bash
scp patches/frontend/src/conf/app.config.ts.dist user@domain.org:/path/to/app.config.ts
```
2021-06-15 09:27:33 +00:00
### 1) Reconstruire l'image front en local
2021-06-02 09:45:30 +00:00
2021-06-15 09:27:33 +00:00
```bash
docker-compose build citizen-front
docker login registry.gitlab.com
docker push registry.gitlab.com/champs-libres/geonature-citizen/front
```
Il est peut-être aussi nécessaire de faire de même pour l'image `media`.
```bash
docker-compose build media
docker login registry.gitlab.com
docker push registry.gitlab.com/champs-libres/geonature-citizen/media
```
2021-06-15 09:27:33 +00:00
### 2) Sur le serveur distant
2021-06-02 09:45:30 +00:00
2021-06-15 09:27:33 +00:00
```bash
docker pull registry.gitlab.com/champs-libres/geonature-citizen/front
# Rebuild of the front
docker-compose run --rm citizen-front npm run build:i18n-ssr
# Restart the containers
docker-compose up -d db
docker-compose up -d
```
2021-06-02 09:45:30 +00:00
2021-09-06 07:09:29 +00:00
### Troubleshooting
2022-09-13 08:02:44 +00:00
Attention, lorsqu'on envoie des images sur le serveur (avec `docker push`), celles-ci peuvent être très volumineuses! Il faut vérifier la capacité du serveur (avec `df`), inspecter les images existantes (`docker image ls`) et supprimer les anciennes images (`docker rmi ...`).
2021-09-06 07:09:29 +00:00
2021-06-02 09:45:30 +00:00
# Single-container instructions (deprecated)
## Installation
2021-05-22 19:19:01 +00:00
$ git submodule update --init --recursive
$ docker-compose up -d
$ docker-compose exec citizen install/install_app.sh
note: les credentials pour accéder au backend se trouvent dans /home/appuser/citizen/config
## Développement
### Mise à jour de GeoNature
2021-05-22 19:19:01 +00:00
Certaines modifications sont faites sur le fork de GeoNature-citizen. Pour télécharger la dernièer version, faire:
$ git submodule foreach git pull git@github.com:Champs-Libres/GeoNature-citizen.git champs-libres
### Remise en route du service
2021-05-22 19:19:01 +00:00
$ docker-compose up -d
$ docker-compose exec citizen sh install/restart.sh
### Documentation
2021-05-22 19:19:01 +00:00
$ make doc
2021-05-31 21:04:52 +00:00
### Builder le front (pour production) (avant de pouvoir faire le docker up)
2021-05-22 19:19:01 +00:00
```
2021-05-31 21:04:52 +00:00
$ docker-compose run --rm citizen-front npm install
$ docker-compose run --rm citizen-front npm run build:i18n-ssr
$ docker-compose up -d citizen-front
```
2021-10-21 07:19:22 +00:00
$ docker-compose exec citizen-front bash
2021-05-22 19:19:01 +00:00
appuser@ab136184159a:~/citizen/$ cd frontend
appuser@ab136184159a:~/citizen/frontend$ npm run ng build -- --configuration=fr --prod
```
### Modifier la config du front end
2021-05-22 19:19:01 +00:00
- faire des modifications dans `patches/frontend/conf`
2021-05-22 19:19:01 +00:00
- Builder le front (cfr commande ci-dessus)
2021-05-25 08:43:11 +00:00
- arrêter le container et remise en route du service (cfr commande ci-desssus)
2021-05-22 19:19:01 +00:00
### Modifier les images (e.g., image de fond)
2021-05-22 19:19:01 +00:00
2021-05-25 08:43:11 +00:00
Certaines images sont servies sur api/media, d'autres dans assets!
#### 1) Les images servies sur api/media/
2021-05-25 08:43:11 +00:00
- changer les fichiers dans `patches/frontend/src/assets/`
2021-05-25 08:43:11 +00:00
- copier ces fichiers dans le dossier `media`:
```
$ docker-compose exec citizen bash
appuser@ab136184159a:~/citizen/$ cp -r frontend/src/assets/* media
```
2021-05-25 08:43:11 +00:00
- arrêter le container et remise en route du service (cfr commande ci-desssus)
#### 2) Les images servies sur assets/
2021-05-25 08:43:11 +00:00
- changer les fichiers dans `patches/frontend/src/assets/`
- Builder le front (cfr commande ci-dessus)
- arrêter le container et remise en route du service (cfr commande ci-desssus)
## Utilisation et configuration
- Interface admin: http://localhost:8080/api/admin
- UN: citizen
- PW: voir le password généré à la fin de l'installation!
### Création d'un programme
La création d'un programme n'est pas encore documentée dans la doc officielle. Remplir les formulaires dans l'admin.
Notes:
- Dans zone géographique, il faut rentrer un fichier geojson. Les limites de la commune de wasseiges peuvent être retrouvées via http://overpass-turbo.eu/s/15qX ou dans `fixtures/geojson/`.
### Création d'un utilisateur
La création d'un utilisateur n'est pas encore documentée dans la doc officielle. On peut s'enregistrer sur le site. Néanmoins, sans serveur SMTP, l'envoi de l'email de confirmation ne fonctionne pas. Il faut alors manuellement **activer** l'utilisateur dans l'admin.