Files
Pulse/scripts/dev/start-oidc-mock.sh
2025-10-11 23:29:47 +00:00

37 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Simple helper that spins up a local Dex server to act as a mock OIDC provider for dev/testing.
# Requires Docker. The container exposes the issuer on http://127.0.0.1:5556/dex
# and registers a static client `pulse-dev` with secret `pulse-secret`.
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
CONFIG_FILE="$PROJECT_ROOT/dev/oidc/dex-config.yaml"
CONTAINER_NAME="pulse-oidc-mock"
DEX_IMAGE="ghcr.io/dexidp/dex:v2.38.0"
if ! command -v docker >/dev/null 2>&1; then
echo "docker is required to run the mock OIDC provider" >&2
exit 1
fi
if [ ! -f "$CONFIG_FILE" ]; then
echo "missing Dex config at $CONFIG_FILE" >&2
exit 1
fi
# Stop an existing container if it is already running
if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
echo "Stopping existing ${CONTAINER_NAME} container..."
docker rm -f "$CONTAINER_NAME" >/dev/null
fi
echo "Starting Dex mock OIDC provider on http://127.0.0.1:5556/dex"
docker run \
--rm \
--name "$CONTAINER_NAME" \
-p 5556:5556 \
-v "$CONFIG_FILE:/etc/dex/config.yaml:ro" \
"$DEX_IMAGE" \
dex serve /etc/dex/config.yaml