Sunbird RC
v0.0.14
v0.0.14
  • Learn
    • Introduction
    • Verifiable Credentials
      • What issues will Verifiable Credentials address?
      • What are the key roles in Verifiable Credentials?
      • What are the components of Verifiable Credentials?
      • What are the benefits of Verifiable Credentials?
      • Digital Credentials vs Verifiable Credentials
      • QR code vs Verifiable QR code
      • Use Cases
    • Electronic Registries
      • Evolution of Electronic Registries
      • What issues will Electronic Registries address?
      • Benefits of Electronic Registries
      • Registry vs Database
      • Design Principles
      • Use Cases
    • Sunbird RC Overview
      • Features
      • Core Registry Verbs
      • Why do we need Sunbird RC?
      • What Sunbird RC is and what it's not? (WIP)
      • Core Capabilities
      • Technical Specification Draft
      • Workflows
      • High level architecture
    • Sunbird RC in action
      • Implementations (Work in Progress)
      • Possibilities
  • Use
    • Technical Requirements
    • Releases
    • Setup the Backend
    • Setup the Frontend
    • Leveraging Existing data stores
    • SSO with existing systems
      • Digilocker Meripehchaan SSO
  • Developer Documentation
    • Installation Guide
      • Registry CLI
        • Setup A Registry Instance
      • Manual installation through docker-compose
      • Production setup through Helm
    • Introduction To Schemas
    • Creating Your Own Schemas
    • Schema Configuration
    • Using The APIs
    • Create Schemas With Custom Password
    • Admin Portal
      • Login
      • Get Started
        • Create Schema
        • Attestation Workflows (WIP)
        • VC Template
          • Custom VC Template (WIP)
        • Ownership (WIP)
        • Publish (WIP)
      • Dashboard
    • Configuration
    • Developer Setup
    • VC Verification Module
    • Audit Configuration
    • Custom Keycloak Build
    • Metrics
    • Digilocker Integration
    • Custom QR Code design
    • Notifications Configuration
    • View Templates Configuration
    • Generic Identity And Access Management
    • Backup and Restore
      • PostgreSQL
        • SQL Dump
        • File System Level Backup
        • Continuous Archiving and Point-in-Time Recovery (PITR)
      • Cassandra
        • Snapshot-based backup method
        • Incremental backup method
        • Data Restore
    • Frontend Configurations
    • Frontend - Proxy configuration
  • API Reference
    • Registry
      • Create An Entity
      • Invite An Entity
      • Generate token
      • Generate admin token
      • Get An Entity
      • Get An Entity By Id
      • Update An Entity
      • Create A Property Of An Entity
      • Update A Property Of An Entity
      • Revoke a Credential
      • Delete An Entity
    • Schema
      • Create Schema
      • Get Schema
      • Update Schema
      • Delete Schema
      • Publish A Schema
    • Attestation API
      • Raise An Attestation
      • Get Attestation Certificate
    • Claims API
      • Get All Claims
      • Get Claim by ID
      • Attest A Claim
    • Discovery API
      • Search An Entity
    • File Storage API
      • Upload A File
      • Get Uploaded File
      • Delete A File/ Multiple Files
    • Bulk Issuance API
      • Get Sample Template
      • Upload CSV
      • Get all uploaded Files
      • Download a Report File
    • Metrics APIs
      • Get Count
      • Get Aggregates
    • Other APIs
      • Sign API
      • Verify API
      • Swagger JSON API
      • Health API
  • Reference Solutions
    • Education
      • Education Ecosystem
        • Installation
      • Education Registries
        • Installation
    • Certificate Issuance
      • Installation(WIP)
      • User Guide
    • eLocker
      • High Level Diagram
      • Installation (WIP)
        • Frontend Setup E-locker
      • User Guide
    • Health Registries
      • Organ Registries
        • Frontend Setup
        • Backend Setup
        • User Guide
    • Vaccination Platform
    • Skills & Work Credentials
    • Govt to Person (G2P)
    • Unified Learners Passport (ULP)
      • ULP Capabilities
      • Example Scenario
      • Technical Components (WIP)
      • Demo/Sandbox Links (WIP)
      • Installation Guide (WIP)
        • Frontend Setup
        • Installation through docker-compose
        • Dummy records setup for refrence
  • Links
    • Source Code
    • Releases & Changelogs
    • Website
    • Roadmap
    • Reference links
    • Design
  • Community
    • Discussion Forum
    • Contributing
    • Contributors
    • Contribution Guidebook
    • Code of Conduct
    • Community Events
    • Status By Track
  • HELP
    • Roadmap
    • FAQs
    • Glossary
Powered by GitBook

Copyright (c) 2023 EkStep Foundation under MIT License

On this page
  1. Reference Solutions
  2. Unified Learners Passport (ULP)
  3. Installation Guide (WIP)

Installation through docker-compose

PreviousFrontend SetupNextDummy records setup for refrence

Last updated 1 year ago

Installation instructions for Docker can be found .

Copy below docker file below and run it on the server/local machine

version: "3.6"

services:
  es:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
    container_name: "elastic-search"
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - xpack.security.enabled=false
  db:
    image: postgres
    container_name: "postgres_db"
    volumes:
    #  - ./init-multi-postgres-databases.sh:/docker-entrypoint-initdb.d/init-multi-postgres-databases.sh
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "9999:5432"
    environment:
      - POSTGRES_DB=registry
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=J93!s27Xma
    env_file:
      - .env
  registry:
    image: ghcr.io/sunbird-rc/sunbird-rc-core:v0.0.13
    container_name: "registry"
    volumes:
      - ./schemas:/home/sunbirdrc/config/public/_schemas
    environment:
      - connectionInfo_uri=jdbc:postgresql://db:5432/registry
      - connectionInfo_username=postgres
      - connectionInfo_password=J93!s27Xma
      - elastic_search_connection_url=es:9200
      - elastic_search_auth_enabled=false
      - elastic_search_username=elastic
      - elastic_search_password=
      - search_providerName=dev.sunbirdrc.registry.service.ElasticSearchService
      - sunbird_sso_realm=sunbird-rc
      - sunbird_sso_url=http://keycloak:8080/auth
      - sunbird_sso_admin_client_id=admin-api
      - sunbird_sso_client_id=registry-frontend
      - sunbird_sso_admin_client_secret=4a858f16-6023-4f23-bda2-1bc4df1a3e7e
      - claims_url=http://claim-ms:8082
      - sign_url=http://certificate-signer:8079/sign
      - sign_health_check_url=http://certificate-signer:8079/health
      - signature_enabled=true
      - pdf_url=http://certificate-api:8078/api/v1/certificatePDF
      - certificate_health_check_url=http://certificate-api:8078/health
      - template_base_url=http://registry:8081/api/v1/templates/ #Looks for certificate templates for pdf copy of the signed certificate
      - sunbird_keycloak_user_set_password=true
      - filestorage_connection_url=http://file-storage:9000
      - filestorage_access_key=admin
      - filestorage_secret_key=12345678
      - filestorage_bucket_key=issuance
      - registry_base_apis_enable=false
      - sunbird_keycloak_user_password=abcd@123
      - logging.level.root=INFO
      - enable_external_templates=true
      - async_enabled=false
      - authentication_enabled=true
      - kafka_bootstrap_address=kafka:9092
      - webhook_enabled=false
      - webhook_url=http://localhost:5001/api/v1/callback
      - redis_host=redis
      - redis_port=6379
      - manager_type=DefinitionsManager
    ports:
      - "18081:8081"
    depends_on:
      - es
      - db
  
  keycloak:
    image: ghcr.io/sunbird-rc/keycloak:latest
    container_name: "keycloak"
    volumes:
      - ./imports:/opt/jboss/keycloak/imports
      - keycloak_data:/opt/jboss/keycloak
    environment:
      - KEYCLOAK_LOGO=https://svgshare.com/i/hCs.svg
      - DB_VENDOR=postgres
      - DB_ADDR=db
      - DB_PORT=5432
      - DB_DATABASE=registry
      - DB_USER=postgres
      - DB_PASSWORD=J93!s27Xma
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=admin
      - KEYCLOAK_IMPORT=/opt/jboss/keycloak/imports/realm-export.json
      - KEYCLOAK_FRONTEND_URL=http://localhost:8080/auth
      - PROXY_ADDRESS_FORWARDING=true
      - VALIDATE_NONCE=false
    ports:
      - "18080:8080"
      - "19990:9990"
    depends_on:
      - db
  telemetry_service_clickhouse:
    image: clickhouse/clickhouse-server
    container_name: telemetry-clickhouse
    volumes:
      - clickhouse_data:/var/lib/clickhouse
    environment:
      CLICKHOUSE_USER: clickhouse
      CLICKHOUSE_PASSWORD: "*!73uK*9xLEsnhIR"
    ports:
      - "18123:8123"
      - "19000:9000"
  telemetry-service:
    image: dubea/telemetry-service1:latest
    ports:
      - 19001:9001
    environment:
      telemetry_local_storage_type: "clickhouse"
      CLICKHOUSE_HOST: "http://telemetry-clickhouse:8123"
      CLICKHOUSE_USER: "clickhouse"
      CLICKHOUSE_PASSWORD: "*!73uK*9xLEsnhIR"
    depends_on:
      - telemetry_service_clickhouse
  bff_service:
    image: dubea/bff:1.0
    container_name: "bff-service"
    ports:
      - 3003:3000
    deploy:
      placement:
        constraints:
          - node.role == manager
      replicas: 1
      update_config:
        parallelism: 1
        delay: 0s
        failure_action: rollback
        order: start-first
      restart_policy:
        condition: on-failure

    environment:
      - name=value #Need to add the environment varibales in that
      - PORT=3000
      - CRED_URL=http://139.59.45.135:3002
      - DID_URL=http://139.59.45.135:3000
      - SCHEMA_URL=http://139.59.45.135:3001
      - MIDDLEWARE_URL=http://139.59.45.135:3003
      - REALM_ID=sunbird-rc
      - KEYCLOAK_CLIENT_ID=admin-api
      - KEYCLOAK_CLIENT_SECRET=4a858f16-6023-4f23-bda2-1bc4df1a3e7e
      - KEYCLOAK_URL=https://ulp-sbrc.uniteframework.io/auth/
      - REGISTRY_URL=https://ulp-sbrc.uniteframework.io/registry/
      - TESTVAR=ulp reference environment by RC
      - PROOF_OF_ASSESSMENT=clf0qfvna0000tj154706406y
      - PROOF_OF_ENROLLMENT=clf0rjgov0002tj15ml0fdest
      - PROOF_OF_BENIFIT=clf0wvyjs0008tj154rc071i1
      - TELEMETRY_URL=https://ulp.uniteframework.io/telemetry
  bulk_issuance:
    image: dubea/bulk-issuance:1.0
    container_name: "bulk-issuance"
    ports:
      - 3007:3007
    deploy:
      placement:
        constraints:
          - node.role == manager
      replicas: 1
      update_config:
        parallelism: 1
        delay: 0s
        failure_action: rollback
        order: start-first
      restart_policy:
        condition: on-failure

    environment:
      - name=value #Need to add the environment variables in that
      - PORT=3007
      - CRED_URL=http://139.59.45.135:3002
      - DID_URL=http://139.59.45.135:3000
      - SCHEMA_URL=http://139.59.45.135:3001
      - MIDDLEWARE_URL=http://139.59.45.135:3003
      - KEYCLOAK_URL=https://ulp-sbrc.uniteframework.io/auth/
      - REGISTRY_URL=https://ulp-sbrc.uniteframework.io/registry/
      #schemaId
      - PROOF_OF_ASSESSMENT=clf0qfvna0000tj154706406y
      - PROOF_OF_ENROLLMENT=clf0rjgov0002tj15ml0fdest
      - PROOF_OF_BENIFIT=clf0wvyjs0008tj154rc071i1
      #keycloak
      - REALM_ID=sunbird-rc
      - KEYCLOAK_CLIENT_ID=admin-api
      - KEYCLOAK_CLIENT_SECRET=4a858f16-6023-4f23-bda2-1bc4df1a3e7e
  rc-wallet:
    image: dubea/rc-ewallet:1.2
    container_name: "ewallet"
    volumes:
      - ./ewallet/config/config.json:/usr/share/nginx/html/assets/config/config.json
  rc-verification:
    image: dubea/verification:1.2
    container_name: "verification-portal"
    volumes:
      - ./varification/config/config.json:/usr/share/nginx/html/assets/config/config.json
  nginx-gateway:
    image: dubea/nginx-gateway:latest
    ports:
      - "182:80"
volumes:
  postgres_data:
    driver: local
  didl3_data:
    driver: local
  cred_schema_data:
    driver: local
  cred_ms_data:
    driver: local
  clickhouse_data:
    driver: local
  keycloak_data:
    driver: local
here