Note: If you have any trouble with this, send Aapeli or Lucas a message on Slack. They're more than happy to spend a bit of time helping you set things up!
To run the app locally, you need to do four things:
- Get the code, navigate to the
appfolder and installdockeranddocker-compose - Compile the protocol buffers
- Launch the backend with
docker-compose - Install and launch the frontend with
yarn
Are you only developing on the frontend? If you don't want to install docker, you can follow the alterative instructions in frontend/readme.md.
We suggest you use WSL2, it lets you run Linux and docker much easier. Install WSL2 and clone the repo there. This will save you a lot of time and avoid lots of issues! You will need to clone the repo into your WSL distribution, otherwise you will have permissions problems when running the postgres database container.
To get the code onto your machine, clone the git respository from GitHub with the following command:
git clone https://github.com/Couchers-org/couchers.gitOpen a command line or terminal, and navigate to the app folder (where this readme.md is), for example with cd couchers/app.
Install docker from https://docs.docker.com/engine/install/.
Install docker-compose from https://docs.docker.com/compose/install/.
If you are on macoS, Linux or WSL2, run the following command:
docker run --rm -w /app -v $(pwd):/app couchers/grpc ./generate_protos.shAn alternative on macOS is to install the tools locally with brew install grpc protoc-gen-grpc-web, then run ./generate_protos.sh.
If you are on Windows (without WSL2), run the following command:
docker run --rm -w /app -v %cd%:/app couchers/grpc sh -c "cat generate_protos.sh | dos2unix | sh"In the app folder, run the following command:
docker-compose up --buildThis will build the backend, database, and proxy, and start them up.
Navigate to the app/frontend folder, and run the following commands to start the frontend:
yarn install
yarn startThis will take a moment, after which you can go to http://localhost:3000/, and you should see the app there. The command might also open the page for you automatically.