Build a full ISP hotspot billing system from scratch using Django, MikroTik, FreeRADIUS, Celery, and M-Pesa Daraja. This is a real production system running in Kenya — see the full architecture, live payment flow, and automatic voucher expiry in action.
What You'll Learn:
Understand how MikroTik's captive portal redirects to a Django app for payment and authentication
Integrate M-Pesa Daraja STK Push and process callbacks to activate user sessions
Write to FreeRADIUS radcheck from Django so MikroTik can grant or deny Wi-Fi access
Use Celery Beat and a Celery worker to auto-expire vouchers by deleting their RADIUS access tokens
Cache dashboard data with Redis (Upstash) to avoid hammering your PostgreSQL database on every reload
Auto-provision a new MikroTik site with a single script — including anti-tethering TTL rules
Monitor router heartbeats, site uptime, and active user counts from the admin dashboard
Timestamps:
0:00 — Intro & system overview
0:50 — System architecture diagram walkthrough
2:00 — Captive portal → Django app redirect demo
2:55 — M-Pesa STK Push payment live demo
4:00 — How Django writes to FreeRADIUS / PostgreSQL
5:32 — Celery Beat: automatic voucher expiry explained
6:23 — Admin dashboard: revenue, active vouchers, transactions
7:30 — MikroTik auto-provisioning script demo
9:02 — FreeRADIUS radcheck view in Django admin
10:05 — Redis caching strategy (Upstash + VPS Redis)
11:58 — Site management and router heartbeat monitoring
13:52 — Closing thoughts & SaaS roadmap
Resources:
GitHub (private for now): github.com/elkdev72
FreeRADIUS Docs: freeradius.org/documentation
M-Pesa Daraja API: developer.safaricom.co.ke
MikroTik RouterOS Wiki: wiki.mikrotik.com
About This Channel:
We build real, production-grade backend systems targeting the African market — covering Django, M-Pesa integration, MikroTik networking, and open-source AI tools. If you're a developer in Kenya or anywhere on the continent, this channel is for you.
👍 Like | 💬 Comment below with your questions | 🔔 Subscribe for more Django, M-Pesa, and ISP systems tutorials