mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 09:37:55 -05:00
Add comprehensive infrastructure management system to centralize all service definitions, deployment configurations, and operational tooling. ## New Infrastructure Components ### 1. Service Manifest (infra/blackroad-manifest.yml) - Complete catalog of all active and planned services - Deployment configuration for each service - Environment variable definitions - Domain mappings and routing - Database and cache dependencies - Health check endpoints - CI/CD integration specifications ### 2. Operations CLI (scripts/br_ops.py) - Command-line tool for managing all BlackRoad services - Commands: list, env, repo, open, status, health - Reads from service manifest for unified operations - Colored terminal output for better readability ### 3. Service Analysis Documents (infra/analysis/) - Detailed technical analysis for each service - Active services: - blackroad-backend.md (FastAPI backend) - postgres.md (PostgreSQL database) - redis.md (Redis cache) - docs-site.md (MkDocs documentation) - Planned services: - blackroad-api.md (API gateway - Phase 2) - prism-console.md (Admin console - Phase 2) ### 4. Infrastructure Templates (infra/templates/) - railway.toml.template - Railway deployment config - railway.json.template - Alternative Railway config - Dockerfile.fastapi.template - Multi-stage FastAPI Dockerfile - github-workflow-railway-deploy.yml.template - CI/CD workflow - .env.example.template - Comprehensive env var template ### 5. Documentation (infra/README.md) - Complete guide to infrastructure control plane - Usage instructions for ops CLI - Service manifest documentation - Deployment procedures - Troubleshooting guide - Phase 2 migration plan ## Architecture This establishes BlackRoad-Operating-System as the canonical control plane for all BlackRoad services, both current and planned: **Phase 1 (Active)**: - blackroad-backend (FastAPI + static UI) - postgres (Railway managed) - redis (Railway managed) - docs-site (GitHub Pages) **Phase 2 (Planned)**: - blackroad-api (API gateway) - blackroad-prism-console (Admin UI) - blackroad-agents (Orchestration) - blackroad-web (Marketing site) **Phase 3 (Future)**: - lucidia (AI orchestration) - Additional microservices ## Usage # List all services python scripts/br_ops.py list # Show environment variables python scripts/br_ops.py env blackroad-backend # Show repository info python scripts/br_ops.py repo blackroad-backend # Show service URL python scripts/br_ops.py open blackroad-backend prod # Show overall status python scripts/br_ops.py status # Show health checks python scripts/br_ops.py health blackroad-backend ## Benefits 1. **Single Source of Truth**: All service configuration in one manifest 2. **Unified Operations**: One CLI for all services 3. **Documentation**: Comprehensive per-service analysis 4. **Templates**: Reusable infrastructure patterns 5. **Migration Ready**: Clear path to Phase 2 microservices ## References - MASTER_ORCHESTRATION_PLAN.md - 7-layer architecture - ORG_STRUCTURE.md - Repository strategy - PRODUCTION_STACK_AUDIT_2025-11-18.md - Current state Implemented by: Atlas (AI Infrastructure Orchestrator) Date: 2025-11-19
128 lines
3.5 KiB
Plaintext
128 lines
3.5 KiB
Plaintext
# Environment Variables Template
|
|
# Copy this file to .env and fill in the values
|
|
# NEVER commit .env to git!
|
|
|
|
# =============================================================================
|
|
# CORE CONFIGURATION
|
|
# =============================================================================
|
|
|
|
# Application
|
|
APP_NAME="BlackRoad Service"
|
|
APP_VERSION="1.0.0"
|
|
ENVIRONMENT=development # development, staging, production
|
|
DEBUG=True # Set to False in production
|
|
|
|
# Server
|
|
PORT=8000
|
|
HOST=0.0.0.0
|
|
|
|
# Security
|
|
SECRET_KEY= # Generate with: openssl rand -hex 32
|
|
ALLOWED_ORIGINS=http://localhost:8000,http://localhost:3000
|
|
|
|
# =============================================================================
|
|
# DATABASE
|
|
# =============================================================================
|
|
|
|
# PostgreSQL (Railway managed)
|
|
DATABASE_URL= # Format: postgresql+asyncpg://user:pass@host:5432/db
|
|
|
|
# Database pool settings
|
|
DB_POOL_SIZE=10
|
|
DB_MAX_OVERFLOW=20
|
|
|
|
# =============================================================================
|
|
# CACHE
|
|
# =============================================================================
|
|
|
|
# Redis (Railway managed)
|
|
REDIS_URL= # Format: redis://host:6379/0
|
|
|
|
# Redis settings
|
|
REDIS_MAX_CONNECTIONS=10
|
|
|
|
# =============================================================================
|
|
# AUTHENTICATION
|
|
# =============================================================================
|
|
|
|
# JWT settings
|
|
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
|
REFRESH_TOKEN_EXPIRE_DAYS=7
|
|
|
|
# Password hashing
|
|
BCRYPT_ROUNDS=12
|
|
|
|
# =============================================================================
|
|
# BLOCKCHAIN (If applicable)
|
|
# =============================================================================
|
|
|
|
WALLET_MASTER_KEY= # Generate with: openssl rand -hex 32
|
|
|
|
# =============================================================================
|
|
# EXTERNAL APIs (Optional)
|
|
# =============================================================================
|
|
|
|
# OpenAI
|
|
OPENAI_API_KEY=
|
|
|
|
# GitHub
|
|
GITHUB_TOKEN=
|
|
GITHUB_WEBHOOK_SECRET= # Generate with: openssl rand -hex 32
|
|
|
|
# Stripe (Payments)
|
|
STRIPE_SECRET_KEY=
|
|
STRIPE_PUBLISHABLE_KEY=
|
|
STRIPE_WEBHOOK_SECRET=
|
|
|
|
# Sentry (Error Tracking)
|
|
SENTRY_DSN=
|
|
|
|
# Twilio (SMS)
|
|
TWILIO_ACCOUNT_SID=
|
|
TWILIO_AUTH_TOKEN=
|
|
TWILIO_PHONE_NUMBER=
|
|
|
|
# =============================================================================
|
|
# MONITORING & OBSERVABILITY
|
|
# =============================================================================
|
|
|
|
# Logging
|
|
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR, CRITICAL
|
|
|
|
# Metrics
|
|
ENABLE_METRICS=true
|
|
METRICS_PORT=9090
|
|
|
|
# =============================================================================
|
|
# FEATURE FLAGS
|
|
# =============================================================================
|
|
|
|
ENABLE_WEBSOCKETS=false
|
|
ENABLE_GRAPHQL=false
|
|
ENABLE_RATE_LIMITING=true
|
|
|
|
# =============================================================================
|
|
# CORS
|
|
# =============================================================================
|
|
|
|
CORS_ALLOW_CREDENTIALS=true
|
|
CORS_MAX_AGE=3600
|
|
|
|
# =============================================================================
|
|
# NOTES
|
|
# =============================================================================
|
|
|
|
# 1. Generate secure random keys:
|
|
# openssl rand -hex 32
|
|
#
|
|
# 2. Never commit .env to git!
|
|
# Add .env to .gitignore
|
|
#
|
|
# 3. For Railway deployment:
|
|
# Set these in Railway dashboard
|
|
# Use ${{Postgres.DATABASE_URL}} and ${{Redis.REDIS_URL}} references
|
|
#
|
|
# 4. For local development:
|
|
# Use docker-compose for Postgres and Redis
|
|
# Or connect to Railway services
|