No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 5e39145 Nov 21, 2017


FreedomPortal is a platform for exhibiting digital artworks on Wi-Fi routers.

These instructions explain how to deploy some static web pages on a Wi-Fi router, so that it acts as a captive portal for all clients connecting.


  • Wi-Fi router :

    • able to support OpenWrt (
    • with a USB port so you can plug a USB key to extend the router's disk space
    • with enough flash memory (I am unsure of the exact amount of memory necessary)

    We have been using GL-AR150 routers, which have all of the above, and come with OpenWrt pre-installed. Instructions are for these specific routers, but can be easily adapted to another model or another brand.

  • Internet access to your router : in order to install dependencies, the router will need Internet access. You can for example connect its wan port to one free lan port on your home router/modem.

NB: this is a fairly new project, so expect a few bugs and a few issues in the deployment process. Feedback, bug reports are welcome, open a ticket in the issue tracker.

Deploying on a Wi-Fi router

Getting the code and creating a configuration file

Download latest FreedomPortal code from here, unzip and rename the folder to FreedomPortal.

Copy the file parameters.lua.template, name the copy parameters.lua.

You can optionally edit parameters.lua to customize your installation, but I recommend you try out the default settings first.

Preparing USB key

Format a USB key as FAT, and call the new volume PORTALKEY.

Copy the FreedomPortal folder you downloaded before to the USB key.

Copy also your html pages in a folder called www. If you don't have html pages yet and just want to test out the system, you can copy the contents of example/ under www/ on your USB key.

You USB key should now have the following structure :


Eject USB key from your computer and insert into the router.

Initialize router password, connect through SSH

On first connection on GL-inet routers, go to the router's web interface to set a password.

Use that password to connect through SSH. Open your terminal and run the following command :

ssh root@

After successfully connecting, an SSH console will be open. All the following commands will be ran inside that SSH console.

ATTENTION: the instructions and configuration files are designed for GL-inet firmware version 2.25 and above. If you have an older firmware version you should upgrade it using the router's web interface, firmware menu. You will need an Internet connection for that.

Install FreedomPortal on the router

You are now ready to run the installation process. Navigate to the FreedomPortal/ folder on your USB key by running the command :

cd /mnt/PORTALKEY/FreedomPortal

Once inside the folder, run the following command :

lua configure.lua parameters

Then, finalize the installation by running :

chmod a+x /root/FreedomPortal_configured/

You can now reboot your router by running :

reboot 0

After the router has rebooted successfully, the captive portal should be active.

Running tests

Install luaunit, and then run lua run_tests.lua


This project was partly funded by The Creative Exchange, a UK Arts & Humanities Research Council Knowledge Exchange Hub for the Creative Economy (UK research council reference AH/J005150/1 Creative Exchange).