-
Bastien DUMONT authoredBastien DUMONT authored
0-getting-started.mdx 4.66 KiB
---
title: Getting started
---
# Getting started with Ecolyo Agent
This section will allow you to launch a proper local environment for Ecolyo-Agent
:::info
If you are a new developer tasked to work on this project, check the [setup your environment](/docs/getting-started/setup.md).
:::
##  Repositories
This project is split between a backend and frontend, each project has its own repository.
[Ecolyo-Agent Client repository](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-client)
[Ecolyo-Agent Server repository](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-server)
## Local usage
### Ecolyo Agent - Server
Here will be listed all steps to run Ecolyo Agent backend locally for development purposes.
#### Config folder
If you run the backend for the first time you need to setup some folders.
At the repository root, run `mkdir -p mnt mnt/configs`
The `mnt/configs` folder will contain a `tokenskey.json` file, generated when the server starts for the first time.
With assets imported (see [this page](./handle_assets.md#local-setup) for more information) the `mnt` folder should look like this :
```bash
mnt
└───configs
│ tokenskey.json
└───image-lib
│ ...all email assets
└───ecogesture
│ ...all ecogesture images
```
#### Launch database
The backend needs a database to store data, to start it, run `docker compose up -d`
This will serve a mySQL database on port `3306` and a phpMyAdmin instance, accessible on http://localhost:8008 (login / password correspond to `DATABASE_USER` and `DATABASE_PASSWORD` variables in the `.env` file) to browse data more easily.
#### Initialize fluid prices
The backend contains prices evolution for each fluids. These prices need to be initialized.
To do so, make sure the database container is up and running and run `./scripts/init-fluidprices.sh`
#### Launch server
:::note
Before launching the application, ensure you've properly filled the `.env` file according to the template. If needed please refer to a team member. The template contains
- `IMAGE_FOLDER`: this variable specify the folder where ecogestures images are located. By default, it should be `mnt/image-lib`.
- `MOCK_OAUTH2`: Set this variable to true while in local, so the OAuth2 dance will be mocked by backend and you will be able to login to your application.
- `USERINFO_URL`: Set this variable to configure the user role
- `http://localhost:8090/admininfo` to log in with admin role
- `http://localhost:8090/animatorinfo` to log in with animator role
:::
Now, you can run the backend with VS Code, check `Run and Debug` tab and click the `Start` icon on `Launch Backoffice Server`.
You can also press the F5 key as a shortcut.
The server is up, you should obtain the following messages in the `Debug Console`:
> --- Server is starting ---
> Token signing key set
> Mock OAuth2 server Listening on: http://localhost:8090
Hot reload could not be set up to work 100% correctly, but you can click the Restart icon (or press Ctrl+Shift+F5) in VS Code after you made some modifications to restart the server.
#### Stop backend
In VS Code, press the Stop icon (or press Shift+F5) to stop backend.
Then run `docker-compose down` to stop database and phpMyAdmin containers
### Ecolyo Agent - Client
#### Launch client
In the frontend repository, you can launch the client with :
```bash
yarn local-up
```
<details>
<summary>for windows users</summary>
<div>
Make sure to comment the 'extra_hosts' lines in the `docker-compose.local`
file. Otherwise, you you won't be able to access your machine's localhost
from the docker container.
</div>
</details>
This command will launch the app from the `docker-compose.local.yml` file, which will launch an Nginx server with a local configuration located in nginx/site.local.conf and start the react app with _yarn start_
:::note Nginx info
The nginx server redirects https requests from front-end to the backend on port 1443.
It has two configuration files :
- `nginx/site.local.conf`, used for local development
- `nginx/site.prod.conf`, used for production
The nginx server needs local ssl certificates in order to run an interact with backend, these certificates are present in the project.
:::
Once the application is started, you can access it at https://localhost
:::tip
This app runs in https, such as the backend, to access it go on https://localhost/
Also make sure you have HTTPS env variable set to true.
**Do not** use the app with the port 3000, you won't be able to login.
:::
#### Stop client
To stop it properly use
```bash
yarn local-down
```