Development Setup
This is for those who intend to contribute to this project (thank you!) or would like to play around a bit with the app by setting it up locally.
Requirements
- Docker is installed, signed in and running.
- Link to installation - https://docs.docker.com/engine/install/
 
 - Docker compose is installed
- Link to installation - https://docs.docker.com/compose/install/
 
 
Configuration files
The configuration files are similar to the ones in production except for a few changes.
List of configuration and environment files for development:
config.ymlfor backend.env.developmentfor frontend
1) Backend configuration (config.yml)
Copy the config.sample.yml to a new file config.yml and edit the configuration as mentioned in the file.
The current config.sample.yml file is configured to be used by the backend tests to test its interactions and functionality.
2) Frontend configuration (.env.development)
Copy the following into a new file .env.development.
REACT_APP_BASE_URL=http://localhost:80
REACT_APP_DEFAULT_HOMESERVER=https://matrix.org
WDS_SOCKET_PORT=0
Note:
The last variable WDS_SOCKET_PORT is used to avoid the following error.
Browser can’t establish a connection to the server at ws://localhost:3000/ws.
We lose the hot reloading feature in this case. You can find more details about it here.
Running the application
There are two different docker-compose files available, one for development (docker-compose-dev.yml) and one for production (docker-compose.yml).
By default, docker-compose uses the docker-compose.yml file.
Use the -f flag to specify the filename
Run the following commands to start the application
docker-compose -f docker-compose-dev.yml build
docker-compose -f docker-compose-dev.yml up
You can find the application running here localhost:80/