version: "1.0" workspace: "BlackRoad OS, Inc." control_plane_repo: "blackboxprogramming/BlackRoad-Operating-System" last_updated: "2025-11-19" operator: "Alexa Louise Amundson (Cadillac)" # ============================================================================= # BLACKROAD OS SERVICE MANIFEST # ============================================================================= # This file is the single source of truth for all BlackRoad services, their # deployment configuration, dependencies, and infrastructure mapping. # # Usage: # - Read by br-ops CLI tool for service management # - Referenced by CI/CD workflows for deployment automation # - Used by documentation generation tools # - Maintained by AI agents (Atlas, Cece) and human operators # ============================================================================= # Current deployment state deployment_state: phase: "Phase 1 - Monolith" strategy: "Monorepo with consolidation" active_services: 3 planned_services: 11 target_phase: "Phase 2 - Strategic Split" # Railway production environment railway: project_id: "TBD" # Set after Railway connection project_name: "blackroad-production" region: "us-west1" # Domain configuration (managed via Cloudflare) domains: primary: "blackroad.systems" api: "api.blackroad.systems" prism: "prism.blackroad.systems" docs: "docs.blackroad.systems" console: "console.blackroad.systems" lucidia: "lucidia.earth" network: "blackroad.network" # ============================================================================= # ACTIVE PROJECTS (PHASE 1) # ============================================================================= projects: # --------------------------------------------------------------------------- # CORE BACKEND (Current Production) # --------------------------------------------------------------------------- blackroad-core: description: "Core backend API + static UI serving (monolith)" railway_project: "blackroad-production" status: "active" phase: 1 services: blackroad-backend: repo: "blackboxprogramming/BlackRoad-Operating-System" branch: "main" kind: "backend" language: "python" framework: "FastAPI 0.104.1" runtime: "Python 3.11+" # Deployment configuration deployment: dockerfile: "backend/Dockerfile" build_context: "." start_command: "uvicorn app.main:app --host 0.0.0.0 --port $PORT" healthcheck_path: "/health" port: "${PORT:-8000}" # Health & monitoring endpoints entrypoints: - path: "/health" method: "GET" description: "Basic health check" - path: "/api/health/summary" method: "GET" description: "Comprehensive health with integration status" - path: "/api/system/version" method: "GET" description: "System version and build info" - path: "/api/docs" method: "GET" description: "OpenAPI/Swagger documentation" # Domain routing domains: prod: "blackroad.systems" staging: "staging.blackroad.systems" dev: "dev.blackroad.systems" # Routes served routes: - path: "/" serves: "Pocket OS UI (backend/static/)" type: "static" - path: "/api/*" serves: "REST API (33+ routers)" type: "api" - path: "/prism" serves: "Prism Console UI" type: "static" status: "planned" - path: "/api/docs" serves: "Swagger UI" type: "docs" # Environment variables env: required: - name: "DATABASE_URL" description: "PostgreSQL connection string" source: "${{Postgres.DATABASE_URL}}" example: "postgresql+asyncpg://user:pass@host:5432/blackroad" - name: "REDIS_URL" description: "Redis connection string" source: "${{Redis.REDIS_URL}}" example: "redis://host:6379/0" - name: "SECRET_KEY" description: "JWT signing key" generate: "openssl rand -hex 32" secret: true - name: "ENVIRONMENT" description: "Deployment environment" values: ["development", "staging", "production"] - name: "DEBUG" description: "Debug mode flag" values: ["True", "False"] default: "False" - name: "ALLOWED_ORIGINS" description: "CORS allowed origins" example: "https://blackroad.systems,https://prism.blackroad.systems" important: - name: "ACCESS_TOKEN_EXPIRE_MINUTES" description: "JWT access token expiry" default: "30" - name: "REFRESH_TOKEN_EXPIRE_DAYS" description: "JWT refresh token expiry" default: "7" - name: "WALLET_MASTER_KEY" description: "Blockchain wallet encryption key" generate: "openssl rand -hex 32" secret: true - name: "API_BASE_URL" description: "Public API base URL" example: "https://blackroad.systems" - name: "FRONTEND_URL" description: "Frontend base URL" example: "https://blackroad.systems" optional: - name: "OPENAI_API_KEY" description: "OpenAI API access" secret: true - name: "GITHUB_TOKEN" description: "GitHub API access for agents" secret: true - name: "GITHUB_WEBHOOK_SECRET" description: "GitHub webhook validation secret" generate: "openssl rand -hex 32" secret: true - name: "STRIPE_SECRET_KEY" description: "Stripe payment processing" secret: true - name: "SENTRY_DSN" description: "Sentry error tracking" secret: true # Database dependencies databases: primary: service: "Postgres" type: "postgresql" version: "15+" connection_var: "DATABASE_URL" migrations: "alembic" models_path: "backend/app/models/" # Cache dependencies caches: primary: service: "Redis" type: "redis" version: "7+" connection_var: "REDIS_URL" usage: - "Session storage" - "API response caching" - "WebSocket state" - "Pub/sub for events" # Monitoring & observability observability: metrics: - "Prometheus metrics at /metrics" - "Railway built-in metrics" logging: - "Structured JSON logs" - "Log level: INFO (prod), DEBUG (dev)" tracing: - "Sentry for error tracking" alerts: - "Railway health check failures" - "High error rate (>5%)" - "Response time > 1s (p95)" # ----------------------------------------------------------------------- # DATABASE (Railway managed) # ----------------------------------------------------------------------- postgres: kind: "database" type: "postgresql" version: "15+" provider: "railway-managed" env: exported: - name: "DATABASE_URL" description: "Full PostgreSQL connection string" format: "postgresql+asyncpg://user:pass@host:port/db" configuration: max_connections: 100 shared_buffers: "256MB" effective_cache_size: "1GB" backups: enabled: true frequency: "daily" retention_days: 30 migrations: tool: "alembic" location: "backend/alembic/" auto_upgrade: false # Manual for safety # ----------------------------------------------------------------------- # CACHE (Railway managed) # ----------------------------------------------------------------------- redis: kind: "cache" type: "redis" version: "7+" provider: "railway-managed" env: exported: - name: "REDIS_URL" description: "Redis connection string" format: "redis://host:port/db" configuration: maxmemory: "256MB" maxmemory_policy: "allkeys-lru" usage: - service: "blackroad-backend" purposes: - "HTTP session storage" - "API response caching" - "WebSocket connection state" - "Pub/sub for agent events" # --------------------------------------------------------------------------- # DOCUMENTATION (GitHub Pages) # --------------------------------------------------------------------------- blackroad-docs: description: "Technical documentation (MkDocs)" status: "active" phase: 1 services: docs-site: repo: "blackboxprogramming/BlackRoad-Operating-System" branch: "gh-pages" kind: "docs" framework: "MkDocs Material" deployment: platform: "github-pages" source: "codex-docs/" build_command: "mkdocs build" output_dir: "site/" domains: prod: "docs.blackroad.systems" # CDN configuration cdn: provider: "cloudflare" caching: true ssl: true env: required: - name: "SITE_URL" value: "https://docs.blackroad.systems" # ============================================================================= # PLANNED PROJECTS (PHASE 2) # ============================================================================= planned_projects: # --------------------------------------------------------------------------- # PUBLIC API GATEWAY (Phase 2 extraction) # --------------------------------------------------------------------------- blackroad-api: description: "Public API gateway (extracted from monolith)" railway_project: "blackroad-api" status: "planned" phase: 2 target_date: "2026-Q2" services: public-api: repo: "blackboxprogramming/blackroad-api" # Future split kind: "api-gateway" language: "python" framework: "FastAPI 0.104.1" entrypoints: - path: "/health" - path: "/version" - path: "/v1/*" description: "Versioned API endpoints" domains: prod: "api.blackroad.systems" staging: "staging.api.blackroad.systems" env: required: - "NODE_ENV" - "CORE_API_URL" # Points to internal core service - "AGENTS_API_URL" - "API_KEYS_ENCRYPTION_KEY" # --------------------------------------------------------------------------- # PRISM CONSOLE (Phase 2 standalone UI) # --------------------------------------------------------------------------- blackroad-prism-console: description: "Admin console UI for job queue & observability" railway_project: "blackroad-prism-console" status: "planned" phase: 2 target_date: "2026-Q1" services: prism-console-web: repo: "blackboxprogramming/blackroad-prism-console" # Future split kind: "frontend-console" language: "javascript" framework: "React 18+ or Vanilla JS" domains: prod: "prism.blackroad.systems" staging: "staging.prism.blackroad.systems" env: required: - "REACT_APP_API_URL" - "REACT_APP_CORE_API_URL" - "REACT_APP_AGENTS_API_URL" # --------------------------------------------------------------------------- # OPERATOR/WORKER ENGINE (Phase 2 background jobs) # --------------------------------------------------------------------------- blackroad-agents: description: "Agent orchestration runtime + workers" railway_project: "blackroad-agents" status: "planned" phase: 2 target_date: "2026-Q2" services: agents-api: repo: "blackboxprogramming/blackroad-operator" # Future split kind: "backend" language: "python" framework: "FastAPI" domains: prod: "agents.blackroad.systems" staging: "staging.agents.blackroad.systems" env: required: - "DATABASE_URL" - "REDIS_URL" - "CORE_API_URL" - "PUBLIC_AGENTS_URL" agents-worker: repo: "blackboxprogramming/blackroad-operator" kind: "worker" language: "python" framework: "Celery or custom" env: required: - "DATABASE_URL" - "REDIS_URL" - "CORE_API_URL" # --------------------------------------------------------------------------- # MARKETING SITE (Phase 1-2 transition) # --------------------------------------------------------------------------- blackroad-web: description: "Corporate marketing website" status: "planned" phase: 1 # Should be created soon target_date: "2026-Q1" services: web-app: repo: "blackboxprogramming/blackroad.io" # Future repo kind: "frontend" language: "javascript" framework: "Next.js 14+ or static HTML" domains: prod: "blackroad.systems" # Will replace current root staging: "staging.blackroad.systems" env: required: - "NEXT_PUBLIC_API_URL" - "NEXT_PUBLIC_APP_URL" # --------------------------------------------------------------------------- # AI ORCHESTRATION (Phase 2) # --------------------------------------------------------------------------- lucidia: description: "Multi-model AI orchestration layer" status: "development" phase: 2 target_date: "2026-Q3" services: lucidia-api: repo: "blackboxprogramming/lucidia" kind: "backend" language: "python" framework: "FastAPI" domains: prod: "lucidia.blackroad.systems" staging: "staging.lucidia.blackroad.systems" env: required: - "OPENAI_API_KEY" - "ANTHROPIC_API_KEY" - "GROQ_API_KEY" - "DATABASE_URL" - "REDIS_URL" # ============================================================================= # EXPERIMENTAL/RESEARCH (NOT FOR PRODUCTION) # ============================================================================= experimental_projects: lucidia-lab: description: "AI research & testing environment" repo: "blackboxprogramming/lucidia-lab" status: "research" phase: 3 quantum-math-lab: description: "Quantum computing research" repo: "blackboxprogramming/quantum-math-lab" status: "research" phase: 3 native-ai-quantum-energy: description: "Quantum + AI integration research" repo: "blackboxprogramming/native-ai-quantum-energy" status: "research" phase: 3 # ============================================================================= # INFRASTRUCTURE DEPENDENCIES # ============================================================================= infrastructure: # DNS & CDN cloudflare: zones: - domain: "blackroad.systems" records_managed: true proxy_enabled: true ssl_mode: "full" - domain: "lucidia.earth" records_managed: true proxy_enabled: true ssl_mode: "full" # Primary hosting platform railway: projects: production: name: "blackroad-production" region: "us-west1" services: 3 # backend, postgres, redis staging: name: "blackroad-staging" region: "us-west1" services: 3 # Code & CI/CD github: organization: "blackboxprogramming" repositories: active: 4 # Core repos in Phase 1 total: 23 # Including experimental workflows: - "backend-tests.yml" - "railway-deploy.yml" - "docs-deploy.yml" - "railway-automation.yml" - "infra-ci-bucketed.yml" # Monitoring & observability monitoring: railway: - "Built-in metrics" - "Health checks" - "Log aggregation" sentry: - "Error tracking" - "Performance monitoring" prometheus: - "Custom metrics export" # ============================================================================= # CI/CD CONFIGURATION # ============================================================================= ci_cd: github_actions: workflows: backend_tests: file: ".github/workflows/backend-tests.yml" triggers: ["push", "pull_request"] paths: ["backend/**", "agents/**"] railway_deploy: file: ".github/workflows/railway-deploy.yml" triggers: ["push"] branches: ["main"] requires: ["backend_tests"] docs_deploy: file: ".github/workflows/docs-deploy.yml" triggers: ["push"] paths: ["codex-docs/**"] secrets_required: - "RAILWAY_TOKEN" - "CF_API_TOKEN" - "CF_ZONE_ID" - "SENTRY_DSN" railway: auto_deploy: enabled: true branch: "main" healthcheck_timeout: 300 # 5 minutes rollback_on_failure: true # ============================================================================= # OPERATIONAL RUNBOOKS # ============================================================================= runbooks: deployment: manual_deploy: - "git checkout main" - "git pull origin main" - "git push origin main # Triggers CI/CD" - "Watch Railway dashboard for deploy status" - "Verify /health endpoint returns 200" rollback: - "Railway dashboard → Deployments → Previous deployment → Rollback" - "Or: git revert && git push" incident_response: service_down: - "Check Railway service logs" - "Verify DATABASE_URL and REDIS_URL are set" - "Check /health endpoint" - "Review recent deployments" - "Rollback if necessary" database_issues: - "Check Postgres logs in Railway" - "Verify connection string" - "Check for migration issues" - "Contact Railway support if managed DB issue" # ============================================================================= # MIGRATION PATHS # ============================================================================= migrations: phase_1_to_2: description: "Extract API gateway and Prism console from monolith" steps: - step: 1 action: "Create blackroad-api repo" command: "git subtree split --prefix=backend/app/routers" - step: 2 action: "Deploy blackroad-api to Railway" command: "railway up --service blackroad-api" - step: 3 action: "Update DNS routing" command: "Update Cloudflare DNS: api.blackroad.systems" - step: 4 action: "Verify health checks" command: "curl https://api.blackroad.systems/health" rollback_plan: - "Keep monolith running during migration" - "Blue-green deployment with DNS switch" - "Monitor error rates for 24 hours before removing old service" # ============================================================================= # METADATA # ============================================================================= metadata: version: "1.0" schema_version: "2025-11-19" maintained_by: - "Alexa Louise Amundson (Operator)" - "Atlas (AI Infrastructure Orchestrator)" - "Cece (AI Engineer)" last_audit: "2025-11-18" next_review: "2025-12-19" references: - "MASTER_ORCHESTRATION_PLAN.md" - "ORG_STRUCTURE.md" - "PRODUCTION_STACK_AUDIT_2025-11-18.md" - "BLACKROAD_OS_BIG_KAHUNA_VISION.md"