Files
blackroad-operating-system/ops/domains.yaml
Claude 9a728f655a Prevent BlackRoad-Operating-System monorepo from being added to Railway services
CRITICAL CHANGES:
- Add comprehensive deployment architecture documentation
- Prevent misconfiguration where monorepo is deployed instead of satellites
- Clarify monorepo-to-satellite sync model across all docs

CHANGES:
1. railway.toml
   - Add critical warning banner at top of file
   - Mark config as local development/testing only
   - Explain correct deployment model (satellites, not monorepo)

2. DEPLOYMENT_ARCHITECTURE.md (NEW)
   - Complete 500+ line deployment guide
   - Monorepo vs satellite model explained in detail
   - Critical rules: NEVER add monorepo to Railway
   - Service-to-repository mapping
   - Environment configuration guide
   - Cloudflare DNS configuration
   - Common mistakes and troubleshooting

3. README.md
   - Add prominent deployment warning box
   - Clarify monorepo is source of truth, not deployable
   - List satellite repos that should be deployed
   - Reference DEPLOYMENT_ARCHITECTURE.md

4. CLAUDE.md
   - Add critical deployment model section
   - Clarify Railway deployment is satellite-only
   - Update deployment workflow explanation
   - Add key rules for deployment

5. backend/.env.example
   - Fix ALLOWED_ORIGINS to reference satellites
   - Remove monorepo Railway URL reference
   - Add correct satellite service URLs

6. ops/domains.yaml
   - Fix os.blackroad.systems DNS target
   - Point to blackroad-os-core-production (satellite)
   - Remove incorrect monorepo Railway URL

7. scripts/validate_deployment_config.py (NEW)
   - Automated validation script
   - Checks for monorepo references in configs
   - Validates railway.toml, env files, DNS configs
   - Ensures DEPLOYMENT_ARCHITECTURE.md exists
   - Exit code 0 = pass, 1 = fail

WHY THIS MATTERS:
- Adding monorepo to Railway creates circular deploy loops
- Environment variables break (wrong service URLs)
- Cloudflare routing fails
- Service dependencies misconfigured
- Prevents production outages from misconfiguration

CORRECT MODEL:
- Monorepo = source of truth (orchestration only)
- Satellites = deployable services (Railway deployment)
- Code flows: monorepo → sync → satellite → Railway

See: DEPLOYMENT_ARCHITECTURE.md for complete details
2025-11-19 22:31:22 +00:00

65 lines
1.8 KiB
YAML

# Universal domain registry configuration
# Each entry describes how a domain or subdomain should be handled.
# Supported providers: "godaddy", "cloudflare"
# Supported modes:
# - forward: use registrar forwarding (HTTPS 301)
# - dns: set DNS records (CNAME or A)
domains:
# Primary domain: blackroad.systems serves the main application
- name: "blackroad.systems"
type: "root"
provider: "godaddy"
mode: "dns"
record:
type: "CNAME"
value: "YOUR-PROD-RAILWAY-APP.up.railway.app" # replace with your Railway host
notes: "Main flagship corporate site - serves BlackRoad OS application directly"
# www subdomain redirects to apex domain
- name: "www.blackroad.systems"
type: "subdomain"
provider: "godaddy"
mode: "forward"
forward_to: "https://blackroad.systems"
forwarding_type: 301
notes: "Redirects to canonical apex domain"
# os subdomain can be used as an alias
- name: "os.blackroad.systems"
type: "subdomain"
provider: "godaddy"
mode: "dns"
record:
type: "CNAME"
value: "blackroad-os-core-production.up.railway.app" # Core API satellite service
notes: "Alternative subdomain alias for the OS application - points to Core API satellite"
- name: "blackroad.ai"
type: "root"
provider: "cloudflare"
mode: "dns"
record:
type: "CNAME"
value: "os.blackroad.systems"
- name: "roadwallet.com"
type: "root"
provider: "cloudflare"
mode: "dns"
record:
type: "CNAME"
value: "os.blackroad.systems"
- name: "aliceos.io"
type: "root"
provider: "cloudflare"
mode: "dns"
record:
type: "CNAME"
value: "os.blackroad.systems"
# Add additional domains or subdomains here following the same pattern.
# By default you can set mode: "dns" with a CNAME pointing to os.blackroad.systems,
# or override as needed.