Skip to content

Create automatically a full Wifi Hotspot on Raspberry Pi including a Captive Portal

License

Notifications You must be signed in to change notification settings

pihomeserver/Kupiki-Hotspot-Script

Repository files navigation

Slack Stars Patreon

What is Kupiki Hotspot

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.

Requirements

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.

Installation

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

Then

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

Updates

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

Screenshots

Connexion screen

portalConnect

Successful connexion

portalConnected

Daloradius

daloradius

Additionnal application

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

Login screen

login

Dashboard

dashboard

Basic configuration

simple

Advanced configuration

advanced

Hotspot management

mgmt