Files
blackroad-operating-system/infra/templates/.env.example.template
Claude abdbc764e6 Establish BlackRoad OS infrastructure control plane
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
2025-11-19 21:04:14 +00:00

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