diff --git a/README.md b/README.md index c23aea7..cf76a8a 100644 --- a/README.md +++ b/README.md @@ -1,102 +1,44 @@ -raspapwebgui -============= -Started and modified from here http://sirlagz.net/2013/02/08/raspap-webgui/ - -Found this article very helpful for setting up DHCP (https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software) - -Requirements -============ -A raspberry pi with raspbian running on it. You will need to ssh into it to set this up. - -The Packages required for the WebGUI are: -* lighttpd -* php5-cgi -* isc-dhcp-server -* git - -Steps -===== -1. Install required packages - - `sudo apt-get install lighttpd php5-cgi git isc-dhcp-server` -2. Enable php in lighttpd - - ``` - sudo lighty-enable-mod fastcgi-php - sudo service lighttpd restart - ``` -3. Edit `/etc/sudoers` to allow the *www-data* user to call the necessary commands. Add the following line to the end of the file. - - - ``` - www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,/sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,/etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,/etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf - ``` -4. Once those modifications are done, git clone the files to `/var/www`. Make sure that there are no files in the `/var/www` directory. There was a default lighttpd index file that I had to delete. - - `sudo git clone https://github.com/rjpcomputing/raspap-webgui.git /var/www` -5. Set the files ownership to `www-data` user. - - `sudo chown -R www-data:www-data /var/www` -6. Configure a static IP for the Pi - * Edit `/etc/network/interfaces` - - `sudo nano /etc/network/interfaces` - * Find and remove dhcp entry - `iface eth0 inet dhcp` - * Append new network settings - ``` - auto eth0 - allow-hotplug eth0 - iface eth0 inet static - address 10.0.0.1 - netmask 255.255.255.0 - dns-nameservers 8.8.8.8 8.8.4.4 - ``` - * Find and change `iface wlan0 inet manual` to `iface wlan0 inet dhcp`. This is under the wlan0 setup. - * Comment out `iface default inet dhcp` and `allow-hotplug wlan0` using the '#' character at the beginning of the line(s). - * Example of `/etc/network/interfaces` after all changes are made: - ``` - auto lo - iface lo inet loopback - - #iface eth0 inet dhcp - auto eth0 - allow-hotplug eth0 - iface eth0 inet static - address 10.0.0.1 - netmask 255.255.255.0 - dns-nameservers 8.8.8.8 8.8.4.4 - - auto wlan0 - #allow-hotplug wlan0 - iface wlan0 inet dhcp - wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf - #iface default inet dhcp - - ``` -7. Configure `dhcpd` by editing `/etc/dhcp/dhcpd.conf` - * `sudo nano /etc/dhcp/dhcpd.conf` - * Add the following to the end of the file - ``` - subnet 10.0.0.0 netmask 255.255.255.0 - { - range 10.0.0.50 10.0.0.99; - option routers 10.0.0.254; - option domain-name "local"; - option domain-name-servers 8.8.8.8, 8.8.4.4; - } - ``` -8. Open `/etc/default/isc-dhcp-server` and change the `INTERFACES=""` to `INTERFACES="eth0"` - - `sudo nano /etc/default/isc-dhcp-server` -9. Install and configure the auto-reconnect WiFi script (wifi-check). - * Copy 'wifi-check' to `/usr/local/bin/wifi-check` - * `sudo cp /var/www/wifi-check /usr/local/bin/wifi-check` - * `sudo chmod +x /usr/local/bin/wifi-check` - * Add it to cron so it runs every 5 minutes - * `sudo crontab -e` - * Append the line `*/5 * * * * /usr/local/bin/wifi-check > /tmp/wificheck.log 2>&1` to the end of the file - * Save the file -* Reboot and it should be up and running! - - `sudo reboot` \ No newline at end of file +![](http://i.imgur.com/xeKD93p.png) +# `$ raspap-webgui` [![Release 1.0](https://img.shields.io/badge/Release-1.0-green.svg)](https://github.com/billz/raspap-webgui/releases) +A simple, responsive web interface to control wifi, hostapd and related services on the Raspberry Pi. + +We'd be curious to hear about how you use this with your own Pi-powered access points. Ping us on Twitter and ([**@billzimmerman**](https://twitter.com/billzimmerman)) and ([**@SirLagz**](https://twitter.com/SirLagz)). Until then, here's a screenshot: + +![](http://i.imgur.com/c09ZTQS.png) + +## Contents + + - [Installation](#installation) + - [How to contribute](#how-to-contribute) + +## Installation +Start off by installing lighttpd and php5. +```sh +$ apt-get install lighttpd php5-cgi +``` +After that, enable PHP for lighttpd and restart it for the settings to take effect. +```sh +sudo lighty-enable-mod fastcgi-php +/etc/init.d/lighttpd restart +``` +Now, comes the fun part. +For security reasons, the www-data user which lighttpd runs under is not allowed to start or stop daemons, or run commands like ifdown and ifup, all of which we want our page to do. +So what I have done is added the www-data user to the sudoers file, but with restrictions on what commands the user can run. +Add the following to the end of `/etc/sudoers`: + +```sh +www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,/sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,/etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,/etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf +``` +## How to contribute + +1. File an issue in the repository, using the bug tracker, describing the + contribution you'd like to make. This will help us to get you started on the + right foot. +2. Fork the project in your account and create a new branch: + `your-great-feature`. +3. Commit your changes in that branch. +4. Open a pull request, and reference the initial issue in the pull request + message. + +## License +See the [LICENSE](./LICENSE) file. \ No newline at end of file