diff --git a/.gitignore b/.gitignore
index cb0d1f6..baa55b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ modules/*
controller
monitoring
firmware-upgrader
+radius
notifications
network-topology
users
diff --git a/config.yml b/config.yml
index 75b7968..651d767 100644
--- a/config.yml
+++ b/config.yml
@@ -7,6 +7,8 @@ modules:
dir_name: monitoring
- name: openwisp-firmware-upgrader
dir_name: firmware-upgrader
+ - name: openwisp-radius
+ dir_name: radius
- name: openwisp-notifications
dir_name: notifications
- name: openwisp-network-topology
diff --git a/general/architecture.rst b/general/architecture.rst
index 3b62d06..eff9e3e 100644
--- a/general/architecture.rst
+++ b/general/architecture.rst
@@ -102,7 +102,7 @@ Server Side
firmware upgrade solution for OpenWrt and potentially other embedded
OSes. Features include automatic retry for network failures, mass
upgrades, a REST API, and more.
-- :doc:`OpenWISP RADIUS `: Offers a web interface to a
+- :doc:`OpenWISP RADIUS `: Offers a web interface to a
FreeRADIUS database, a rich REST HTTP API, and features like user
self-registration, SMS verification, user import from CSV files,
event-based user generation, Captive Portal Social Login, and Captive
@@ -266,7 +266,7 @@ FreeRADIUS
`FreeRADIUS `_ is the most popular open-source
implementation of the RADIUS protocol and is extensively relied upon in
-:doc:`OpenWISP RADIUS `.
+:doc:`OpenWISP RADIUS `.
Mesh Networking
~~~~~~~~~~~~~~~
diff --git a/modules.rst b/modules.rst
index 0f32f9d..7768788 100644
--- a/modules.rst
+++ b/modules.rst
@@ -9,7 +9,7 @@ Modules
monitoring/index
network-topology/index
firmware-upgrader/index
- user/radius
+ radius/index
wifi-login-pages/index
ipam/index
notifications/index
diff --git a/spelling_wordlist.txt b/spelling_wordlist.txt
index ec04891..7c08c33 100644
--- a/spelling_wordlist.txt
+++ b/spelling_wordlist.txt
@@ -1,9 +1,11 @@
ableist
ai
+allauth
analytics
ansible
api
arp
+auth
autocompletion
autoscale
backend
@@ -25,6 +27,7 @@ Chromedriver
ci
cidr
cli
+CoA
codebase
config
configs
@@ -39,6 +42,7 @@ crontab
cryptographic
css
csv
+csvfile
curl
customizable
customizations
@@ -49,6 +53,7 @@ debian
devops
differently
django
+djangosaml
dns
dnscrypt
dnsmasq
@@ -85,6 +90,7 @@ github
gitlab
Gmail
googleapis
+groupname
GSoC
gui
gzipped
@@ -154,6 +160,7 @@ modularity
monetizable
multitenant
mysql
+nas
Nazionali
Netengine
netjson
@@ -177,6 +184,7 @@ pfSense
PKI
pluggable
Polyfills
+postauth
postfix
postgresql
pppd
@@ -194,12 +202,14 @@ processed
progetti
programmatically
proxied
+py
Pypi
python
QA
qualified
queryset
querysets
+querystring
RADIUS
radsec
reassociation
@@ -211,6 +221,7 @@ respawn
reusability
rtt
runtime
+saml
scalable
schemas
serializer
@@ -248,8 +259,10 @@ txtinfo
ubiquiti
ubuntu
udp
+uid
unassign
uncheck
+uncomment
Uncomment
unencrypted
unmanaged
@@ -261,16 +274,19 @@ untrusted
upgrader
upgraders
uptime
+urlconf
utils
uwsgi
uWSGI
validator
+verifiers
virtualbox
VNI
vpn
vpns
vxlan
webpack
+webservers
Websocket
websocket
websockets
diff --git a/tutorials/wpa-enterprise-eap-ttls-pap.rst b/tutorials/wpa-enterprise-eap-ttls-pap.rst
index 48825f2..dd146a5 100644
--- a/tutorials/wpa-enterprise-eap-ttls-pap.rst
+++ b/tutorials/wpa-enterprise-eap-ttls-pap.rst
@@ -28,7 +28,7 @@ Enable OpenWISP RADIUS
If you are following this tutorial on our :doc:`Demo System <./demo>`,
you can skip this step.
-To use WPA2 Enterprise, the :doc:`RADIUS module ` must be
+To use WPA2 Enterprise, the :doc:`RADIUS module ` must be
enabled first.
See :ref:`ansible_enabling_radius_module` in the Ansible OpenWISP role. In
diff --git a/user/quickstart.rst b/user/quickstart.rst
index 4456e60..822298f 100644
--- a/user/quickstart.rst
+++ b/user/quickstart.rst
@@ -57,7 +57,7 @@ Depending on your use case, you might be interested in different features:
particularly useful.
- **WiFi Connectivity and Security**: If you're focused on providing WiFi
Hotspot connectivity or WPA Enterprise WiFi, take a look at the
- :doc:`RADIUS ` and :doc:`WiFi Login Pages
+ :doc:`RADIUS ` and :doc:`WiFi Login Pages
` modules.
Additionally, we offer tutorials for the most common scenarios:
diff --git a/user/radius.rst b/user/radius.rst
deleted file mode 100644
index dbfb6fa..0000000
--- a/user/radius.rst
+++ /dev/null
@@ -1,74 +0,0 @@
-RADIUS
-======
-
-.. seealso::
-
- **Source code**: `github.com/openwisp/openwisp-radius
- `_.
-
-OpenWISP RADIUS is available since OpenWISP 22.05 and provides many
-features aimed at public WiFi services.
-
-The following diagram illustrates the role of the RADIUS module within the
-OpenWISP architecture.
-
-.. figure:: /images/architecture/v2/architecture-v2-openwisp-radius.png
- :target: ../_images/architecture-v2-openwisp-radius.png
- :align: center
- :alt: OpenWISP Architecture: Radius module
-
- **OpenWISP Architecture: highlighted radius module**
-
-.. important::
-
- For an enhanced viewing experience, open the image above in a new
- browser tab.
-
- Refer to :doc:`/general/architecture` for more information.
-
-.. contents:: **Table of Contents**:
- :backlinks: none
- :depth: 3
-
-Deploy instructions
--------------------
-
-See :ref:`Enabling the RADIUS module on the OpenWISP ansible role
-documentation `.
-
-Alternatively you can set it up manually by following these guides:
-
-- `Freeradius Setup for Captive Portal authentication
- `_
-- `Freeradius Setup for WPA Enterprise (EAP-TTLS-PAP) authentication
- `_
-
-This module is also available in :doc:`docker-openwisp `
-although its usage is not recommended for production usage yet, unless the
-reader is willing to invest effort in adapting the docker images and
-configurations to overcome any roadblocks encountered.
-
-Find out more about OpenWISP RADIUS
------------------------------------
-
-For more information about the features offered by OpenWISP RADIUS, we
-refer to the its documentation:
-
-- `Registration of new users
- `_
-- `SMS verification
- `_
-- `Importing users
- `_
-- `Generating users
- `_
-- `Social Login
- `_
-- `Single Sign-On (SAML)
- `_
-- `Enforcing session limits
- `_
-- `REST API
- `_
-- `Django Settings
- `_