Camel Towers documentation

This handbook explains how a guest Wi-Fi purchase travels through the portal, Go API, mobile-money provider, database, and Cudy access point. It is written from the implementation in this repository; sections that depend on a physical AP or provider account are marked as needing verification.

Camel Towers service architectureGuests use Cudy captive Wi-Fi and the guest portal. The Go API coordinates payments and access in PostgreSQL, while RADIUS connects back to the AP.Guest devicePhone or laptopCudy AP1300CoovaChilli / UAMRADIUS clientGuest portalNext.js · wateja-towers/ and /uamGo APIapi-towers · REST + RADIUSUDP 1812 / 1813PostgreSQLInvoices · grantssessions · auditAblinerMobile-money pushsigned webhookSendAfricaOutbound SMSWi-Ficaptive redirectHTTPS APIRADIUS / accountingSQLdeposit requestpayment callbackSMS API

Start with the task you have

What this platform sells

Guests buy Wi-Fi access time with Tanzania mobile money. The product is a time-limited network pass; it does not buy phone airtime or mobile data bundles. Plans can store a data-limit value, but the current RADIUS implementation does not enforce byte quotas. Do not advertise quota-based plans yet.

Readiness at a glance

The software has a Go API, two Next.js apps, PostgreSQL migrations, Abliner and SendAfrica adapters, a RADIUS listener, and a manual Cudy configuration page. A local stack was started and its pages and admin API were checked. A successful payment and access session on the AP1300 firmware have not been verified.

Hardware integration still needs a live test

The screenshots identify the AP1300 Outdoor Manual captive-portal page, but Cudy’s published field descriptions differ between product families. Verify the UAM redirect, RADIUS accounting, lease behavior, and CoA disconnect on the exact AP1300 hardware and firmware before enabling real sales.

Public services

HostnamePurpose
api-towers.camelcreatives.comGo REST API, Abliner callback, and RADIUS host DNS
wateja-towers.camelcreatives.comGuest purchase portal and UAM callback page
towers.camelcreatives.comStaff admin console
docs-towers.camelcreatives.comThis public, read-only handbook

All domains can point to the same VPS. Caddy selects the upstream by hostname and terminates HTTPS. RADIUS uses UDP ports and does not pass through Caddy.