diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a2fbbfc2..6c8e00f2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,43 +7,49 @@ assignees: '' --- -**Before submitting an issue** + + + -**Your environment** -* Raspberry Pi hardware (examples: Pi 3 Model B+, Pi Zero W) -* Raspbian version (examples: RPi OS Lite, Armbian) -* RaspAP version (reported by the Quick Installer) -* Followed the project prerequisites? (Y/N) -* Checked the project FAQ? (Y/N) -* RaspAP Quick Install or Manual setup? -* Using default configuration? (Y/N) -* Simultaneous AP and managed mode? (Y/N) -* Onboard wireless chipset or external adapter? -* Other software or services running with RaspAP? +## Checklist + +- [ ] This is a bug report +- [ ] I have searched this repository for existing issues +- [ ] I checked the FAQ and official documentation before creating this issue +- [ ] I have read and understand the issue reporting guidelines -**Steps to reproduce** -Tell us how to reproduce this issue. Provide as much detailed information as possible. +## Bug description + -**Expected behavior** -A clear and concise description of what you expected to happen. +## Your environment +1. Operating System: **ENTER HERE** +2. Hardware and version: +3. RaspAP version: +4. Followed the project prerequisites? +5. RaspAP Quick Install or Manual setup? +6. Using default configuration? +7. Simultaneous AP and managed mode? +8. Onboard wireless chipset or external adapter? +9. Other software or services running with RaspAP? -**Actual behavior** -Tell us what you observed instead. +## Steps to reproduce + -**Screenshots** -If applicable, add screenshots to help explain your problem. +## Screenshots + -**Additional context** -Add any other context about the problem here. +## Additional context + diff --git a/BACKERS.md b/BACKERS.md index cabd988b..fda9b737 100644 --- a/BACKERS.md +++ b/BACKERS.md @@ -21,7 +21,7 @@ When backers were asked which feature they'd most like to see added to RaspAP, t ✅ OpenVPN service logging ✅ Night mode toggle ✅ Restrict network to static clients -⚙️ WireGuard support (in progress) +✅ WireGuard support ⚙️ Traffic shaping (in progress) Look for the list above to grow as we add more exclusive features. @@ -34,7 +34,7 @@ Below is a list of funding targets. When a funding target is reached, the featur ✅ OpenVPN service logging ✅ Night mode toggle ✅ Restrict network to static clients -⚙️ WireGuard support (in progress) +✅ WireGuard support ⚙️ Traffic shaping (in progress) ### Frequently asked questions diff --git a/CNAME b/CNAME deleted file mode 100644 index 0949dd03..00000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -raspap.com \ No newline at end of file diff --git a/README.md b/README.md index df67af3e..ba9ff12d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://i.imgur.com/TCJKWT4.png) -[![Release 2.7.2](https://img.shields.io/badge/release-v2.7.2-green)](https://github.com/raspap/raspap-insiders/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Financial Contributors on Open Collective](https://opencollective.com/raspap/all/badge.svg?label=financial+contributors)](https://opencollective.com/raspap) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) +[![Release 2.7.2](https://img.shields.io/badge/release-v2.7.2-green)](https://github.com/raspap/raspap-insiders/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Insiders Edition](https://img.shields.io/static/v1?label=Insiders%20Edition&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) Welcome to **RaspAP Insiders**. You, the members of the Insiders community, support the sponsorware release model, which means that new features are first exclusively released to sponsors as part of Insiders. Read on for details about how this strategy works—and *thank you* for joining us on this journey. @@ -27,11 +27,12 @@ As part of the initial rollout of Insiders, all previous one-time backers of Ras ## Exclusive features The following features are currently available exclusively to sponsors. A tangible side benefit of sponsorship is that Insiders are able to help steer future development of RaspAP. This is done through your Insiders access to discussions, feature requests, issues and pull requests in the private GitHub repository. -✅ Manage OpenVPN client configs +✅ [Manage OpenVPN client configs](https://docs.raspap.com/openvpn/#multiple-client-configs) +✅ [OpenVPN certificate authentication](https://docs.raspap.com/openvpn/#certificate-authentication) ✅ OpenVPN service logging ✅ Night mode toggle ✅ Restrict network to static clients -✅ WireGuard support +✅ [WireGuard support](https://docs.raspap.com/wireguard/) ⚙️ Traffic shaping (in progress) Look for the list above to grow as we add more exlcusive features. Have an idea or suggestion for a future enhancement? Start or join an [Insiders discussion](https://github.com/RaspAP/raspap-insiders/discussions) and let us know! @@ -40,12 +41,7 @@ Look for the list above to grow as we add more exlcusive features. Have an idea Following is a list of funding targets. When a funding target is reached, the features that are tied to it are merged back into RaspAP and released to the public for general availability. ### $500 -✅ Manage OpenVPN client configs -✅ OpenVPN service logging -✅ Night mode toggle -✅ Restrict network to static clients -✅ WireGuard support -⚙️ Traffic shaping (in progress) +The first **Insiders Edition** includes the exclusive features listed above. ## Frequently asked questions diff --git a/ajax/networking/get_netcfg.php b/ajax/networking/get_netcfg.php index 2dd330bb..7e7b8fa7 100644 --- a/ajax/networking/get_netcfg.php +++ b/ajax/networking/get_netcfg.php @@ -45,12 +45,14 @@ if (isset($interface)) { preg_match('/static\srouters=(.*)/', $matched[0], $static_routers); preg_match('/static\sdomain_name_server=(.*)/', $matched[0], $static_dns); preg_match('/fallback\sstatic_'.$interface.'/', $matched[0], $fallback); + preg_match('/(?:no)?gateway/', $matched[0], $gateway); $dhcpdata['Metric'] = $metric[1]; $dhcpdata['StaticIP'] = strpos($static_ip[1],'/') ? substr($static_ip[1], 0, strpos($static_ip[1],'/')) : $static_ip[1]; $dhcpdata['SubnetMask'] = cidr2mask($static_ip[1]); $dhcpdata['StaticRouters'] = $static_routers[1]; $dhcpdata['StaticDNS'] = $static_dns[1]; $dhcpdata['FallbackEnabled'] = empty($fallback) ? false: true; + $dhcpdata['DefaultRoute'] = empty($gateway) || $gateway[0] == "gateway"; echo json_encode($dhcpdata); } diff --git a/ajax/openvpn/activate_ovpncfg.php b/ajax/openvpn/activate_ovpncfg.php index b8f822c2..2a8542a9 100644 --- a/ajax/openvpn/activate_ovpncfg.php +++ b/ajax/openvpn/activate_ovpncfg.php @@ -5,11 +5,11 @@ require_once '../../includes/functions.php'; if (isset($_POST['cfg_id'])) { $ovpncfg_id = $_POST['cfg_id']; - $ovpncfg_path = pathinfo(RASPI_OPENVPN_CLIENT_LOGIN, PATHINFO_DIRNAME).'/'; + $ovpncfg_path = pathinfo(RASPI_OPENVPN_CLIENT_CONFIG, PATHINFO_DIRNAME).'/'; $ovpncfg_files = $ovpncfg_path .$ovpncfg_id.'_*.conf'; // move currently active profile - $meta = file_get_meta(RASPI_OPENVPN_CLIENT_LOGIN,'#\sfilename\s(.*)'); + $meta = file_get_meta(RASPI_OPENVPN_CLIENT_CONFIG,'#\sfilename\s(.*)'); $ovpncfg_client = $ovpncfg_path .$meta.'_client.conf'; $ovpncfg_login = $ovpncfg_path .$meta.'_login.conf'; exec("sudo mv ".RASPI_OPENVPN_CLIENT_CONFIG." $ovpncfg_client", $return); diff --git a/app/css/custom.php b/app/css/custom.php index a4f98d72..273a9629 100644 --- a/app/css/custom.php +++ b/app/css/custom.php @@ -119,8 +119,14 @@ i.fa.fa-bars:hover{ } .info-item { - width: 10rem; - float: left; + text-transform: uppercase; + font-size: 0.7em; + color: #858796; +} + +.info-value { + font-size: 0.7rem; + margin-left: 0.7rem; } .info-item-xs { diff --git a/app/css/hackernews.css b/app/css/hackernews.css index f2c68cbf..6aef443b 100644 --- a/app/css/hackernews.css +++ b/app/css/hackernews.css @@ -150,8 +150,14 @@ ul.nav-tabs, .nav-tabs .nav-link { } .info-item { - width: 10rem; - float: left; + text-transform: uppercase; + font-size: 0.7em; + color: #858796; +} + +.info-value { + font-size: 0.7rem; + margin-left: 0.7rem; } .info-item-xs { diff --git a/app/css/lightsout.css b/app/css/lightsout.css index ce44a4cd..3e8e6e76 100644 --- a/app/css/lightsout.css +++ b/app/css/lightsout.css @@ -249,8 +249,14 @@ hr { } .info-item { - width: 12rem; - float: left; + text-transform: uppercase; + font-size: 0.7em; + color: #858796; +} + +.info-value { + font-size: 0.7rem; + margin-left: 0.7rem; } .info-item-xs { diff --git a/app/js/custom.js b/app/js/custom.js index f3627528..d5c1abe5 100644 --- a/app/js/custom.js +++ b/app/js/custom.js @@ -205,6 +205,7 @@ function loadInterfaceDHCPSelect() { $('#txtsubnetmask').val(jsonData.SubnetMask); $('#txtgateway').val(jsonData.StaticRouters); $('#chkfallback')[0].checked = jsonData.FallbackEnabled; + $('#default-route').prop('checked', jsonData.DefaultRoute); $('#txtrangestart').val(jsonData.RangeStart); $('#txtrangeend').val(jsonData.RangeEnd); $('#txtrangeleasetime').val(jsonData.leaseTime); @@ -300,6 +301,17 @@ $('#ovpn-confirm-activate').on('shown.bs.modal', function (e) { $('.btn-activate', this).data('recordId', data.recordId); }); +$('#ovpn-userpw,#ovpn-certs').on('click', function (e) { +// e.stopPropagation(); + if (this.id == 'ovpn-userpw') { + $('#PanelCerts').hide(); + $('#PanelUserPW').show(); + } else if (this.id == 'ovpn-certs') { + $('#PanelUserPW').hide(); + $('#PanelCerts').show(); + } +}); + // Add the following code if you want the name of the file appear on select $(".custom-file-input").on("change", function() { var fileName = $(this).val().split("\\").pop(); diff --git a/config/50-raspap-router.conf b/config/50-raspap-router.conf index c7634436..1c10d26f 100644 --- a/config/50-raspap-router.conf +++ b/config/50-raspap-router.conf @@ -3,7 +3,7 @@ server.modules += ( ) $HTTP["url"] =~ "^/REPLACE_ME/(?!(dist|app|ajax|config)).*" { - url.rewrite-once = ( "^/REPLACE_ME/(.*?)(\?.+)?$"=>"/REPLACE_ME/index.php/$1?$2" ) + url.rewrite-once = ( "^/REPLACE_ME/(.*?)(\?.+)?$"=>"/REPLACE_ME/index.php/$1$2" ) server.error-handler-404 = "/REPLACE_ME/index.php" } diff --git a/includes/dhcp.php b/includes/dhcp.php index d4f981ed..bf109da2 100755 --- a/includes/dhcp.php +++ b/includes/dhcp.php @@ -247,6 +247,7 @@ function updateDHCPConfig($iface,$status) $cfg[] = 'profile static_'.$iface; $cfg[] = 'fallback static_'.$iface; } + $cfg[] = $_POST['DefaultRoute'] == '1' ? 'gateway' : 'nogateway'; $dhcp_cfg = file_get_contents(RASPI_DHCPCD_CONFIG); if (!preg_match('/^interface\s'.$iface.'$/m', $dhcp_cfg)) { $cfg[] = PHP_EOL; diff --git a/includes/hostapd.php b/includes/hostapd.php index 43e04bd1..e364dd15 100755 --- a/includes/hostapd.php +++ b/includes/hostapd.php @@ -27,6 +27,8 @@ function DisplayHostAPDConfig() $arrEncType = array('TKIP' => 'TKIP', 'CCMP' => 'CCMP', 'TKIP CCMP' => 'TKIP+CCMP'); $managedModeEnabled = false; exec("ip -o link show | awk -F': ' '{print $2}'", $interfaces); + sort($interfaces); + exec("iw reg get | awk '/country / { sub(/:/,\"\",$2); print $2 }'", $country_code); if (!RASPI_MONITOR_ENABLED) { diff --git a/includes/openvpn.php b/includes/openvpn.php index 810746a2..c5b00d1c 100755 --- a/includes/openvpn.php +++ b/includes/openvpn.php @@ -53,7 +53,7 @@ function DisplayOpenVPNConfig() $authUser = current($auth); $authPassword = next($auth); } - $clients = preg_grep('~\login.(conf)$~', scandir(pathinfo(RASPI_OPENVPN_CLIENT_LOGIN, PATHINFO_DIRNAME))); + $clients = preg_grep('/client.(conf)$/', scandir(pathinfo(RASPI_OPENVPN_CLIENT_CONFIG, PATHINFO_DIRNAME))); $logEnable = 0; if (!empty($_POST) && !isset($_POST['log-openvpn'])) { diff --git a/installers/common.sh b/installers/common.sh index f30ac6fa..72566447 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -25,6 +25,7 @@ readonly raspap_wlan0="/etc/dnsmasq.d/090_wlan0.conf" readonly raspap_adblock="/etc/dnsmasq.d/090_adblock.conf" readonly raspap_sysctl="/etc/sysctl.d/90_raspap.conf" readonly raspap_network="$raspap_dir/networking/" +readonly raspap_router="/etc/lighttpd/conf-available/50-raspap-router.conf" readonly rulesv4="/etc/iptables/rules.v4" readonly notracking_url="https://raw.githubusercontent.com/notracking/hosts-blocklists/master/" webroot_dir="/var/www/html" @@ -239,20 +240,25 @@ function _install_lighttpd_configs() { 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 + # Compare values and get difference HTROOT=${webroot_dir/$LTROOT} - # remove trailing slash if present + # Remove trailing slash if present HTROOT=$(echo "$HTROOT" | sed -e 's/\/$//') - # substitute values + # Substitute values awk "{gsub(\"/REPLACE_ME\",\"$HTROOT\")}1" $CONFSRC > /tmp/50-raspap-router.conf - # copy into place + # 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 + # Link into conf-enabled echo "Creating link to /etc/lighttpd/conf-enabled" + if ! [ -L $raspap_router ]; then + echo "Existing 50-raspap-router.conf found. Unlinking." + sudo unlink "/etc/lighttpd/conf-enabled/50-raspap-router.conf" + fi + echo "Linking 50-raspap-router.conf 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 @@ -363,18 +369,10 @@ function _prompt_install_wireguard() { # Install Wireguard from the Debian unstable distro function _install_wireguard() { _install_log "Configure WireGuard support" - if [ "$OS" == "Raspbian" ]; then - echo "Installing raspberrypi-kernel-headers" - sudo apt-get install $apt_option raspberrypi-kernel-headers || _install_status 1 "Unable to install raspberrypi-kernel-headers" + if [ "$OS" == "Debian" ]; then + echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list || _install_status 1 "Unable to add Debian backports repo" fi - echo "Installing WireGuard from Debian unstable distro" - echo "Adding Debian distro" - echo "deb http://deb.debian.org/debian/ unstable main" | sudo tee --append /etc/apt/sources.list.d/unstable.list || _install_status 1 "Unable to append to sources.list" - sudo apt-get install dirmngr || _install_status 1 "Unable to install dirmngr" - echo "Adding Debian distro keys" - sudo wget -q -O - https://ftp-master.debian.org/keys/archive-key-$(lsb_release -sr).asc | sudo apt-key add - || _install_status 1 "Unable to add keys" - printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' | sudo tee --append /etc/apt/preferences.d/limit-unstable || _install_status 1 "Unable to append to preferences.d" - echo "Installing WireGuard" + echo "Installing wireguard from apt" sudo apt-get update && sudo apt-get install $apt_option wireguard || _install_status 1 "Unable to install wireguard" echo "Enabling wg-quick@wg0" sudo systemctl enable wg-quick@wg0 || _install_status 1 "Failed to enable wg-quick service" @@ -659,9 +657,10 @@ function _optimize_php() { function _install_complete() { _install_log "Installation completed" - echo "Join RaspAP Insiders for access to exclusive features:" + echo "Join RaspAP Insiders for early access to exclusive features!" echo -e "${ANSI_RASPBERRY}" - echo "> https://github.com/sponsors/RaspAP" + echo "> https://docs.raspap.com/insiders/" + echo "> https://github.com/sponsors/RaspAP/" echo -e "${ANSI_RESET}" if [ "$assume_yes" == 0 ]; then # Prompt to reboot if wired ethernet (eth0) is connected. diff --git a/installers/raspbian.sh b/installers/raspbian.sh index 52878c85..d8496672 100755 --- a/installers/raspbian.sh +++ b/installers/raspbian.sh @@ -187,7 +187,8 @@ function _display_welcome() { function _get_release() { readonly RASPAP_LATEST=$(curl -s "https://api.github.com/repos/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")' ) if [ "$insiders" == 1 ]; then - readonly RASPAP_INSIDERS_LATEST=$(curl -s "https://install.raspap.com/repos/RaspAP/raspap-insiders/releases/latest/" | grep -Po '"tag_name": "\K.*?(?=")' ) + repo="RaspAP/raspap-insiders" + readonly RASPAP_INSIDERS_LATEST=$(curl -s "https://api.raspap.com/repos/RaspAP/raspap-insiders/releases/latest/" | grep -Po '"tag_name": "\K.*?(?=")' ) readonly RASPAP_RELEASE="${RASPAP_INSIDERS_LATEST} Insiders" else readonly RASPAP_RELEASE="${RASPAP_LATEST}" diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index d9fec98a..1a789dd4 100644 Binary files a/locale/en_US/LC_MESSAGES/messages.mo and b/locale/en_US/LC_MESSAGES/messages.mo differ diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 74627378..839bed68 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -380,6 +380,9 @@ msgstr "Clients with a particular hardware MAC address can always be allocated t msgid "This option adds dhcp-host entries to the dnsmasq configuration." msgstr "This option adds dhcp-host entries to the dnsmasq configuration." +msgid "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." +msgstr "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." + #: includes/hostapd.php msgid "Basic" msgstr "Basic" @@ -725,6 +728,36 @@ msgstr "Cancel" msgid "Enable this option to log openvpn activity." msgstr "Enable this option to log openvpn activity." +msgid "Authentification Method" +msgstr "Authentification Method" + +msgid "Username and password" +msgstr "Username and password" + +msgid "Certificates" +msgstr "Certificates" + +msgid "Enter username and password" +msgstr "Enter username and password" + +msgid "Certificates in the configuration file" +msgstr "Certificates in the configuration file" + +msgid "RaspAP supports certificates by including them in the configuration file." +msgstr "RaspAP supports certificates by including them in the configuration file." + +msgid "Signing certification authority (CA) certificate (e.g. ca.crt): enclosed in <ca> ... </ca> tags." +msgstr "Signing certification authority (CA) certificate (e.g. ca.crt): enclosed in <ca> ... </ca> tags." + +msgid "Client certificate (public key) (e.g. client.crt): enclosed in <cert> ... </cert> tags." +msgstr "Client certificate (public key) (e.g. client.crt): enclosed in <cert> ... </cert> tags." + +msgid "Private key of the client certificate (e.g. client.key): enclosed in <key> ... </key> tags." +msgstr "Private key of the client certificate (e.g. client.key): enclosed in <key> ... </key> tags." + +msgid "Configuration File" +msgstr "Configuration File" + #: includes/torproxy.php msgid "TOR is not running" msgstr "TOR is not running" diff --git a/templates/dashboard.php b/templates/dashboard.php index 0b3b90c2..abac1fa8 100755 --- a/templates/dashboard.php +++ b/templates/dashboard.php @@ -20,7 +20,7 @@
-

+

@@ -32,45 +32,85 @@
-

-
-
+

+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
-
-
-
-
'.$gw.""; ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
'.$gw.""; ?>
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
+
-

+

diff --git a/templates/dhcp/general.php b/templates/dhcp/general.php index 49758696..83bc3504 100644 --- a/templates/dhcp/general.php +++ b/templates/dhcp/general.php @@ -55,6 +55,18 @@ +
+
+
+ + +
+

+ gateway/nogateway option for this interface in the DHCPCD configuration.") ?> +

+
+
+
DHCP options
diff --git a/templates/hostapd/advanced.php b/templates/hostapd/advanced.php index d0559cfe..f7c9ee93 100644 --- a/templates/hostapd/advanced.php +++ b/templates/hostapd/advanced.php @@ -233,7 +233,7 @@ - + @@ -281,7 +281,7 @@ - + diff --git a/templates/openvpn.php b/templates/openvpn.php index 4f76d6ec..4e0adaba 100755 --- a/templates/openvpn.php +++ b/templates/openvpn.php @@ -45,8 +45,7 @@
- -
+ diff --git a/templates/openvpn/configs.php b/templates/openvpn/configs.php index 6f8056fd..dc624c63 100644 --- a/templates/openvpn/configs.php +++ b/templates/openvpn/configs.php @@ -8,11 +8,11 @@

diff --git a/templates/openvpn/general.php b/templates/openvpn/general.php index f8f2052c..39573ce6 100644 --- a/templates/openvpn/general.php +++ b/templates/openvpn/general.php @@ -1,36 +1,71 @@

-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
- - -
+
+
+ +
-
-
- - -
+
+ +
-
-
-
- - -
-
-
-
-
- +
+
+
+
+
+
+
+
+ + +
+
+ + +
+
+
+
+
+
+
+
+

+

    + +
  • ca.crt): enclosed in <ca> ... </ca> tags."); ?>
  • +
  • client.crt): enclosed in <cert> ... </cert> tags."); ?>
  • +
  • client.key): enclosed in <key> ... </key> tags."); ?>
  • +
    +
+

+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
diff --git a/yarn.lock b/yarn.lock index b225fa08..fc411a7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4712,9 +4712,9 @@ xtend@~4.0.0, xtend@~4.0.1: integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== y18n@^4.0.0: version "4.0.0"