mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
commit
cf69055d3c
13
README.md
13
README.md
@ -36,15 +36,22 @@ $ wget -q https://git.io/voEUQ -O /tmp/raspap && bash /tmp/raspap
|
|||||||
```
|
```
|
||||||
The installer will complete the steps in the manual installation (below) for you.
|
The installer will complete the steps in the manual installation (below) for you.
|
||||||
|
|
||||||
|
After the reboot at the end of the installation the wireless network will be
|
||||||
|
configured as an access point as follows:
|
||||||
|
* IP address: 10.3.141.1
|
||||||
|
* DHCP range: 10.3.141.50 to 10.3.141.255
|
||||||
|
* SSID: `raspi-webgui`
|
||||||
|
* Password: ChangeMe
|
||||||
|
|
||||||
## Manual installation
|
## Manual installation
|
||||||
Start off by installing lighttpd and php5.
|
Start off by installing lighttpd, php5, hostapd and dnsmasq.
|
||||||
```sh
|
```sh
|
||||||
$ sudo apt-get install lighttpd php5-cgi
|
$ sudo apt-get install lighttpd php5-cgi hostapd dnsmasq
|
||||||
```
|
```
|
||||||
After that, enable PHP for lighttpd and restart it for the settings to take effect.
|
After that, enable PHP for lighttpd and restart it for the settings to take effect.
|
||||||
```sh
|
```sh
|
||||||
sudo lighty-enable-mod fastcgi-php
|
sudo lighty-enable-mod fastcgi-php
|
||||||
sudo /etc/init.d/lighttpd restart
|
sudo service 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.
|
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.
|
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.
|
||||||
|
12
config/default_hostapd
Normal file
12
config/default_hostapd
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Location of hostapd configuration file
|
||||||
|
DAEMON_CONF="/etc/hostapd/hostapd.conf"
|
||||||
|
|
||||||
|
# Additional daemon options to be appended to hostapd command:-
|
||||||
|
# -d show more debug messages (-dd for even more)
|
||||||
|
# -K include key data in debug messages
|
||||||
|
# -t include timestamps in some debug messages
|
||||||
|
#
|
||||||
|
# Note that -B (daemon mode) and -P (pidfile) options are automatically
|
||||||
|
# configured by the init.d script and must not be added to DAEMON_OPTS.
|
||||||
|
#
|
||||||
|
#DAEMON_OPTS=""
|
17
config/dhcpcd.conf
Normal file
17
config/dhcpcd.conf
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Defaults from Raspberry Pi configuration
|
||||||
|
hostname
|
||||||
|
clientid
|
||||||
|
persistent
|
||||||
|
option rapid_commit
|
||||||
|
option domain_name_servers, domain_name, domain_search, host_name
|
||||||
|
option classless_static_routes
|
||||||
|
option ntp_servers
|
||||||
|
require dhcp_server_identifier
|
||||||
|
slaac private
|
||||||
|
nohook lookup-hostname
|
||||||
|
|
||||||
|
# RaspAP-WebGui wireless configuration
|
||||||
|
interface wlan0
|
||||||
|
static ip_address=10.3.141.1/24
|
||||||
|
static routers=10.3.141.1
|
||||||
|
static domain_name_server=8.8.8.8 8.8.4.4
|
3
config/dnsmasq.conf
Normal file
3
config/dnsmasq.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
domain-needed
|
||||||
|
interface=wlan0
|
||||||
|
dhcp-range=10.3.141.50,10.3.141.255,255.255.255.0,12h
|
14
config/hostapd.conf
Normal file
14
config/hostapd.conf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
driver=nl80211
|
||||||
|
ctrl_interface=/var/run/hostapd
|
||||||
|
ctrl_interface_group=0
|
||||||
|
beacon_int=100
|
||||||
|
auth_algs=1
|
||||||
|
wpa_key_mgmt=WPA-PSK
|
||||||
|
ssid=raspi-webgui
|
||||||
|
channel=1
|
||||||
|
hw_mode=g
|
||||||
|
wpa_passphrase=ChangeMe
|
||||||
|
interface=wlan0
|
||||||
|
wpa=WPA2
|
||||||
|
wpa_pairwise=TKIP
|
||||||
|
country_code=
|
@ -64,21 +64,23 @@ function enable_php_lighttpd() {
|
|||||||
# Verifies existence and permissions of RaspAP directory
|
# Verifies existence and permissions of RaspAP directory
|
||||||
function create_raspap_directories() {
|
function create_raspap_directories() {
|
||||||
install_log "Creating RaspAP directories"
|
install_log "Creating RaspAP directories"
|
||||||
if [ ! -d "$raspap_dir" ]; then
|
if [ -d "$raspap_dir" ]; then
|
||||||
sudo mkdir -p "$raspap_dir" || install_error "Unable to create directory '$raspap_dir'"
|
sudo mv $raspap_dir $raspap_dir.original || install_error "Unable to move old '$raspap_dir' out of the way"
|
||||||
fi
|
fi
|
||||||
|
sudo mkdir -p "$raspap_dir" || install_error "Unable to create directory '$raspap_dir'"
|
||||||
|
|
||||||
sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || install_error "Unable to change file ownership for '$raspap_dir'"
|
sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || install_error "Unable to change file ownership for '$raspap_dir'"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Fetches latest files from github to webroot
|
# Fetches latest files from github to webroot
|
||||||
function download_latest_files() {
|
function download_latest_files() {
|
||||||
if [ ! -d "$webroot_dir" ]; then
|
if [ -d "$webroot_dir" ]; then
|
||||||
install_error "Web root directory doesn't exist"
|
sudo mv $webroot_dir /tmp/old_webroot || install_error "Unable to remove old webroot directory"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_log "Cloning latest files from github"
|
install_log "Cloning latest files from github"
|
||||||
sudo git clone https://github.com/billz/raspap-webgui "$webroot_dir" || install_error "Unable to download files from github"
|
git clone https://github.com/billz/raspap-webgui /tmp/raspap-webgui || install_error "Unable to download files from github"
|
||||||
|
sudo mv /tmp/raspap-webgui $webroot_dir || install_error "Unable to move raspap-webgui to web root"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sets files ownership in web root directory
|
# Sets files ownership in web root directory
|
||||||
@ -102,6 +104,18 @@ function move_config_file() {
|
|||||||
sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || install_error "Unable to change file ownership for '$raspap_dir'"
|
sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || install_error "Unable to change file ownership for '$raspap_dir'"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Set up default configuration
|
||||||
|
function default_configuration() {
|
||||||
|
install_log "Setting up hostapd"
|
||||||
|
if [ -f /etc/default/hostapd ]; then
|
||||||
|
sudo mv /etc/default/hostapd /tmp/default_hostapd.old || install_error "Unable to remove old /etc/default/hostapd file"
|
||||||
|
fi
|
||||||
|
sudo mv $webroot_dir/config/default_hostapd /etc/default/hostapd || install_error "Unable to move hostapd defaults file"
|
||||||
|
sudo mv $webroot_dir/config/hostapd.conf /etc/hostapd/hostapd.conf || install_error "Unable to move hostapd configuration file"
|
||||||
|
sudo mv $webroot_dir/config/dnsmasq.conf /etc/dnsmasq.conf || install_error "Unable to move dnsmasq configuration file"
|
||||||
|
sudo mv $webroot_dir/config/dhcpcd.conf /etc/dhcpcd.conf || install_error "Unable to move dhcpcd configuration file"
|
||||||
|
}
|
||||||
|
|
||||||
# Add a single entry to the sudoers file
|
# Add a single entry to the sudoers file
|
||||||
function sudo_add() {
|
function sudo_add() {
|
||||||
sudo bash -c "echo \"www-data ALL=(ALL) NOPASSWD:$1\" | (EDITOR=\"tee -a\" visudo)" \
|
sudo bash -c "echo \"www-data ALL=(ALL) NOPASSWD:$1\" | (EDITOR=\"tee -a\" visudo)" \
|
||||||
@ -138,7 +152,7 @@ function install_complete() {
|
|||||||
echo "Installation aborted."
|
echo "Installation aborted."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
sudo shutdown -h now || install_error "Unable to execute shutdown"
|
sudo shutdown -r now || install_error "Unable to execute shutdown"
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_raspap() {
|
function install_raspap() {
|
||||||
@ -150,6 +164,7 @@ function install_raspap() {
|
|||||||
download_latest_files
|
download_latest_files
|
||||||
change_file_ownership
|
change_file_ownership
|
||||||
move_config_file
|
move_config_file
|
||||||
|
default_configuration
|
||||||
patch_system_files
|
patch_system_files
|
||||||
install_complete
|
install_complete
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ function update_system_packages() {
|
|||||||
|
|
||||||
function install_dependencies() {
|
function install_dependencies() {
|
||||||
install_log "Installing required packages"
|
install_log "Installing required packages"
|
||||||
sudo apt-get install lighttpd php5-cgi git || install_error "Unable to install dependencies"
|
sudo apt-get install lighttpd php5-cgi git hostapd dnsmasq || install_error "Unable to install dependencies"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_raspap
|
install_raspap
|
||||||
|
Loading…
Reference in New Issue
Block a user