Skip to content

ColuLocalNetwork/CLN-community-app

Repository files navigation

JavaScript Style Guide

CLN Community App

Welcome to the CLN community app repo. We're building a dApp that will interact with the smart contracts of the CLN ecosystem. For now, we have a small api server that communicates with an IPFS node (because exposing an IPFS node might be unsafe) and replicates the data into mongodb.

Develop

With Docker

copy the confige file and start the docker compose:

cp .env.dist .env
docker network create cln-community
docker-compose up -d

the .env.dist is the config template while .env is the actual file used for environment variables. The .env is gitignored so fill free to tweak it.

Then open localhost:9000 in your browser. The IPFS node needs time to sync, so for the first time part of the data may not be fetched on time. Refresh the browser if this is the case.

Frontend Development

For the best experience, stop the client docker container and start it natively as described here.

Without Docker

dependencies

Optional:

Setup database

Start a mongodb daemon with default settings.

Setup IPFS node

Start a IPFS daemon with default settings.

ipfs daemon

Then define following environment variables for the server's shell

cp ./server/config/defaults.json ./server/config/local.json

You can edit the ./server/config/local.json file as you like.

Setup IPFS proxy

IPFS lacks permissions so all access to the IPFS node is done through the IPFS proxy.

Learn how to install and configure the proxy in the fuse-ipfs-proxy repo.

Setup Ethereum node (Optional)

You can start your own Ethereum node:

geth --testnet  --rpc --rpcapi="db,eth,net,web3,personal,web3"

Or use Infura (or other provider) as your provider, just change it in the config file (./server/config/local.json)

Setup Server

cd to project's directory, then:

cd server
npm install
npm run dev --NODE_ENV=local

Setup client

Load the relevant environment variables from the .env file.

cd to project's directory, then:

cd client
npm install
npm start

If your browser has an MetaMask extension, that should be enought.

Other configs

Take a look into server/config directory.

Fast frontend track

If you plan to work only on the frontend you can use our QA servers as a backend infrastucture. For this setup just run:

cd client
npm install
NODE_ENV=QA npm start

Though you still need a web3 provider like MetaMask.

Contributing

Please open an issue for requests, ideas or bugs.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages