47 lines
1.6 KiB
Bash
47 lines
1.6 KiB
Bash
#!/bin/bash
|
|
set -Eeuo pipefail
|
|
|
|
COZE_WORKSPACE_PATH="${COZE_WORKSPACE_PATH:-$(pwd)}"
|
|
|
|
# Load environment variables from .env.local if it exists. PM2 role-specific
|
|
# values are restored afterwards so backend/console services keep their ports.
|
|
PM2_DEPLOY_RUN_PORT="${DEPLOY_RUN_PORT:-}"
|
|
PM2_APP_RUNTIME_ROLE="${APP_RUNTIME_ROLE:-}"
|
|
PM2_BACKEND_INTERNAL_URL="${BACKEND_INTERNAL_URL:-}"
|
|
PM2_CONSOLE_INTERNAL_URL="${CONSOLE_INTERNAL_URL:-}"
|
|
|
|
if [ -f "${COZE_WORKSPACE_PATH}/.env.local" ]; then
|
|
set +u
|
|
set -a
|
|
# shellcheck disable=SC1091
|
|
source "${COZE_WORKSPACE_PATH}/.env.local"
|
|
set +a
|
|
set -u
|
|
fi
|
|
|
|
[ -n "${PM2_DEPLOY_RUN_PORT}" ] && DEPLOY_RUN_PORT="${PM2_DEPLOY_RUN_PORT}"
|
|
[ -n "${PM2_APP_RUNTIME_ROLE}" ] && APP_RUNTIME_ROLE="${PM2_APP_RUNTIME_ROLE}"
|
|
[ -n "${PM2_BACKEND_INTERNAL_URL}" ] && BACKEND_INTERNAL_URL="${PM2_BACKEND_INTERNAL_URL}"
|
|
[ -n "${PM2_CONSOLE_INTERNAL_URL}" ] && CONSOLE_INTERNAL_URL="${PM2_CONSOLE_INTERNAL_URL}"
|
|
|
|
if [ -n "${DEPLOY_NODE_BIN_DIR:-}" ] && [ -d "${DEPLOY_NODE_BIN_DIR}" ]; then
|
|
export PATH="${DEPLOY_NODE_BIN_DIR}:${PATH}"
|
|
fi
|
|
|
|
PORT=${1:-5000}
|
|
DEPLOY_RUN_PORT="${DEPLOY_RUN_PORT:-$PORT}"
|
|
APP_RUNTIME_ROLE="${APP_RUNTIME_ROLE:-full}"
|
|
|
|
|
|
start_service() {
|
|
cd "${COZE_WORKSPACE_PATH}"
|
|
echo "Starting ${APP_RUNTIME_ROLE} HTTP service on port ${DEPLOY_RUN_PORT} for deploy..."
|
|
echo "COZE_PROJECT_ENV: ${COZE_PROJECT_ENV}"
|
|
export NODE_ENV="${NODE_ENV:-production}"
|
|
export APP_RUNTIME_ROLE
|
|
PORT=${DEPLOY_RUN_PORT} node dist/server.js
|
|
}
|
|
|
|
echo "Starting ${APP_RUNTIME_ROLE} HTTP service on port ${DEPLOY_RUN_PORT} for deploy..."
|
|
start_service
|