diff --git a/BACKERS.md b/BACKERS.md index 6c51208d..8ea2c184 100644 --- a/BACKERS.md +++ b/BACKERS.md @@ -19,6 +19,8 @@ When backers were asked which feature they'd most like to see added to RaspAP, t ✅ Multiple OpenVPN client configs ✅ OpenVPN service logging +✅ Night mode toggle +✅ Restrict network to static clients ⚙️ Traffic shaping (in progress) Look for the list above to grow as we add more exclusive features. @@ -29,6 +31,8 @@ Below is a list of funding targets. When a funding target is reached, the featur #### $500 ✅ Multiple OpenVPN client configs ✅ OpenVPN service logging +✅ Night mode toggle +✅ Restrict network to static clients ⚙️ Traffic shaping (in progress) ### Frequently asked questions diff --git a/config/50-raspap-router.conf b/config/50-raspap-router.conf index 31ac6b1a..c7634436 100644 --- a/config/50-raspap-router.conf +++ b/config/50-raspap-router.conf @@ -2,8 +2,8 @@ server.modules += ( "mod_rewrite", ) -$HTTP["url"] =~ "^/(?!(dist|app|ajax|config)).*" { - url.rewrite-once = ( - "^/[^\?]*(\?.*)?" => "/index.php$1" - ) +$HTTP["url"] =~ "^/REPLACE_ME/(?!(dist|app|ajax|config)).*" { + url.rewrite-once = ( "^/REPLACE_ME/(.*?)(\?.+)?$"=>"/REPLACE_ME/index.php/$1?$2" ) + server.error-handler-404 = "/REPLACE_ME/index.php" } + diff --git a/index.php b/index.php index 026fde00..a132db68 100755 --- a/index.php +++ b/index.php @@ -49,7 +49,7 @@ require_once 'includes/torproxy.php'; $config = getConfig(); $output = $return = 0; -$page = $_SERVER['REQUEST_URI']; +$page = $_SERVER['PATH_INFO']; $theme_url = getThemeOpt(); $toggleState = getSidebarState(); diff --git a/installers/common.sh b/installers/common.sh index fc7fea58..6acb021f 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -208,14 +208,30 @@ function _install_lighttpd_configs() { # Copy config files echo "Copying 50-raspap-router.conf to /etc/lighttpd/conf-available" - sudo cp "$webroot_dir/config/50-raspap-router.conf" "/etc/lighttpd/conf-available" || _install_status 1 "Unable to copy lighttpd config file." + + CONFSRC="$webroot_dir/config/50-raspap-router.conf" + LTROOT=$(grep "server.document-root" /etc/lighttpd/lighttpd.conf | awk -F '=' '{print $2}' | tr -d " \"") + + # compare values and get difference + HTROOT=${webroot_dir/$LTROOT} + + # remove trailing slash if present + HTROOT=$(echo "$HTROOT" | sed -e 's/\/$//') + + # substitute values + awk "{gsub(\"/REPLACE_ME\",\"$HTROOT\")}1" $CONFSRC > /tmp/50-raspap-router.conf + + # copy into place + sudo cp /tmp/50-raspap-router.conf /etc/lighttpd/conf-available/ || _install_status 1 "Unable to copy lighttpd config file into place." + # link into conf-enabled - echo "Creating link to /etc/lighttpd/conf-enabled"|| _install_status 1 "Unable to copy lighttpd config file." - sudo ln -s "/etc/lighttpd/conf-available/50-raspap-router.conf" "/etc/lighttpd/conf-enabled/50-raspap-router.conf" || _install_status 1 "Unable to symlink lighttpd config file." + echo "Creating link to /etc/lighttpd/conf-enabled" + sudo ln -s "/etc/lighttpd/conf-available/50-raspap-router.conf" "/etc/lighttpd/conf-enabled/50-raspap-router.conf" || _install_status 1 "Unable to symlink lighttpd config file (this is normal if the link already exists)." sudo systemctl restart lighttpd.service || _install_status 1 "Unable to restart lighttpd" _install_status 0 } + # Prompt to install ad blocking function _prompt_install_adblock() { _install_log "Configure ad blocking (Beta)" diff --git a/installers/raspbian.sh b/installers/raspbian.sh index 4b8011fd..469fff7f 100755 --- a/installers/raspbian.sh +++ b/installers/raspbian.sh @@ -17,9 +17,10 @@ # -a, --adblock Used with -y, --yes, sets Adblock install option (0=no install) # -r, --repo, --repository Overrides the default GitHub repo (raspap/raspap-webgui) # -b, --branch Overrides the default git branch (master) -# -h, --help Outputs usage notes and exits # -u, --upgrade Upgrades an existing installation to the latest release version +# -i, --insiders Installs from the Insiders Edition (raspap/raspap-insiders) # -v, --version Outputs release info and exits +# -h, --help Outputs usage notes and exits # # Depending on options passed to the installer, ONE of the following # additional shell scripts will be downloaded and sourced: @@ -81,6 +82,9 @@ function _parse_params() { -u|--upgrade) upgrade=1 ;; + -i|--insiders) + repo="raspap/raspap-insiders" + ;; -v|--version) _version ;; @@ -126,6 +130,7 @@ OPTIONS: -r, --repo, --repository Overrides the default GitHub repo (raspap/raspap-webgui) -b, --branch Overrides the default git branch (latest release) -u, --upgrade Upgrades an existing installation to the latest release version +-i, --insiders Installs from the Insiders Edition (raspap/raspap-insiders) -v, --version Outputs release info and exits -h, --help Outputs usage notes and exits @@ -139,13 +144,16 @@ Examples: Invoke installer remotely, run non-interactively with option flags: curl -sL https://install.raspap.com | bash -s -- --yes --openvpn 1 --adblock 0 + Invoke remotely, uprgrade an existing install to the Insiders Edition: + curl -sL https://install.raspap.com | bash -s -- --upgrade --insiders + EOF exit } function _version() { _get_release - echo -e "RaspAP v${RASPAP_LATEST} - Simple AP setup & WiFi management for Debian-based devices" + echo -e "RaspAP v${RASPAP_LATEST} - Simple wireless AP setup & management for Debian-based devices" exit } @@ -166,7 +174,12 @@ function _display_welcome() { # Fetch latest release from GitHub API function _get_release() { - readonly RASPAP_LATEST=$(curl -s "https://api.github.com/repos/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")' ) + if [ "$repo" == "raspap/raspap-insiders" ]; then + readonly RASPAP_LATEST="Insiders" + branch="master" + else + readonly RASPAP_LATEST=$(curl -s "https://api.github.com/repos/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")' ) + fi } # Outputs a RaspAP Install log line