Skip to main content

Provider Directory Service — Local Dev Setup

Status: populated Owner: TBD Last updated: 2026-04-17

1. Prerequisites

ToolVersion
Node22.x
pnpm9.x
Docker compose v2
psql16+

2. docker compose

services:
postgres:
image: postgres:16
environment: { POSTGRES_USER: ghasi, POSTGRES_PASSWORD: ghasi, POSTGRES_DB: provider_directory }
ports: ["5432:5432"]
redis: { image: redis:7, ports: ["6379:6379"] }
nats: { image: nats:2.10-alpine, command: ["-js","-m","8222"], ports: ["4222:4222","8222:8222"] }
opensearch:
image: opensearchproject/opensearch:2
environment: { discovery.type: single-node, plugins.security.disabled: "true" }
ports: ["9200:9200"]

3. Bootstrap

pnpm install
docker compose up -d postgres redis nats opensearch
pnpm --filter @ghasi/service-provider-directory migrate:dev
pnpm --filter @ghasi/service-provider-directory seed
pnpm --filter @ghasi/service-provider-directory dev

4. Seed data

  • 10 sample physicians with AFG medical council numbers.
  • 5 nurses + 3 pharmacists.
  • 20 credentials (mix of expiring / active).
  • 3 endpoints (FHIR, HL7, webhook).

5. Commands

TaskCommand
Runpnpm --filter @ghasi/service-provider-directory dev
Unitpnpm --filter @ghasi/service-provider-directory test
Integrationpnpm --filter @ghasi/service-provider-directory test:int
Reindex searchpnpm --filter @ghasi/service-provider-directory search:reindex
Drizzle migratepnpm --filter @ghasi/service-provider-directory db:migrate
OpenAPI exportpnpm --filter @ghasi/service-provider-directory openapi

6. Troubleshooting

SymptomFix
503 on POST practitionerEnsure terminology-service stub running
Arabic name search returns nothingRe-run search:reindex and verify ICU analyser plugin loaded
Privilege check slowredis-cli FLUSHDB; check cache wiring