76 lines
2.3 KiB
Bash
Executable File
76 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
|
|
API_PROJECT="${REPO_ROOT}/src/Jibo.Cloud/dotnet/src/Jibo.Cloud.Api/Jibo.Cloud.Api.csproj"
|
|
|
|
CERT_PEM="${CERT_PEM:-${REPO_ROOT}/src/Jibo.Cloud/node/cert.pem}"
|
|
KEY_PEM="${KEY_PEM:-${REPO_ROOT}/src/Jibo.Cloud/node/key.pem}"
|
|
CHAIN_PEM="${CHAIN_PEM:-}"
|
|
PFX_OUT="${PFX_OUT:-${REPO_ROOT}/.tmp/openjibo-dev-cert.pfx}"
|
|
PFX_PASSWORD="${PFX_PASSWORD:-openjibo-dev-password}"
|
|
ASPNETCORE_URLS="${ASPNETCORE_URLS:-https://0.0.0.0:443;http://0.0.0.0:24605}"
|
|
DOTNET_ENVIRONMENT="${DOTNET_ENVIRONMENT:-Development}"
|
|
CAPTURE_DIRECTORY="${CAPTURE_DIRECTORY:-${REPO_ROOT}/captures/websocket}"
|
|
PROTOCOL_CAPTURE_DIRECTORY="${PROTOCOL_CAPTURE_DIRECTORY:-${REPO_ROOT}/captures/http}"
|
|
|
|
mkdir -p "$(dirname "${PFX_OUT}")"
|
|
mkdir -p "${CAPTURE_DIRECTORY}"
|
|
mkdir -p "${PROTOCOL_CAPTURE_DIRECTORY}"
|
|
|
|
if [[ ! -f "${CERT_PEM}" ]]; then
|
|
echo "Missing CERT_PEM: ${CERT_PEM}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "${KEY_PEM}" ]]; then
|
|
echo "Missing KEY_PEM: ${KEY_PEM}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
OPENSSL_ARGS=(
|
|
pkcs12
|
|
-export
|
|
-out "${PFX_OUT}"
|
|
-inkey "${KEY_PEM}"
|
|
-in "${CERT_PEM}"
|
|
-passout "pass:${PFX_PASSWORD}"
|
|
)
|
|
|
|
if [[ -n "${CHAIN_PEM}" ]]; then
|
|
if [[ ! -f "${CHAIN_PEM}" ]]; then
|
|
echo "Missing CHAIN_PEM: ${CHAIN_PEM}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
OPENSSL_ARGS+=( -certfile "${CHAIN_PEM}" )
|
|
fi
|
|
|
|
echo "Creating PFX for Kestrel"
|
|
echo " - cert: ${CERT_PEM}"
|
|
echo " - key: ${KEY_PEM}"
|
|
if [[ -n "${CHAIN_PEM}" ]]; then
|
|
echo " - chain: ${CHAIN_PEM}"
|
|
fi
|
|
echo " - pfx: ${PFX_OUT}"
|
|
openssl "${OPENSSL_ARGS[@]}"
|
|
|
|
export ASPNETCORE_URLS
|
|
export DOTNET_ENVIRONMENT
|
|
export ASPNETCORE_Kestrel__Certificates__Default__Path="${PFX_OUT}"
|
|
export ASPNETCORE_Kestrel__Certificates__Default__Password="${PFX_PASSWORD}"
|
|
export OpenJibo__Telemetry__DirectoryPath="${CAPTURE_DIRECTORY}"
|
|
export OpenJibo__ProtocolTelemetry__DirectoryPath="${PROTOCOL_CAPTURE_DIRECTORY}"
|
|
|
|
echo ""
|
|
echo "Starting OpenJibo .NET cloud"
|
|
echo " - project: ${API_PROJECT}"
|
|
echo " - urls: ${ASPNETCORE_URLS}"
|
|
echo " - environment: ${DOTNET_ENVIRONMENT}"
|
|
echo " - websocket captures: ${CAPTURE_DIRECTORY}"
|
|
echo " - http captures: ${PROTOCOL_CAPTURE_DIRECTORY}"
|
|
|
|
cd "${REPO_ROOT}"
|
|
exec dotnet run --project "${API_PROJECT}" --no-launch-profile
|