131 lines
5.3 KiB
Bash
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
|