AgileX Portal — Deployment Status & DNS Guide

Current deployment state, what's live, what needs DNS, and how to activate everything

1 Current Deployment Status

Portal UI (Static) Live
agilex-app.pages.dev
Interactive demo portal — Cloudflare Pages
Setup Guide (Static) Live
agilex-app.pages.dev/setup.html
Architecture explainer & setup docs
Full Worker API DNS Needed
agilex-app.pages.dev
Agents + Edge AI + D1 — needs one DNS record
Git Repository Pushed
github.com/2nth-ai/agilex-portal
Private repo — 3 commits, 1,525 lines

What Works Where

FeaturePages (static)Worker (agilex-app.pages.dev)Local dev
Portal UIYesAfter DNSYes
Setup guideYesAfter DNSYes
Agent API endpointsNoAfter DNSFallback
D1 databaseNoAfter DNSLocal D1
Edge AI (Workers AI)NoAfter DNSRemote only
M365 simulationNoAfter DNSYes
Huly bridgeNoAfter DNSIf Huly running

2 DNS Setup — One Record to Activate Everything

The Cloudflare Worker is deployed and routing is configured for agilex-app.pages.dev/*. The only thing missing is a DNS record pointing the subdomain to Cloudflare's proxy.

Add This DNS Record

In the Cloudflare Dashboard for the 2nth.ai zone:

TypeNameContentProxyTTL
AAAAagilex100::Proxied (orange cloud)Auto

100:: is the standard Cloudflare placeholder for Workers routes — it tells Cloudflare to route traffic to the Worker instead of an origin server.

Step-by-Step

1 Open the Cloudflare Dashboard

Go to dash.cloudflare.com and select the 2nth.ai zone.

2 Navigate to DNS → Records

Click DNS in the left sidebar, then Records.

3 Click "Add Record"

Fill in the form exactly as shown:

Type
AAAA
Name
agilex
IPv6
100::
Proxy
Proxied
TTL
Auto
Save

4 Wait 30–60 seconds for propagation

Cloudflare DNS propagates almost instantly. Verify with:

dig agilex-app.pages.dev +short

Should return Cloudflare IPs (e.g. 104.26.x.x).

5 Test the portal

# Health check
curl https://agilex-app.pages.dev/api/health

# Seed demo data
curl -X POST https://agilex-app.pages.dev/api/seed

# Open in browser
open https://agilex-app.pages.dev

After DNS — Everything Activates

Once the DNS record is live, all portal features work including the A.G.I.L.E. agents with Edge AI, the D1 database, M365 simulation, and Huly bridge. No code changes needed.

3 What's Deployed

Cloudflare Worker: agilex-portal

ResourceBindingDetails
Workers AIenv.AILlama 3.1 8B + BGE embeddings at the edge
D1 Databaseenv.DBagilex-portal — WEUR region, 6 tables
KV Namespaceenv.KVCACHE — sessions, rate limits
Routeagilex-app.pages.dev/* on 2nth.ai zone

Cloudflare Pages: agilex-demo

FileURLDescription
index.htmlagilex-app.pages.devInteractive demo portal (dashboard, agents, pipeline, M365, AI)
setup.htmlagilex-app.pages.dev/setup.htmlFull architecture explainer & setup guide
dns-guide.htmlagilex-app.pages.dev/dns-guide.htmlThis document

Git Repository

github.com/2nth-ai/agilex-portal

Private repo in the 2nth-ai organisation. 3 commits, 16 files, 1,525 lines of code.

# Clone and work locally
git clone https://github.com/2nth-ai/agilex-portal.git
cd agilex-portal
npm install
npm run db:init    # initialise local D1
npm run dev        # start on localhost:8788

# Seed data locally
curl -X POST http://localhost:8788/api/seed

# Deploy changes
npm run deploy     # push to Cloudflare Worker

4 After DNS Is Live — Quick Test Sequence

1. Verify health

curl https://agilex-app.pages.dev/api/health
# → {"status":"ok","env":"demo","ts":"..."}

2. Seed demo data

curl -X POST https://agilex-app.pages.dev/api/seed
# → {"seeded":true,"counts":{"clients":10,"vacancies":8,"candidates":15,"activities":8}}

3. Test Edge AI — Parse a CV

curl -X POST https://agilex-app.pages.dev/api/agents/acquire/parse-cv \
  -H "Content-Type: application/json" \
  -d '{"text":"Dr. Nomsa Khumalo\nPhD Machine Learning, Wits\n8 years AI/ML\nDiscovery Health, Johannesburg\nPython, TensorFlow, PyTorch, NLP\nnomsa@gmail.com"}'

# → Edge AI extracts name, skills, experience → creates candidate → generates OneDrive link

4. Test Gauge Agent — Score a candidate

# Get a candidate ID first
curl https://agilex-app.pages.dev/api/candidates | python3 -c "import sys,json; c=json.load(sys.stdin)['candidates'][0]; print(c['id'], c['name'])"

# Score them
curl -X POST https://agilex-app.pages.dev/api/agents/gauge/score \
  -H "Content-Type: application/json" \
  -d '{"candidateId":"THE_ID_HERE"}'

5. Test M365 Simulation

# SharePoint site info
curl https://agilex-app.pages.dev/api/m365/sharepoint/site

# Teams channels
curl https://agilex-app.pages.dev/api/m365/teams/channels

# OneDrive files
curl https://agilex-app.pages.dev/api/m365/onedrive/list

6. Open the portal

open https://agilex-app.pages.dev
# Click "Seed Demo Data" button if not already seeded
# Navigate: Dashboard → Agents → Pipeline → M365 → Huly → Edge AI

5 All URLs — Complete Reference

WhatURLStatus
Portal (static)agilex-app.pages.devLive
Setup guideagilex-app.pages.dev/setup.htmlLive
DNS guideagilex-app.pages.dev/dns-guide.htmlLive
Full portal + APIagilex-app.pages.devDNS needed
Health checkagilex-app.pages.dev/api/healthDNS needed
Seed dataPOST agilex-app.pages.dev/api/seedDNS needed
Git repogithub.com/2nth-ai/agilex-portalPrivate
Local Huly ATSlocalhost:8087If running
Local dev serverlocalhost:8788npm run dev

6 Architecture Recap

What's Proven

  • Edge AI works — Llama 3.1 8B parsed a full CV and extracted structured fields at the Cloudflare edge
  • Agents are functional — all 5 A.G.I.L.E. agents have working endpoints with D1 persistence
  • M365 integration mapped — every Graph API call is simulated with realistic response shapes
  • Huly bridge defined — integration points documented, data model specified
  • Cost model validated — running on Cloudflare free tier + ~R280 Hetzner for Huly

What's Next

  • DNS record — add AAAA agilex 100:: to activate full portal
  • Real M365 — swap simulated endpoints for Entra ID OAuth + live Graph API
  • Huly WebSocket — connect agents to Huly transactor for live ATS writes
  • AI Gateway — add multi-model routing (Claude, GPT-4o, Gemini fallbacks)
  • Vectorize — persistent candidate embeddings for semantic search
  • Custom domain — optionally map to app.agilex.co.za