1 Current Deployment Status
What Works Where
| Feature | Pages (static) | Worker (agilex-app.pages.dev) | Local dev |
|---|---|---|---|
| Portal UI | Yes | After DNS | Yes |
| Setup guide | Yes | After DNS | Yes |
| Agent API endpoints | No | After DNS | Fallback |
| D1 database | No | After DNS | Local D1 |
| Edge AI (Workers AI) | No | After DNS | Remote only |
| M365 simulation | No | After DNS | Yes |
| Huly bridge | No | After DNS | If 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:
| Type | Name | Content | Proxy | TTL |
|---|---|---|---|---|
| AAAA | agilex | 100:: | 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:
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
| Resource | Binding | Details |
|---|---|---|
| Workers AI | env.AI | Llama 3.1 8B + BGE embeddings at the edge |
| D1 Database | env.DB | agilex-portal — WEUR region, 6 tables |
| KV Namespace | env.KV | CACHE — sessions, rate limits |
| Route | — | agilex-app.pages.dev/* on 2nth.ai zone |
Cloudflare Pages: agilex-demo
| File | URL | Description |
|---|---|---|
index.html | agilex-app.pages.dev | Interactive demo portal (dashboard, agents, pipeline, M365, AI) |
setup.html | agilex-app.pages.dev/setup.html | Full architecture explainer & setup guide |
dns-guide.html | agilex-app.pages.dev/dns-guide.html | This 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
| What | URL | Status |
|---|---|---|
| Portal (static) | agilex-app.pages.dev | Live |
| Setup guide | agilex-app.pages.dev/setup.html | Live |
| DNS guide | agilex-app.pages.dev/dns-guide.html | Live |
| Full portal + API | agilex-app.pages.dev | DNS needed |
| Health check | agilex-app.pages.dev/api/health | DNS needed |
| Seed data | POST agilex-app.pages.dev/api/seed | DNS needed |
| Git repo | github.com/2nth-ai/agilex-portal | Private |
| Local Huly ATS | localhost:8087 | If running |
| Local dev server | localhost:8788 | npm 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