Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m3s
CI/CD Pipeline / Security Scanning (push) Successful in 2m58s
CI/CD Pipeline / Lint and Format (push) Failing after 46s
CI/CD Pipeline / Terraform Validation (push) Failing after 26s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 29s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 22s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 24s
Validation / validate-genesis (push) Successful in 32s
Validation / validate-terraform (push) Failing after 28s
Validation / validate-kubernetes (push) Failing after 13s
Validation / validate-smart-contracts (push) Failing after 12s
Validation / validate-security (push) Failing after 1m31s
Validation / validate-documentation (push) Failing after 23s
Verify Deployment / Verify Deployment (push) Failing after 1m4s
Add BTC L1 settle/reconcile/ledger APIs, bitcoind intake, cBTC PMM hot-LP scripts, and custody credential smoke tests (secrets stay gitignored). Enables full-prod local green health and server pull-deploy for secure.omdnl.org /btc/*. Co-authored-by: Cursor <cursoragent@cursor.com>
155 lines
4.4 KiB
YAML
155 lines
4.4 KiB
YAML
# OMNL Bank — full production stack (128-chain support)
|
|
# Usage: docker compose -f docker-compose.omnl-production.yml up -d
|
|
|
|
services:
|
|
token-aggregation:
|
|
build:
|
|
context: ./services/token-aggregation
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "3000:3000"
|
|
env_file:
|
|
- ./config/deployment-omnl.production.env
|
|
environment:
|
|
- NODE_ENV=production
|
|
- PORT=3000
|
|
- OMNL_SUPPORTED_CHAINS_CONFIG=/app/config/omnl-supported-chains.v1.json
|
|
volumes:
|
|
- ./config:/app/config:ro
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health',r=>process.exit(r.statusCode===200?0:1))"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
settlement-middleware:
|
|
build:
|
|
context: ./services/settlement-middleware
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "3011:3011"
|
|
env_file:
|
|
- ./config/deployment-omnl.production.env
|
|
environment:
|
|
- NODE_ENV=production
|
|
- SETTLEMENT_MIDDLEWARE_PORT=3011
|
|
- SETTLEMENT_MIDDLEWARE_CONFIG=/app/config/settlement-middleware.production.v1.json
|
|
- OMNL_SUPPORTED_CHAINS_CONFIG=/app/config/omnl-supported-chains.v1.json
|
|
- TOKEN_AGGREGATION_URL=http://token-aggregation:3000
|
|
volumes:
|
|
- ./config:/app/config:ro
|
|
- settlement-data:/app/data
|
|
depends_on:
|
|
token-aggregation:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
|
|
dbis-exchange:
|
|
build:
|
|
context: ./services/dbis-exchange
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "3012:3012"
|
|
env_file:
|
|
- ./config/deployment-omnl.production.env
|
|
environment:
|
|
- NODE_ENV=production
|
|
- DBIS_EXCHANGE_PORT=3012
|
|
- DBIS_EXCHANGE_CONFIG=/app/config/dbis-exchange.production.v1.json
|
|
- OMNL_SUPPORTED_CHAINS_CONFIG=/app/config/omnl-supported-chains.v1.json
|
|
- OMNL_M2_TOKEN_REGISTRY=/app/config/omnl-m2-token-registry.v1.json
|
|
- TOKEN_AGGREGATION_URL=http://token-aggregation:3000
|
|
- SETTLEMENT_MIDDLEWARE_URL=http://settlement-middleware:3011
|
|
volumes:
|
|
- ./config:/app/config:ro
|
|
depends_on:
|
|
settlement-middleware:
|
|
condition: service_started
|
|
restart: unless-stopped
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend-dapp
|
|
dockerfile: Dockerfile.production
|
|
ports:
|
|
- "3002:80"
|
|
depends_on:
|
|
- dbis-exchange
|
|
- settlement-middleware
|
|
- token-aggregation
|
|
restart: unless-stopped
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
ports:
|
|
- "443:443"
|
|
- "80:80"
|
|
volumes:
|
|
- ./deploy/nginx/omnl-bank.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./deploy/nginx/certs:/etc/nginx/certs:ro
|
|
depends_on:
|
|
- frontend
|
|
- token-aggregation
|
|
- settlement-middleware
|
|
- dbis-exchange
|
|
- btc-intake
|
|
restart: unless-stopped
|
|
|
|
# Optional: use external BITCOIND_RPC_URL instead of this service
|
|
bitcoind:
|
|
image: bitcoin/bitcoin:27.0
|
|
profiles: ["btc-node"]
|
|
volumes:
|
|
- btc-data:/home/bitcoin/.bitcoin
|
|
environment:
|
|
BITCOIN_DATA: /home/bitcoin/.bitcoin
|
|
command:
|
|
- bitcoind
|
|
- -server=1
|
|
- -txindex=1
|
|
- -rpcallowip=0.0.0.0/0
|
|
- -rpcbind=0.0.0.0
|
|
- -rpcuser=${BITCOIND_RPC_USER:-omnl}
|
|
- -rpcpassword=${BITCOIND_RPC_PASS:-changeme}
|
|
- -printtoconsole
|
|
expose:
|
|
- "8332"
|
|
restart: unless-stopped
|
|
|
|
btc-intake:
|
|
build:
|
|
context: ./services/btc-intake
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "3013:3013"
|
|
env_file:
|
|
- ./config/deployment-omnl.production.env
|
|
environment:
|
|
- NODE_ENV=production
|
|
- BTC_INTAKE_PORT=3013
|
|
- BTC_INTAKE_DATA_DIR=/app/data
|
|
- SETTLEMENT_MIDDLEWARE_URL=http://settlement-middleware:3011
|
|
- BITCOIND_RPC_URL=${BITCOIND_RPC_URL:-http://bitcoind:8332}
|
|
- BITCOIND_RPC_USER=${BITCOIND_RPC_USER:-omnl}
|
|
- BITCOIND_RPC_PASS=${BITCOIND_RPC_PASS:-changeme}
|
|
- BTC_NETWORK=${BTC_NETWORK:-mainnet}
|
|
- BTC_CONFIRMATIONS_REQUIRED=${BTC_CONFIRMATIONS_REQUIRED:-6}
|
|
- OMNL_REQUIRE_LIVE_BTC_PRICE=1
|
|
volumes:
|
|
- btc-intake-data:/app/data
|
|
depends_on:
|
|
settlement-middleware:
|
|
condition: service_started
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3013/health',r=>process.exit(r.statusCode===200||r.statusCode===503?0:1))"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
volumes:
|
|
settlement-data:
|
|
btc-data:
|
|
btc-intake-data:
|