feat: add Dockerfile and entrypoint script to containerize RADIUS controller and FreeRADIUS stack
Build and Push Docker Image to Gitea Container Registry / build-and-push (push) Successful in 1m14s

This commit is contained in:
Tygozwolle
2026-07-24 15:29:07 +02:00
parent 1054dfb61a
commit 9dc029e32f
2 changed files with 28 additions and 6 deletions
+1
View File
@@ -7,6 +7,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
freeradius-postgresql \ freeradius-postgresql \
freeradius-utils \ freeradius-utils \
ca-certificates \ ca-certificates \
openssl \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Create symlink so both /etc/raddb and /etc/freeradius/3.0 work # Create symlink so both /etc/raddb and /etc/freeradius/3.0 work
+27 -6
View File
@@ -32,13 +32,34 @@ if [ -f "$CLIENTS_CONF" ]; then
fi fi
# Generate FreeRADIUS EAP certificates if missing # Generate FreeRADIUS EAP certificates if missing
if [ ! -f /etc/freeradius/3.0/certs/server.pem ]; then CERT_DIR="/etc/freeradius/3.0/certs"
if [ ! -f "$CERT_DIR/server.pem" ]; then
echo "Generating FreeRADIUS EAP certificates..." echo "Generating FreeRADIUS EAP certificates..."
cd /etc/freeradius/3.0/certs mkdir -p "$CERT_DIR"
if [ -f ./bootstrap ]; then
./bootstrap || true # Generate CA key and certificate
fi openssl req -new -x509 -keyout "$CERT_DIR/ca.key" -out "$CERT_DIR/ca.pem" \
cd /app -days 3650 -nodes -subj "/CN=RADIUS CA" 2>/dev/null
# Generate server key and CSR
openssl req -new -keyout "$CERT_DIR/server.key" -out "$CERT_DIR/server.csr" \
-nodes -subj "/CN=RADIUS Server" 2>/dev/null
# Sign the server certificate with the CA
openssl x509 -req -in "$CERT_DIR/server.csr" -CA "$CERT_DIR/ca.pem" \
-CAkey "$CERT_DIR/ca.key" -CAcreateserial -out "$CERT_DIR/server.crt" \
-days 3650 2>/dev/null
# Combine server key + cert into server.pem
cat "$CERT_DIR/server.key" "$CERT_DIR/server.crt" > "$CERT_DIR/server.pem"
# Generate DH parameters (small size for speed, adequate for internal use)
openssl dhparam -out "$CERT_DIR/dh" 1024 2>/dev/null
# Clean up intermediate files
rm -f "$CERT_DIR/server.csr" "$CERT_DIR/server.key" "$CERT_DIR/server.crt" "$CERT_DIR/ca.key" "$CERT_DIR/ca.srl"
echo "EAP certificates generated successfully."
fi fi
# Ensure correct permissions for FreeRADIUS config directory # Ensure correct permissions for FreeRADIUS config directory