Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 39 additions & 87 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,109 +1,61 @@
# CREDEBL SSI Platform

This repository host codebase for CREDEBL SSI Platform backend.
Welcome to **CREDEBL** — an open-source Decentralized Identity & Verifiable Credentials platform, and part of the [Linux Foundation Decentralized Trust Project](https://lftprojects.org/).

## Pre-requisites
CREDEBL enables scalable, privacy-preserving digital identity systems. It powers real-world solutions like the **Decentralized National Digital ID for Bhutan and Papua New Guinea**, and **Sovio.id by AYANWORKS**.

Install Docker and docker-compose
</br>See: https://docs.docker.com/engine/install/
---

Install Node: >= 18.17.0
</br>See: https://nodejs.dev/en/learn/how-to-install-nodejs/
## ⚙️ Minimal Setup

**Install NestJS**
```bash
npm i @nestjs/cli@latest
```
This section provides the absolute minimum steps to get the CREDEBL API Gateway running for development. For comprehensive setup instructions, API reference, and architectural details, please refer to our official documentation.

**Setup & run postgres**
Start the postgresql service using the docker:
### Prerequisites

```bash
docker run --name some-postgres -p 5432:5432 -e POSTGRES_PASSWORD=<secretpassword> -e POSTGRES_USER=credebl -d postgres
```
* **Node.js**: We recommend using Node.js version 18 LTS.
* **npm**: Node Package Manager (comes with Node.js).
* **Git**: For cloning the repository.
* **(One-time) Nest CLI**: If you don't have it installed globally, run:
```bash
npm i -g @nestjs/cli
```

**Run prisma to generate db schema**
### Steps to Run

```bash
cd ./libs/prisma-service/prisma
npx prisma generate
npx prisma db push
```
1. **Clone the Repository**
```bash
git clone [https://github.com/credebl/platform.git](https://github.com/credebl/platform.git)
cd platform
```

**Seed initial data**
2. **Install Dependencies**
```bash
npm install
```

```bash
cd ./libs/prisma-service
npx prisma db seed
```
3. **Start the API Gateway (Development Mode)**
This command will start the API Gateway in watch mode, which is suitable for development.
```bash
npm run start:gateway:dev
```

# Install NATS Message Broker
## Pull NATS docker image
---

NATS is used for inter-service communication. The only pre-requisite here is to install docker.
## 📚 Documentation

```
docker pull nats:latest
```
For a full setup guide, detailed API reference, advanced configurations, and architectural documentation, please visit:
➡️ [https://docs.credebl.id](https://docs.credebl.id)

## Run NATS using `docker-compose`
The `docker-compose.yml` file is available in the root folder.
---

```
docker-compose up
```
## 🤝 Contributing

We welcome contributions to CREDEBL! Please read our [Contribution Guide](CONTRIBUTING.md) before submitting a pull request.

## Run CREDEBL Micro-services
**Note**: All commits must be signed (Developer Certificate of Origin - DCO required).

```bash
npm install
```
---

## Configure environment variables in `.env` before you start the API Gateway
## 📄 License

## Running the API Gateway app
You can optionally use the `--watch` flag during development / testing.

```bash
nest start [--watch]
```

## Starting the individual Micro-services

### e.g. for starting `organization service` micro-service run below command in a separate terminal window

```bash
nest start organization [--watch]
```

### Likewise you can start all the micro-services one after another in separate terminal window

```bash
nest start user [--watch]
nest start ledger [--watch]
nest start connection [--watch]
nest start issuance [--watch]
nest start verification [--watch]
nest start agent-provisioning [--watch]
nest start agent-service [--watch]
```

## To access micro-service endpoints using the API Gateway. Navigate to

```
http://localhost:5000/api
```

## Credit

The CREDEBL platform is built by AYANWORKS team.
For the core SSI capabilities, it leverages the great work from multiple open-source projects such as Hyperledger Aries, Bifold, Asker, Indy, etc.

## Contributing

Pull requests are welcome! Please read our [contributions guide](https://github.com/credebl/platform/blob/main/CONTRIBUTING.md) and submit your PRs. We enforce [developer certificate of origin](https://developercertificate.org/) (DCO) commit signing — [guidance](https://github.com/apps/dco) on this is available. We also welcome issues submitted about problems you encounter in using CREDEBL.

## License

[Apache License Version 2.0](https://github.com/credebl/platform/blob/main/LICENSE)
This project is licensed under the Apache License 2.0.