Skip to main content

Port Map & Services Overview

A quick-reference for every service and data store in the GospeLib platform. Bookmark this page — you'll come back to it.

Application Ports

ServicePortLanguageFrameworkPurpose
Admin3001TypeScriptNext.js 15Internal admin dashboard
Web3002TypeScriptNext.js 15User-facing scripture reader

Backend Service Ports

All external API traffic enters through the Gateway at port 8080. No other service is exposed directly to clients.

ServicePortLanguageFrameworkPurpose
Gateway8080Go 1.23Chi v5API gateway — JWT validation, rate limiting, reverse proxy
Content8100Python 3.12FastAPIScripture graph queries (FalkorDB)
Auth8200Go 1.23Chi v5Clerk wrapper, user sync, JWT middleware
Billing8300Go 1.23Chi v5Stripe subscriptions, entitlements
AI8400Python 3.12FastAPILLM passage explanation, study questions
Notifications8500Go 1.23Chi v5Push (APNs/FCM), email (Resend), Redis Streams

The Ingest service is a CLI tool (Python/Click), not an HTTP service — it has no port.

Data Store Ports

StorePortImagePurpose
FalkorDB6379falkordb/falkordb:latestPrimary graph database — scripture content & relationships
PostgreSQL5432pgvector/pgvector:pg16Users, subscriptions, notes, AI embeddings (pgvector)
Redis6380redis:7-alpineCache, rate limiting, sessions, job queues
Typesense8108typesense/typesense:26.0Full-text and faceted search
FalkorDB ≠ Redis

FalkorDB (port 6379) and Redis (port 6380) are separate instances. FalkorDB is a Redis-protocol graph database used for scripture data. Redis is a general-purpose cache/queue. Never confuse them in configuration.

Browser-Based Interfaces

Every URL you can open in a browser during local development:

InterfaceURLPurpose
Web Apphttp://localhost:3002User-facing scripture reader
Admin Dashboardhttp://localhost:3001Internal admin dashboard
Docs Sitehttp://localhost:3003Internal engineering docs (Docusaurus)
Grafanahttp://localhost:3000Dashboards, logs, traces, metrics
Alloy UIhttp://localhost:12345Grafana Alloy collector debug interface
Content API Docshttp://localhost:8100/docsSwagger UI for Content service
Content API ReDochttp://localhost:8100/redocReDoc for Content service
AI API Docshttp://localhost:8400/docsSwagger UI for AI service
AI API ReDochttp://localhost:8400/redocReDoc for AI service
FalkorDB Browserhttp://localhost:3004Graph database explorer (Cypher)
RedisInsighthttp://localhost:5540Redis GUI for keys, commands, monitor
tip

For detailed descriptions, default credentials, and optional tools for data stores that lack a web UI, see the Web Interfaces guide.

Request Flow

Browser / Mobile App


Gateway (8080) ← JWT validation, rate limiting, CORS

├──► Content (8100) ← Scripture queries → FalkorDB (6379)
├──► Auth (8200) ← User management → PostgreSQL (5432)
├──► Billing (8300) ← Subscriptions → PostgreSQL (5432)
├──► AI (8400) ← LLM features → Redis (6380) cache
└──► Notifications (8500) ← Push/email → Redis (6380) streams

Running Individual Services

# Frontend apps
pnpm dev:web # Web app → localhost:3002
pnpm dev:mobile # Expo mobile app

# Backend services
cd services/gateway && go run ./cmd/server # → :8080
cd services/content && uv run uvicorn gospelib_content.main:create_app --factory --reload --port 8100
cd services/auth && go run ./cmd/server # → :8200
cd services/billing && go run ./cmd/server # → :8300
cd services/ai && uv run uvicorn gospelib_ai.main:create_app --factory --reload --port 8400
cd services/notifications && go run ./cmd/server # → :8500

# Ingest pipeline (CLI, not a server)
cd services/ingest && uv run gospelib-ingest run
cd services/ingest && uv run gospelib-ingest run --dry-run

Health Checks

Every HTTP service exposes /health and /ready endpoints. Check all at once:

bash tools/scripts/health-check.sh

Or check individually:

curl http://localhost:8080/health # Gateway
curl http://localhost:8100/health # Content
curl http://localhost:8200/health # Auth
curl http://localhost:8300/health # Billing
curl http://localhost:8400/health # AI
curl http://localhost:8500/health # Notifications

Verify It Worked

After starting pnpm dev:stack, confirm all services are running:

  1. Run bash tools/scripts/health-check.sh — all services should report healthy.
  2. Open http://localhost:3002 — the web app loads.
  3. Run curl http://localhost:8080/health — the gateway responds.