2026-07-07 05:17:40 -07:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# Build and start Z Ecosystem stack only (no OMNL portal deploy).
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
REPO_DIR="${Z_ECOSYSTEM_ROOT:-$HOME/smom-dbis-138}"
|
|
|
|
|
LOG_DIR="${Z_ECOSYSTEM_LOG_DIR:-$HOME/z-ecosystem/logs}"
|
|
|
|
|
ENV_FILE="${Z_ECOSYSTEM_ENV:-$REPO_DIR/config/z-ecosystem.local.env}"
|
|
|
|
|
FRONTEND_PORT="${Z_ECOSYSTEM_FRONTEND_PORT:-3002}"
|
2026-07-07 07:41:20 -07:00
|
|
|
API_PORT="${Z_TOKEN_AGGREGATION_PORT:-${PORT:-3000}}"
|
2026-07-07 05:17:40 -07:00
|
|
|
|
|
|
|
|
log() { echo "[$(date -Iseconds)] $*"; }
|
|
|
|
|
|
|
|
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
|
cd "$REPO_DIR"
|
|
|
|
|
|
|
|
|
|
if [[ -f "$REPO_DIR/.env" ]]; then
|
|
|
|
|
set -a; set +u; source "$REPO_DIR/.env"; set -u; set +a
|
|
|
|
|
fi
|
|
|
|
|
if [[ -f "$ENV_FILE" ]]; then
|
|
|
|
|
set -a; set +u; source "$ENV_FILE"; set -u; set +a
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
export VITE_ECOSYSTEM=z
|
|
|
|
|
export VITE_ENABLE_Z_WALLET=true
|
|
|
|
|
export OMNL_SUPPORTED_CHAINS_CONFIG="${Z_SUPPORTED_CHAINS_CONFIG:-$REPO_DIR/config/z-supported-chains.v1.json}"
|
|
|
|
|
export SETTLEMENT_MIDDLEWARE_CONFIG="${SETTLEMENT_MIDDLEWARE_CONFIG:-$REPO_DIR/config/settlement-middleware.production.v1.json}"
|
|
|
|
|
export CHAIN_900002_RPC_URL="${CHAIN_900002_RPC_URL:-https://rpc.zblockchainsystem.com}"
|
|
|
|
|
export VITE_RPC_URL_900002="${VITE_RPC_URL_900002:-$CHAIN_900002_RPC_URL}"
|
|
|
|
|
export VITE_Z_CHAIN_EXPLORER_URL="${VITE_Z_CHAIN_EXPLORER_URL:-https://explorer.zblockchainsystem.com}"
|
|
|
|
|
export VITE_Z_ECOSYSTEM_URL="${VITE_Z_ECOSYSTEM_URL:-https://zblockchainsystem.com}"
|
|
|
|
|
export VITE_TOKEN_AGGREGATION_URL="${VITE_TOKEN_AGGREGATION_URL:-/api/v1}"
|
|
|
|
|
export VITE_SETTLEMENT_MIDDLEWARE_URL="${VITE_SETTLEMENT_MIDDLEWARE_URL:-/settlement}"
|
|
|
|
|
export VITE_DBIS_EXCHANGE_URL="${VITE_DBIS_EXCHANGE_URL:-/exchange}"
|
|
|
|
|
|
|
|
|
|
build_pkg() {
|
|
|
|
|
local dir="$1"
|
|
|
|
|
log "Building $dir..."
|
|
|
|
|
cd "$REPO_DIR/$dir"
|
|
|
|
|
NODE_ENV=development npm install --no-fund --no-audit
|
|
|
|
|
npm run build
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for dir in packages/integration-foundation packages/settlement-core \
|
|
|
|
|
services/token-aggregation services/settlement-middleware services/dbis-exchange; do
|
|
|
|
|
build_pkg "$dir"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
log "Building Z frontend (VITE_ECOSYSTEM=z)..."
|
|
|
|
|
cd "$REPO_DIR/frontend-dapp"
|
|
|
|
|
unset VITE_OMNL_API_KEY
|
|
|
|
|
if command -v pnpm >/dev/null 2>&1; then
|
|
|
|
|
pnpm install --frozen-lockfile 2>/dev/null || pnpm install
|
|
|
|
|
VITE_ECOSYSTEM=z pnpm run build:z
|
|
|
|
|
else
|
|
|
|
|
npm install
|
|
|
|
|
VITE_ECOSYSTEM=z npm run build:z
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
start_svc() {
|
|
|
|
|
local name="$1"
|
|
|
|
|
local dir="$2"
|
|
|
|
|
local port="$3"
|
|
|
|
|
local cmd="$4"
|
|
|
|
|
log "Starting $name on :$port"
|
|
|
|
|
cd "$REPO_DIR/$dir"
|
|
|
|
|
pkill -f "smom-dbis-138/$dir" 2>/dev/null || true
|
|
|
|
|
fuser -k "${port}/tcp" 2>/dev/null || true
|
|
|
|
|
sleep 1
|
|
|
|
|
nohup env \
|
|
|
|
|
SETTLEMENT_MIDDLEWARE_CONFIG="$SETTLEMENT_MIDDLEWARE_CONFIG" \
|
|
|
|
|
OMNL_SUPPORTED_CHAINS_CONFIG="$OMNL_SUPPORTED_CHAINS_CONFIG" \
|
|
|
|
|
Z_SUPPORTED_CHAINS_CONFIG="$OMNL_SUPPORTED_CHAINS_CONFIG" \
|
2026-07-07 07:41:20 -07:00
|
|
|
PORT="$port" \
|
|
|
|
|
TOKEN_AGGREGATION_URL="${TOKEN_AGGREGATION_URL:-http://127.0.0.1:$port}" \
|
2026-07-07 05:17:40 -07:00
|
|
|
CHAIN_900002_RPC_URL="$CHAIN_900002_RPC_URL" \
|
|
|
|
|
AZURE_OPENAI_ENDPOINT="${AZURE_OPENAI_ENDPOINT:-}" \
|
|
|
|
|
AZURE_OPENAI_API_KEY="${AZURE_OPENAI_API_KEY:-}" \
|
|
|
|
|
AZURE_OPENAI_DEPLOYMENT="${AZURE_OPENAI_DEPLOYMENT:-}" \
|
|
|
|
|
AZURE_OPENAI_API_VERSION="${AZURE_OPENAI_API_VERSION:-2024-02-15-preview}" \
|
|
|
|
|
bash -c "$cmd" >"$LOG_DIR/$name.log" 2>&1 &
|
|
|
|
|
echo $! >"$LOG_DIR/$name.pid"
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-07 07:41:20 -07:00
|
|
|
start_svc token-aggregation services/token-aggregation "$API_PORT" "npm run start"
|
2026-07-07 05:17:40 -07:00
|
|
|
sleep 2
|
|
|
|
|
start_svc settlement-middleware services/settlement-middleware 3011 "npm run start"
|
|
|
|
|
sleep 2
|
|
|
|
|
start_svc dbis-exchange services/dbis-exchange 3012 "npm run start"
|
|
|
|
|
sleep 2
|
|
|
|
|
|
|
|
|
|
pkill -f "serve -s.*$FRONTEND_PORT" 2>/dev/null || true
|
|
|
|
|
cd "$REPO_DIR/frontend-dapp"
|
|
|
|
|
nohup npx --yes serve -s dist -l "$FRONTEND_PORT" >"$LOG_DIR/frontend.log" 2>&1 &
|
|
|
|
|
echo $! >"$LOG_DIR/frontend.pid"
|
|
|
|
|
|
|
|
|
|
sleep 5
|
|
|
|
|
log "Z health checks..."
|
2026-07-07 07:41:20 -07:00
|
|
|
curl -sf "http://127.0.0.1:$API_PORT/api/v1/z-bot/health" | head -c 200 || true
|
2026-07-07 05:17:40 -07:00
|
|
|
echo
|
|
|
|
|
curl -sf "http://127.0.0.1:3011/api/v1/settlement/health" | head -c 200 || true
|
|
|
|
|
echo
|
|
|
|
|
curl -sf -o /dev/null -w "z-hub=%{http_code}\n" "http://127.0.0.1:$FRONTEND_PORT/z"
|
|
|
|
|
curl -sf -o /dev/null -w "z-wallet=%{http_code}\n" "http://127.0.0.1:$FRONTEND_PORT/z-wallet"
|
|
|
|
|
log "Z stack ready on :$FRONTEND_PORT"
|