Wifi kiosk
This page is a HOWTO to create a Kiwix Wifi kiosk, a simple wifi hotspot which allow user to surf on Wikipedia using kiwix-serve and also provide all necessary files to download.
1 - Hardware
Almost all hardware may be able to help to build such a wifi hotspot. We use a small PC based on a x86 and using a USB wifi dongle. To install Debian on the computer, we use an additional USB HD.
2 - OS Installation
Install unetbootin and start it. unetbootin propose you to install a debian stable netinstall on your USB key, do it. Boot your target computer on the usb key and install Debian stable choosing the options "Web server" and "SSH server".
3 - Install additional packages
You should now be able to connect to you computer using SSH, you may consequently to all the next steps remotly. Install the following packags : wireless-tools, dnsmasq Check that you wirelss card is correctly recognized.
4 - Configuration network
Add to the /etc/network/interfaces
# wlan
auto wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
wireless-essid KIWIX
wireless-mode ad-hoc
Try to start the interface with: ifconfig wlan0 up
5 - Configuration of DNS & DHCP
Enable the option in /etc/dnsmasq.conf :
- bogus-priv
- address = /#/192.168.1.1
- interface=wlan0
- dhcp-range=192.168.1.50,192.168.1.150,1h
At this moment you should be able to freely connect to the KIWIX hotspot and your web browser should display for any request the default Apache web page.
6 - Configuration de Apache
You have to create a vhost for kiwix in the file /etc/apache2/sites-available/kiwix like following.
<VirtualHost *:80>
ServerName kiwix
DocumentRoot /var/www/kiwix/
</VirtualHost>
In /etc/apache2/sites-available/default, add the following lines:
<Ifmodule mod_alias.c>
RedirectMatch permanent /(.*)$ http://kiwix/
</IfModule>
Create the directory /var/www/kiwix and an empty file /var/www/kiwix/index.html
Create the symbolique in /etc/apache2/sites-enabled/ and reload Apache.
At this moment all the HTTP request should target to http://kiwix/
7 - install kiwix-serve with content
Compile and install kiwix-serve or install it from a package.
Choose the content (ZIM file) you want to serve and index it with kiwix-index.
Start kiwix-serve on the port 4201. So you should be typing on your client http://kiwix:4201 get the page served by kiwix-serve.
Add the kiwix-serve to the init.d following this documentation.
8 - Integrate kiwix-serve and Apache with mod_proxy
Activate mod_proxy with "a2enmod proxy proxy_http rewrite"
Insert in the kiwix vhost file:
RewriteEngine On
RewriteRule ^/(.{1}/.*)$ /wp/$1 [R]
RewriteRule ^/(search?.*)$ /wp/$1 [R]
<Location /wp/>
ProxyPass http://kiwix:4201/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Location>
Now you should get the kiwix-serve rendered page by typing http://kiwix/wp/
9 - Welcome pages
Create your welcome pages in HTML. Here is a stub:
<html>
<head>
<title>Kiwix Wifi Kiosk</title>
</head>
<body>
<ul>
<li><a href="/wp/">Surf on Wikipedia</a></li>
<li><a href="kiwix.tar.bz2">Download Kiwix</a></li>
<li><a href="wikipedia.zim">Download Wikipedia</a></li>
</ul>
</body>
</html>
Bugs
- Links returned by the search engine are dead links. The reason is a bad encoding of the links.