Go to file
Stefan Midjich 9e74a70afc mandatory value. 2016-04-18 21:43:28 +02:00
docs/examples example configurations. 2016-04-18 21:42:29 +02:00
plugins typo 2016-04-18 21:33:35 +02:00
static job handling code in js. 2016-04-18 21:34:16 +02:00
views job handling code in js. 2016-04-18 21:34:16 +02:00
.gitignore changed plugin management to simple rq jobs instead of using pkg_resources. 2016-04-15 19:22:16 +02:00
README.md example configurations. 2016-04-18 21:42:29 +02:00
plugins.cfg mandatory value. 2016-04-18 21:43:28 +02:00
portal.cfg ttl and static files dir. 2016-04-16 16:50:05 +02:00
portal.py meta job info later passed into client. 2016-04-18 21:33:54 +02:00
requirements.txt confused about how to use requirements.txt along with setup.py dependencies. 2016-04-16 16:49:24 +02:00
setup.py added sh for iptables dependency. 2016-04-16 16:49:39 +02:00

README.md

Captive Portal

Work in progress right now.

Captive portal webpage written with simplicity in mind.

  • Present a webpage to the user
  • Users submits a form
  • Plugins are executed with form data
  • User is granted access to whatever treasure the portal is guarding

This is a commonly seen setup in public Wifi networks or hotspots.

This app was specifically written for such a hotspot and as such requires a lot of other configuration around it. This is an ongoing documentation project here.

Plugins

Plugins are executed when the user clicks through the captive portal form, whether they submit data or just approve an EULA these plugins are executed.

Plugins accept data from the request of the user, as of writing this is only wsgi environ data.

Sample plugins prefixed with sample_ are a good starting point for understanding the plugins.

Plugins can be made mandatory, or skipped by being disabled, see plugins.cfg for more configuration.

Get started

python setup.py install
python portal.py

RQ worker

rq worker -u redis://127.0.0.1:6379/

Deployment

See examples in docs/examples directory.