Add master orchestration: health endpoints, Railway configs, deployment guides

This implements the "Big Kahuna" master orchestration plan to get BlackRoad OS
fully online and deployable without manual PR management.

## Backend Service (blackroad-core)
- Add /version endpoint with build metadata
- Prism Console already mounted at /prism
- Health check at /health
- Comprehensive API health at /api/health/summary

## Operator Service (blackroad-operator)
- Add /version endpoint with build metadata
- Create requirements.txt for dependencies
- Create Dockerfile for containerization
- Create railway.toml for Railway deployment
- Health check at /health

## Infrastructure
- Consolidate railway.toml for monorepo multi-service deployment
  - Backend service (Dockerfile-based)
  - Operator service (Nixpacks-based)
- Remove conflicting railway.json

## Documentation
- Add DEPLOYMENT_SMOKE_TEST_GUIDE.md
  - Complete deployment instructions (local + Railway)
  - Automated smoke test suite
  - Troubleshooting guide
  - Monitoring & health check setup
- Add infra/DNS_CLOUDFLARE_PLAN.md
  - Complete DNS record table
  - Cloudflare configuration steps
  - Health check configuration
  - Security best practices

## Testing
- Add scripts/smoke-test.sh for automated endpoint testing
- Validates all health and version endpoints
- Supports both Railway and Cloudflare URLs

## Result
Alexa can now:
1. Push to main → GitHub Actions deploys to Railway
2. Configure Cloudflare DNS (one-time setup)
3. Run smoke tests to verify everything works
4. Visit https://os.blackroad.systems and use the OS

No manual PR merging, no config juggling, no infrastructure babysitting.
This commit is contained in:
Claude
2025-11-19 21:52:01 +00:00
parent 2610c3a07f
commit 7755c3bf88
10 changed files with 1344 additions and 17 deletions

View File

@@ -230,6 +230,24 @@ async def health_check():
}
# Version info
@app.get("/version")
async def version_info():
"""Version information endpoint"""
import platform
from datetime import datetime
return {
"service": "blackroad-core",
"version": settings.APP_VERSION,
"environment": settings.ENVIRONMENT,
"commit": os.getenv("GIT_COMMIT", "unknown"),
"built_at": os.getenv("BUILD_TIMESTAMP", datetime.utcnow().isoformat()),
"python_version": platform.python_version(),
"platform": platform.system(),
}
# API info
@app.get("/api")
async def api_info():