Set up the development environment for the invoice.build app.
Clone the three services that make up the app (api, web, eth-utils-api):
git clone https://github.com/Invoice-build/api.git && git clone https://github.com/Invoice-build/web.git && git clone https://github.com/Invoice-build/eth-utils-api.git
Copy the docker-compose file from this repo and use it in the parent directory that contains all the apps cloned above:
wget https://raw.githubusercontent.com/Invoice-build/development/main/docker-compose.yml
Note: If you are using an M1 mac you may need to uncomment line 24 in docker-compose.yml.
Add an INFURA_PROJECT_ID on line 50 (replacing 'xxx') in docker-compose.yml:
INFURA_PROJECT_ID: xxx
Set up the api database and seed it with the supported tokens.
docker-compose build && docker-compose run api rails db:setup
Add your own environment credentials to the api service. To do this run the following to create and open the development credentials file in vim:
docker-compose run api rake creds:dev
Then paste the follow in the file and add your credentials:
jwt_secret:
etherscan:
api_key:
infura:
project_id:
project_secret:
slack:
webhooks:
incoming_url:
Slack webhook is optional.
You will need to signup to Etherscan and Infura to get your API keys.
Optional, a secret for jwt_secret
can be generated by running docker-compose run api rake secret
.
Spin up the app.
docker-compose up
Once all the services are finished building, open http://localhost:3000 in your browser.