Installing Giveth.io for Local Development
This guide will document the steps to set up and run Giveth.io locally for the purposes of development. The setup process was documented using Ubuntu 20.04 LTS.
You'll need a couple prerequisites to get started.
Giveth IO leverages notable packages, applications and architectures including:
- Ethereum
- React
- NextJS
- Apollo GraphQL
- Tor.us
- theme-ui
Install the back-end (impact-graph) from GitHub
In order to develop locally you need to clone the back-end server. We are using https://github.com/Giveth/impact-graph for this.
via SSH on the CLI:
git clone git@github.com:Giveth/impact-graph.git
cd impact-graph
npm i
cp .env.example .env
Create a Database and User in Postgres using psql
Follow this tutorial on PSQL to setup your username and create the database. https://medium.com/coding-blocks/creating-user-database-and-adding-access-on-postgresql-8bfcd2f4a91e)
TL;DR
sudo -u postgres psql
postgres=# create database <databaseName>;
postgres=# create user <userName> with encrypted password '<passwordHere>';
postgres=# grant all privileges on database <databaseName> to <userName>;
Clone and Install the Frontend
Head on over to https://github.com/Giveth/giveth-dapps-v2, and clone the repo.
via SSH on the CLI:
git clone git@github.com:Giveth/giveth-dapps-v2.git
cd giveth-dapps-v2
yarn install
Get the Environment Variables
In order to run the local build for Giveth.io you'll need to ask for the environment variables. Head on over to our Contributors Discord, say Hi and get in touch with our product manager, @MoeNick or one of the developers.
Launch the Development Server and Environment
Start up the impact-graph
backend server and redis.
Run redis by using the command
redis-server
.From the impact-graph repo start with
npm start
.infoUsing the Staging Database for Development
If you don't need to setup a local database for your development purposes you can use the staging database instead. Set
NEXT_PUBLIC_APOLLO_SERVER
tohttps://serve.giveth.io/graphql
(this uses the same database you see on https://next.giveth.io).
Run the Migrations to Setup the Database
In a separate terminal cd
into the impact-graph
run this command in the terminal:
npm run typeorm:cli -- migration:run
Deploy the Front-end
To take advantage of linting presets, please use VSCODE:
Select File -> Open Workspace.
Navigate into the giveth-dapps-v2 directory.
Install recommended extensions & packages (Prettier and StandardJS plugins).
Then fire up the front-end locally.
yarn run dev
You should be ready to go for real-time coding!