feat: consolidate FreeRADIUS and web controller into a single Docker image with unified entrypoint orchestration
Build and Push Docker Image to Gitea Container Registry / build-and-push (push) Failing after 32s

This commit is contained in:
Tygozwolle
2026-07-24 12:51:51 +02:00
parent c636794e5e
commit 824f0554e4
4 changed files with 95 additions and 53 deletions
+22 -33
View File
@@ -7,24 +7,21 @@ This project provides a complete **RADIUS Authentication & Accounting Controller
## 🏗️ System Architecture
```
┌─────────────────┐ UDP 1812/1813 ┌──────────────────┐
│ UniFi AP / │ ◄───────────────────────► │ FreeRADIUS │
│ Dream Machine │ (Port 1812/13)
└────────────────┘ └────────┬─────────┘
│ │
│ Wi-Fi 802.1X / │ SQL Queries
│ Guest Auth ▼
┌──────────────────┐
│ │ PostgreSQL │
(Radius DB) │
│ └────────▲─────────┘
│ │
│ HTTP/8080EF Core
┌─────────────────┐ │
│ Guests / Admins │ ───────────────────────────────────┘
│ (Web Portal) │ RadiusController Web App
└─────────────────┘
┌─────────────────┐ UDP 1812/1813 (RADIUS)
│ UniFi AP / │ ◄────────────────────────────────┐
│ Dream Machine │
└────────────────┘
┌─────────────────┐ HTTP 8080 (Web UI) ┌────────────────────────────────┐
│ Guests / Admins │ ◄────────────────────────► │ Combined Application Container │
│ (Browser)│ (FreeRADIUS + Web Controller) │
└─────────────────┘ └───────────────┬────────────────┘
PostgreSQL
┌────────────────┐
PostgreSQL │
│ (Database)
└────────────────┘
```
---
@@ -51,21 +48,6 @@ services:
- /mnt/user/appdata/radiuscontroller/pgdata:/var/lib/postgresql/data
- /mnt/user/appdata/radiuscontroller/sql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
freeradius:
image: freeradius/freeradius-server:latest
container_name: radius_freeradius
restart: always
depends_on:
- postgres
ports:
- "1812:1812/udp"
- "1813:1813/udp"
environment:
- DB_NAME=radius
- DB_HOST=postgres
- DB_USER=radius
- DB_PASS=radpass
radiuscontroller:
image: cablon.vanolst.tech/tygozwolle/radius:latest
container_name: radius_web_controller
@@ -74,7 +56,14 @@ services:
- postgres
ports:
- "8080:8080"
- "1812:1812/udp"
- "1813:1813/udp"
environment:
- DB_HOST=postgres
- DB_PORT=5432
- DB_USER=radius
- DB_PASS=radpass
- DB_NAME=radius
- ConnectionStrings__DefaultConnection=Host=postgres;Port=5432;Database=radius;Username=radius;Password=radpass;
- ASPNETCORE_ENVIRONMENT=Production
```