Files
smom-dbis-138/scripts/deployment/start-omnl-banking-portal.sh
2026-07-05 17:31:33 -07:00

131 lines
5.3 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 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}"
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"
sleep 2
start_service settlement-middleware services/settlement-middleware "npm run start"
sleep 2
start_service dbis-exchange services/dbis-exchange "npm run start"
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"
if [[ -x "./node_modules/vite/bin/vite.js" || -f "./node_modules/vite/bin/vite.js" ]]; then
nohup node ./node_modules/vite/bin/vite.js preview --host 0.0.0.0 --port "$FRONTEND_PORT" \
>"${LOG_DIR}/frontend.log" 2>&1 &
echo "OMNL banking portal started under ${ROOT} (vite preview :${FRONTEND_PORT})"
else
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})"
fi
echo $! >"${LOG_DIR}/frontend.pid"
fi