project atlas route

This commit is contained in:
defiQUG
2026-07-28 12:08:42 -07:00
parent 7df2929fa8
commit 16ecf206d5
6 changed files with 1547 additions and 177 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ export const revalidate = 0;
export const metadata: Metadata = {
title: 'Ecosystem Atlas',
description:
'Live Sankofa route matrix, hidden inventory, and revision notes with server-side IT inventory awareness.',
'Project Atlas-backed Sankofa route matrix, hidden inventory, and revision notes with server-side IT inventory awareness.',
alternates: {
canonical: 'https://sankofa.nexus/atlas',
},
@@ -113,7 +113,8 @@ export default function AtlasDashboard({
<p className="mt-4 max-w-3xl text-base leading-7 text-sovereign-ivory/70 sm:text-lg">
Public Sankofa routing, live inventory, hidden operator surfaces, and revision notes in one
place. The live counters come from the portal server&apos;s IT read API, while the route matrix
is normalized from the repo&apos;s canonical hostname and tunnel docs.
is sourced from the vendored Project Atlas manifests so the page mirrors the canonical
ecosystem map.
</p>
<div className="mt-6 flex flex-wrap gap-3">
<Link
@@ -0,0 +1,922 @@
{
"endpointCount": 61,
"endpoints": [
{
"checks": {
"app": "curl -skI https://admin.sankofa.nexus",
"dns": "dig +short admin.sankofa.nexus",
"edge": "curl -skI https://admin.sankofa.nexus",
"origin": "nc -vz 192.168.11.50 8080"
},
"domain": "admin.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Phoenix admin surface; see system atlas / OMNL architecture",
"reverseTarget": "192.168.11.50:8080",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://admin.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://besu-sentry-ali.sankofa.nexus",
"dns": "dig +short besu-sentry-ali.sankofa.nexus",
"edge": "curl -skI https://besu-sentry-ali.sankofa.nexus",
"origin": "nc -vz 192.168.11.154 9545"
},
"domain": "besu-sentry-ali.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Ali sentry metrics",
"reverseTarget": "192.168.11.154:9545",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://besu-sentry-ali.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://blockscout.defi-oracle.io",
"dns": "dig +short blockscout.defi-oracle.io",
"edge": "curl -skI https://blockscout.defi-oracle.io",
"origin": "nc -vz 192.168.11.142 80"
},
"domain": "blockscout.defi-oracle.io",
"ecosystem": "proxmox",
"reverseNote": "Standard Blockscout / VMID 5011",
"reverseTarget": "192.168.11.142:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://blockscout.defi-oracle.io"
},
{
"checks": {
"app": "curl -skI https://cacti-alltra.d-bis.org",
"dns": "dig +short cacti-alltra.d-bis.org",
"edge": "curl -skI https://cacti-alltra.d-bis.org",
"origin": "nc -vz 192.168.11.80 80"
},
"domain": "cacti-alltra.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Cacti monitoring",
"reverseTarget": "192.168.11.80:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://cacti-alltra.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://cacti-hybx.d-bis.org",
"dns": "dig +short cacti-hybx.d-bis.org",
"edge": "curl -skI https://cacti-hybx.d-bis.org",
"origin": "nc -vz 192.168.11.80 80"
},
"domain": "cacti-hybx.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Cacti monitoring",
"reverseTarget": "192.168.11.80:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://cacti-hybx.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://codespaces.d-bis.org",
"dns": "dig +short codespaces.d-bis.org",
"edge": "curl -skI https://codespaces.d-bis.org",
"origin": "nc -vz 192.168.11.170 443"
},
"domain": "codespaces.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Fourth NPMplus / dev or Codespaces ingress",
"reverseTarget": "192.168.11.170:443",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://codespaces.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://dapp.d-bis.org",
"dns": "dig +short dapp.d-bis.org",
"edge": "curl -skI https://dapp.d-bis.org",
"origin": "nc -vz 192.168.11.58 80"
},
"domain": "dapp.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "DApp frontend / VMID 5801",
"reverseTarget": "192.168.11.58:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://dapp.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://dash.sankofa.nexus",
"dns": "dig +short dash.sankofa.nexus",
"edge": "curl -skI https://dash.sankofa.nexus",
"origin": "nc -vz 192.168.11.50 8080"
},
"domain": "dash.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Sankofa operator dashboard",
"reverseTarget": "192.168.11.50:8080",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://dash.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://dbis-admin.d-bis.org",
"dns": "dig +short dbis-admin.d-bis.org",
"edge": "curl -skI https://dbis-admin.d-bis.org",
"origin": "nc -vz 192.168.11.130 80"
},
"domain": "dbis-admin.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "DBIS admin console / VMID 10130",
"reverseTarget": "192.168.11.130:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://dbis-admin.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://dbis-api-2.d-bis.org",
"dns": "dig +short dbis-api-2.d-bis.org",
"edge": "curl -skI https://dbis-api-2.d-bis.org",
"origin": "nc -vz 192.168.11.156 3000"
},
"domain": "dbis-api-2.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "DBIS API secondary / VMID 10151",
"reverseTarget": "192.168.11.156:3000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "api",
"url": "https://dbis-api-2.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://dbis-api.d-bis.org",
"dns": "dig +short dbis-api.d-bis.org",
"edge": "curl -skI https://dbis-api.d-bis.org",
"origin": "nc -vz 192.168.11.155 3000"
},
"domain": "dbis-api.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "DBIS API primary / VMID 10150",
"reverseTarget": "192.168.11.155:3000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "api",
"url": "https://dbis-api.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://dealflow.d-bis.org",
"dns": "dig +short dealflow.d-bis.org",
"edge": "curl -skI https://dealflow.d-bis.org",
"origin": "nc -vz 192.168.11.94 443"
},
"domain": "dealflow.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "DealFlow Command Center / VMID 10381",
"reverseTarget": "192.168.11.94:443",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://dealflow.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://dev.d-bis.org",
"dns": "dig +short dev.d-bis.org",
"edge": "curl -skI https://dev.d-bis.org",
"origin": "nc -vz 192.168.11.170 443"
},
"domain": "dev.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Fourth NPMplus / dev ingress",
"reverseTarget": "192.168.11.170:443",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://dev.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://docs.d-bis.org",
"dns": "dig +short docs.d-bis.org",
"edge": "curl -skI https://docs.d-bis.org",
"origin": "nc -vz 192.168.11.140 4000"
},
"domain": "docs.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Explorer nginx / docs host (same edge as explorer)",
"reverseTarget": "192.168.11.140:4000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://docs.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://explorer.d-bis.org",
"dns": "dig +short explorer.d-bis.org",
"edge": "curl -skI https://explorer.d-bis.org",
"origin": "nc -vz 192.168.11.140 4000"
},
"domain": "explorer.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Direct Blockscout route on port 4000",
"reverseTarget": "192.168.11.140:4000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://explorer.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://firefly-ali.sankofa.nexus",
"dns": "dig +short firefly-ali.sankofa.nexus",
"edge": "curl -skI https://firefly-ali.sankofa.nexus",
"origin": "nc -vz 192.168.11.57 5000"
},
"domain": "firefly-ali.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Firefly Ali instance / VMID 6201",
"reverseTarget": "192.168.11.57:5000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "api",
"url": "https://firefly-ali.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://gitea.d-bis.org",
"dns": "dig +short gitea.d-bis.org",
"edge": "curl -skI https://gitea.d-bis.org",
"origin": "nc -vz 192.168.11.59 3000"
},
"domain": "gitea.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Dev VM Gitea endpoint",
"reverseTarget": "192.168.11.59:3000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://gitea.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://hermes.sankofa.nexus",
"dns": "dig +short hermes.sankofa.nexus",
"edge": "curl -skI https://hermes.sankofa.nexus",
"origin": "nc -vz 192.168.11.77 3020"
},
"domain": "hermes.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Hermes underwiting intelligence / VMID 7817",
"reverseTarget": "192.168.11.77:3020",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://hermes.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://howtothinkwithai.sankofa.nexus",
"dns": "dig +short howtothinkwithai.sankofa.nexus",
"edge": "curl -skI https://howtothinkwithai.sankofa.nexus",
"origin": "nc -vz 192.168.11.79 3021"
},
"domain": "howtothinkwithai.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "HowToThinkWithAI / VMID 7819",
"reverseTarget": "192.168.11.79:3021",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://howtothinkwithai.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://keycloak.sankofa.nexus",
"dns": "dig +short keycloak.sankofa.nexus",
"edge": "curl -skI https://keycloak.sankofa.nexus",
"origin": "nc -vz 192.168.11.52 8080"
},
"domain": "keycloak.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Sankofa Keycloak / VMID 7802",
"reverseTarget": "192.168.11.52:8080",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://keycloak.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://mail.d-bis.org",
"dns": "dig +short mail.d-bis.org",
"edge": "curl -skI https://mail.d-bis.org",
"origin": "nc -vz 192.168.11.32 25 && nc -vz 192.168.11.32 587 && nc -vz 192.168.11.32 465"
},
"domain": "mail.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Mail gateway / PMG",
"reverseTarget": "192.168.11.32:25/587/465",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://mail.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://mifos.d-bis.org",
"dns": "dig +short mifos.d-bis.org",
"edge": "curl -skI https://mifos.d-bis.org",
"origin": "nc -vz 192.168.11.85 80"
},
"domain": "mifos.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Mifos/Fineract / VMID 5800",
"reverseTarget": "192.168.11.85:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://mifos.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://mim4u.org",
"dns": "dig +short mim4u.org",
"edge": "curl -skI https://mim4u.org",
"origin": "nc -vz 192.168.11.37 80"
},
"domain": "mim4u.org",
"ecosystem": "other",
"reverseNote": "MIM4U web / VMID 7810",
"reverseTarget": "192.168.11.37:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://mim4u.org"
},
{
"checks": {
"app": "curl -skI https://phoenix.sankofa.nexus",
"dns": "dig +short phoenix.sankofa.nexus",
"edge": "curl -skI https://phoenix.sankofa.nexus",
"origin": "nc -vz 192.168.11.50 8080"
},
"domain": "phoenix.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Phoenix API hub / VMID 7800",
"reverseTarget": "192.168.11.50:8080",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://phoenix.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://portal.sankofa.nexus",
"dns": "dig +short portal.sankofa.nexus",
"edge": "curl -skI https://portal.sankofa.nexus",
"origin": "nc -vz 192.168.11.51 3000"
},
"domain": "portal.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Sankofa portal / VMID 7801",
"reverseTarget": "192.168.11.51:3000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://portal.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://reserve.d-bis.org",
"dns": "dig +short reserve.d-bis.org",
"edge": "curl -skI https://reserve.d-bis.org",
"origin": "nc -vz 192.168.11.140 4000"
},
"domain": "reserve.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Explorer / reserve shared backend",
"reverseTarget": "192.168.11.140:4000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://reserve.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-ali-0x1.sankofa.nexus -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-ali-0x1.sankofa.nexus",
"edge": "curl -skI https://rpc-ali-0x1.sankofa.nexus",
"origin": "nc -vz 192.168.11.234 8545 && nc -vz 192.168.11.234 8546"
},
"domain": "rpc-ali-0x1.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Ali Besu RPC 0x1 / VMID 2304",
"reverseTarget": "192.168.11.234:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-ali-0x1.sankofa.nexus"
},
{
"checks": {
"app": "curl -sk https://rpc-ali-0x8a.sankofa.nexus -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-ali-0x8a.sankofa.nexus",
"edge": "curl -skI https://rpc-ali-0x8a.sankofa.nexus",
"origin": "nc -vz 192.168.11.233 8545 && nc -vz 192.168.11.233 8546"
},
"domain": "rpc-ali-0x8a.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Ali Besu RPC 0x8a / VMID 2303",
"reverseTarget": "192.168.11.233:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-ali-0x8a.sankofa.nexus"
},
{
"checks": {
"app": "curl -sk https://rpc-alltra-2.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-alltra-2.d-bis.org",
"edge": "curl -skI https://rpc-alltra-2.d-bis.org",
"origin": "nc -vz 192.168.11.173 8545 && nc -vz 192.168.11.173 8546"
},
"domain": "rpc-alltra-2.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "ALLTRA internal RPC 2 / VMID 2501",
"reverseTarget": "192.168.11.173:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-alltra-2.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-alltra-3.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-alltra-3.d-bis.org",
"edge": "curl -skI https://rpc-alltra-3.d-bis.org",
"origin": "nc -vz 192.168.11.174 8545 && nc -vz 192.168.11.174 8546"
},
"domain": "rpc-alltra-3.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "ALLTRA internal RPC 3 / VMID 2502",
"reverseTarget": "192.168.11.174:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-alltra-3.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-alltra.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-alltra.d-bis.org",
"edge": "curl -skI https://rpc-alltra.d-bis.org",
"origin": "nc -vz 192.168.11.172 8545 && nc -vz 192.168.11.172 8546"
},
"domain": "rpc-alltra.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "ALLTRA internal RPC 1 / VMID 2500",
"reverseTarget": "192.168.11.172:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-alltra.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-fireblocks.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-fireblocks.d-bis.org",
"edge": "curl -skI https://rpc-fireblocks.d-bis.org",
"origin": "nc -vz 192.168.11.211 8545 && nc -vz 192.168.11.211 8546"
},
"domain": "rpc-fireblocks.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Fireblocks dedicated RPC / VMID 2101",
"reverseTarget": "192.168.11.211:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-fireblocks.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-http-prv.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-http-prv.d-bis.org",
"edge": "curl -skI https://rpc-http-prv.d-bis.org",
"origin": "nc -vz 192.168.11.211 8545 && nc -vz 192.168.11.211 8546"
},
"domain": "rpc-http-prv.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Private RPC / VMID 2101",
"reverseTarget": "192.168.11.211:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-http-prv.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-http-pub.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-http-pub.d-bis.org",
"edge": "curl -skI https://rpc-http-pub.d-bis.org",
"origin": "nc -vz 192.168.11.221 8545 && nc -vz 192.168.11.221 8546"
},
"domain": "rpc-http-pub.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Public RPC / VMID 2201",
"reverseTarget": "192.168.11.221:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-http-pub.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-hybx-2.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-hybx-2.d-bis.org",
"edge": "curl -skI https://rpc-hybx-2.d-bis.org",
"origin": "nc -vz 192.168.11.247 8545 && nc -vz 192.168.11.247 8546"
},
"domain": "rpc-hybx-2.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "HYBX internal RPC 2 / VMID 2504",
"reverseTarget": "192.168.11.247:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-hybx-2.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-hybx-3.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-hybx-3.d-bis.org",
"edge": "curl -skI https://rpc-hybx-3.d-bis.org",
"origin": "nc -vz 192.168.11.248 8545 && nc -vz 192.168.11.248 8546"
},
"domain": "rpc-hybx-3.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "HYBX internal RPC 3 / VMID 2505",
"reverseTarget": "192.168.11.248:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-hybx-3.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc-hybx.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-hybx.d-bis.org",
"edge": "curl -skI https://rpc-hybx.d-bis.org",
"origin": "nc -vz 192.168.11.246 8545 && nc -vz 192.168.11.246 8546"
},
"domain": "rpc-hybx.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "HYBX internal RPC 1 / VMID 2503",
"reverseTarget": "192.168.11.246:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc-hybx.d-bis.org"
},
{
"checks": {
"app": "npx wscat -c wss://rpc-ws-prv.d-bis.org -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-ws-prv.d-bis.org",
"edge": "npx wscat -c wss://rpc-ws-prv.d-bis.org",
"origin": "nc -vz 192.168.11.211 8546"
},
"domain": "rpc-ws-prv.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Private WebSocket RPC / VMID 2101",
"reverseTarget": "192.168.11.211:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://rpc-ws-prv.d-bis.org"
},
{
"checks": {
"app": "npx wscat -c wss://rpc-ws-pub.d-bis.org -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc-ws-pub.d-bis.org",
"edge": "npx wscat -c wss://rpc-ws-pub.d-bis.org",
"origin": "nc -vz 192.168.11.221 8546"
},
"domain": "rpc-ws-pub.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Public WebSocket RPC / VMID 2201",
"reverseTarget": "192.168.11.221:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://rpc-ws-pub.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc.d-bis.org",
"edge": "curl -skI https://rpc.d-bis.org",
"origin": "nc -vz 192.168.11.221 8545 && nc -vz 192.168.11.221 8546"
},
"domain": "rpc.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Canonical public RPC / VMID 2201",
"reverseTarget": "192.168.11.221:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc.d-bis.org"
},
{
"checks": {
"app": "curl -sk https://rpc.defi-oracle.io -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc.defi-oracle.io",
"edge": "curl -skI https://rpc.defi-oracle.io",
"origin": "nc -vz 192.168.11.221 8545 && nc -vz 192.168.11.221 8546"
},
"domain": "rpc.defi-oracle.io",
"ecosystem": "proxmox",
"reverseNote": "Defi Oracle RPC alias",
"reverseTarget": "192.168.11.221:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc.defi-oracle.io"
},
{
"checks": {
"app": "curl -sk https://rpc.public-0138.defi-oracle.io -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc.public-0138.defi-oracle.io",
"edge": "curl -skI https://rpc.public-0138.defi-oracle.io",
"origin": "nc -vz 192.168.11.221 8545 && nc -vz 192.168.11.221 8546"
},
"domain": "rpc.public-0138.defi-oracle.io",
"ecosystem": "proxmox",
"reverseNote": "Defi Oracle public RPC",
"reverseTarget": "192.168.11.221:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc.public-0138.defi-oracle.io"
},
{
"checks": {
"app": "curl -sk https://rpc2.d-bis.org -H 'content-type: application/json' --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short rpc2.d-bis.org",
"edge": "curl -skI https://rpc2.d-bis.org",
"origin": "nc -vz 192.168.11.221 8545 && nc -vz 192.168.11.221 8546"
},
"domain": "rpc2.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Canonical public RPC alias / VMID 2201",
"reverseTarget": "192.168.11.221:8545/8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-http",
"url": "https://rpc2.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://sankofa.nexus",
"dns": "dig +short sankofa.nexus",
"edge": "curl -skI https://sankofa.nexus",
"origin": "nc -vz 192.168.11.51 3000"
},
"domain": "sankofa.nexus",
"ecosystem": "other",
"reverseNote": "Sankofa portal / VMID 7801",
"reverseTarget": "192.168.11.51:3000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://secure.d-bis.org",
"dns": "dig +short secure.d-bis.org",
"edge": "curl -skI https://secure.d-bis.org",
"origin": "nc -vz 192.168.11.130 80 && nc -vz 192.168.11.130 443"
},
"domain": "secure.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "DBIS admin / secure portal",
"reverseTarget": "192.168.11.130:80/443",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://secure.d-bis.org"
},
{
"checks": {
"app": "curl -skI https://secure.mim4u.org",
"dns": "dig +short secure.mim4u.org",
"edge": "curl -skI https://secure.mim4u.org",
"origin": "nc -vz 192.168.11.37 80"
},
"domain": "secure.mim4u.org",
"ecosystem": "proxmox",
"reverseNote": "MIM4U secure",
"reverseTarget": "192.168.11.37:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://secure.mim4u.org"
},
{
"checks": {
"app": "curl -skI https://solace-treasury-mgmt.defi-oracle.io",
"dns": "dig +short solace-treasury-mgmt.defi-oracle.io",
"edge": "curl -skI https://solace-treasury-mgmt.defi-oracle.io",
"origin": "nc -vz 192.168.11.60 443"
},
"domain": "solace-treasury-mgmt.defi-oracle.io",
"ecosystem": "proxmox",
"reverseNote": "Solace treasury frontend / VMID 3000",
"reverseTarget": "192.168.11.60:443",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://solace-treasury-mgmt.defi-oracle.io"
},
{
"checks": {
"app": "curl -skI https://studio.sankofa.nexus",
"dns": "dig +short studio.sankofa.nexus",
"edge": "curl -skI https://studio.sankofa.nexus",
"origin": "nc -vz 192.168.11.72 8000"
},
"domain": "studio.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Sankofa Studio / VMID 7805",
"reverseTarget": "192.168.11.72:8000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://studio.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://the-order.sankofa.nexus",
"dns": "dig +short the-order.sankofa.nexus",
"edge": "curl -skI https://the-order.sankofa.nexus",
"origin": "nc -vz 192.168.11.39 80"
},
"domain": "the-order.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Order HAProxy / VMID 10210",
"reverseTarget": "192.168.11.39:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://the-order.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://training.mim4u.org",
"dns": "dig +short training.mim4u.org",
"edge": "curl -skI https://training.mim4u.org",
"origin": "nc -vz 192.168.11.37 80"
},
"domain": "training.mim4u.org",
"ecosystem": "proxmox",
"reverseNote": "MIM4U training",
"reverseTarget": "192.168.11.37:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://training.mim4u.org"
},
{
"checks": {
"app": "curl -skI https://webmail.d-bis.org",
"dns": "dig +short webmail.d-bis.org",
"edge": "curl -skI https://webmail.d-bis.org",
"origin": "nc -vz 192.168.11.35 443"
},
"domain": "webmail.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Mailcow webmail",
"reverseTarget": "192.168.11.35:443",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://webmail.d-bis.org"
},
{
"checks": {
"app": "npx wscat -c wss://ws-rpc-ali-0x1.sankofa.nexus -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short ws-rpc-ali-0x1.sankofa.nexus",
"edge": "npx wscat -c wss://ws-rpc-ali-0x1.sankofa.nexus",
"origin": "nc -vz 192.168.11.234 8546"
},
"domain": "ws-rpc-ali-0x1.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Ali Besu WS RPC 0x1 / VMID 2304",
"reverseTarget": "192.168.11.234:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://ws-rpc-ali-0x1.sankofa.nexus"
},
{
"checks": {
"app": "npx wscat -c wss://ws-rpc-ali-0x8a.sankofa.nexus -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short ws-rpc-ali-0x8a.sankofa.nexus",
"edge": "npx wscat -c wss://ws-rpc-ali-0x8a.sankofa.nexus",
"origin": "nc -vz 192.168.11.233 8546"
},
"domain": "ws-rpc-ali-0x8a.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Ali Besu WS RPC 0x8a / VMID 2303",
"reverseTarget": "192.168.11.233:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://ws-rpc-ali-0x8a.sankofa.nexus"
},
{
"checks": {
"app": "npx wscat -c wss://ws.rpc-fireblocks.d-bis.org -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short ws.rpc-fireblocks.d-bis.org",
"edge": "npx wscat -c wss://ws.rpc-fireblocks.d-bis.org",
"origin": "nc -vz 192.168.11.211 8546"
},
"domain": "ws.rpc-fireblocks.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Fireblocks WS RPC / VMID 2101",
"reverseTarget": "192.168.11.211:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://ws.rpc-fireblocks.d-bis.org"
},
{
"checks": {
"app": "npx wscat -c wss://ws.rpc.d-bis.org -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short ws.rpc.d-bis.org",
"edge": "npx wscat -c wss://ws.rpc.d-bis.org",
"origin": "nc -vz 192.168.11.221 8546"
},
"domain": "ws.rpc.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Public WS RPC / VMID 2201",
"reverseTarget": "192.168.11.221:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://ws.rpc.d-bis.org"
},
{
"checks": {
"app": "npx wscat -c wss://ws.rpc2.d-bis.org -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short ws.rpc2.d-bis.org",
"edge": "npx wscat -c wss://ws.rpc2.d-bis.org",
"origin": "nc -vz 192.168.11.221 8546"
},
"domain": "ws.rpc2.d-bis.org",
"ecosystem": "proxmox",
"reverseNote": "Public WS RPC alias / VMID 2201",
"reverseTarget": "192.168.11.221:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://ws.rpc2.d-bis.org"
},
{
"checks": {
"app": "npx wscat -c wss://wss.defi-oracle.io -x '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"web3_clientVersion\",\"params\":[]}'",
"dns": "dig +short wss.defi-oracle.io",
"edge": "npx wscat -c wss://wss.defi-oracle.io",
"origin": "nc -vz 192.168.11.221 8546"
},
"domain": "wss.defi-oracle.io",
"ecosystem": "proxmox",
"reverseNote": "Defi Oracle WS RPC",
"reverseTarget": "192.168.11.221:8546",
"triagePath": "DNS -> edge -> origin -> app",
"type": "rpc-ws",
"url": "https://wss.defi-oracle.io"
},
{
"checks": {
"app": "curl -skI https://www.mim4u.org",
"dns": "dig +short www.mim4u.org",
"edge": "curl -skI https://www.mim4u.org",
"origin": "nc -vz 192.168.11.37 80"
},
"domain": "www.mim4u.org",
"ecosystem": "proxmox",
"reverseNote": "MIM4U www redirect",
"reverseTarget": "192.168.11.37:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://www.mim4u.org"
},
{
"checks": {
"app": "curl -skI https://www.phoenix.sankofa.nexus",
"dns": "dig +short www.phoenix.sankofa.nexus",
"edge": "curl -skI https://www.phoenix.sankofa.nexus",
"origin": "nc -vz 192.168.11.50 8080"
},
"domain": "www.phoenix.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Phoenix www redirect",
"reverseTarget": "192.168.11.50:8080",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://www.phoenix.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://www.sankofa.nexus",
"dns": "dig +short www.sankofa.nexus",
"edge": "curl -skI https://www.sankofa.nexus",
"origin": "nc -vz 192.168.11.51 3000"
},
"domain": "www.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Sankofa www redirect",
"reverseTarget": "192.168.11.51:3000",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://www.sankofa.nexus"
},
{
"checks": {
"app": "curl -skI https://www.the-order.sankofa.nexus",
"dns": "dig +short www.the-order.sankofa.nexus",
"edge": "curl -skI https://www.the-order.sankofa.nexus",
"origin": "nc -vz 192.168.11.39 80"
},
"domain": "www.the-order.sankofa.nexus",
"ecosystem": "sankofa",
"reverseNote": "Order www redirect",
"reverseTarget": "192.168.11.39:80",
"triagePath": "DNS -> edge -> origin -> app",
"type": "web",
"url": "https://www.the-order.sankofa.nexus"
}
],
"name": "Project Atlas DNS Reverse E2E Map",
"version": "v1"
}
@@ -0,0 +1,316 @@
{
"name": "Project Atlas Network Architecture",
"version": "v1",
"traceOrder": [
"dns",
"edge-routing",
"host-port",
"namespace-origin",
"application-route",
"content-marker"
],
"e2eReverseCoverage": {
"command": "bash /home/intlc/projects/proxmox/scripts/verify/verify-end-to-end-routing.sh --list-endpoints --profile=all",
"endpointCount": 61,
"artifact": "manifest/dns-e2e-reverse-map.v1.json"
},
"cloudflaredLayers": [
{
"layer": "public",
"description": "Cloudflared Tunnel mapped to managed public DNS"
},
{
"layer": "sd-wan",
"description": "Cloudflared Tunnels for ecosystem-to-ecosystem routing"
},
{
"layer": "admin",
"description": "Cloudflared Tunnel access for admin tasks and redeployments"
}
],
"ecosystems": [
{
"name": "Nathan / AnakaTech",
"surfaces": [
{
"label": "CT59 SSH",
"hostname": "192.168.1.59",
"alias": "ssh ct59",
"port": 22,
"state": "verified"
},
{
"label": "PVE SSH",
"hostname": "192.168.1.50",
"alias": "ssh pve",
"port": 22,
"state": "verified"
},
{
"label": "Astra",
"hostname": "192.168.1.100",
"alias": "not granted",
"port": 8006,
"state": "blocked"
}
],
"tunnelName": "wg0-p",
"auth": [
"WireGuard VPN",
"SSH key",
"ssh_config alias"
],
"failureModes": [
"network unreachable",
"wrong SSH target"
]
},
{
"name": "Sankofa / local Proxmox infrastructure",
"surfaces": [
{
"label": "Local Proxmox workspace",
"hostname": "this checkout",
"alias": "projectAtlas",
"port": null,
"state": "live"
},
{
"label": "Live canary",
"hostname": "scripts/maintenance/verify-pve-cluster-health.sh",
"alias": "cluster health",
"port": null,
"state": "available"
},
{
"label": "Public E2E verifier",
"hostname": "scripts/verify/verify-end-to-end-routing.sh",
"alias": "dns / routing sweep",
"port": null,
"state": "available"
}
],
"auth": [
"local shell",
"live validation scripts"
],
"failureModes": [
"stale docs",
"repo-only readiness claims",
"uncorroborated localhost"
]
},
{
"name": "Nova App / Zardasht dual production",
"surfaces": [
{
"label": "Nova Plus local machine",
"hostname": "localhost",
"alias": "nova-plus-server",
"port": 3099,
"state": "local-production"
},
{
"label": "Nova Bank local machine",
"hostname": "localhost",
"alias": "nova-api-1",
"port": 3000,
"state": "local-production"
},
{
"label": "Local edge shim",
"hostname": "localhost",
"alias": "novabank-uk-edge",
"port": 9080,
"state": "local-production"
},
{
"label": "Cloudflare tunnel ingress",
"hostname": "novabank.uk / novablockchainsystem.com",
"alias": "public ingress",
"port": 80,
"state": "mixed"
},
{
"label": "Legacy VPS origin",
"hostname": "51.75.64.28",
"alias": "public origin",
"port": 80,
"state": "blocked"
}
],
"auth": [
"local shell",
"Docker Desktop",
"compose",
"remote VPS access"
],
"cloudflareDomains": [
{
"domain": "novablockchainsystem.com",
"zoneId": "0711dce56ea228b3fc8625b96c486eb2",
"accountId": "197663c4dea180dc3310fea5702905ac",
"accountName": "Dsbullock"
},
{
"domain": "d-bis.org",
"zoneId": "43599eed5d83f1fa641f2aaa276d3c4d",
"accountId": "52ad57a71671c5fc009edf0744658196",
"accountName": "SGI PARTNERS, LLC"
},
{
"domain": "novabank.uk",
"zoneId": "1f7e82b672f78a862abcbe384509841c",
"accountId": "52ad57a71671c5fc009edf0744658196",
"accountName": "SGI PARTNERS, LLC"
},
{
"domain": "omdnl.org",
"zoneId": "b9f8979a4088c2d6cfdfe0f952a46d89",
"accountId": "52ad57a71671c5fc009edf0744658196",
"accountName": "SGI PARTNERS, LLC"
},
{
"domain": "z-bank.uk",
"zoneId": "1790b5b392c07b181e6ba1fc421cd347",
"accountId": "52ad57a71671c5fc009edf0744658196",
"accountName": "SGI PARTNERS, LLC"
}
],
"publicTunnelHostnames": [
{
"hostname": "novablockchainsystem.com",
"type": "CNAME",
"target": "Railway apex",
"status": "live",
"accountName": "Dsbullock"
},
{
"hostname": "www.novablockchainsystem.com",
"type": "CNAME",
"target": "novablockchainsystem.com",
"status": "redirect-live",
"accountName": "Dsbullock"
},
{
"hostname": "novabank.uk",
"type": "CNAME",
"target": "aa9d668a-43bb-487d-9189-edf7300e35e8.cfargotunnel.com",
"status": "configured-pending-connector",
"accountName": "SGI PARTNERS, LLC"
},
{
"hostname": "www.novabank.uk",
"type": "CNAME",
"target": "novabank.uk",
"status": "configured-pending-connector",
"accountName": "SGI PARTNERS, LLC"
},
{
"hostname": "devops.novabank.uk",
"type": "CNAME",
"target": "e979ef06-cb71-4550-a1ba-326ee4d1753d.cfargotunnel.com",
"status": "operator-tunnel",
"accountName": "SGI PARTNERS, LLC"
}
],
"publicStaticIpPlan": [
{
"ip": "76.53.10.43",
"plannedUse": "spare / unassigned",
"status": "unused"
},
{
"ip": "76.53.10.44",
"plannedUse": "Zardasht public service IP",
"status": "planned"
},
{
"ip": "76.53.10.45",
"plannedUse": "Zardasht public service IP",
"status": "planned"
},
{
"ip": "76.53.10.46",
"plannedUse": "Zardasht devops host / tunnel ingress",
"status": "planned"
}
],
"devopsTunnel": {
"hostname": "devops.novabank.uk",
"publicIp": "76.53.10.46",
"purpose": "operator-only tunnel for pushes, admin SSH, and deploy tooling",
"ports": [
22,
3000,
3099,
9080
],
"access": "Cloudflare Access app/policy + SSH + TCP",
"verifiedWith": "ssh -l novac -o ProxyCommand=cloudflared access ssh --hostname %h devops.novabank.uk"
},
"targetTopology": [
{
"role": "edge / ingress",
"hostname": "zardasht-edge",
"exposure": "public + SD-WAN",
"services": [
"Cloudflared ingress",
"reverse proxy",
"route fanout"
]
},
{
"role": "Nova Plus app",
"hostname": "zardasht-plus",
"exposure": "internal only",
"services": [
"nova-plus-server",
"portal runtime"
]
},
{
"role": "Nova Bank API",
"hostname": "zardasht-bank",
"exposure": "internal only",
"services": [
"nova-api-1",
"bank API"
]
},
{
"role": "data / state",
"hostname": "zardasht-data",
"exposure": "internal only",
"services": [
"Postgres",
"Redis",
"uploads",
"persistent volumes"
]
},
{
"role": "admin / ops",
"hostname": "zardasht-ops",
"exposure": "admin-only",
"services": [
"deploy scripts",
"health checks",
"SSH/SCP",
"logs"
]
}
],
"failureModes": [
"localhost used as public target",
"container unhealthy",
"wrong port mapping",
"compose not up",
"tunnel connector unhealthy",
"VPS origin unreachable",
"DNS points at the wrong origin",
"missing Proxmox LXC target definitions"
]
}
]
}
@@ -0,0 +1,84 @@
{
"name": "Project Atlas",
"version": "v1",
"statusLegend": {
"blocked": "The ecosystem endpoint or access path is known but not reachable or not yet provisioned.",
"partial": "Some access exists, but the ecosystem is not fully usable or not fully public.",
"live": "The endpoint is reachable and the service is available now.",
"verified": "A live check has been run and matched the expected output."
},
"statusEnum": [
"blocked",
"partial",
"live",
"verified"
],
"ecosystems": [
{
"name": "Nathan / AnakaTech",
"status": "verified-wireguard-ct59-pve-astra-denied",
"access": {
"type": "wireguard-and-ssh",
"state": "verified",
"tunnelName": "wg0-p",
"scopeBoundary": "Astra denied, not granted"
},
"sourceDocs": [
"/home/intlc/Downloads/from_Nathan/P-ANAKATECH-ACCESS.md"
],
"verificationCommands": [
"wg-quick up wg0-p",
"ssh ct59",
"ssh pve",
"ssh -i /home/intlc/Downloads/from_Nathan/p_anakatech_key -o BatchMode=yes -o ConnectTimeout=5 [email protected] 'hostname && id'"
],
"nextDependency": "Astra remains denied"
},
{
"name": "Sankofa / local Proxmox infrastructure",
"status": "available",
"access": {
"type": "workspace-and-live-ops",
"state": "available"
},
"sourceDocs": [
"/home/intlc/projects/proxmox/docs/02-architecture/OMNL_BANKING_PORTAL_SMOM_AND_NOVA_TRUST_ARCHITECTURE.md",
"/home/intlc/projects/proxmox/docs/MASTER_INDEX.md",
"/home/intlc/projects/projectAtlas/docs/network-architecture.md"
],
"verificationCommands": [
"bash /home/intlc/projects/proxmox/scripts/maintenance/verify-pve-cluster-health.sh"
],
"nextDependency": "ongoing-live-validation"
},
{
"name": "Nova App / Zardasht dual production",
"status": "partial-dual-production-local-live-devops-live-public-tunnel-configured-pending-health",
"access": {
"type": "dual-production",
"state": "partial",
"tunnelName": "local-machine-and-vps",
"scopeBoundary": "Local machine and devops tunnel are live; the Dsbullock apex is live on Railway with www redirecting to apex, while novabank.uk is published but still connector-pending"
},
"sourceDocs": [
"/home/intlc/projects/projectAtlas/atlas.md",
"/home/intlc/projects/projectAtlas/docs/network-architecture.md",
"/home/intlc/projects/projectAtlas/ecosystems/zardasht-dual-production.md",
"/home/intlc/projects/projectAtlas/ecosystems/zardasht-migration-runbook.md",
"/home/intlc/projects/nova-trust/docs/architecture/system-atlas.md"
],
"verificationCommands": [
"docker ps --format '{{.Names}}\\t{{.Status}}\\t{{.Ports}}'",
"ipconfig",
"curl -I http://localhost:3099",
"curl -I http://localhost:3000",
"curl -I http://localhost:9080",
"curl -I http://51.75.64.28/",
"curl -I https://novablockchainsystem.com",
"curl -I https://novabank.uk",
"ssh -l novac -o ProxyCommand=\"cloudflared access ssh --hostname %h\" devops.novabank.uk 'hostname && id'"
],
"nextDependency": "define-proxmox-lxc-targets-and-public-cutover"
}
]
}
+222 -175
View File
@@ -1,4 +1,7 @@
import { itReadApiBaseUrl, itReadApiKey } from '@/app/api/it/_auth';
import projectAtlasReverseMapJson from '@/data/project-atlas/dns-e2e-reverse-map.v1.json';
import projectAtlasNetworkJson from '@/data/project-atlas/network-architecture.v1.json';
import projectAtlasRegistryJson from '@/data/project-atlas/project-atlas.v1.json';
export type AtlasRouteRow = {
hostnames: string[];
@@ -60,6 +63,81 @@ export type AtlasSnapshot = {
type RecordLike = Record<string, unknown>;
type ProjectAtlasRegistry = {
ecosystems: Array<{
name: string;
status: string;
access?: {
type?: string;
state?: string;
tunnelName?: string;
scopeBoundary?: string;
};
sourceDocs?: string[];
verificationCommands?: string[];
nextDependency?: string;
}>;
};
type ProjectAtlasNetwork = {
e2eReverseCoverage?: {
command?: string;
endpointCount?: number;
artifact?: string;
};
cloudflaredLayers?: Array<{
layer: string;
description: string;
}>;
ecosystems?: Array<{
name: string;
publicTunnelHostnames?: Array<{
hostname: string;
type: string;
target: string;
status: string;
accountName?: string;
}>;
cloudflareDomains?: Array<{
domain: string;
zoneId: string;
accountId: string;
accountName: string;
}>;
publicStaticIpPlan?: Array<{
ip: string;
plannedUse: string;
status: string;
}>;
}>;
};
type ProjectAtlasReverseMap = {
endpointCount: number;
endpoints: Array<{
domain: string;
type: string;
url: string;
ecosystem: string;
triagePath: string;
reverseTarget: string;
reverseNote?: string;
checks?: Record<string, string>;
}>;
};
const projectAtlasRegistry = projectAtlasRegistryJson as ProjectAtlasRegistry;
const projectAtlasNetwork = projectAtlasNetworkJson as ProjectAtlasNetwork;
const projectAtlasReverseMap = projectAtlasReverseMapJson as ProjectAtlasReverseMap;
function fetchProjectAtlasEcosystem(name: string) {
return projectAtlasRegistry.ecosystems.find((ecosystem) => ecosystem.name === name);
}
function fetchProjectAtlasNetworkEcosystem(name: string) {
return projectAtlasNetwork.ecosystems?.find((ecosystem) => ecosystem.name === name);
}
async function fetchJson(url: string, apiKey?: string): Promise<unknown | null> {
try {
const res = await fetch(url, {
@@ -105,6 +183,48 @@ function toText(value: unknown, fallback = '—'): string {
return fallback;
}
function isInternalRoute(domain: string, type: string): boolean {
if (type === 'ssh') return true;
const normalized = domain.toLowerCase();
return [
'portal.',
'keycloak.',
'admin.',
'dash.',
'rancher.',
'argocd.',
'grafana.',
'vault.',
'k8s-api.',
'devops.',
'mail.',
'webmail.',
'pve.',
'cc.',
'auth.cc.',
'entity.cc.',
].some((needle) => normalized.includes(needle));
}
function isPendingRoute(domain: string, status: string): boolean {
const normalized = domain.toLowerCase();
return (
status.includes('pending') ||
status.includes('blocked') ||
normalized === 'novabank.uk' ||
normalized === 'www.novabank.uk'
);
}
function dedupeRoutes(rows: AtlasRouteRow[]): AtlasRouteRow[] {
const seen = new Map<string, AtlasRouteRow>();
for (const row of rows) {
const key = row.hostnames.join('|');
if (!seen.has(key)) seen.set(key, row);
}
return [...seen.values()];
}
function buildGuestRows(liveInventory: unknown): AtlasGuestRow[] {
const rows = firstRecordArray(liveInventory);
const vmRows = rows.filter((row) =>
@@ -123,141 +243,83 @@ function buildGuestRows(liveInventory: unknown): AtlasGuestRow[] {
}));
}
function buildRoutes(): AtlasRouteRow[] {
return [
{
hostnames: ['sankofa.nexus', 'www.sankofa.nexus'],
edge: 'Cloudflare DNS -> 76.53.10.36 -> NPMplus',
backend: '192.168.11.51:3000 Sankofa public site',
visibility: 'public',
status: 'live',
source: 'docs/INSTITUTIONAL_REGISTRY.md',
notes: 'Public corporate apex. www canonicalizes to apex.',
},
{
hostnames: ['phoenix.sankofa.nexus', 'www.phoenix.sankofa.nexus'],
edge: 'Cloudflare DNS -> 76.53.10.36 -> NPMplus',
backend: '192.168.11.50:4000 Phoenix surface',
visibility: 'public',
status: 'live',
source: 'docs/INSTITUTIONAL_REGISTRY.md',
},
{
hostnames: ['the-order.sankofa.nexus', 'www.the-order.sankofa.nexus'],
edge: 'Cloudflare DNS -> 76.53.10.36 -> 192.168.11.39:80 HAProxy -> portal',
backend: '192.168.11.51:3000 Sankofa portal stack',
visibility: 'public',
status: 'live',
source: 'docs/04-configuration/ALL_VMIDS_ENDPOINTS.md',
notes: 'www redirects to apex.',
},
{
hostnames: ['studio.sankofa.nexus'],
edge: 'Cloudflare DNS -> 76.53.10.36 -> NPMplus',
backend: '192.168.11.72:8000 Sankofa Studio',
visibility: 'public',
status: 'live',
source: 'docs/04-configuration/ALL_VMIDS_ENDPOINTS.md',
notes: 'Public tooling surface under /studio.',
},
{
hostnames: ['portal.sankofa.nexus'],
edge: 'Cloudflare Tunnel -> control-plane ingress',
backend: 'portal.portal.svc.cluster.local:80',
visibility: 'internal',
status: 'live',
source: 'cloudflare/tunnel-configs/control-plane.yaml',
notes: 'Client workspace and SSO shell.',
},
{
hostnames: ['keycloak.sankofa.nexus'],
edge: 'Cloudflare Tunnel -> control-plane ingress',
backend: 'keycloak.keycloak.svc.cluster.local:8080',
visibility: 'internal',
status: 'live',
source: 'cloudflare/tunnel-configs/control-plane.yaml',
notes: 'Shared identity provider.',
},
{
hostnames: ['admin.sankofa.nexus'],
edge: 'Cloudflare DNS -> NPMplus / protected app',
backend: 'SSO administration boundary',
visibility: 'internal',
status: 'documented',
source: 'docs/02-architecture/EXPECTED_WEB_CONTENT.md',
},
{
hostnames: ['dash.sankofa.nexus'],
edge: 'Cloudflare DNS -> NPMplus / operator access',
backend: 'IP allowlist + MFA operator dashboard',
visibility: 'hidden',
status: 'documented',
source: 'docs/02-architecture/EXPECTED_WEB_CONTENT.md',
},
{
hostnames: ['pve.sankofa.nexus', 'pve1.sankofa.nexus'],
edge: 'Cloudflare DNS -> NPMplus / tunnel',
backend: 'Proxmox management surfaces',
visibility: 'hidden',
status: 'documented',
source: 'docs/INSTITUTIONAL_REGISTRY.md',
},
{
hostnames: ['cc.sankofa.nexus', 'auth.cc.sankofa.nexus', 'admin.cc.sankofa.nexus', 'entity.cc.sankofa.nexus'],
edge: 'Cloudflare DNS -> Complete Credential stack',
backend: 'Credential issuance and admin portals',
visibility: 'hidden',
status: 'documented',
source: 'docs/INSTITUTIONAL_REGISTRY.md',
},
{
hostnames: ['ml110-01.sankofa.nexus', 'ml110-01-api.sankofa.nexus', 'ml110-01-metrics.sankofa.nexus'],
edge: 'Cloudflare DNS -> internal instance routing',
backend: '192.168.11.10 / instance services',
visibility: 'hidden',
status: 'documented',
source: 'docs/proxmox/DNS_CONFIGURATION.md',
},
{
hostnames: ['r630-01.sankofa.nexus', 'r630-01-api.sankofa.nexus', 'r630-01-metrics.sankofa.nexus'],
edge: 'Cloudflare DNS -> internal instance routing',
backend: '192.168.11.11 / instance services',
visibility: 'hidden',
status: 'documented',
source: 'docs/proxmox/DNS_CONFIGURATION.md',
},
{
hostnames: ['rancher.sankofa.nexus', 'argocd.sankofa.nexus', 'grafana.sankofa.nexus', 'vault.sankofa.nexus', 'k8s-api.sankofa.nexus'],
edge: 'Cloudflare Tunnel -> control-plane ingress',
backend: 'Kubernetes control-plane services',
visibility: 'hidden',
status: 'documented',
source: 'cloudflare/tunnel-configs/control-plane.yaml',
},
];
function buildProjectAtlasRoutes(): AtlasRouteRow[] {
const routes: AtlasRouteRow[] = [];
const zardashtNetwork = fetchProjectAtlasNetworkEcosystem('Nova App / Zardasht dual production');
for (const entry of zardashtNetwork?.publicTunnelHostnames ?? []) {
routes.push({
hostnames: [entry.hostname],
edge:
entry.type.toUpperCase() === 'CNAME'
? `Cloudflare Tunnel -> ${entry.target}`
: `Cloudflare DNS -> ${entry.target}`,
backend: entry.target,
visibility: isInternalRoute(entry.hostname, entry.type) ? 'internal' : 'public',
status: isPendingRoute(entry.hostname, entry.status) ? 'pending' : 'live',
source: 'projectAtlas/manifest/network-architecture.v1.json',
notes: [entry.accountName, entry.type].filter(Boolean).join(' · '),
});
}
for (const endpoint of projectAtlasReverseMap.endpoints) {
routes.push({
hostnames: [endpoint.domain],
edge: endpoint.triagePath,
backend: endpoint.reverseTarget,
visibility: isInternalRoute(endpoint.domain, endpoint.type) ? 'internal' : 'public',
status: isPendingRoute(endpoint.domain, endpoint.reverseNote ?? '') ? 'pending' : 'live',
source: 'projectAtlas/manifest/dns-e2e-reverse-map.v1.json',
notes: endpoint.reverseNote ?? endpoint.checks?.origin ?? undefined,
});
}
return dedupeRoutes(routes).sort((a, b) => a.hostnames[0].localeCompare(b.hostnames[0]));
}
function buildHiddenRows(): AtlasHiddenRow[] {
const nathan = fetchProjectAtlasEcosystem('Nathan / AnakaTech');
const sankofa = fetchProjectAtlasEcosystem('Sankofa / local Proxmox infrastructure');
const zardasht = fetchProjectAtlasEcosystem('Nova App / Zardasht dual production');
const reverseCoverage = projectAtlasNetwork.e2eReverseCoverage;
const cloudflaredLayers = projectAtlasNetwork.cloudflaredLayers ?? [];
const publicIpPlan = fetchProjectAtlasNetworkEcosystem('Nova App / Zardasht dual production')?.publicStaticIpPlan ?? [];
return [
{
label: 'Atlas hidden inventory',
detail: 'Public page can surface routes and hosts that are documented in repo but not exposed in the main nav.',
source: 'portal/src/lib/atlas.ts',
label: 'Project Atlas source-of-truth',
detail: 'Project Atlas is the canonical mapping source for the Sankofa atlas page and is vendored locally for production rendering.',
source: 'portal/src/data/project-atlas/project-atlas.v1.json',
},
{
label: 'IT read API',
detail: 'Server-side inventory and drift fetches are backed by IT_READ_API_URL and IT_READ_API_KEY.',
source: 'portal/src/app/api/it/_auth.ts',
label: 'Nathan / AnakaTech',
detail: `${nathan?.status ?? 'unknown'} · ${nathan?.access?.scopeBoundary ?? 'no access boundary recorded'}`,
source: 'portal/src/data/project-atlas/project-atlas.v1.json',
},
{
label: 'Control-plane tunnel',
detail: 'portal, keycloak, rancher, argocd, grafana, vault, and k8s-api share the Cloudflare tunnel ingress.',
source: 'cloudflare/tunnel-configs/control-plane.yaml',
label: 'Sankofa / local Proxmox infrastructure',
detail: `${sankofa?.status ?? 'unknown'} · ${sankofa?.nextDependency ?? 'no next dependency recorded'}`,
source: 'portal/src/data/project-atlas/project-atlas.v1.json',
},
{
label: 'Proxmox instance DNS',
detail: 'ml110-01 and r630-01 hostnames are documented internal inventory rather than public marketing surfaces.',
source: 'docs/proxmox/DNS_CONFIGURATION.md',
label: 'Nova App / Zardasht dual production',
detail: `${zardasht?.status ?? 'unknown'} · ${zardasht?.access?.scopeBoundary ?? 'no scope boundary recorded'}`,
source: 'portal/src/data/project-atlas/project-atlas.v1.json',
},
{
label: 'Reverse coverage',
detail: `${reverseCoverage?.endpointCount ?? projectAtlasReverseMap.endpointCount} endpoints mapped with DNS -> edge -> origin -> app trace order.`,
source: 'portal/src/data/project-atlas/network-architecture.v1.json',
},
{
label: 'Cloudflared layers',
detail: cloudflaredLayers.map((layer) => `${layer.layer}: ${layer.description}`).join(' · '),
source: 'portal/src/data/project-atlas/network-architecture.v1.json',
},
{
label: 'Public IP plan',
detail: publicIpPlan.map((entry) => `${entry.ip} (${entry.status})`).join(' · '),
source: 'portal/src/data/project-atlas/network-architecture.v1.json',
},
];
}
@@ -266,23 +328,23 @@ function buildRevisions(): AtlasRevision[] {
return [
{
date: '2026-07-28',
title: 'Atlas route published',
detail: 'Added a public /atlas page on the Sankofa apex so the route can be linked from the corporate shell.',
title: 'Project Atlas imported into Sankofa',
detail: 'The Sankofa /atlas page now renders from vendored Project Atlas manifests instead of a separate synthetic dataset.',
},
{
date: '2026-06-04',
title: 'Institutional registry published',
detail: 'Documented the primary Sankofa and Phoenix hostnames, including public portal and identity boundaries.',
date: '2026-07-28',
title: 'DNS reverse map synchronized',
detail: 'The 61-endpoint reverse map is now available locally for public rendering and filtering.',
},
{
date: '2026-03-27',
title: 'NPM routing authority updated',
detail: 'Route ownership for sankofa.nexus, phoenix.sankofa.nexus, and the-order.sankofa.nexus was consolidated in the NPM routing docs.',
date: '2026-07-28',
title: 'Network architecture synchronized',
detail: 'Cloudflared layers, public ingress, and tunnel-bound hostnames are read from the Project Atlas network manifest.',
},
{
date: '2025-12-15',
title: 'Cluster status baseline',
detail: 'The sfvalley-01 Proxmox / Ceph status report captured the original cluster baseline and quorum state.',
date: '2026-07-28',
title: 'Live inventory remains server-side',
detail: 'IT inventory and drift counters continue to come from the portal server read API so the page stays current.',
},
];
}
@@ -291,33 +353,33 @@ function buildRecommendations(): AtlasRecommendation[] {
return [
{
priority: 'P1',
title: 'Publish an atlas snapshot feed',
detail: 'Generate a JSON snapshot of routes, hosts, and revision history so public rendering and incident review use the same payload.',
title: 'Keep Project Atlas as the source of truth',
detail: 'Treat the vendored Project Atlas manifests as the canonical dataset for Sankofa /atlas and refresh them when routing changes.',
},
{
priority: 'P1',
title: 'Keep live inventory server-side',
detail: 'Continue fetching the IT inventory from the server-side read API so the public page stays current without exposing credentials.',
title: 'Automate manifest sync',
detail: 'Add a small sync step from the `projectAtlas` repo so the production page can stay current without hand-copying JSON.',
},
{
priority: 'P2',
title: 'Export hidden inventory separately',
detail: 'Add a distinct capture-required section for hidden or operator-only hosts so the public page stays readable while still exhaustive.',
title: 'Add download/export controls',
detail: 'Expose JSON and CSV exports so operators can reuse the atlas for handoffs and incident review.',
},
{
priority: 'P2',
title: 'Add CSV / JSON export buttons',
detail: 'Allow the atlas to feed handoff, audit, and escalation workflows without copy/paste.',
title: 'Add health badges next',
detail: 'Augment route rows with live edge health once the public probes are wired in.',
},
{
priority: 'P3',
title: 'Add route health badges',
detail: 'Annotate route rows with health and 404/5xx checks once the checkers are wired to the public edge.',
title: 'Render the markdown atlas snapshot',
detail: 'Surface the human-readable atlas summary alongside the tables if a document-style view is useful to operators.',
},
];
}
async function loadLiveSummary() {
async function loadLiveSummary(liveInventory: unknown | null) {
const base = itReadApiBaseUrl();
const apiKey = itReadApiKey();
const readApiConfigured = Boolean(base);
@@ -337,18 +399,15 @@ async function loadLiveSummary() {
}
const root = base.replace(/\/$/, '');
const [summary, inventory, portMap] = await Promise.all([
const [summary, portMap] = await Promise.all([
fetchJson(`${root}/v1/summary`, apiKey),
fetchJson(`${root}/v1/inventory/live`, apiKey),
fetchJson(`${root}/v1/portmap/joined`, apiKey),
]);
const summaryRecord = asRecord(summary);
const inventoryRecord = asRecord(inventory);
const inventoryRecord = asRecord(liveInventory);
const portMapRecord = asRecord(portMap);
const guestRows = buildGuestRows(inventoryRecord ?? inventory);
const liveSummary = summaryRecord && 'artifacts' in summaryRecord ? (summaryRecord.artifacts as RecordLike) : null;
const guestRows = buildGuestRows(liveInventory);
return {
collectedAt:
@@ -360,39 +419,27 @@ async function loadLiveSummary() {
: typeof summaryRecord?.guest_count === 'number'
? summaryRecord.guest_count
: null,
stoppedCount:
typeof inventoryRecord?.stopped === 'number' ? inventoryRecord.stopped : null,
stoppedCount: typeof inventoryRecord?.stopped === 'number' ? inventoryRecord.stopped : null,
portMapState: portMapRecord?.stale ? 'stale' : 'live',
portMapNote: toText(portMapRecord?.note, undefined),
inventoryState: inventory ? 'live' : 'unavailable',
inventoryState: inventoryRecord ? 'live' : 'unavailable',
summaryState: summary ? 'live' : 'unavailable',
readApiConfigured,
// keep the snapshot summary available if the UI wants to expose it later
// without another fetch path.
...(liveSummary ? { liveArtifacts: liveSummary } : {}),
} as AtlasSnapshot['liveSummary'] & { liveArtifacts?: RecordLike };
};
}
export async function loadAtlasSnapshot(): Promise<AtlasSnapshot> {
const liveSummary = await loadLiveSummary();
const routes = buildRoutes();
const hiddenRows = buildHiddenRows();
const revisions = buildRevisions();
const recommendations = buildRecommendations();
const liveInventory = await (async () => {
const base = itReadApiBaseUrl();
const apiKey = itReadApiKey();
if (!base) return null;
return fetchJson(`${base.replace(/\/$/, '')}/v1/inventory/live`, apiKey);
})();
const base = itReadApiBaseUrl();
const apiKey = itReadApiKey();
const liveInventory = base ? await fetchJson(`${base.replace(/\/$/, '')}/v1/inventory/live`, apiKey) : null;
const liveSummary = await loadLiveSummary(liveInventory);
return {
routeRows: routes,
routeRows: buildProjectAtlasRoutes(),
guestRows: buildGuestRows(liveInventory),
hiddenRows,
revisions,
recommendations,
hiddenRows: buildHiddenRows(),
revisions: buildRevisions(),
recommendations: buildRecommendations(),
liveSummary,
};
}