Build and Deploy Steps

A. Running Locally without Docker

Clone repository

# Fork and Clone the Repository
git clone git@github.com:PSMRI/ubi-wallet-backend.git
cd ubi-wallet-backend

# Check out the main branch
git checkout main

Install Dependencies

# Install dependencies
npm install

Optional - Set up Git hooks

# Set up Git hooks (Husky)
npm run prepare
git config core.hooksPath .husky/_
chmod +x .husky/pre-commit
chmod +x .husky/commit-msg

Create / Update .env

Ensure you have created and updated .env with required variables

Running in Dev Mode

npm run start:dev

The backend will be available at: 👉 http://localhost:3018

Running in Production Mode

npm run build
npm run start:prod

B. Running with Docker

Create / Update .env

Ensure you have created and updated .env with required variables

Build Docker Image Run Steps

Using Dockerfile from the repo code, you can generate an image

# Build the Docker Image
docker build -t wallet-backend .

Example .env for docker

The docker-compose.yml requires a separate file .env

# SERVER CONFIGURATION
PORT=3018
NODE_ENV=development

# WALLET PROVIDER CONFIGURATION
WALLET_PROVIDER=dhiway

# DHIWAY WALLET API CONFIGURATION
DHIWAY_API_BASE=https://dhiway-api-url.example.in
DHIWAY_API_KEY=your-dhiway-api-key-here
DHIWAY_VC_ISSUER_INSTANCE_URI=https://vc-issuer.example.in
DHIWAY_VC_ISSUER_GET_VC_BASE_URI=https://vc-issuer.example.in/vc
DHIWAY_WATCHER_EMAIL=watcher@example.in

# WALLET SERVICE CONFIGURATION
WALLET_SERVICE_BASE_URL=http://localhost:3018

# DATABASE CONFIGURATION
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=secure-password-here
DB_DATABASE=wallet_db

# CORS CONFIGURATION
ALLOWED_ORIGINS=http://localhost:3000,https://app.example.in

# SECURITY CONFIGURATION
HOUSEKEEPING_SECRET_KEY=your-super-secret-housekeeping-key-here

Use Image in docker-compose

Use generated images in docker-compose.yml

# Run the Container
docker-compose up -d

More about docker-compose

The docker-compose.yml located in the root of the repository provisions the following services as well:

  • Postgres (port 5432)

Verify Services

  • Database: localhost:5432

Last updated