mirror of
https://github.com/luxfi/bridge.git
synced 2026-09-24 00:26:46 +00:00
The .network host was retired 2026-07-27 and no longer resolves at all, so every reference to it named an address that cannot answer. The brand host is .cloud, matching kms.zoo.cloud and the rest of the white-label convention. Left alone deliberately, because rewriting them would invert what they say: the LLM.md line that RECORDS the retirement, the e2e spec that ASSERTS kms.lux.network must not resolve, and the recorded applies + cluster backups, which are faithful accounts of what was applied and are not config.
94 lines
3.1 KiB
YAML
94 lines
3.1 KiB
YAML
# Lux Bridge — STANDALONE compose.
|
|
#
|
|
# Boots the absolute minimum services for a working bridge: Postgres
|
|
# (state) + bridge-server (API) + bridge-ui (Vite SPA). NO Casdoor /
|
|
# Vault / NATS / Consul / MPC nodes — every external dep is either
|
|
# optional at runtime (m-chain MPC, KMS, cosigners) or absent from this
|
|
# topology entirely.
|
|
#
|
|
# Use when:
|
|
# - Running on a dev laptop without spinning up the full Lux platform
|
|
# - Reproducing a swap state for debugging
|
|
# - White-label tenants who run their own IAM / KMS / MPC out-of-band
|
|
#
|
|
# When you want the full platform, run `docker compose -f compose.local.yml
|
|
# up` instead. That brings up Lux ID + Vault + NATS + Consul + 3-node MPC
|
|
# alongside this one.
|
|
#
|
|
# Quick start:
|
|
# 1. Copy ./config/env.standalone.example → ./config/env.standalone
|
|
# and fill in the bridge JWT signing key + any cosigner config.
|
|
# 2. docker compose -f compose.standalone.yml up --build
|
|
# 3. Bridge UI: http://localhost:3001
|
|
# Bridge API: http://localhost:5000/healthz
|
|
# Postgres: localhost:5433 (user=bridge, pass=bridge, db=bridge)
|
|
#
|
|
# To enable external services after boot, just set the corresponding env
|
|
# vars (BRIDGE_MPC_URL, BRIDGE_KMS_URL, …) — the bridge backend graceful-degrades
|
|
# when they're unset and starts using them when they appear.
|
|
|
|
services:
|
|
postgres:
|
|
image: ghcr.io/hanzoai/sql:latest
|
|
container_name: bridge-pg-standalone
|
|
environment:
|
|
POSTGRES_USER: bridge
|
|
POSTGRES_PASSWORD: bridge
|
|
POSTGRES_DB: bridge
|
|
ports:
|
|
- "5433:5432"
|
|
volumes:
|
|
- bridge-pg-standalone:/var/lib/postgresql/data
|
|
networks: [bridge-standalone]
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U bridge"]
|
|
interval: 3s
|
|
timeout: 2s
|
|
retries: 10
|
|
|
|
bridge-server:
|
|
image: ghcr.io/luxfi/bridge-server:latest
|
|
container_name: bridge-server-standalone
|
|
depends_on:
|
|
postgres: { condition: service_healthy }
|
|
environment:
|
|
PORT: "5000"
|
|
POSTGRES_URL: postgres://bridge:bridge@postgres:5432/bridge
|
|
DATABASE_URL: postgres://bridge:bridge@postgres:5432/bridge
|
|
NODE_ENV: standalone
|
|
LOG_LEVEL: info
|
|
# All external integrations are OPTIONAL — uncomment to enable.
|
|
# BRIDGE_IAM_ISSUER: https://iam.lux.network
|
|
# BRIDGE_KMS_URL: https://kms.lux.cloud
|
|
# BRIDGE_KMS_ORG: lux
|
|
# BRIDGE_IAM_CLIENT_ID: lux-bridge
|
|
# BRIDGE_IAM_CLIENT_SECRET: <fetch from your secret store>
|
|
# BRIDGE_MPC_URL: https://mpc.lux.network
|
|
ports:
|
|
- "5000:5000"
|
|
networks: [bridge-standalone]
|
|
restart: unless-stopped
|
|
|
|
bridge-ui:
|
|
image: ghcr.io/luxfi/bridge:latest
|
|
container_name: bridge-ui-standalone
|
|
depends_on:
|
|
bridge-server: { condition: service_started }
|
|
environment:
|
|
# __ENV.js is templated by the SPA serving image at boot from these
|
|
# BRIDGE_* vars (one image, N envs).
|
|
BRIDGE_API_HOST: http://localhost:5000
|
|
BRIDGE_ENV: standalone
|
|
BRIDGE_IAM_ORG: lux
|
|
ports:
|
|
- "3001:80"
|
|
networks: [bridge-standalone]
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
bridge-pg-standalone:
|
|
|
|
networks:
|
|
bridge-standalone:
|
|
driver: bridge
|