Install (Docker Compose)

Note

Make sure to complete the Prerequisites before proceeding.

If you deploy your validator using Docker Compose, then you can use this guide to add the DA Utilities to your setup.

Prerequisite: Auth

You need to set up auth for the utilities to work.

Don’t forget to use the -a flag when starting your node:

./start.sh -s "<SPONSOR_SV_URL>" -o "<ONBOARDING_SECRET>" -p "<party_hint>" -m "<MIGRATION_ID>" -w -a

Additional Environment Variables for Utilities

Add the following to your splice-node/docker-compose/validator/.env:

# Utility
AUTH_AUTHORITY=${AUTH_URL}
OIDC_AUTHORITY_URL=${AUTH_URL}
AUTH_AUDIENCE=${LEDGER_API_AUTH_AUDIENCE}
OIDC_AUTHORITY_LEDGER_API_AUDIENCE=${LEDGER_API_AUTH_AUDIENCE}
VALIDATOR_CLIENT_SECRET=${VALIDATOR_AUTH_CLIENT_SECRET}
VALIDATOR_CLIENT_ID=${VALIDATOR_AUTH_CLIENT_ID}
CNS_UI_CLIENT_ID=${ANS_UI_CLIENT_ID}
UTILITIES_IMAGE_REPO="europe-docker.pkg.dev/da-images/public/docker"
UTILITIES_IMAGE_VERSION="0.8.0"
AUTH_CLIENT_ID="<see below>"
UTILITY_APP_UTILITY_BACKEND_URL="<see below>"

Update compose.yaml

Edit your participant deployment

   participant:
     image: "${IMAGE_REPO}canton-participant:${IMAGE_TAG}"
     environment:
+      - CANTON_PARTICIPANT_JSON_API_SERVER_PATH_PREFIX=/api/json-api
       - AUTH_JWKS_URL=${AUTH_JWKS_URL}

Add the Utilities

utility-ui:
  image: "${UTILITIES_IMAGE_REPO}/frontend:${UTILITIES_IMAGE_VERSION}"
  environment:
    - AUTH_AUTHORITY=${AUTH_AUTHORITY}
    - AUTH_CLIENT_ID=${AUTH_CLIENT_ID}
    - AUTH_AUDIENCE=${AUTH_AUDIENCE}
    - UTILITY_APP_UTILITY_BACKEND_URL=${UTILITY_APP_UTILITY_BACKEND_URL}
  depends_on:
    - participant
    - validator
  networks:
    - ${DOCKER_NETWORK:-splice_validator}

darsyncer:
  image: "${UTILITIES_IMAGE_REPO}/utilities-darsyncer:${UTILITIES_IMAGE_VERSION}"
  command:
    - --endpoint=participant:5002
  environment:
    - DARS=/dars
    - CLIENT_ID=${VALIDATOR_AUTH_CLIENT_ID}
    - CLIENT_SECRET=${VALIDATOR_AUTH_CLIENT_SECRET}
    - OAUTH_DOMAIN=${AUTH_AUTHORITY}
  depends_on:
    - participant
    - validator
  networks:
    - ${DOCKER_NETWORK:-splice_validator}

Make nginx depend on utility-ui

   nginx:
     image: "nginx:${NGINX_VERSION}"
     depends_on:
       - ans-web-ui
       - wallet-web-ui
       - validator
+      - utility-ui

Update nginx.conf

Add this to splice-node/docker-compose/validator/nginx.conf to access the Utility UI at http://utility.localhost:

http {
  ...
  server {
    listen 80;
    server_name utility.localhost;

    location /api/validator/ {
      rewrite ^\/(.*) /$1 break;
      proxy_pass http://validator:5003/api/validator;
    }

    location /api/json-api {
      rewrite ^\/(.*) /$1 break;
      proxy_pass http://participant:7575/;
    }

    location / {
      proxy_pass http://utility-ui:8080/;
    }
  }
}