FreeWifi PHP Captive Portal, useful for builds coffee or restaurants free hotspots without pay external cloud services. Works with Ubiquiti Unifi controller v4.X and v5.X
NOTE: This captive portal actually works, but it's under development. There is only frontend and I'm coding a jquery-mobile backend for administrate database.
WARNING: Some countries' laws, require a logging data for guests activities from wifi hotspots. This tool does not collect any data or logs, so use it at your risk. If required in your country, install a logging system by yourself. I'm not responsible for law violations!
FEATURES
- Mac address/email authentication for free limited-time wifi access;
- Registered users authentication (support limited time login from single mac address);
- Remaining time counter for users (you can show them fake values, hiding minutes from remaining time);
- Blocking expired session's mac-address for minutes (or hours / days);
- Multilanguage and language browser detection (italian/english);
- Single customizable frontend theme.
- Mail login supports for guests, with logging useful for signing up to newsletters - NEW
- Disabling registered users login (set hotspot for guests only) - NEW
- Permanent login support - NEW
REQUIREMENTS
- Ubiquiti Unifi Controller (tested on 4.8.20 version)
- Linux Debian or Windows Lamp (tested on Debian and Raspbian 8)
- Nginx or Apache2 webserver with php enabled
- Sqlite3 or Mysql 5.5 server
- PHP 5.5 with mysql and/or sqlite3 PDO support
- PhpMyAdmin or external database client for backend [OPTIONAL]
INSTALL
- Prepare your system installing the unifi controller, a web server (Nginx/Apache) with PHP/PDO CURL and a DBMS (Mysql or Sqlite3);
- Put guest/ directory into webserver root (like /var/www/html) and change permissions to access www-data webserver user;
- To increase security, move guest/s/default/db/hotspot.sqlite and hotspot.sql files to another path (like /var) inaccessible from web, but accessible from php;
- Edit guest/s/default/config.inc.php Unifi Controller options, database settings and $GLOBALS['sessionLogging'] with random string.
- If you use mysql, import hotspot.sql file into database (you can use PhpMyAdmin). If you prefer sqlite, set $GLOBALS['dbms']='sqlite' and $GLOBALS['sqliteFile'] to hotspot.sqlite file. For backend you can use sqliteweb (http://j.gs/CBxO).
- Log in in Unifi Controller and set External Hotspot (from Guest Policies) to redirect to custom captive ip address.
- All access will be logged into access_logs database table (set $GLOBALS['logAccessEnabled']) to false for disabling logging)
- Set $GLOBALS['GuestMailAccess'] to true to enable guest authentication by email address (useful for signing up to newsletter)
- Set $GLOBALS['showHomeRegistered'] to false to hide disable registered accounts (guest only)
- Enjoy
LICENSE
This tool is released under MIT License
CREDITS
This Captive Portal is based on
- Medoo (http://j.gs/CBxP)
- UniFi API browser (http://j.gs/CBxR)
FUTURE RELEASES
I'm working for Linux ready hotspot distro with Espresso Frontend and Espresso-Admin. Will be available for Raspberry Pi 2-3 and X86/x64 platforms.
ESPRESSO-ADMIN BACKEND (works only with mysql!)
AUTHOR
Emanuele Paiano - nixw0rm [at] gmail [dot] com
Commentaires
Enregistrer un commentaire