mirror of
https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer.git
synced 2026-09-21 16:52:03 -07:00
Porting code from chris-troutner to PSF GitHub Repo
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
# ipfs-service-provider
|
||||
[](http://standardjs.com) [](https://github.com/semantic-release/semantic-release)
|
||||
|
||||
This is a 'boilerplate' repository. It's intended to be forked to start new projects. This repository has been forked from the [koa-api-boilerplate](https://github.com/christroutner/koa-api-boilerplate). It has all the same features as that boilerplate:
|
||||
|
||||
- [Koa](https://koajs.com/) framework for REST APIs
|
||||
- User management
|
||||
- Access control using [JWT tokens](https://jwt.io/).
|
||||
|
||||
This boilerplate extends that code to provide the basic features required to be a 'service provider' on the IPFS network. See [this article](https://troutsblog.com/blog/ipfs-api) if you're new to the concept of service provides on IPFS. These basic features include:
|
||||
|
||||
- [ipfs-coord](https://www.npmjs.com/package/ipfs-coord) for coordinating service providers and consumers across the IPFS network.
|
||||
- JSON RPC for creating an API between providers and consumers.
|
||||
|
||||
If you are interested in creating your own service provider on the IPFS network, fork this repository and start building.
|
||||
|
||||
## Features
|
||||
This project covers basic necessities of most APIs.
|
||||
* [Koa](https://koajs.com/) framework for REST APIs
|
||||
* Authentication (passport & jwt)
|
||||
* Database (mongoose)
|
||||
* Testing (mocha)
|
||||
* Doc generation with apidoc
|
||||
* Linting using standard
|
||||
* Packaged as a Docker container
|
||||
* [ipfs-coord](https://www.npmjs.com/package/ipfs-coord)
|
||||
* JSON RPC for mirroring the REST API over IPFS
|
||||
|
||||
|
||||
|
||||
## Requirements
|
||||
* node __^10.15.1__
|
||||
* npm __^6.7.0__
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
git clone https://github.com/christroutner/koa-api-boilerplate
|
||||
cd koa-api-boilerplate
|
||||
npm install
|
||||
npm start
|
||||
```
|
||||
|
||||
## Structure
|
||||
```
|
||||
├── bin
|
||||
│ └── server.js # Bootstrapping and entry point
|
||||
├── config # Server configuration settings
|
||||
│ ├── env # Environment specific config
|
||||
│ │ ├── common.js
|
||||
│ │ ├── development.js
|
||||
│ │ ├── production.js
|
||||
│ │ └── test.js
|
||||
│ ├── index.js # Config entrypoint - exports config according to envionrment and commons
|
||||
│ └── passport.js # Passportjs config of strategies
|
||||
|
|
||||
├── production # Dockerfile for build production container
|
||||
|
|
||||
├── src # Source code
|
||||
│ ├── lib # Business logic libraries
|
||||
│ ├── modules
|
||||
│ │ ├── controller.js # Module-specific controllers
|
||||
│ │ └── router.js # Router definitions for module
|
||||
| ├── rpc # JSON RPC over IPFS
|
||||
│ ├── models # Mongoose models
|
||||
│ └── middleware # Custom middleware
|
||||
│ └── validators # Validation middleware
|
||||
└── test # Unit tests
|
||||
```
|
||||
|
||||
## Usage
|
||||
* `npm start` Start server on live mode
|
||||
* `npm run dev` Start server on dev mode with nodemon
|
||||
* `npm run docs` Generate API documentation
|
||||
* `npm test` Run mocha tests
|
||||
* `docker-compose build` Build a 'production' Docker container
|
||||
* `docker-compose up` Run the docker container
|
||||
|
||||
## Documentation
|
||||
API documentation is written inline and generated by [apidoc](http://apidocjs.com/).
|
||||
|
||||
Visit `http://localhost:5000/docs/` to view docs
|
||||
|
||||
|
||||
## Dependencies
|
||||
* [koa2](https://github.com/koajs/koa/tree/v2.x)
|
||||
* [koa-router](https://github.com/alexmingoia/koa-router)
|
||||
* [koa-bodyparser](https://github.com/koajs/bodyparser)
|
||||
* [koa-generic-session](https://github.com/koajs/generic-session)
|
||||
* [koa-logger](https://github.com/koajs/logger)
|
||||
* [MongoDB](http://mongodb.org/)
|
||||
* [Mongoose](http://mongoosejs.com/)
|
||||
* [Passport](http://passportjs.org/)
|
||||
* [Nodemon](http://nodemon.io/)
|
||||
* [Mocha](https://mochajs.org/)
|
||||
* [apidoc](http://apidocjs.com/)
|
||||
* [ESLint](http://eslint.org/)
|
||||
* [ipfs-coord](https://www.npmjs.com/package/ipfs-coord)
|
||||
|
||||
## IPFS
|
||||
Snapshots pinned to IPFS will be listed here.
|
||||
|
||||
## License
|
||||
MIT
|
||||
Reference in New Issue
Block a user