Updated README

This commit is contained in:
Bill Zimmerman 2015-02-27 16:10:52 +01:00
parent ae11bfe7fc
commit bb61db4d01
1 changed files with 36 additions and 94 deletions

130
README.md
View File

@ -1,102 +1,44 @@
raspapwebgui
=============
Started and modified from here http://sirlagz.net/2013/02/08/raspap-webgui/
![](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.
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)
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:
Requirements
============
A raspberry pi with raspbian running on it. You will need to ssh into it to set this up.
![](http://i.imgur.com/c09ZTQS.png)
The Packages required for the WebGUI are:
* lighttpd
* php5-cgi
* isc-dhcp-server
* git
## Contents
Steps
=====
1. Install required packages
- [Installation](#installation)
- [How to contribute](#how-to-contribute)
`sudo apt-get install lighttpd php5-cgi git isc-dhcp-server`
2. Enable php in lighttpd
## 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`:
```
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.
```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.
```
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`
## License
See the [LICENSE](./LICENSE) file.