#!/usr/bin/env bash # ============================================================================== # OnoCloud Native Engine v2.4.0 — Sovereign Node Auto-Bootstrap Script # Target Node: onocloud-worker-node | Data Residency Region: SA-Riyadh # Auto-Updated from OnoCloud Control Plane # ============================================================================== set -e echo "🚀 [OnoCloud Native Engine v2.4.0] Initializing Sovereign Node: onocloud-worker-node (SA-Riyadh)..." # 1. Install Docker Engine & Compose if not installed if ! command -v docker &> /dev/null; then echo "📦 Installing Docker Engine..." curl -fsSL https://get.docker.com | sh systemctl enable --now docker fi # 2. Install Nixpacks (Native Zero-Config Git Builder) if ! command -v nixpacks &> /dev/null; then echo "🛠️ Installing Nixpacks Builder..." curl -sSL https://nixpacks.com/install.sh | bash fi # 3. Create Isolated Sovereign Mesh Network docker network inspect onocloud-mesh >/dev/null 2>&1 || \ docker network create --driver bridge onocloud-mesh # 4. Write Node Residency Metadata mkdir -p /etc/onocloud cat < /etc/onocloud/node.json { "nodeName": "onocloud-worker-node", "region": "SA-Riyadh", "engineVersion": "2.4.0", "token": "YOUR_ONOCLOUD_NODE_TOKEN", "dataResidencyCompliant": true } EOF # 5. Launch Traefik v3 Edge Router with Auto-SSL (Let's Encrypt) docker rm -f onocloud-edge-proxy >/dev/null 2>&1 || true docker run -d \ --name onocloud-edge-proxy \ --network onocloud-mesh \ --restart unless-stopped \ -p 80:80 -p 443:443 \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /etc/onocloud/letsencrypt:/letsencrypt \ traefik:v3.1 \ --providers.docker=true \ --providers.docker.exposedbydefault=false \ --entrypoints.web.address=:80 \ --entrypoints.websecure.address=:443 \ --certificatesresolvers.letsencrypt.acme.tlschallenge=true \ --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json echo "✅ [OnoCloud Native Engine] Node 'onocloud-worker-node' (SA-Riyadh) is online and linked to Control Plane!"