146 lines
4.3 KiB
Markdown
146 lines
4.3 KiB
Markdown
# Sankofa Studio — E2E Flow (studio.sankofa.nexus → 192.168.11.72:8000)
|
||
|
||
**Last Updated:** 2026-02-28
|
||
**Purpose:** Execute the full E2E flow for Sankofa Studio (FusionAI Creator) at https://studio.sankofa.nexus.
|
||
|
||
---
|
||
|
||
## Summary
|
||
|
||
| Step | Action | Where |
|
||
|------|--------|--------|
|
||
| 1 | Deploy LXC 7805 + Docker + FusionAI Creator | Proxmox host or via SSH |
|
||
| 2 | Add NPMplus proxy: studio.sankofa.nexus → 192.168.11.72:8000 | NPMplus UI (192.168.11.167) |
|
||
| 3 | Add Cloudflare DNS (and tunnel if used) | Cloudflare dashboard |
|
||
| 4 | Verify health and E2E routing | From repo or LAN |
|
||
|
||
---
|
||
|
||
## Step 1: Deploy LXC and app
|
||
|
||
From the **proxmox** repo root (or from a host that can SSH to Proxmox):
|
||
|
||
```bash
|
||
cd /home/intlc/projects/proxmox
|
||
source config/ip-addresses.conf 2>/dev/null || true
|
||
|
||
# Option A: Deploy with Git clone (set your FusionAI-Creator repo URL)
|
||
export REPO_URL="https://gitea.d-bis.org/d-bis/FusionAI-Creator.git"
|
||
# Optional: production .env
|
||
# export ENV_FILE="/path/to/fusionai-production.env"
|
||
|
||
# From Proxmox host:
|
||
./scripts/deployment/deploy-sankofa-studio-lxc.sh
|
||
|
||
# Option B: From another machine via SSH to Proxmox
|
||
export PROXMOX_HOST=192.168.11.11
|
||
./scripts/deployment/deploy-sankofa-studio-lxc.sh
|
||
```
|
||
|
||
- Use `--dry-run` to print commands only.
|
||
- Use `--skip-create` if container 7805 already exists (only install/deploy app).
|
||
|
||
After deploy, confirm the API is up:
|
||
|
||
```bash
|
||
curl -s http://192.168.11.72:8000/health
|
||
```
|
||
|
||
---
|
||
|
||
## Step 2: NPMplus proxy
|
||
|
||
**Automated (from repo root, requires NPM_PASSWORD in .env):**
|
||
|
||
```bash
|
||
cd /home/intlc/projects/proxmox
|
||
bash scripts/nginx-proxy-manager/add-studio-sankofa-npmplus-proxy.sh
|
||
```
|
||
|
||
Then request SSL for the host (one of the hosts without a cert):
|
||
|
||
```bash
|
||
FIRST_ONLY=1 bash scripts/request-npmplus-certificates.sh
|
||
# Or run without FIRST_ONLY to request for all hosts missing certs
|
||
```
|
||
|
||
**Manual:** In **NPMplus** (https://192.168.11.167 or your NPMplus URL):
|
||
|
||
1. Add **Proxy Host**
|
||
- **Domain names:** `studio.sankofa.nexus`
|
||
- **Scheme:** HTTP
|
||
- **Forward hostname / IP:** `192.168.11.72`
|
||
- **Forward port:** `8000`
|
||
2. **SSL:** Request certificate (Let's Encrypt or Cloudflare Origin), enable **Force SSL**.
|
||
|
||
---
|
||
|
||
## Step 3: Cloudflare DNS and tunnel
|
||
|
||
**Automated (from repo root, requires CLOUDFLARE_API_TOKEN and CLOUDFLARE_ZONE_ID_SANKOFA_NEXUS in .env):**
|
||
|
||
```bash
|
||
cd /home/intlc/projects/proxmox
|
||
bash scripts/cloudflare/add-studio-sankofa-dns.sh
|
||
```
|
||
|
||
This creates/updates **A** `studio.sankofa.nexus` → `76.53.10.36` (or `PUBLIC_IP` from .env).
|
||
|
||
**Manual DNS (zone `sankofa.nexus`):**
|
||
|
||
- **CNAME** `studio` → `<your-tunnel>.cfargotunnel.com` (Proxied), **or**
|
||
- **A** `studio` → `76.53.10.36` (if using direct port forward to NPMplus).
|
||
|
||
**Tunnel (if using Cloudflare Tunnel):**
|
||
|
||
- In Zero Trust → Networks → Tunnels → your tunnel → Public Hostname:
|
||
- **Subdomain:** `studio` (or full hostname `studio.sankofa.nexus`)
|
||
- **URL:** `https://192.168.11.167:443` (NPMplus); **No TLS Verify** if backend is HTTP.
|
||
|
||
---
|
||
|
||
## Step 4: Verify E2E
|
||
|
||
**Health (from LAN or Proxmox):**
|
||
|
||
```bash
|
||
curl -s http://192.168.11.72:8000/health
|
||
curl -s http://192.168.11.72:8000/studio/ -o /dev/null -w "%{http_code}\n"
|
||
```
|
||
|
||
**Full E2E routing (includes studio.sankofa.nexus):**
|
||
|
||
```bash
|
||
cd /home/intlc/projects/proxmox
|
||
bash scripts/verify/verify-end-to-end-routing.sh --profile=public
|
||
```
|
||
|
||
- Report: `docs/04-configuration/verification-evidence/e2e-verification-<timestamp>/verification_report.md`
|
||
- Optional: `ACCEPT_ANY_DNS=1` if DNS points to Fastly or other edge.
|
||
|
||
**Browser:**
|
||
|
||
- Studio UI: https://studio.sankofa.nexus/studio/
|
||
- Marketplace landing: https://studio.sankofa.nexus/marketplace/landing.html
|
||
|
||
---
|
||
|
||
## One-liner (deploy + next steps)
|
||
|
||
```bash
|
||
cd /home/intlc/projects/proxmox && \
|
||
source config/ip-addresses.conf 2>/dev/null || true && \
|
||
REPO_URL="${REPO_URL:-https://gitea.d-bis.org/d-bis/FusionAI-Creator.git}" \
|
||
./scripts/deployment/run-sankofa-studio-e2e.sh
|
||
```
|
||
|
||
If `REPO_URL` is set, the script runs the deploy then prints Step 2–4. If not set, it prints all steps.
|
||
|
||
---
|
||
|
||
## Reference
|
||
|
||
- Full runbook: [SANKOFA_STUDIO_DEPLOYMENT.md](SANKOFA_STUDIO_DEPLOYMENT.md)
|
||
- VMID 7805, IP 192.168.11.72: [ALL_VMIDS_ENDPOINTS.md](../04-configuration/ALL_VMIDS_ENDPOINTS.md)
|
||
- E2E runbook: [E2E_CLOUDFLARE_DOMAINS_RUNBOOK.md](../05-network/E2E_CLOUDFLARE_DOMAINS_RUNBOOK.md)
|