Files
smom-dbis-138/scripts/deployment/start-omnl-banking-portal.sh
defiQUG 7b43908585
Some checks failed
CI/CD Pipeline / Solidity Contracts (pull_request) Failing after 54s
CI/CD Pipeline / Security Scanning (pull_request) Successful in 2m39s
CI/CD Pipeline / Lint and Format (pull_request) Failing after 50s
CI/CD Pipeline / Terraform Validation (pull_request) Failing after 25s
CI/CD Pipeline / Kubernetes Validation (pull_request) Successful in 25s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (pull_request) Failing after 24s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (pull_request) Failing after 24s
Validation / validate-genesis (pull_request) Successful in 33s
Validation / validate-terraform (pull_request) Failing after 33s
Validation / validate-kubernetes (pull_request) Failing after 12s
Validation / validate-smart-contracts (pull_request) Failing after 14s
Validation / validate-security (pull_request) Failing after 1m18s
Validation / validate-documentation (pull_request) Failing after 22s
merge(main): reconcile remote main into x402 verification branch
2026-07-12 15:14:59 -07:00

140 lines
5.4 KiB
Bash

#!/usr/bin/env bash
# Start OMNL banking portal services from a deployed portal root.
set -euo pipefail
ROOT="${OMNL_PORTAL_ROOT:-/srv/zardasht-portal}"
LOG_DIR="${OMNL_BANK_LOG_DIR:-/var/log/omnl-bank}"
NGINX_TEMPLATE="${ROOT}/deploy/nginx/omnl-lxc-portal.conf"
ENV_FILE="${OMNL_BANK_ENV:-${ROOT}/.env}"
FRONTEND_PORT="${OMNL_BANK_FRONTEND_PORT:-3002}"
DEPLOY_DOTENV_LIB="${ROOT}/scripts/lib/deployment/dotenv.sh"
mkdir -p "$LOG_DIR"
if [[ -f "$DEPLOY_DOTENV_LIB" ]]; then
# Reuse the shared loader so explicit ENV_FILE wins while repo-root and secure-secret defaults backfill safely.
export ENV_FILE
export PROJECT_ROOT="$ROOT"
# shellcheck disable=SC1090
source "$DEPLOY_DOTENV_LIB"
load_deployment_env --repo-root "$ROOT"
elif [[ -f "$ENV_FILE" ]]; then
set +u
set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a
set -u
fi
export SETTLEMENT_MIDDLEWARE_CONFIG="${ROOT}/config/settlement-middleware.production.v1.json"
export DBIS_EXCHANGE_CONFIG="${ROOT}/config/dbis-exchange.production.v1.json"
export OMNL_SUPPORTED_CHAINS_CONFIG="${ROOT}/config/omnl-supported-chains.v1.json"
export OMNL_M2_TOKEN_REGISTRY="${ROOT}/config/omnl-m2-token-registry.v1.json"
export OMNL_BANK_ROOT="$ROOT"
ROOT_ALIASES=("$ROOT")
if [[ "$ROOT" == "/srv/ali-portal" ]]; then
ROOT_ALIASES+=("/srv/zardasht-portal")
elif [[ "$ROOT" == "/srv/zardasht-portal" ]]; then
ROOT_ALIASES+=("/srv/ali-portal")
fi
start_service() {
local name="$1"
local dir="$2"
local cmd="$3"
local port="${4:-}"
local active_root=""
local alias_root
for alias_root in "${ROOT_ALIASES[@]}"; do
if [[ -z "$active_root" && -d "${alias_root}/${dir}" ]]; then
active_root="$alias_root"
fi
pkill -f "${alias_root}/${dir}" 2>/dev/null || true
done
[[ -n "$active_root" ]] || active_root="$ROOT"
cd "${active_root}/${dir}"
if [[ -n "$port" ]]; then
if command -v fuser >/dev/null 2>&1; then
fuser -k "${port}/tcp" 2>/dev/null || true
else
pid="$(ss -H -tlnp "sport = :${port}" 2>/dev/null | sed -n 's/.*pid=\([0-9]*\).*/\1/p' | head -1)"
[[ -n "$pid" ]] && kill "$pid" 2>/dev/null || true
fi
sleep 1
fi
if [[ ! -d node_modules ]] || [[ ! -f node_modules/.package-lock.json ]]; then
NODE_ENV=development npm install --no-fund --no-audit
fi
local -a env_args=(
"SETTLEMENT_MIDDLEWARE_CONFIG=$SETTLEMENT_MIDDLEWARE_CONFIG"
"DBIS_EXCHANGE_CONFIG=$DBIS_EXCHANGE_CONFIG"
"OMNL_SUPPORTED_CHAINS_CONFIG=$OMNL_SUPPORTED_CHAINS_CONFIG"
"OMNL_M2_TOKEN_REGISTRY=$OMNL_M2_TOKEN_REGISTRY"
"OMNL_BANK_ROOT=$ROOT"
"OMNL_API_KEY=${OMNL_API_KEY:-}"
"OMNL_SUPER_ADMIN_OFFICE24_KEY=${OMNL_SUPER_ADMIN_OFFICE24_KEY:-}"
"OMNL_SUPER_ADMIN_EXCHANGE_KEY=${OMNL_SUPER_ADMIN_EXCHANGE_KEY:-}"
"OMNL_SUPER_ADMIN_SECURE_KEY=${OMNL_SUPER_ADMIN_SECURE_KEY:-}"
"OMNL_SUPER_ADMIN_FOREX_KEY=${OMNL_SUPER_ADMIN_FOREX_KEY:-}"
"OMNL_PORTAL_INTERNAL_SECRET=${OMNL_PORTAL_INTERNAL_SECRET:-}"
"OMNL_CUSTOMER_API_KEYS=${OMNL_CUSTOMER_API_KEYS:-}"
"OMNL_CUSTOMER_SECURITY_PRODUCTION=${OMNL_CUSTOMER_SECURITY_PRODUCTION:-1}"
"OMNL_FINERACT_BASE_URL=${OMNL_FINERACT_BASE_URL:-}"
"OMNL_FINERACT_TENANT=${OMNL_FINERACT_TENANT:-omnl}"
"OMNL_FINERACT_USERNAME=${OMNL_FINERACT_USERNAME:-}"
"OMNL_FINERACT_USER=${OMNL_FINERACT_USER:-}"
"OMNL_FINERACT_PASSWORD=${OMNL_FINERACT_PASSWORD:-}"
"OMNL_PUBLIC_MONEY_SUPPLY=${OMNL_PUBLIC_MONEY_SUPPLY:-1}"
"DATABASE_URL=${DATABASE_URL:-}"
"SETTLEMENT_ALLOW_HYBX_PRODUCTION=${SETTLEMENT_ALLOW_HYBX_PRODUCTION:-1}"
"SETTLEMENT_ALLOW_CHAIN_MINT_EXECUTE=${SETTLEMENT_ALLOW_CHAIN_MINT_EXECUTE:-1}"
"OMNL_ALLOW_CHAIN_MINT_EXECUTE=${OMNL_ALLOW_CHAIN_MINT_EXECUTE:-1}"
"TOKEN_AGGREGATION_URL=${TOKEN_AGGREGATION_URL:-http://127.0.0.1:3000}"
"HYBX_MIFOS_FINERACT_SIDECAR_URL=${HYBX_MIFOS_FINERACT_SIDECAR_URL:-}"
"SWIFT_LISTENER_URL=${SWIFT_LISTENER_URL:-}"
"RPC_URL_138=${RPC_URL_138:-${CHAIN_138_RPC_URL:-}}"
"CHAIN_138_RPC_URL=${CHAIN_138_RPC_URL:-${RPC_URL_138:-}}"
"OMNL_MINT_OPERATOR_PRIVATE_KEY=${OMNL_MINT_OPERATOR_PRIVATE_KEY:-}"
"INFURA_PROJECT_ID=${INFURA_PROJECT_ID:-}"
"INFURA_PROJECT_SECRET=${INFURA_PROJECT_SECRET:-}"
)
nohup env "${env_args[@]}" bash -lc "$cmd" >"${LOG_DIR}/${name}.log" 2>&1 &
echo $! >"${LOG_DIR}/${name}.pid"
}
start_service token-aggregation services/token-aggregation "npm run start" 3000
sleep 2
start_service settlement-middleware services/settlement-middleware "npm run start" 3011
sleep 2
start_service dbis-exchange services/dbis-exchange "npm run start" 3012
sleep 2
pkill -f "serve -s.*${FRONTEND_PORT}" 2>/dev/null || true
pkill -f "vite.*preview.*${FRONTEND_PORT}" 2>/dev/null || true
if [[ -f "${LOG_DIR}/nginx.pid" ]]; then
nginx -s quit -g "pid ${LOG_DIR}/nginx.pid;" 2>/dev/null || true
fi
fuser -k "${FRONTEND_PORT}/tcp" 2>/dev/null || true
sleep 1
if command -v nginx >/dev/null 2>&1 && [[ -f "$NGINX_TEMPLATE" ]]; then
sed "s|/srv/zardasht-portal|${ROOT}|g; s|/srv/ali-portal|${ROOT}|g" "$NGINX_TEMPLATE" >"${LOG_DIR}/nginx.conf"
nginx -t -c "${LOG_DIR}/nginx.conf"
nohup nginx -c "${LOG_DIR}/nginx.conf" >"${LOG_DIR}/frontend.log" 2>&1 &
echo $! >"${LOG_DIR}/frontend.pid"
echo "OMNL banking portal started under ${ROOT} (nginx :${FRONTEND_PORT})"
else
cd "${ROOT}/frontend-dapp"
nohup npx --yes serve -s dist -l "$FRONTEND_PORT" >"${LOG_DIR}/frontend.log" 2>&1 &
echo "OMNL banking portal started under ${ROOT} (serve :${FRONTEND_PORT})"
echo $! >"${LOG_DIR}/frontend.pid"
fi