Zequent Client SDK - Configuration

This page describes the public configuration model for external developers and customer deployments.

Zequent platform services are run from published container images. Customer applications use the Client SDKs and connect to the service endpoints exposed by the deployment.

Container Configuration

The public customer Compose template is docker-compose.customer.yml. It references one deployment-local .env file — start from .env.customer.example (cp .env.customer.example .env, then fill in every <PLACEHOLDER>; a runnable copy of the compose file, and an actual .env.customer rather than the .example template, also lives at the same paths under core/ for working directly in the monorepo).

services:
  connector-service:
    image: ghcr.io/zequent/connector-service:1.3.2
    env_file:
      - .env

Use the same env_file: .env pattern for Zequent service images, Admin Console images, adapter images, and customer application containers.

Do not commit .env files. Store credentials and deployment-specific values in your deployment environment or secret manager.

Start the public template with:

docker compose -f docker-compose.customer.yml up -d

Optional adapter images are enabled through Compose profiles, for example:

docker compose -f docker-compose.customer.yml --profile edge-dji up -d

Platform Service Images

ComponentImageDefault port
Connector Serviceghcr.io/zequent/connector-service:1.3.28010
Remote Control Serviceghcr.io/zequent/remote-control-service:1.3.28002
Live Data Serviceghcr.io/zequent/live-data-service:1.3.28003
Mission Autonomy Serviceghcr.io/zequent/mission-autonomy-service:1.3.28004
Admin Console APIghcr.io/zequent/admin-console-service:1.3.28005
Admin Console UIghcr.io/zequent/zqnt-platform-console:v1.3.33001

Use versioned image tags for production deployments (as above — not :latest). The Admin Console UI's version line is independent of the core services' 1.3.x line.

Adapter Images

AdapterImageStatus
DJIghcr.io/zequent/zqnt-edge-adapter-dji:1.3.0Available
MAVLinkghcr.io/zequent/zqnt-adapter-mavlink:1.3.0Available
Sapientghcr.io/zequent/zqnt-adapter-sapient:1.3.0Available
RNSghcr.io/zequent/zqnt-adapter-rns — no versioned release yet, latest onlySource only
BetaflightNo published image yetSource only
AI AdapterNo published image yetEarly access

Required .env Variables (Platform Deployment)

These go in the deployment-local .env file used by docker-compose.customer.yml — not in your customer application's own .env.

Database and cache

VariableExampleNotes
DATABASE_URLjdbc:postgresql://postgres:5432/zequent_dbJDBC URL, used by Hibernate
DATABASE_REACTIVE_URLpostgresql://postgres:5432/zequent_dbReactive driver URL (no jdbc: prefix)
DATABASE_USERpostgres
DATABASE_PASSWORDSet your own; do not use the Postgres default in production
REDIS_URLredis://redis:6379

Licensing

Every platform service verifies a license lease before performing protected operations — see Licensing.

VariableApplies toNotes
LICENSING_INSTALLATION_IDAll servicesA stable identifier for this deployment
LICENSING_PUBLIC_KEYAll servicesPublic key used to verify the license lease signature; provided with your license
LICENSING_SIGNING_KEY_IDAll servicesKey ID provided with your license, alongside LICENSING_PUBLIC_KEY
LICENSING_LICENSE_KEYAdmin Console onlyThe license key issued to your organization
LICENSE_SERVER_URLAdmin Console onlyDefaults to https://api.zequent.com; override only for a self-hosted/offline license server

Activation is a one-time step performed from the Admin Console once it's running — see Licensing.

Authentication

Every bearer token this deployment issues is signed with an Ed25519 keypair you generate yourself — never reuse a value from any example or dev environment:

openssl genpkey -algorithm ed25519 -out auth-private.pem
openssl pkey -in auth-private.pem -pubout -out auth-public.pem
# base64 the PKCS8/SubjectPublicKeyInfo DER (or PEM, stripped of headers/newlines)
# into the two variables below
VariableNotes
AUTH_PRIVATE_KEYBase64 PKCS8-encoded Ed25519 private key
AUTH_PUBLIC_KEYBase64 SubjectPublicKeyInfo-encoded Ed25519 public key
AUTH_ISSUERToken issuer — typically <your-company>-admin-console
AUTH_EXPECTED_ISSUERMust match AUTH_ISSUER
AUTH_SYSTEM_ADMIN_EMAILEmail for the initial system admin account
OIDC_REDIRECT_URIOnly needed if an organization connects its own SSO/OIDC identity provider

Client SDK Service Endpoints

Customer applications need the platform service hostnames and ports.

When the customer application runs inside the same Compose or Kubernetes network, use the service names:

VariableTypical value
REMOTE_CONTROL_SERVICE_HOSTremote-control-service
REMOTE_CONTROL_SERVICE_PORT8002
LIVE_DATA_SERVICE_HOSTlive-data-service
LIVE_DATA_SERVICE_PORT8003
MISSION_AUTONOMY_SERVICE_HOSTmission-autonomy-service
MISSION_AUTONOMY_SERVICE_PORT8004
CONNECTOR_SERVICE_HOSTconnector-service
CONNECTOR_SERVICE_PORT8010

When the customer application runs on the host and connects to exposed local ports, use localhost for the host values.

Admin Console

The Admin Console has two images:

ComponentImageDefault local URL
Admin Console APIghcr.io/zequent/admin-console-service:1.3.2http://localhost:8005
Admin Console UIghcr.io/zequent/zqnt-platform-console:v1.3.3http://localhost:3001

The Admin Console UI needs public API and WebSocket URLs that are reachable from the user's browser.

VariablePurpose
BACKEND_ORIGINBackend origin the UI container's own server-side proxy uses inside the deployment network. Silently defaults to http://localhost:8005 if unset, which inside that container resolves to the UI container itself, not the Admin Console API — producing a UI that loads but has no working backend connection
LICENSE_API_ORIGINThe UI container's server-side proxy target for license operations. Defaults to http://localhost:4000 if unset — a local mock this repo doesn't run — so set it to https://api.zequent.com (or your self-hosted license server) explicitly
ADMIN_CONSOLE_CORS_ORIGINSThe public dashboard origin(s) the Admin Console API accepts requests from
NEXT_PUBLIC_BACKEND_ORIGINPublic Admin Console API URL, general-purpose
NEXT_PUBLIC_BACKEND_AUTH_API_HOSTPublic Admin Console API URL
NEXT_PUBLIC_BACKEND_OPERATION_API_HOSTPublic operation API URL
NEXT_PUBLIC_BACKEND_SCHEDULER_API_HOSTPublic scheduler API URL
NEXT_PUBLIC_BACKEND_ASSET_API_HOSTPublic asset API URL
NEXT_PUBLIC_BACKEND_ORGANIZATION_API_HOSTPublic organization API URL
NEXT_PUBLIC_BACKEND_ASSET_WS_HOSTPublic asset WebSocket URL
NEXT_PUBLIC_BACKEND_DRC_WS_HOSTPublic direct remote control WebSocket URL
NEXT_PUBLIC_BACKEND_NOTIFICATION_WS_HOSTPublic notification WebSocket URL

For a local Compose deployment, these URLs normally point to localhost:8005.

Edge Adapter Configuration

Ready-made adapter images and custom Edge SDK adapters need a reachable adapter endpoint plus any device-specific credentials.

VariablePurpose
EDGE_ADAPTER_TARGET_ENDPOINTSHost and port where the platform can reach the adapter
Device/broker credentialsCredentials required by the selected adapter integration
Storage credentialsOptional credentials when the adapter uploads or downloads mission files/media

The exact device-specific values depend on the selected adapter image.

Deployment Notes

  • Keep one .env per deployment environment.
  • Do not publish .env files in public documentation or source repositories.
  • Keep secrets in your orchestrator's secret mechanism for production.
  • Use service names for container-to-container communication.
  • Use public hostnames or exposed local ports for browser-facing URLs.
  • Use the Client SDK for customer applications.
  • Use the Edge SDK when you need to build a custom adapter.

Was this page helpful?