# 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](../../setup_your_environment.md). ##  Repositories This project is split between a backend and frontend, each project has its own repository. [Ecolyo-Agent front-end gitlab repository](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-client) [Ecolyo-Agent backend gitlab repository](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-server) ## Local usage ### Installation of the project To install required node modules, open a terminal on the root folder of the backoffice-client project and type the following command: ```sh yarn install ``` Before launching the application, ensure you've properly filled the `.env` file according to the template. If needed please refer to a team member. In order to launch the project in local with the backend working launch the following command ```bash yarn local-up ``` This command will launch the app from the _docker-compose.local.yml_ file, which will launch 3 docker images and start the react app with _yarn start_ - The backend Go app, from the image located on its Gitlab repository - The mongo Database, from the DockerHub image - The Nginx server with a local configuration located in nginx/site.conf To stop it properly use ```bash yarn local-down ``` 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. > :warning: **If you are launching the project from a Windows OS** : 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. #### Backend and Database In order to get Backend documentation, please refer directly to the [backend readme](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-server/-/blob/dev/README.md) #### Nginx The nginx server redirects https requests from front-end to the backend on port 1443. It has two configuration files : - `nginx/site.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. #### Check success To check if the application starts successfully, launch the command ```bash docker logs backoffice-client_backend_1 ``` You should obtain the following messages: > --- Server is starting --- > Token signing key set > Mock OAuth2 server Listening on: <http://localhost:8090> Once the application is started, you can access it at <https://localhost> ## Alpha usage In order to test the app on alpha you can do the following steps: - Build locally your docker image for the client and/or the server ```sh docker build . -t registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-<server/client>:your-tag ``` - Push the image ```sh docker push registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-<server/client>:your-tag ``` - Connect to alpha in ssh, go to ecolyo-agent > docker-compose.yml and change the image tag for client and/or server - Then launch the app, it will pull automatically the new images ```sh docker-compose up -d ``` - If you have access denied issue, try to docker login ```sh docker login registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/ ``` - If you want to update alpha using the same image tag with edited image, just pull manually your new image and rebuild the concerned image ```sh docker pull registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-<server/client>:your-tag docker-compose up -d ``` If you need to work with prices on alpha, you will need to init the prices database. - First get the mysql container id ```sh docker ps ``` - Then get into the container ```sh docker exec -it <container-id> bash ``` - Then execute the mysql script that imports all the prices in DB ```sh mysql --local-infile=1 -uroot -p backoffice < /dbinit/dbinit.sql ``` You will be prompted for the admin password, use the db password set in the .env file. Now you're ready to edit your prices on alpha !