From 5f949cf7870ec6b1a3659f55a36f70f8de0ecf45 Mon Sep 17 00:00:00 2001 From: Gorka Date: Wed, 18 Mar 2026 16:27:05 -0300 Subject: [PATCH] feat: add council-console and network-dashboard to local-dev - Council Console on port 3030 (standalone Stellar config) - Network Dashboard on port 3040 (standalone Stellar config) - Renamed console references to provider-console for clarity - Refactored down.sh with stop_process helper - Updated step count from 7 to 9 --- down.sh | 80 +++++++++++++++++------------------ up.sh | 126 ++++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 142 insertions(+), 64 deletions(-) diff --git a/down.sh b/down.sh index c9eef2e..ef4590d 100755 --- a/down.sh +++ b/down.sh @@ -8,14 +8,15 @@ set -euo pipefail # Usage: ./down.sh PROVIDER_PLATFORM_PATH="${PROVIDER_PLATFORM_PATH:-$HOME/repos/provider-platform}" -CONSOLE_PATH="${CONSOLE_PATH:-$HOME/repos/provider-console}" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH" # Ports & names (must match up.sh) PROVIDER_PORT=3010 -CONSOLE_PORT=3020 +PROVIDER_CONSOLE_PORT=3020 +COUNCIL_CONSOLE_PORT=3030 +NETWORK_DASHBOARD_PORT=3040 PG_CONTAINER="provider-platform-db" ACCT_ADMIN="admin" ACCT_PROVIDER="provider" @@ -29,51 +30,39 @@ NC='\033[0m' info() { echo -e "${GREEN}[INFO]${NC} $*"; } warn() { echo -e "${YELLOW}[WARN]${NC} $*"; } -# --- Stop provider-platform process --- -PID_FILE="$SCRIPT_DIR/.provider.pid" -killed=false - -if [ -f "$PID_FILE" ]; then - PID=$(cat "$PID_FILE") - if kill -0 "$PID" 2>/dev/null; then - kill "$PID" 2>/dev/null - info "Stopped provider-platform (PID $PID)" - killed=true - fi - rm "$PID_FILE" -fi - -if [ "$killed" = false ]; then - for pid in $(lsof -ti :"$PROVIDER_PORT" 2>/dev/null || true); do - if ps -p "$pid" -o command= 2>/dev/null | grep -q deno; then +# --- Helper: stop a process by PID file or port --- +stop_process() { + local name=$1 + local pid_file=$2 + local port=$3 + local killed=false + + if [ -f "$pid_file" ]; then + local pid + pid=$(cat "$pid_file") + if kill -0 "$pid" 2>/dev/null; then kill "$pid" 2>/dev/null - info "Stopped deno process on port $PROVIDER_PORT (PID $pid)" + info "Stopped $name (PID $pid)" + killed=true fi - done -fi - -# --- Stop provider-console process --- -CONSOLE_PID_FILE="$SCRIPT_DIR/.console.pid" -console_killed=false + rm "$pid_file" + fi -if [ -f "$CONSOLE_PID_FILE" ]; then - PID=$(cat "$CONSOLE_PID_FILE") - if kill -0 "$PID" 2>/dev/null; then - kill "$PID" 2>/dev/null - info "Stopped provider-console (PID $PID)" - console_killed=true + if [ "$killed" = false ]; then + for pid in $(lsof -ti :"$port" 2>/dev/null || true); do + if ps -p "$pid" -o command= 2>/dev/null | grep -q deno; then + kill "$pid" 2>/dev/null + info "Stopped deno process on port $port (PID $pid)" + fi + done fi - rm "$CONSOLE_PID_FILE" -fi +} -if [ "$console_killed" = false ]; then - for pid in $(lsof -ti :"$CONSOLE_PORT" 2>/dev/null || true); do - if ps -p "$pid" -o command= 2>/dev/null | grep -q deno; then - kill "$pid" 2>/dev/null - info "Stopped deno process on port $CONSOLE_PORT (PID $pid)" - fi - done -fi +# --- Stop all processes --- +stop_process "provider-platform" "$SCRIPT_DIR/.provider.pid" "$PROVIDER_PORT" +stop_process "provider-console" "$SCRIPT_DIR/.provider-console.pid" "$PROVIDER_CONSOLE_PORT" +stop_process "council-console" "$SCRIPT_DIR/.council-console.pid" "$COUNCIL_CONSOLE_PORT" +stop_process "network-dashboard" "$SCRIPT_DIR/.network-dashboard.pid" "$NETWORK_DASHBOARD_PORT" # --- Stop PostgreSQL container --- if docker ps -a --format '{{.Names}}' | grep -q "^${PG_CONTAINER}$"; then @@ -94,7 +83,9 @@ fi for f in \ "$PROVIDER_PLATFORM_PATH/.env" \ "$SCRIPT_DIR/provider.log" \ - "$SCRIPT_DIR/console.log" \ + "$SCRIPT_DIR/provider-console.log" \ + "$SCRIPT_DIR/council-console.log" \ + "$SCRIPT_DIR/network-dashboard.log" \ ; do if [ -f "$f" ]; then rm "$f" @@ -102,5 +93,8 @@ for f in \ fi done +# --- Clean up old pid files (backward compat) --- +rm -f "$SCRIPT_DIR/.console.pid" "$SCRIPT_DIR/console.log" 2>/dev/null + echo "" info "Down. local-dev services stopped (shared Stellar & Jaeger left running)." diff --git a/up.sh b/up.sh index a28b51c..9e4128c 100755 --- a/up.sh +++ b/up.sh @@ -12,7 +12,9 @@ set -euo pipefail SOROBAN_CORE_PATH="${SOROBAN_CORE_PATH:-$HOME/repos/soroban-core}" PROVIDER_PLATFORM_PATH="${PROVIDER_PLATFORM_PATH:-$HOME/repos/provider-platform}" -CONSOLE_PATH="${CONSOLE_PATH:-$HOME/repos/provider-console}" +PROVIDER_CONSOLE_PATH="${PROVIDER_CONSOLE_PATH:-$HOME/repos/provider-console}" +COUNCIL_CONSOLE_PATH="${COUNCIL_CONSOLE_PATH:-$HOME/repos/council-console}" +NETWORK_DASHBOARD_PATH="${NETWORK_DASHBOARD_PATH:-$HOME/repos/network-dashboard}" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # Ports (offset from local-dev defaults to prevent collisions) @@ -20,7 +22,9 @@ STELLAR_RPC_PORT=8000 # shared with local-dev JAEGER_OTLP_PORT=4318 # shared with local-dev PG_PORT=5442 PROVIDER_PORT=3010 -CONSOLE_PORT=3020 +PROVIDER_CONSOLE_PORT=3020 +COUNCIL_CONSOLE_PORT=3030 +NETWORK_DASHBOARD_PORT=3040 # Container / account names PG_CONTAINER="provider-platform-db" @@ -73,7 +77,9 @@ info "Deno: $($DENO_BIN --version | head -1)" [ -d "$SOROBAN_CORE_PATH" ] || error "soroban-core not found at $SOROBAN_CORE_PATH" [ -d "$PROVIDER_PLATFORM_PATH" ] || error "provider-platform not found at $PROVIDER_PLATFORM_PATH" -[ -d "$CONSOLE_PATH" ] || error "provider-console not found at $CONSOLE_PATH" +[ -d "$PROVIDER_CONSOLE_PATH" ] || error "provider-console not found at $PROVIDER_CONSOLE_PATH" +[ -d "$COUNCIL_CONSOLE_PATH" ] || error "council-console not found at $COUNCIL_CONSOLE_PATH" +[ -d "$NETWORK_DASHBOARD_PATH" ] || error "network-dashboard not found at $NETWORK_DASHBOARD_PATH" # ============================================================ section "2/7 Stellar Network (shared)" @@ -273,12 +279,11 @@ for i in $(seq 1 15); do done # ============================================================ -section "7/7 Provider Console (port $CONSOLE_PORT)" +section "7/9 Provider Console (port $PROVIDER_CONSOLE_PORT)" # ============================================================ -cd "$CONSOLE_PATH" +cd "$PROVIDER_CONSOLE_PATH" -# Write runtime config pointing to provider-platform cat > public/config.js < "$CONSOLE_LOG" 2>&1 & -CONSOLE_PID=$! -echo "$CONSOLE_PID" > "$SCRIPT_DIR/.console.pid" -info "Console running (PID $CONSOLE_PID, log: $CONSOLE_LOG)" +nohup "$DENO_BIN" task serve > "$PROVIDER_CONSOLE_LOG" 2>&1 & +PROVIDER_CONSOLE_PID=$! +echo "$PROVIDER_CONSOLE_PID" > "$SCRIPT_DIR/.provider-console.pid" +info "Provider Console running (PID $PROVIDER_CONSOLE_PID, log: $PROVIDER_CONSOLE_LOG)" for i in $(seq 1 10); do - if curl -sf "http://localhost:${CONSOLE_PORT}/" >/dev/null 2>&1; then - info "Console is ready on port $CONSOLE_PORT." + if curl -sf "http://localhost:${PROVIDER_CONSOLE_PORT}/" >/dev/null 2>&1; then + info "Provider Console is ready." break fi if [ "$i" -eq 10 ]; then - warn "Console may not be ready yet. Check $CONSOLE_LOG" + warn "Provider Console may not be ready yet. Check $PROVIDER_CONSOLE_LOG" + fi + sleep 1 +done + +# ============================================================ +section "8/9 Council Console (port $COUNCIL_CONSOLE_PORT)" +# ============================================================ + +cd "$COUNCIL_CONSOLE_PATH" + +cat > public/config.js < "$COUNCIL_CONSOLE_LOG" 2>&1 & +COUNCIL_CONSOLE_PID=$! +echo "$COUNCIL_CONSOLE_PID" > "$SCRIPT_DIR/.council-console.pid" +info "Council Console running (PID $COUNCIL_CONSOLE_PID, log: $COUNCIL_CONSOLE_LOG)" + +for i in $(seq 1 10); do + if curl -sf "http://localhost:${COUNCIL_CONSOLE_PORT}/" >/dev/null 2>&1; then + info "Council Console is ready." + break + fi + if [ "$i" -eq 10 ]; then + warn "Council Console may not be ready yet. Check $COUNCIL_CONSOLE_LOG" + fi + sleep 1 +done + +# ============================================================ +section "9/9 Network Dashboard (port $NETWORK_DASHBOARD_PORT)" +# ============================================================ + +cd "$NETWORK_DASHBOARD_PATH" + +cat > public/config.js < "$NETWORK_DASHBOARD_LOG" 2>&1 & +NETWORK_DASHBOARD_PID=$! +echo "$NETWORK_DASHBOARD_PID" > "$SCRIPT_DIR/.network-dashboard.pid" +info "Network Dashboard running (PID $NETWORK_DASHBOARD_PID, log: $NETWORK_DASHBOARD_LOG)" + +for i in $(seq 1 10); do + if curl -sf "http://localhost:${NETWORK_DASHBOARD_PORT}/" >/dev/null 2>&1; then + info "Network Dashboard is ready." + break + fi + if [ "$i" -eq 10 ]; then + warn "Network Dashboard may not be ready yet. Check $NETWORK_DASHBOARD_LOG" fi sleep 1 done @@ -322,11 +404,13 @@ echo " Channel Auth: $AUTH_ID" echo " Privacy Channel: $CHANNEL_ID" echo "" echo "Services:" -echo " Provider Platform: http://localhost:$PROVIDER_PORT (PID $PROVIDER_PID)" -echo " Provider Console: http://localhost:$CONSOLE_PORT (PID $CONSOLE_PID)" -echo " PostgreSQL: localhost:$PG_PORT (container: $PG_CONTAINER)" -echo " Stellar RPC: http://localhost:$STELLAR_RPC_PORT (shared)" -echo " Jaeger UI: http://localhost:16686 (shared)" +echo " Provider Platform: http://localhost:$PROVIDER_PORT (PID $PROVIDER_PID)" +echo " Provider Console: http://localhost:$PROVIDER_CONSOLE_PORT (PID $PROVIDER_CONSOLE_PID)" +echo " Council Console: http://localhost:$COUNCIL_CONSOLE_PORT (PID $COUNCIL_CONSOLE_PID)" +echo " Network Dashboard: http://localhost:$NETWORK_DASHBOARD_PORT (PID $NETWORK_DASHBOARD_PID)" +echo " PostgreSQL: localhost:$PG_PORT (container: $PG_CONTAINER)" +echo " Stellar RPC: http://localhost:$STELLAR_RPC_PORT (shared)" +echo " Jaeger UI: http://localhost:16686 (shared)" echo "" echo "To stop everything:" echo " ./down.sh"