Docker
- Clone this repository
git clone https://github.com/miguelToscano/fleek-challenge.git
- Change directory
cd fleek-challenge
- Make sure ports :3000, :5001, :8080 and :27017 are not being used as we're going to run our containers on these ports.
- Build and run containers
docker-compose up --build -d
You can access the web client from http://localhost/3000
by using email: [email protected]
and password: fleek
as credentials.
https://www.getpostman.com/collections/2b668f8971b048201542
Creates a user by providing email and password.
Returns authorization when providing valid credentials.
Retrieves a list with all API keys with their status, creation date and requested IPFS node paths.
Creates a new active API key
Disables API key for future requests.
Retrieves a single API key with it's status, creation date and requested IPFS node paths
This service also works as a proxy to an IPFS node running on port :5001 by using its HTTP API. See reference https://docs.ipfs.io/reference/http/api/ By simply using the same host and port you can access to the same endpoints as the IPFS HTTP API.
For example
How would you improve this assignment for a production ready solution (e.g., security, deployment)?
- Environment variables
- Tests
- Database credentials
- Every container is accesible by anyone with access to localhost
- Unlike HTTP, IPFS uses a decentralized approach
- IPFS requests data by hash
- Given enough nodes, IPFS has more availability as the same resources are stored in many nodes
- HTTP has to deal with more traffic as many clients request the same server
- The price of hosting a server when using HTTP has to be considered
- IPFS is not as popular as HTTP