This project is the latest version of the tutorial created first on my blog Pi Home Server(now closed) Created on a Raspberry Pi 2, some functionalities and tools where not available for the Raspberry Pi 3. Also the tutorial was a little bit difficult to implement because of too many steps. That's why i decided to create a script that will help you to build your own hotspot automatically.
Once the script is executed, you will get :
- A Wifi hotspot using the integrated wifi chipset
- A custom captive portal based on coovachilli
- The portal is served by the high performance web server Nginx
- The design of the portal can be easily modified for anyone who has knowledge in HTML and Javascript
- Register feature available for users
- Must be activated via the portal configuration file
- Security on the backend to limit access to the register API
- An authentication process based on freeRadius
- User/password authentication
- MAC address authentication (optionnal)
- An interface for freeRadius management
- daloRadius is installed by default, served by Nginx web server
- A full management of the hotspot, with batch for user creation, vouchers, NAS, etc.
The installed system have been secured using ANSSI security recommendation and is compliant with french laws about free wifi hotspots (R. 10-13 et R. 10-14 , IV of CPCE)
To contribute, you can open an issue and/or fork this repository.
What are the requirements ?
- A Raspberry Pi 3 or 3B+ (not tested yet on a Raspberry pi 4)
- An ethernet cable
- A power supply for the Raspberry Pi
- An internet access of course
- A 4Gb micro SD card with a raspbian-like OS (9+) installed like the official Raspbian Lite. No warranty that it will work with OSes like Official Raspbian, Ubuntu Mate Xenial, etc.
You just have to download the script, edit it to update it's parameters, execute and wait ... If the wifi on the Raspberry is not already configured, don't worry, the script will do it
- Download the script with the following command
git clone https://github.com/pihomeserver/Kupiki-Hotspot-Script.git
- Edit the script and update the first lines to define your own configuration (take care that an ethernet link is required) Please read the wiki for more help about parameters
- Execute the script using the following command :
sudo chmod +x pihotspot.sh && sudo ./pihotspot.sh
A log file named pihotspot.log
will be created in the folder /var/log
. Open a new session on the Pi and run the following command tail -f /var/log/pihotspot.log
In case you want to give a try to Kupiki Hotspot in a Virtual Machine, please look at this Wiki page
Once installed use your favorite browser to connect to daloRadius installed on your Raspberry Pi.
http://<mypi_ip>/daloradius
or http://<my_hotspot_name>.local/daloradius
if your system supports Bonjour.
The exact address will be displayed at the end of the script execution.
Do not try to connect to daloRadius throught your new hotspot network
Since version 2.0.0 (no update for previous versions), you can get and apply latest updates on your system. Go in /etc/kupiki folder and run as root :
/etc/kupiki/kupiki_updater.sh
Feel free to add it in a cron job to get automatic updates
For those who want to try another interface (in english of french only) with less functionnalities and more bugs, you can try the portal currently in development here