Skip to content

C150 MONOREPO INFRASTRUCTURE

C-150: Monorepo Infrastructure Completion

Cycle: C-150
Date: 2025-11-29
Status: ✅ Complete

Overview

This cycle completes the missing service infrastructure identified by Daedalus' structural analysis. All 9 services now have proper boilerplates, Dockerfiles, and configuration files.

What Was Created

1. Service Generator Script

File: scripts/create-all-services.sh

A comprehensive bash script that generates boilerplates for all 9 Mobius services: - API services (Express + TypeScript) - Frontend services (Next.js) - Complete package.json, tsconfig.json, Dockerfile, README.md

Usage:

chmod +x scripts/create-all-services.sh
./scripts/create-all-services.sh

2. Service Manifest

File: configs/services-complete.json

Complete service manifest with: - All 9 services with full metadata - 5 package definitions - 5 sentinel definitions - Port mappings, dependencies, environment variables - Deployment targets and integration test config

3. Dockerfiles Created

All services now have Dockerfiles:

Service Dockerfile Location Status
ledger-api apps/ledger-api/Dockerfile ✅ Created (Python/FastAPI)
indexer-api apps/indexer-api/Dockerfile ✅ Created
eomm-api apps/eomm-api/Dockerfile ✅ Created
shield-api apps/shield-api/Dockerfile ✅ Created
broker-api apps/broker-api/Dockerfile ✅ Created
hive-app apps/hive-app/Dockerfile ✅ Created
cathedral-app apps/cathedral-app/Dockerfile ✅ Created
genesisdome-app apps/genesisdome-app/Dockerfile ✅ Created
hub-web apps/hub-web/Dockerfile ✅ Created

4. Docker Compose Updated

File: infra/docker/compose.yml

  • Fixed hub-web port from 3000 to 3004
  • All 9 services configured
  • Health checks for all services
  • Proper dependency chains

Service Status

Implemented Services

  • ledger-api (4001) - Python/FastAPI, fully implemented
  • broker-api (4005) - TypeScript/Express, fully implemented
  • hub-web (3004) - Next.js, fully implemented
  • hive-app (3001) - Static HTML, implemented

Boilerplate Services (Need Implementation)

  • 🔨 indexer-api (4002) - TypeScript/Express boilerplate
  • 🔨 eomm-api (4003) - TypeScript/Express boilerplate
  • 🔨 shield-api (4004) - TypeScript/Express boilerplate
  • 🔨 cathedral-app (3002) - Express boilerplate (should be Next.js)
  • 🔨 genesisdome-app (3003) - Static HTML boilerplate

Quick Start

Local Development

# Install dependencies
pnpm install

# Start single service
cd apps/indexer-api
pnpm install
pnpm dev

# Test health check
curl http://localhost:4002/healthz

Docker Development

# Start all services
cd infra/docker
docker-compose up

# Check service health
curl http://localhost:4001/healthz  # ledger-api
curl http://localhost:4002/healthz  # indexer-api
curl http://localhost:4003/healthz  # eomm-api
curl http://localhost:4004/healthz  # shield-api
curl http://localhost:4005/v1/loop/health  # broker-api
curl http://localhost:3001/health   # hive-app
curl http://localhost:3002/health    # cathedral-app
curl http://localhost:3003/health    # genesisdome-app
curl http://localhost:3004/api/integrity-check  # hub-web

Next Steps

Phase 1: Complete Boilerplate Services

  1. Implement indexer-api business logic
  2. Implement eomm-api SML reflections
  3. Implement shield-api security guards
  4. Convert cathedral-app to Next.js
  5. Implement genesisdome-app features

Phase 2: Integration

  1. Wire service dependencies
  2. Add database migrations
  3. Complete API contracts
  4. Add integration tests

Phase 3: Deployment

  1. Test Docker Compose stack
  2. Deploy to staging
  3. Monitor health checks
  4. Production deployment

Files Modified/Created

Created

  • scripts/create-all-services.sh - Service generator
  • configs/services-complete.json - Complete manifest
  • apps/ledger-api/Dockerfile - Python Dockerfile
  • apps/indexer-api/Dockerfile - Node Dockerfile
  • apps/eomm-api/Dockerfile - Node Dockerfile
  • apps/shield-api/Dockerfile - Node Dockerfile
  • apps/broker-api/Dockerfile - Node Dockerfile
  • apps/hive-app/Dockerfile - Node Dockerfile
  • apps/cathedral-app/Dockerfile - Node Dockerfile
  • apps/genesisdome-app/Dockerfile - Node Dockerfile
  • apps/hub-web/Dockerfile - Next.js Dockerfile
  • docs/C150_MONOREPO_INFRASTRUCTURE.md - This document

Modified

  • infra/docker/compose.yml - Fixed hub-web port

Verification

Checklist

  • All 9 services have directories
  • All services have package.json
  • All services have Dockerfiles
  • Docker Compose has all services
  • Service manifest is complete
  • Generator script is executable
  • Health checks configured
  • Ports match render.yaml

Testing

# Verify generator script
./scripts/create-all-services.sh

# Verify Docker Compose
docker-compose -f infra/docker/compose.yml config

# Verify service manifests
cat configs/services-complete.json | jq '.services | length'
# Should output: 9

Notes

  • ledger-api is Python-based (FastAPI), not TypeScript
  • broker-api is fully implemented with multi-LLM orchestration
  • hub-web is Next.js and fully implemented
  • hive-app is currently static HTML, may need Next.js conversion
  • cathedral-app has Express boilerplate but should be Next.js for consistency
  • C-148: Frameworks (SML, Daedalus, Negentropic Economics)
  • C-149: Cathedral (Public-facing organization)
  • C-150: Infrastructure (This cycle)

Cycle C-150 • Monorepo Infrastructure Completion
"From configuration to reality"