Merge branch 'RaspAP:master' into master

This commit is contained in:
SmartMarmot - Andrea Dalle Vacche 2022-08-21 10:13:53 +02:00 committed by GitHub
commit c3f06e4bbe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 1090 additions and 162 deletions

View File

@ -11,10 +11,12 @@ assignees: ''
<!-- <!--
Thanks for reporting a bug for RaspAP. Thanks for reporting a bug for RaspAP.
Before creating a new bug report, all submitters MUST read the issue reporting guidelines: Important: If you are NOT using a clean installation of a compatible OS, start with a fresh SD card, install RaspAP and replicate your bug BEFORE reporting an issue.
All submitters MUST read the issue policy and reporting guidelines:
https://docs.raspap.com/issues/ https://docs.raspap.com/issues/
Refer to the frequently asked questions (FAQ) and official documentation here: Refer to the frequently asked questions (FAQ) and official documentation:
https://docs.raspap.com/faq/ https://docs.raspap.com/faq/
Do you have a question or want to suggest a new feature? Start a Discussion here: Do you have a question or want to suggest a new feature? Start a Discussion here:
@ -27,6 +29,8 @@ Be sure there are no issues similar to yours that are already open. You can chec
## Checklist ## Checklist
<!-- IMPORTANT! Fill in the boxes that apply by marking them like so: [x] --> <!-- IMPORTANT! Fill in the boxes that apply by marking them like so: [x] -->
- [ ] This is a bug report - [ ] This is a bug report
- [ ] I observed this bug on a clean install of the OS
- [ ] I have followed the project prerequisites
- [ ] I have searched this repository for existing issues - [ ] I have searched this repository for existing issues
- [ ] I checked the FAQ and official documentation before creating this issue - [ ] I checked the FAQ and official documentation before creating this issue
- [ ] I have read and understand the issue reporting guidelines - [ ] I have read and understand the issue reporting guidelines
@ -38,7 +42,7 @@ Be sure there are no issues similar to yours that are already open. You can chec
1. Operating System: **ENTER HERE** <!-- RPi OS 32-bit Lite, Armbian, Debian, etc. --> 1. Operating System: **ENTER HERE** <!-- RPi OS 32-bit Lite, Armbian, Debian, etc. -->
2. Hardware and version: <!-- RPi Zero/3B+/4, OrangePi 3, etc. --> 2. Hardware and version: <!-- RPi Zero/3B+/4, OrangePi 3, etc. -->
3. RaspAP version: <!-- reported by the Quick Installer or About page --> 3. RaspAP version: <!-- reported by the Quick Installer or About page -->
4. Followed the project prerequisites? <!-- Yes/No --> 4. Clean install of a compatible operating system? <!-- Yes/No -->
5. RaspAP Quick Install or Manual setup? <!-- Quick Install/Manual --> 5. RaspAP Quick Install or Manual setup? <!-- Quick Install/Manual -->
6. Using default configuration? <!-- Yes/No --> 6. Using default configuration? <!-- Yes/No -->
7. Simultaneous AP and managed mode? <!-- Yes/No --> 7. Simultaneous AP and managed mode? <!-- Yes/No -->

View File

@ -1,27 +1,26 @@
## Insiders <img width="465" alt="Insiders logo" src="https://user-images.githubusercontent.com/229399/115766971-e19e1900-a3a8-11eb-8c6f-379deb4313d2.png">
Development of RaspAP is made possible thanks to a sponsorware release model. This means that new features are first exclusively released to sponsors as part of [**Insiders**](https://github.com/sponsors/RaspAP). Read on to learn how sponsorship works, and how easy it is to get access to Insiders. Development of RaspAP is made possible thanks to a sponsorware release model. This means that new features are first exclusively released to sponsors as part of **Insiders**. Read on to learn how sponsorship works, and how easy it is to get access to Insiders.
<img width="461" alt="Untitled" src="app/img/insiders.png"> ## How sponsorship works
### How sponsorship works
New features first land in **Insiders**, which means that *sponsors will have access to them immediately*. Every feature is tied to a funding goal in monthly subscriptions. When a funding goal is hit, the features that are tied to it are merged back into the [public RaspAP repository](https://github.com/RaspAP/raspap-webgui) and released for general availability. Bugfixes and minor enhancements are always released simultaneously in both editions. New features first land in **Insiders**, which means that *sponsors will have access to them immediately*. Every feature is tied to a funding goal in monthly subscriptions. When a funding goal is hit, the features that are tied to it are merged back into the [public RaspAP repository](https://github.com/RaspAP/raspap-webgui) and released for general availability. Bugfixes and minor enhancements are always released simultaneously in both editions.
Don't want to sponsor? No problem, RaspAP already has tons of features available, so chances are that most of your requirements are already satisfied. See the list of exclusive features to learn which features are currently only available to sponsors. Don't want to sponsor? No problem, RaspAP already has tons of features available, so chances are that most of your requirements are already satisfied. See the list of **exclusive features** to learn which features are currently only available to sponsors.
### How to become a sponsor ## How to become a sponsor
You can [become a sponsor](https://github.com/sponsors/RaspAP) using your individual or organization's GitHub account. Just pick any tier from $10/month and complete the checkout. Then, after a few hours, you will be added as a team member to the super-secret private GitHub repository containing the Insiders edition, which has all exclusive features. In addition, you get access to Insiders-only team discussions and content. You can become a sponsor using your individual or organization's GitHub account. Just pick any tier from $10/month and complete the checkout. Then, after a few hours, you will be added as a team member to the super-secret private GitHub repository containing the Insiders edition, which has all exclusive features. In addition, you get access to Insiders-only team discussions and content.
> **Important**: If you're sponsoring [RaspAP](https://github.com/RaspAP/sponsors) through a GitHub organization, please send a short email to [sponsors@raspap.com](mailto:sponsors@raspap.com) with the name of your organization and the account that should be added as a collaborator. > :information_source: **Important**: If you're sponsoring [RaspAP](https://github.com/RaspAP/sponsors) through a GitHub organization, please send a short email to [sponsors@raspap.com](mailto:sponsors@raspap.com) with the name of your organization and the account that should be added as a collaborator.
### Exclusive features ## 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 Insiders' access to discussions, feature requests, issues and pull requests in the private GitHub repository. 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 Insiders' access to discussions, feature requests, issues and pull requests in the private GitHub repository.
✅ [Network device management](https://docs.raspap.com/net-devices/) ✅ [Network device management](https://docs.raspap.com/net-devices/)
✅ [Firewall settings](https://docs.raspap.com/firewall/) ✅ [Firewall settings](https://docs.raspap.com/firewall/)
✅ [WPA3-Personal AP security](https://docs.raspap.com/ap-basics/#wpa3-personal) ✅ [WPA3-Personal AP security](https://docs.raspap.com/ap-basics/#wpa3-personal)
✅ [802.11w Protected Management Frames](https://docs.raspap.com/ap-basics/#80211w) ✅ [802.11w Protected Management Frames](https://docs.raspap.com/ap-basics/#80211w)
✅ [Printable Wi-Fi signs](https://docs.raspap.com/ap-basics/#printable-signs) ✅ [Printable Wi-Fi signs](https://docs.raspap.com/ap-basics/#printable-signs)
✅ [Drag & drop dashboard widgets](https://docs.raspap.com/ap-basics/#drag-drop-widgets)
⚙️ Traffic shaping (in progress) ⚙️ Traffic shaping (in progress)
Look for the list above to grow as we add more exclusive features. Be sure to visit this page from time to time to learn about what's new, check the [Insiders docs page](https://docs.raspap.com/insiders/) and follow [@RaspAP on Twitter](https://twitter.com/rasp_ap) to stay updated. Look for the list above to grow as we add more exclusive features. Be sure to visit this page from time to time to learn about what's new, check the [Insiders docs page](https://docs.raspap.com/insiders/) and follow [@RaspAP on Twitter](https://twitter.com/rasp_ap) to stay updated.
@ -35,43 +34,15 @@ The second **Insiders Edition** includes the features listed above.
### $500 ### $500
The [first Insiders Edition goal](https://docs.raspap.com/insiders/#500-1st-insiders-edition) was reached in December 2021. Thank you sponsors! The [first Insiders Edition goal](https://docs.raspap.com/insiders/#500-1st-insiders-edition) was reached in December 2021. Thank you sponsors!
### Frequently asked questions ## Quarterly giving
Beginning in 2022, each quarter 15% of all proceeds from Insiders will be donated directly to the [Raspberry Pi Foundation](https://www.raspberrypi.org/). The Raspberry Pi Foundation is a UK-based charity that works to put the power of computing and digital making into the hands of people all over the world.
#### How do I install Insiders? [![Get involved with the Raspberry Pi Foundation](https://img.youtube.com/vi/dEzg92g1LHw/0.jpg)](https://www.youtube.com/watch?v=dEzg92g1LHw)
*How do I install Insiders?*
Invoke the [Quick Installer](https://docs.raspap.com/quick/) with the `--insiders` switch, like so: When you become an Insider, not only do you support development of RaspAP but you also help inspire young people by harnessing the power of computing to solve problems and express themselves creatively.
``` ## Frequently asked questions
curl -sL https://install.raspap.com | bash -s -- --insiders We've covered all you need to know [here](https://docs.raspap.com/insiders/#frequently-asked-questions).
```
This will automatically pull from the private Insiders repo during the installation process. ### Terms
See our [official project documentation](https://docs.raspap.com/insiders/#terms).
#### Upgrading
*I have an existing RaspAP installation. How do I upgrade to Insiders?*
Upgrading is easy. Invoke the [Quick Installer](https://docs.raspap.com/quick/) with the `--upgrade` switch, specifying the private Insiders edition, like so:
```
curl -sL https://install.raspap.com | bash -s -- --upgrade --insiders
```
If you haven't [added SSH keys to your GitHub account](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) you will be prompted to authenticate. If so, just enter your GitHub credentials during the install:
```
RaspAP Install: Cloning latest files from github
Cloning into '/tmp/raspap-webgui'...
Username for 'https://github.com': octocat
Password for 'https://octocat@github.com':
```
> **Note**: your password is sent securely via SSH to GitHub. The above prompt is actually from GitHub, so the installer does _not_ know your credentials.
#### Terms
*We're using RaspAP for a commercial project. Can we use Insiders under the same terms and conditions?*
Yes. Whether you're an individual or a company, you may use RaspAP Insiders precisely under the same terms as RaspAP, which are defined by the GNU GPL 3.0 license. However, we kindly ask you to respect the following guidelines:
* Please **don't distribute the source code** of Insiders. You may freely use it for public, private or commercial projects, fork it, mirror it, do whatever you want with it, but please don't release the source code, as it would counteract the sponsorware strategy.
* If you cancel your subscription, you're removed as a collaborator and will miss out on future updates of Insiders. However, you may *use the latest version* that's available to you as long as you like. Just remember that [GitHub deletes private forks](https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/removing-a-collaborator-from-a-personal-repository).

View File

@ -1,5 +1,5 @@
![](https://i.imgur.com/xeKD93p.png) ![](https://i.imgur.com/xeKD93p.png)
[![Release 2.8.4](https://img.shields.io/badge/release-v2.8.4-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&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/) [![Release 2.8.5](https://img.shields.io/badge/release-v2.8.5-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&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/)
RaspAP is feature-rich wireless router software that _just works_ on many popular [Debian-based devices](#supported-operating-systems), including the Raspberry Pi. Our popular [Quick installer](#quick-installer) creates a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, [SSL certificates](https://docs.raspap.com/ssl-quick/), security audits, [captive portal integration](https://docs.raspap.com/captive/), themes and [multilingual options](https://docs.raspap.com/translations/) are included. RaspAP is feature-rich wireless router software that _just works_ on many popular [Debian-based devices](#supported-operating-systems), including the Raspberry Pi. Our popular [Quick installer](#quick-installer) creates a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, [SSL certificates](https://docs.raspap.com/ssl-quick/), security audits, [captive portal integration](https://docs.raspap.com/captive/), themes and [multilingual options](https://docs.raspap.com/translations/) are included.
@ -123,6 +123,7 @@ RaspAP was originally made for Raspbian, but now also installs on the following
| Distribution | Release | Architecture | Support | | Distribution | Release | Architecture | Support |
|---|:---:|:---:|:---:| |---|:---:|:---:|:---:|
| Raspberry Pi OS | (32-bit) Lite Bullseye | ARM | Official | | Raspberry Pi OS | (32-bit) Lite Bullseye | ARM | Official |
| Raspberry Pi OS | (64-bit) Lite Bullseye | ARM | Official |
| Armbian | Bullseye | [ARM](https://docs.armbian.com/#supported-socs) | Official | | Armbian | Bullseye | [ARM](https://docs.armbian.com/#supported-socs) | Official |
| Debian | Bullseye | ARM / x86_64 | Beta | | Debian | Bullseye | ARM / x86_64 | Beta |
| Ubuntu | 18.04 LTS / 19.10 | ARM / x86_64 | Beta | | Ubuntu | 18.04 LTS / 19.10 | ARM / x86_64 | Beta |

View File

@ -49,6 +49,7 @@ if ($timeunits === 'm') {
} }
$datasizeunits = filter_input(INPUT_GET, 'dsu'); $datasizeunits = filter_input(INPUT_GET, 'dsu');
$dsu_factor = $datasizeunits == "mb" ? 1024 * 1024 : 1024;
header('X-Content-Type-Options: nosniff'); header('X-Content-Type-Options: nosniff');
header('Content-Type: application/json'); header('Content-Type: application/json');
echo '[ '; echo '[ ';
@ -73,13 +74,8 @@ for ($i = count($jsonData) - 1; $i >= 0; --$i) {
echo ','; echo ',';
} }
if ($datasizeunits == 'mb') { $datasend = round($jsonData[$i]['tx'] / $dsu_factor, 0);
$datasend = round($jsonData[$i]['tx'] / 1024, 0); $datareceived = round($jsonData[$i]['rx'] / $dsu_factor, 0);
$datareceived = round($jsonData[$i]['rx'] / 1024, 0);
} else {
$datasend = $jsonData[$i]['rx'];
$datareceived = $jsonData[$i]['rx'];
}
if ($timeunits === 'm') { if ($timeunits === 'm') {
echo '{ "date": "' , $dt->format('Y-m') , '", "rx": "' , $datareceived , echo '{ "date": "' , $dt->format('Y-m') , '", "rx": "' , $datareceived ,

View File

@ -39,11 +39,14 @@ if (filter_input(INPUT_GET, 'tu') == 'h') {
exit('vnstat error'); exit('vnstat error');
} }
$datasizeunits = filter_input(INPUT_GET, 'dsu');
$dsu_factor = $datasizeunits == "mb" ? 1024 * 1024 : 1024;
$jsonobj = json_decode($jsonstdoutvnstat[0], true)['interfaces'][0]; $jsonobj = json_decode($jsonstdoutvnstat[0], true)['interfaces'][0];
$jsonData = $jsonobj['traffic']['hour']; $jsonData = $jsonobj['traffic']['hour'];
for ($i = count($jsonData) - 1; $i >= 0; --$i) { for ($i = count($jsonData) - 1; $i >= 0 && $i >= count($jsonData)-25; --$i) {
$data_template[$jsonData[$i]['time']['hour']]['rx'] = round($jsonData[$i]['rx'] / 1024, 0); $data_template[$jsonData[$i]['time']['hour']]['rx'] = round($jsonData[$i]['rx'] / $dsu_factor, 0);
$data_template[$jsonData[$i]['time']['hour']]['tx'] = round($jsonData[$i]['tx'] / 1024, 0); $data_template[$jsonData[$i]['time']['hour']]['tx'] = round($jsonData[$i]['tx'] / $dsu_factor, 0);
} }
$data = array(); $data = array();

View File

@ -11,7 +11,7 @@ var hueb = new Huebee( elem, {
// Set custom color if defined // Set custom color if defined
var color = getCookie('color'); var color = getCookie('color');
if (color == null || color == '') { if (color == null || color == '') {
color = '#d8224c'; color = '#2b8080';
} }
hueb.setColor(color); hueb.setColor(color);

View File

@ -42,7 +42,7 @@ class Sysinfo
public function usedMemory() public function usedMemory()
{ {
$used = shell_exec("free -m | awk '/Mem:/ { total=$2 ; used=$3 } END { print used/total*100}'"); $used = shell_exec("free -m | awk 'NR==2{ total=$2 ; used=$3 } END { print used/total*100}'");
return floor($used); return floor($used);
} }
@ -75,5 +75,16 @@ class Sysinfo
return $status; return $status;
} }
public function operatingSystem()
{
$os_desc = shell_exec("lsb_release -sd");
return $os_desc;
}
public function kernelVersion()
{
$kernel = shell_exec("uname -r");
return $kernel;
}
} }

View File

@ -11,7 +11,7 @@ wpa_passphrase=ChangeMe
interface=wlan0 interface=wlan0
wpa=2 wpa=2
wpa_pairwise=CCMP wpa_pairwise=CCMP
country_code= country_code=GB
## Rapberry Pi 3 specific to on board WLAN/WiFi ## Rapberry Pi 3 specific to on board WLAN/WiFi
#ieee80211n=1 # 802.11n support (Raspberry Pi 3) #ieee80211n=1 # 802.11n support (Raspberry Pi 3)
#wmm_enabled=1 # QoS support (Raspberry Pi 3) #wmm_enabled=1 # QoS support (Raspberry Pi 3)

View File

@ -0,0 +1,11 @@
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
dhcp4: yes
interfaces:
- eth0

View File

@ -48,7 +48,7 @@ span.ra-wireguard:before {
.ra-raspap:before { .ra-raspap:before {
font-size: 4.35rem; font-size: 4.35rem;
content: "\e901"; content: "\e901";
color: #d8224c; color: #2b8080;
margin-left: 0.1em; margin-left: 0.1em;
} }

View File

@ -78,8 +78,8 @@ function DisplayAdBlockConfig()
$adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt'); $adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt');
$adblock_log = ''; $adblock_log = '';
exec('sudo chmod o+r '. RASPI_DHCPCD_LOG); exec('sudo chmod o+r '.RASPI_DHCPCD_LOG);
$handle = fopen("/tmp/dnsmasq.log", "r"); $handle = fopen(RASPI_DHCPCD_LOG, "r");
if ($handle) { if ($handle) {
while (($line = fgets($handle)) !== false) { while (($line = fgets($handle)) !== false) {
if (preg_match('/(0.0.0.0)/', $line)) { if (preg_match('/(0.0.0.0)/', $line)) {

View File

@ -6,7 +6,7 @@ if (!defined('RASPI_CONFIG')) {
$defaults = [ $defaults = [
'RASPI_BRAND_TEXT' => 'RaspAP', 'RASPI_BRAND_TEXT' => 'RaspAP',
'RASPI_VERSION' => '2.8.4', 'RASPI_VERSION' => '2.8.5',
'RASPI_CONFIG_NETWORK' => RASPI_CONFIG.'/networking/defaults.json', 'RASPI_CONFIG_NETWORK' => RASPI_CONFIG.'/networking/defaults.json',
'RASPI_ADMIN_DETAILS' => RASPI_CONFIG.'/raspap.auth', 'RASPI_ADMIN_DETAILS' => RASPI_CONFIG.'/raspap.auth',
'RASPI_WIFI_AP_INTERFACE' => 'wlan0', 'RASPI_WIFI_AP_INTERFACE' => 'wlan0',

View File

@ -120,7 +120,7 @@ function validateDHCPInput()
{ {
define('IFNAMSIZ', 16); define('IFNAMSIZ', 16);
$iface = $_POST['interface']; $iface = $_POST['interface'];
if (!preg_match('/^[a-zA-Z0-9]+$/', $iface) if (!preg_match('/^[^\s\/\\0]+$/', $iface)
|| strlen($iface) >= IFNAMSIZ || strlen($iface) >= IFNAMSIZ
) { ) {
$errors .= _('Invalid interface name.').'<br />'.PHP_EOL; $errors .= _('Invalid interface name.').'<br />'.PHP_EOL;

View File

@ -787,7 +787,7 @@ class validation
*/ */
function get_public_ip() function get_public_ip()
{ {
exec('wget https://ipinfo.io/ip -qO -', $public_ip); exec('wget --timeout=5 --tries=1 https://ipinfo.io/ip -qO -', $public_ip);
return $public_ip[0]; return $public_ip[0];
} }

View File

@ -7,6 +7,9 @@ require_once 'includes/config.php';
getWifiInterface(); getWifiInterface();
$system = new \RaspAP\System\Sysinfo;
$os = $system->operatingSystem();
/** /**
* Initialize hostapd values, display interface * Initialize hostapd values, display interface
* *
@ -15,6 +18,7 @@ function DisplayHostAPDConfig()
{ {
$status = new StatusMessages(); $status = new StatusMessages();
$system = new \RaspAP\System\Sysinfo; $system = new \RaspAP\System\Sysinfo;
$operatingSystem = $system->operatingSystem();
$arrConfig = array(); $arrConfig = array();
$arr80211Standard = [ $arr80211Standard = [
'a' => '802.11a - 5 GHz', 'a' => '802.11a - 5 GHz',
@ -119,7 +123,8 @@ function DisplayHostAPDConfig()
"arrEncType", "arrEncType",
"arrTxPower", "arrTxPower",
"txpower", "txpower",
"arrHostapdConf" "arrHostapdConf",
"operatingSystem"
) )
); );
} }

View File

@ -55,3 +55,14 @@ function getRouteInfo($checkAccess)
return $rInfo; return $rInfo;
} }
/*
* Fetches raw output of ip route
*
* @return string
*/
function getRouteInfoRaw()
{
exec('ip route list', $routes);
return $routes;
}

View File

@ -14,6 +14,7 @@ function DisplayNetworkingConfig()
exec("ls /sys/class/net | grep -v lo", $interfaces); exec("ls /sys/class/net | grep -v lo", $interfaces);
$routeInfo = getRouteInfo(true); $routeInfo = getRouteInfo(true);
$routeInfoRaw = getRouteInfoRaw();
$arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini'); $arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini');
$bridgedEnabled = $arrHostapdConf['BridgedEnable']; $bridgedEnabled = $arrHostapdConf['BridgedEnable'];
@ -21,6 +22,7 @@ function DisplayNetworkingConfig()
"status", "status",
"interfaces", "interfaces",
"routeInfo", "routeInfo",
"routeInfoRaw",
"bridgedEnabled") "bridgedEnabled")
); );
} }

View File

@ -159,6 +159,8 @@ function DisplaySystem()
$hostname = $system->hostname(); $hostname = $system->hostname();
$uptime = $system->uptime(); $uptime = $system->uptime();
$cores = $system->processorCount(); $cores = $system->processorCount();
$os = $system->operatingSystem();
$kernel = $system->kernelVersion();
// mem used // mem used
$memused = $system->usedMemory(); $memused = $system->usedMemory();
@ -215,6 +217,8 @@ function DisplaySystem()
"hostname", "hostname",
"uptime", "uptime",
"cores", "cores",
"os",
"kernel",
"memused", "memused",
"memused_status", "memused_status",
"memused_led", "memused_led",

View File

@ -5,16 +5,16 @@
* *
* Simple AP setup & WiFi management for Debian-based devices. * Simple AP setup & WiFi management for Debian-based devices.
* Enables use of simple web interface rather than SSH to control WiFi and related services on the Raspberry Pi. * Enables use of simple web interface rather than SSH to control WiFi and related services on the Raspberry Pi.
* Recommended distribution is Raspberry Pi OS (32-bit) Lite. Specific instructions to install the supported software are * Recommended distribution is Raspberry Pi OS (64-bit) Lite. Specific instructions to install the supported software are
* in the README and original post by @SirLagz. For a quick run through, the packages required for the WebGUI are: * in the README and original post by @SirLagz. For a quick run through, the packages required for the WebGUI are:
* lighttpd (version 1.4.59 installed via apt) * lighttpd (version 1.4.59 installed via apt)
* php-cgi (version 7.4.25 installed via apt) * php-cgi (version 7.4.28 installed via apt)
* along with their supporting packages, php7.3 will also need to be enabled. * along with their supporting packages, php7.3 will also need to be enabled.
* *
* @author Lawrence Yau <sirlagz@gmail.com> * @author Lawrence Yau <sirlagz@gmail.com>
* @author Bill Zimmerman <billzimmerman@gmail.com> * @author Bill Zimmerman <billzimmerman@gmail.com>
* @license GNU General Public License, version 3 (GPL-3.0) * @license GNU General Public License, version 3 (GPL-3.0)
* @version 2.8.4 * @version 2.8.5
* @link https://github.com/RaspAP/raspap-webgui/ * @link https://github.com/RaspAP/raspap-webgui/
* @link https://raspap.com/ * @link https://raspap.com/
* @see http://sirlagz.net/2013/02/08/raspap-webgui/ * @see http://sirlagz.net/2013/02/08/raspap-webgui/

View File

@ -41,10 +41,11 @@ function _install_raspap() {
_display_welcome _display_welcome
_config_installation _config_installation
_update_system_packages _update_system_packages
_manage_systemd_services
_install_dependencies _install_dependencies
_enable_php_lighttpd _enable_php_lighttpd
_check_for_old_configs
_create_raspap_directories _create_raspap_directories
_check_for_old_configs
_optimize_php _optimize_php
_download_latest_files _download_latest_files
_change_file_ownership _change_file_ownership
@ -139,7 +140,7 @@ function _get_linux_distro() {
# Sets php package option based on Linux version, abort if unsupported distro # Sets php package option based on Linux version, abort if unsupported distro
function _set_php_package() { function _set_php_package() {
case $RELEASE in case $RELEASE in
18.04|19.10|11*) # Ubuntu Server & Debian 11 22.04|20.04|18.04|19.10|11*) # Ubuntu Server, Debian 11 & Armbian 22.05
php_package="php7.4-cgi" php_package="php7.4-cgi"
phpcgiconf="/etc/php/7.4/cgi/php.ini" ;; phpcgiconf="/etc/php/7.4/cgi/php.ini" ;;
10*|11*) 10*|11*)
@ -149,20 +150,55 @@ function _set_php_package() {
php_package="php7.0-cgi" php_package="php7.0-cgi"
phpcgiconf="/etc/php/7.0/cgi/php.ini" ;; phpcgiconf="/etc/php/7.0/cgi/php.ini" ;;
8) 8)
_install_status 1 "${DESC} and php5 are not supported. Please upgrade." ;; _install_status 1 "${DESC} and php5 are not supported. Please upgrade."
exit 1 ;;
*) *)
_install_status 1 "${DESC} is unsupported. Please install on a supported distro." ;; _install_status 1 "${DESC} is unsupported. Please install on a supported distro."
exit 1 ;;
esac esac
} }
# Prompts the user to stop & disable Debian's systemd-networkd services.
# It isn't possible to mix Debian networking with dhcpcd.
# On Ubuntu 20.04 / Armbian 22, the systemd-resolved service uses port 53
# by default which prevents dnsmasq from starting.
function _manage_systemd_services() {
_install_log "Checking for systemd network services"
services=( "systemd-networkd" "systemd-resolved" )
for svc in "${services[@]}"; do
# Prompt to disable systemd service
if systemctl is-active --quiet "$svc".service; then
echo -n "Stop and disable ${svc} service? [Y/n]: "
if [ "$assume_yes" == 0 ]; then
read answer < /dev/tty
if [ "$answer" != "${answer#[Nn]}" ]; then
echo -e
else
sudo systemctl stop "$svc".service || _install_status 1 "Unable to stop ${svc}.service"
sudo systemctl disable "$svc".service || _install_status 1 "Unable to disable ${svc}.service"
fi
else
sudo systemctl stop "$svc".service || _install_status 1 "Unable to stop ${svc}.service"
sudo systemctl disable "$svc".service || _install_status 1 "Unable to disable ${svc}.service"
fi
else
echo "${svc}.service is not running (ok)"
fi
done
_install_status 0
}
# Runs a system software update to make sure we're using all fresh packages # Runs a system software update to make sure we're using all fresh packages
function _install_dependencies() { function _install_dependencies() {
_install_log "Installing required packages" _install_log "Installing required packages"
_set_php_package _set_php_package
if [ "$php_package" = "php7.4-cgi" ] && [ ${OS,,} = "ubuntu" ]; then if [ "$php_package" = "php7.4-cgi" ] && [ ${OS,,} = "ubuntu" ] && [[ ${RELEASE} =~ ^(22.04|20.04|18.04|19.10|11) ]]; then
echo "Adding apt-repository ppa:ondrej/php" echo "Adding apt-repository ppa:ondrej/php"
sudo apt-get install $apt_option software-properties-common || _install_status 1 "Unable to install dependency" sudo apt-get install $apt_option software-properties-common || _install_status 1 "Unable to install dependency"
sudo add-apt-repository $apt_option ppa:ondrej/php || _install_status 1 "Unable to add-apt-repository ppa:ondrej/php" sudo add-apt-repository $apt_option ppa:ondrej/php || _install_status 1 "Unable to add-apt-repository ppa:ondrej/php"
else
echo "${php_package} will be installed from the main deb sources list"
fi fi
if [ ${OS,,} = "debian" ] || [ ${OS,,} = "ubuntu" ]; then if [ ${OS,,} = "debian" ] || [ ${OS,,} = "ubuntu" ]; then
dhcpcd_package="dhcpcd5" dhcpcd_package="dhcpcd5"
@ -184,6 +220,13 @@ 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() {
if [ "$upgrade" == 1 ]; then
if [ -f $raspap_dir/raspap.auth ]; then
_install_log "Moving existing raspap.auth file to /tmp"
sudo mv $raspap_dir/raspap.auth /tmp || _install_status 1 "Unable to backup raspap.auth to /tmp"
fi
fi
_install_log "Creating RaspAP directories" _install_log "Creating RaspAP directories"
if [ -d "$raspap_dir" ]; then if [ -d "$raspap_dir" ]; then
sudo mv $raspap_dir "$raspap_dir.`date +%F-%R`" || _install_status 1 "Unable to move old '$raspap_dir' out of the way" sudo mv $raspap_dir "$raspap_dir.`date +%F-%R`" || _install_status 1 "Unable to move old '$raspap_dir' out of the way"
@ -267,7 +310,6 @@ function _install_lighttpd_configs() {
_install_status 0 _install_status 0
} }
# Prompt to install ad blocking # Prompt to install ad blocking
function _prompt_install_adblock() { function _prompt_install_adblock() {
_install_log "Configure ad blocking (Beta)" _install_log "Configure ad blocking (Beta)"
@ -275,7 +317,7 @@ function _prompt_install_adblock() {
if [ "$assume_yes" == 0 ]; then if [ "$assume_yes" == 0 ]; then
read answer < /dev/tty read answer < /dev/tty
if [ "$answer" != "${answer#[Nn]}" ]; then if [ "$answer" != "${answer#[Nn]}" ]; then
echo -e _install_status 0 "(Skipped)"
else else
_install_adblock _install_adblock
fi fi
@ -339,7 +381,7 @@ function _prompt_install_openvpn() {
if [ "$assume_yes" == 0 ]; then if [ "$assume_yes" == 0 ]; then
read answer < /dev/tty read answer < /dev/tty
if [ "$answer" != "${answer#[Nn]}" ]; then if [ "$answer" != "${answer#[Nn]}" ]; then
echo -e _install_status 0 "(Skipped)"
else else
_install_openvpn _install_openvpn
fi fi
@ -357,7 +399,7 @@ function _prompt_install_wireguard() {
if [ "$assume_yes" == 0 ]; then if [ "$assume_yes" == 0 ]; then
read answer < /dev/tty read answer < /dev/tty
if [ "$answer" != "${answer#[Nn]}" ]; then if [ "$answer" != "${answer#[Nn]}" ]; then
echo -e _install_status 0 "(Skipped)"
else else
_install_wireguard _install_wireguard
fi fi
@ -420,13 +462,14 @@ function _download_latest_files() {
_install_log "Cloning latest files from github" _install_log "Cloning latest files from github"
git clone --branch $branch --depth 1 -c advice.detachedHead=false $git_source_url /tmp/raspap-webgui || _install_status 1 "Unable to download files from github" git clone --branch $branch --depth 1 -c advice.detachedHead=false $git_source_url /tmp/raspap-webgui || _install_status 1 "Unable to download files from github"
sudo mv /tmp/raspap-webgui $webroot_dir || _install_status 1 "Unable to move raspap-webgui to web root" sudo mv /tmp/raspap-webgui $webroot_dir || _install_status 1 "Unable to move raspap-webgui to web root"
if [ "$upgrade" == 1 ]; then if [ "$upgrade" == 1 ]; then
_install_log "Applying existing configuration to ${webroot_dir}/includes" _install_log "Applying existing configuration to ${webroot_dir}/includes"
sudo mv /tmp/config.php $webroot_dir/includes || _install_status 1 "Unable to move config.php to ${webroot_dir}/includes" sudo mv /tmp/config.php $webroot_dir/includes || _install_status 1 "Unable to move config.php to ${webroot_dir}/includes"
if [ -f /tmp/raspap.auth ]; then if [ -f /tmp/raspap.auth ]; then
_install_log "Applying existing authentication file to ${raspap_dir}"
sudo mv /tmp/raspap.auth $raspap_dir || _install_status 1 "Unable to restore authentification credentials file to ${raspap_dir}" sudo mv /tmp/raspap.auth $raspap_dir || _install_status 1 "Unable to restore authentification credentials file to ${raspap_dir}"
fi fi
fi fi
@ -449,10 +492,6 @@ function _check_for_old_configs() {
if [ "$upgrade" == 1 ]; then if [ "$upgrade" == 1 ]; then
_install_log "Moving existing configuration to /tmp" _install_log "Moving existing configuration to /tmp"
sudo mv $webroot_dir/includes/config.php /tmp || _install_status 1 "Unable to move config.php to /tmp" sudo mv $webroot_dir/includes/config.php /tmp || _install_status 1 "Unable to move config.php to /tmp"
if [ -f $raspap_dir/raspap.auth ]; then
sudo mv $raspap_dir/raspap.auth /tmp || _install_status 1 "Unable to backup raspap.auth to /tmp"
fi
else else
_install_log "Backing up existing configs to ${raspap_dir}/backups" _install_log "Backing up existing configs to ${raspap_dir}/backups"
if [ -f /etc/network/interfaces ]; then if [ -f /etc/network/interfaces ]; then
@ -514,17 +553,21 @@ function _default_configuration() {
sudo cp $webroot_dir/config/dhcpcd.conf /etc/dhcpcd.conf || _install_status 1 "Unable to move dhcpcd configuration file" sudo cp $webroot_dir/config/dhcpcd.conf /etc/dhcpcd.conf || _install_status 1 "Unable to move dhcpcd configuration file"
sudo cp $webroot_dir/config/defaults.json $raspap_network || _install_status 1 "Unable to move defaults.json settings" sudo cp $webroot_dir/config/defaults.json $raspap_network || _install_status 1 "Unable to move defaults.json settings"
echo "Changing file ownership of ${raspap_network}/defaults.json" echo "Changing file ownership of ${raspap_network}defaults.json"
sudo chown $raspap_user:$raspap_user "$raspap_network"/defaults.json || _install_status 1 "Unable to change file ownership for defaults.json" sudo chown $raspap_user:$raspap_user "$raspap_network"/defaults.json || _install_status 1 "Unable to change file ownership for defaults.json"
echo "Checking for existence of /etc/dnsmasq.d" echo "Checking for existence of /etc/dnsmasq.d"
[ -d /etc/dnsmasq.d ] || sudo mkdir /etc/dnsmasq.d [ -d /etc/dnsmasq.d ] || sudo mkdir /etc/dnsmasq.d
echo "Copying bridged AP config to /etc/systemd/network" # Copy OS-specific bridge default config
sudo systemctl stop systemd-networkd if [ ${OS,,} = "ubuntu" ] && [[ ${RELEASE} =~ ^(22.04|20.04|19.10|18.04) ]]; then
sudo systemctl disable systemd-networkd echo "Copying bridged AP config to /etc/netplan"
sudo cp $webroot_dir/config/raspap-bridge-br0.netdev /etc/systemd/network/raspap-bridge-br0.netdev || _install_status 1 "Unable to move br0 netdev file" sudo cp $webroot_dir/config/raspap-bridge-br0.netplan /etc/netplan/raspap-bridge-br0.netplan || _install_status 1 "Unable to move br0 netplan file"
sudo cp $webroot_dir/config/raspap-br0-member-eth0.network /etc/systemd/network/raspap-br0-member-eth0.network || _install_status 1 "Unable to move br0 member file" else
echo "Copying bridged AP config to /etc/systemd/network"
sudo cp $webroot_dir/config/raspap-bridge-br0.netdev /etc/systemd/network/raspap-bridge-br0.netdev || _install_status 1 "Unable to move br0 netdev file"
sudo cp $webroot_dir/config/raspap-br0-member-eth0.network /etc/systemd/network/raspap-br0-member-eth0.network || _install_status 1 "Unable to move br0 member file"
fi
echo "Copying primary RaspAP config to includes/config.php" echo "Copying primary RaspAP config to includes/config.php"
if [ ! -f "$webroot_dir/includes/config.php" ]; then if [ ! -f "$webroot_dir/includes/config.php" ]; then
@ -577,7 +620,7 @@ function _configure_networking() {
if [ "$assume_yes" == 0 ]; then if [ "$assume_yes" == 0 ]; then
read answer < /dev/tty read answer < /dev/tty
if [ "$answer" != "${answer#[Nn]}" ]; then if [ "$answer" != "${answer#[Nn]}" ]; then
echo -e _install_status 0 "(Skipped)"
else else
_enable_raspap_daemon _enable_raspap_daemon
fi fi
@ -606,6 +649,15 @@ function _patch_system_files() {
_install_log "Unmasking and enabling hostapd service" _install_log "Unmasking and enabling hostapd service"
sudo systemctl unmask hostapd.service sudo systemctl unmask hostapd.service
sudo systemctl enable hostapd.service sudo systemctl enable hostapd.service
# Set correct DAEMON_CONF path for hostapd (Ubuntu20 + Armbian22)
if [ ${OS,,} = "ubuntu" ] && [[ ${RELEASE} =~ ^(22.04|20.04|19.10|18.04) ]]; then
conf="/etc/default/hostapd"
key="DAEMON_CONF"
value="/etc/hostapd/hostapd.conf"
echo "Setting default ${key} path to ${value}"
sudo sed -i -E "/^#?$key/ { s/^#//; s%=.*%=\"$value\"%; }" "$conf" || _install_status 1 "Unable to set value in ${conf}"
fi
_install_status 0 _install_status 0
} }
@ -675,7 +727,7 @@ function _install_complete() {
# Prompt to reboot if wired ethernet (eth0) is connected. # Prompt to reboot if wired ethernet (eth0) is connected.
# With default_configuration this will create an active AP on restart. # With default_configuration this will create an active AP on restart.
if ip a | grep -q ': eth0:.*state UP'; then if ip a | grep -q ': eth0:.*state UP'; then
echo -n "The system needs to be rebooted as a final step. Reboot now? [y/N]: " echo -n "The system needs to be rebooted as a final step. Reboot now? [Y/n]: "
read answer < /dev/tty read answer < /dev/tty
if [ "$answer" != "${answer#[Nn]}" ]; then if [ "$answer" != "${answer#[Nn]}" ]; then
echo "Installation reboot aborted." echo "Installation reboot aborted."

View File

@ -63,4 +63,5 @@ www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wireguard/*.conf
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wireguard/wg-*.key www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wireguard/wg-*.key
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/*.conf www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/*.conf
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/wg-*.key www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/wireguard/wg-*.key
www-data ALL=(ALL) NOPASSWD:/usr/sbin/netplan

View File

@ -21,6 +21,7 @@
# -u, --upgrade Upgrades an existing installation to the latest release version # -u, --upgrade Upgrades an existing installation to the latest release version
# -i, --insiders Installs from the Insiders Edition (RaspAP/raspap-insiders) # -i, --insiders Installs from the Insiders Edition (RaspAP/raspap-insiders)
# -v, --version Outputs release info and exits # -v, --version Outputs release info and exits
# -n, --uninstall Loads and executes the uninstaller
# -h, --help Outputs usage notes and exits # -h, --help Outputs usage notes and exits
# #
# Depending on options passed to the installer, ONE of the following # Depending on options passed to the installer, ONE of the following
@ -29,6 +30,8 @@
# https://raw.githubusercontent.com/raspap/raspap-webgui/master/installers/common.sh # https://raw.githubusercontent.com/raspap/raspap-webgui/master/installers/common.sh
# - or - # - or -
# https://raw.githubusercontent.com/raspap/raspap-webgui/master/installers/mkcert.sh # https://raw.githubusercontent.com/raspap/raspap-webgui/master/installers/mkcert.sh
# - or -
# https://raw.githubusercontent.com/raspap/raspap-webgui/master/installers/uninstall.sh
# #
# You are not obligated to bundle the LICENSE file with your RaspAP projects as long # You are not obligated to bundle the LICENSE file with your RaspAP projects as long
# as you leave these references intact in the header comments of your source files. # as you leave these references intact in the header comments of your source files.
@ -96,6 +99,9 @@ function _parse_params() {
-v|--version) -v|--version)
_version _version
;; ;;
-n|--uninstall)
uninstall=1
;;
-*|--*) -*|--*)
echo "Unknown option: $1" echo "Unknown option: $1"
_usage _usage
@ -141,6 +147,7 @@ OPTIONS:
-u, --upgrade Upgrades an existing installation to the latest release version -u, --upgrade Upgrades an existing installation to the latest release version
-i, --insiders Installs from the Insiders Edition (RaspAP/raspap-insiders) -i, --insiders Installs from the Insiders Edition (RaspAP/raspap-insiders)
-v, --version Outputs release info and exits -v, --version Outputs release info and exits
-n, --uninstall Loads and executes the uninstaller
-h, --help Outputs usage notes and exits -h, --help Outputs usage notes and exits
Examples: Examples:
@ -245,11 +252,17 @@ function _load_installer() {
if [[ ! -z "$acctoken" ]]; then if [[ ! -z "$acctoken" ]]; then
header=(--header "Authorization: token $acctoken") header=(--header "Authorization: token $acctoken")
fi fi
if [ "${install_cert:-}" = 1 ]; then if [ "${install_cert:-}" = 1 ]; then
source="mkcert" source="mkcert"
wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh
source /tmp/raspap_${source}.sh && rm -f /tmp/raspap_${source}.sh source /tmp/raspap_${source}.sh && rm -f /tmp/raspap_${source}.sh
_install_certificate || _install_status 1 "Unable to install certificate" _install_certificate || _install_status 1 "Unable to install certificate"
elif [ "${uninstall}" = 1 ]; then
source="uninstall"
wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh
source /tmp/raspap_${source}.sh && rm -f /tmp/raspap_${source}.sh
_remove_raspap || _install_status 1 "Unable to uninstall RaspAP"
else else
source="common" source="common"
wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh

View File

@ -202,7 +202,7 @@ function _remove_installed_packages() {
fi fi
echo -n "Remove the following installed packages? lighttpd hostapd iptables-persistent $php_package $dhcpcd_package vnstat qrencode [y/N]: " echo -n "Remove the following installed packages? lighttpd hostapd iptables-persistent $php_package $dhcpcd_package vnstat qrencode [y/N]: "
read answer read answer
if [ "$answer" != 'n' ] && [ "$answer" != 'N' ]; then if [ "$answer" == 'y' ] || [ "$answer" == 'Y' ]; then
echo "Removing packages." echo "Removing packages."
sudo apt-get remove lighttpd hostapd iptables-persistent $php_package $dhcpcd_package vnstat qrencode || _install_error "Unable to remove installed packages" sudo apt-get remove lighttpd hostapd iptables-persistent $php_package $dhcpcd_package vnstat qrencode || _install_error "Unable to remove installed packages"
sudo apt-get autoremove || _install_error "Unable to run apt autoremove" sudo apt-get autoremove || _install_error "Unable to run apt autoremove"

Binary file not shown.

View File

@ -679,6 +679,12 @@ msgstr "Error saving network configuration to file"
msgid "Unable to detect interface" msgid "Unable to detect interface"
msgstr "Unable to detect interface" msgstr "Unable to detect interface"
msgid "Routing table"
msgstr "Routing table"
msgid "raw output"
msgstr "raw output"
#: includes/system.php #: includes/system.php
msgid "System Information" msgid "System Information"
msgstr "System Information" msgstr "System Information"
@ -731,6 +737,12 @@ msgstr "Web server port"
msgid "Web server bind address" msgid "Web server bind address"
msgstr "Web server bind address" msgstr "Web server bind address"
msgid "OS"
msgstr "OS"
msgid "Kernel"
msgstr "Kernel"
#: includes/themes.php #: includes/themes.php
msgid "Theme settings" msgid "Theme settings"
msgstr "Theme settings" msgstr "Theme settings"

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: raspap\n" "Project-Id-Version: raspap\n"
"Report-Msgid-Bugs-To: Bill Zimmerman <billzimmerman@gmail.com>\n" "Report-Msgid-Bugs-To: Bill Zimmerman <billzimmerman@gmail.com>\n"
"POT-Creation-Date: 2017-10-19 08:56+0000\n" "POT-Creation-Date: 2017-10-19 08:56+0000\n"
"PO-Revision-Date: 2021-06-12 19:03\n" "PO-Revision-Date: 2022-06-28 09:13\n"
"Last-Translator: Bill Zimmerman <billzimmerman@gmail.com>\n" "Last-Translator: Bill Zimmerman <billzimmerman@gmail.com>\n"
"Language-Team: French\n" "Language-Team: French\n"
"Language: fr_FR\n" "Language: fr_FR\n"
@ -146,9 +146,33 @@ msgstr "Dissimuler"
msgid "Not configured" msgid "Not configured"
msgstr "Pas configuré" msgstr "Pas configuré"
msgid "Connected"
msgstr "Connecté"
msgid "Known"
msgstr "Connu"
msgid "Nearby"
msgstr "À proximité"
msgid "<strong>Note:</strong> WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" msgid "<strong>Note:</strong> WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP"
msgstr "<strong>Remarque:</strong> Les points d'accès WEP apparaissent comme 'ouverts'. RaspAP ne prend actuellement pas en charge la connexion via WEP" msgstr "<strong>Remarque:</strong> Les points d'accès WEP apparaissent comme 'ouverts'. RaspAP ne prend actuellement pas en charge la connexion via WEP"
msgid "No Wifi stations found"
msgstr "Aucune station Wi-Fi trouvée"
msgid "Reinitializing wpa_supplicant"
msgstr "Réinitialisation de wpa_supplicant"
msgid "Click 'Rescan' to search for nearby Wifi stations."
msgstr "Cliquez sur « Re-scanner » pour rechercher les stations Wifi à proximité."
msgid "Click 'Reinitialize' to force reinitialize <code>wpa_supplicant</code>."
msgstr "Cliquez sur \"Réinitialiser\" pour forcer la réinitialisation de <code>wpa_supplicant</code>."
msgid "Reinitialize"
msgstr "Réinitialiser"
#: includes/dashboard.php #: includes/dashboard.php
msgid "Interface Information" msgid "Interface Information"
msgstr "Informations d'interface" msgstr "Informations d'interface"
@ -243,6 +267,60 @@ msgstr "Arrêtez wlan0"
msgid "Connected Devices" msgid "Connected Devices"
msgstr "Appareils connectés" msgstr "Appareils connectés"
msgid "Client: Ethernet cable"
msgstr "Client : câble Ethernet"
msgid "Ethernet"
msgstr "Ethernet"
msgid "Client: Smartphone (USB tethering)"
msgstr "Client : Smartphone (partage de connexion USB)"
msgid "Smartphone"
msgstr "Smartphone"
msgid "WiFi"
msgstr "Wi-Fi"
msgid "Mobile Data Client"
msgstr "Client de données mobiles"
msgid "Mobile Data"
msgstr "Données mobiles"
msgid "No information available"
msgstr "Pas d'information disponible"
msgid "Interface name invalid"
msgstr "Nom d'interface invalide"
msgid "Required exec function is disabled. Check if exec is not added to php <code>disable_functions</code>."
msgstr "La fonction exec requise est désactivée. Vérifiez si exec n'est pas ajouté à php <code>disable_functions</code>."
msgid "Waiting for the interface to start ..."
msgstr "En attente du démarrage de l'interface..."
msgid "Stop the Interface"
msgstr "Arrêter l'interface"
msgid "Connection mode"
msgstr "Mode de connexion"
msgid "Signal quality"
msgstr "Qualité du signal"
msgid "WAN IP"
msgstr "IP WAN"
msgid "Web-GUI"
msgstr "Interface web"
msgid "Signal strength"
msgstr "Intensité du signal"
msgid "No Client device or not yet configured"
msgstr "Aucun appareil client ou pas encore configuré"
#: includes/dhcp.php #: includes/dhcp.php
msgid "DHCP server settings" msgid "DHCP server settings"
msgstr "Paramètres du serveur DHCP" msgstr "Paramètres du serveur DHCP"
@ -289,6 +367,9 @@ msgstr "Temps d'expiration"
msgid "MAC Address" msgid "MAC Address"
msgstr "Adresse Mac" msgstr "Adresse Mac"
msgid "Optional comment"
msgstr "Commentaire optionnel"
msgid "Host name" msgid "Host name"
msgstr "Nom d'hôte" msgstr "Nom d'hôte"
@ -404,8 +485,8 @@ msgstr "Type de sécurité"
msgid "Encryption Type" msgid "Encryption Type"
msgstr "Type de chiffrement" msgstr "Type de chiffrement"
msgid "PSK" msgid "Pre-shared key (PSK)"
msgstr "PSK" msgstr "Clé pré-partagée (PSK)"
msgid "Advanced settings" msgid "Advanced settings"
msgstr "Réglages avancés" msgstr "Réglages avancés"
@ -417,7 +498,7 @@ msgid "Information provided by hostapd"
msgstr "Informations fournies par hostapd" msgstr "Informations fournies par hostapd"
msgid "Attempting to start hotspot" msgid "Attempting to start hotspot"
msgstr "Tentative de démarrage du hotspot" msgstr "Tentative de démarrage du point d'accès"
msgid "Attempting to stop hotspot" msgid "Attempting to stop hotspot"
msgstr "Tentative d'arrêt du hotspot" msgstr "Tentative d'arrêt du hotspot"
@ -441,7 +522,7 @@ msgid "Country code must be blank or two characters"
msgstr "Le code du pays doit être vide ou deux caractères" msgstr "Le code du pays doit être vide ou deux caractères"
msgid "Wifi Hotspot settings saved" msgid "Wifi Hotspot settings saved"
msgstr "Paramètres de hotspot WI-FI enregistrés" msgstr "Paramètres de point d'accès WI-FI enregistrés"
msgid "Unable to save wifi hotspot settings" msgid "Unable to save wifi hotspot settings"
msgstr "Impossible d'enregistrer le réglage du hotspot Wi-Fi" msgstr "Impossible d'enregistrer le réglage du hotspot Wi-Fi"
@ -473,8 +554,8 @@ msgstr "Masquer le SSID en diffusion"
msgid "Maximum number of clients" msgid "Maximum number of clients"
msgstr "Nombre maximum de clients" msgstr "Nombre maximum de clients"
msgid "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." msgid "Configures the <code>max_num_sta</code> option of hostapd. The default and maximum is 2007. If empty or 0, the default applies."
msgstr "l'option max_num_sta de hostapd. La valeur par défaut et maximum est 2007. Si vide ou 0, la valeur par défaut s'applique." msgstr "Configure l'option <code>max_num_sta</code> de hostapd. La valeur par défaut et maximum est 2007. Si vide ou 0, la valeur par défaut s'applique."
msgid "Beacon interval" msgid "Beacon interval"
msgstr "intervalle balise Beacon" msgstr "intervalle balise Beacon"
@ -489,11 +570,53 @@ msgid "Executing RaspAP service start"
msgstr "Démarrage du service RaspAP" msgstr "Démarrage du service RaspAP"
msgid "Close" msgid "Close"
msgstr "Fermé" msgstr "Fermer"
msgid "Enable this option to log <code>hostapd</code> activity." msgid "Enable this option to log <code>hostapd</code> activity."
msgstr "Activer les logs d'activité avec l'option <code>hostapd</code>" msgstr "Activer les logs d'activité avec l'option <code>hostapd</code>"
msgid "Transmit power (dBm)"
msgstr "Puissance de transmission (dBm)"
msgid "Sets the <code>txpower</code> option for the AP interface and the configured country."
msgstr "Définit l'option <code>txpower</code> pour le point d'accès et le pays configuré."
msgid "dBm is a unit of level used to indicate that a power ratio is expressed in decibels (dB) with reference to one milliwatt (mW). 30 dBm is equal to 1000 mW, while 0 dBm equals 1.25 mW."
msgstr "dBm est une unité de mesure utilisée pour indiquer qu'un rapport de puissance est exprimé en décibels (dB) avec une référence à un milliwatt (mW). 30 dBm est égal à 1000 mW, tandis que 0 dBm équivaut à 1,25 mW."
msgid "WPA and WPA2"
msgstr "WPA et WPA2"
msgid "WPA2 and WPA3-Personal (transitional mode)"
msgstr "WPA2 et WPA3-Personal (mode transitoire)"
msgid "WPA3-Personal (required)"
msgstr "WPA3-Personnel (obligatoire)"
msgid "Enabled (for supported clients)"
msgstr "Activé (pour les clients pris en charge)"
msgid "Required (for supported clients)"
msgstr "Requis (pour les clients pris en charge)"
msgid "802.11w extends strong cryptographic protection to a select set of robust management frames, including Deauthentication, Disassociation and certain categories of Action Management frames. Collectively, this is known as Management Frame Protection (MFP)."
msgstr "La norme 802.11w étend la protection cryptographique forte à un ensemble sélectionné de trames de gestion robustes, notamment la désauthentification, la dissociation et certaines catégories de trames de gestion d'action. L'ensemble de ces éléments est connu sous le nom de Management Frame Protection (MFP)."
msgid "Scan this QR code directly or %s %sprint a sign%s for your users."
msgstr "Scannez ce code QR directement ou %s %simprimez un panneau%s pour vos utilisateurs."
msgid "Printable Wi-Fi sign"
msgstr "Panneau Wi-Fi imprimable"
msgid "To connect with your phone or tablet, scan the QR code above with your camera app."
msgstr "Pour vous connecter à votre téléphone ou tablette, scannez le QR code ci-dessus avec votre application caméra."
msgid "For other devices, use the login credentials below."
msgstr "Pour les autres appareils, utilisez les identifiants ci-dessous."
msgid "Network"
msgstr "Réseau"
#: includes/networking.php #: includes/networking.php
msgid "Summary" msgid "Summary"
msgstr "Sommaire" msgstr "Sommaire"
@ -537,6 +660,57 @@ msgstr "Appliquer les paramètres"
msgid "Information provided by /sys/class/net" msgid "Information provided by /sys/class/net"
msgstr "Informations fournies par /sys/class/net" msgstr "Informations fournies par /sys/class/net"
msgid "Network Devices"
msgstr "Périphériques réseau"
msgid "Mobile Data Settings"
msgstr "Paramètres des données mobiles"
msgid "Properties of network devices"
msgstr "Propriétés des périphériques réseau"
msgid "Device"
msgstr "Appareil"
msgid "MAC"
msgstr "MAC"
msgid "USB vid/pid"
msgstr "USB vid/pid"
msgid "Device type"
msgstr "Type d'appareil"
msgid "Fixed name"
msgstr "Nom fixe"
msgid "Change"
msgstr "Modifier"
msgid "Settings for Mobile Data Devices"
msgstr "Paramètres pour les périphériques de données mobiles"
msgid "PIN of SIM card"
msgstr "PIN de la carte SIM"
msgid "APN Settings (Modem device ppp0)"
msgstr "Paramètres APN (modem ppp0)"
msgid "Access Point Name (APN)"
msgstr "Nom du point d'accès (APN)"
msgid "Password"
msgstr "Mot de passe"
msgid "Successfully Updated Network Configuration"
msgstr "Configuration réseau mise à jour"
msgid "Error saving network configuration to file"
msgstr "Erreur lors de l'enregistrement du fichier de configuration réseau"
msgid "Unable to detect interface"
msgstr "Impossible de détecter l'interface"
#: includes/system.php #: includes/system.php
msgid "System Information" msgid "System Information"
msgstr "Informations du système" msgstr "Informations du système"
@ -883,14 +1057,44 @@ msgstr "Un Host personnalisée non valide a été trouvée sur la ligne "
msgid "Tunnel settings" msgid "Tunnel settings"
msgstr "Paramètres du tunnel" msgstr "Paramètres du tunnel"
msgid "Configuration Method"
msgstr "Méthode de configuration"
msgid "Upload file"
msgstr "Charger un fichier"
msgid "Create manually"
msgstr "Créer manuellement"
msgid "Upload a WireGuard config"
msgstr "Charger une configuration WireGuard"
msgid "This option uploads and installs an existing WireGuard <code>.conf</code> file on this device."
msgstr "Cette option télécharge et installe un fichier WireGuard <code>.conf</code> existant sur cet appareil."
msgid "Apply iptables rules for AP interface"
msgstr "Appliquer les règles iptables au point d'accès"
msgid "Recommended if you wish to forward network traffic from the wg0 interface to clients connected on the AP interface."
msgstr "Recommandé si vous souhaitez transférer le trafic réseau de l'interface wg0 aux clients connectés au point d'accès."
msgid "This option adds <strong>iptables</strong> <code>Postup</code> and <code>PostDown</code> rules for the configured AP interface (%s)."
msgstr "Cette option ajoute des règles <strong>iptables</strong> <code>Postup</code> et <code>PostDown</code> pour l'interface AP configurée (%s)."
msgid "Select WireGuard configuration file (.conf)"
msgstr "Sélectionner le fichier de configuration WireGuard (.conf)"
msgid "Create a local WireGuard config"
msgstr "Créer une configuration locale WireGuard"
msgid "Enable server" msgid "Enable server"
msgstr "Activer le serveur" msgstr "Activer le serveur"
msgid "Enable this option to encrypt traffic by creating a tunnel between RaspAP and configured peers." msgid "Enable this option to secure network traffic by creating an encrypted tunnel between RaspAP and configured peers."
msgstr "Active cette option pour chiffrer le trafic en créant un tunnel entre RaspAP et les pairs configurés." msgstr "Activer cette option pour sécuriser le trafic réseau en créant un tunnel chiffré entre RaspAP et les pairs configurés."
msgid "This option adds <code>wg0.conf</code> to the WireGuard configuration." msgid "This setting generates a new WireGuard <code>.conf</code> file on this device."
msgstr "Cette option ajoute <code>wg0.conf</code> à la configuration de WireGuard." msgstr "Ce paramètre génère un nouveau fichier WireGuard <code>.conf</code> sur cet appareil."
msgid "Local public key" msgid "Local public key"
msgstr "Clé publique locale" msgstr "Clé publique locale"
@ -928,11 +1132,11 @@ msgstr "Adresses IP autorisées"
msgid "Persistent keepalive" msgid "Persistent keepalive"
msgstr "Keepalive persistant" msgstr "Keepalive persistant"
msgid "Display WireGuard status" msgid "Enable this option to display an updated <code>wg-quick</code> debug log."
msgstr "Afficher le statut WireGuard" msgstr "Activer cette option pour afficher un journal de débogage de <code>wg-quick</code>."
msgid "Enable this option to display an updated WireGuard status." msgid "WireGuard debug log updated"
msgstr "Activer cette option pour afficher un statut WireGuard mis à jour." msgstr "Journal de débogage WireGuard mis à jour"
msgid "Scan this QR code with your client to connect to this tunnel" msgid "Scan this QR code with your client to connect to this tunnel"
msgstr "Scannez ce code QR avec votre client pour vous connecter à ce tunnel" msgstr "Scannez ce code QR avec votre client pour vous connecter à ce tunnel"
@ -964,3 +1168,72 @@ msgstr "Configuration de WireGuard mise à jour avec succès"
msgid "WireGuard configuration failed to be updated" msgid "WireGuard configuration failed to be updated"
msgstr "La configuration WireGuard n'a pas pu être mise à jour" msgstr "La configuration WireGuard n'a pas pu être mise à jour"
msgid "Client Firewall"
msgstr "Pare-feu client"
msgid "Firewall is ENABLED"
msgstr "Le pare-feu est activé"
msgid "Firewall is OFF"
msgstr "Le pare-feu est désactivé"
msgid "The default firewall will only allow outgoing and already established traffic."
msgstr "Le pare-feu par défaut n'autorisera que le trafic sortant et déjà établi."
msgid "No incoming UDP traffic is allowed."
msgstr "Aucun trafic UDP entrant n'est autorisé."
msgid "There are no restrictions for the access point <code>%s</code>."
msgstr "Il n'y a pas de restrictions pour le point d'accès <code>%s</code>."
msgid "Exception: Service"
msgstr "Exception : service"
msgid "allow SSH access on port 22"
msgstr "Autoriser l'accès SSH sur le port 22"
msgid "allow access to the RaspAP GUI on port 80 or 443"
msgstr "Autoriser l'accès à l'interface RaspAP sur le port 80 ou 443"
msgid "Allow incoming connections for some services from the internet side."
msgstr "Autoriser les connexions entrantes pour certains services Internet."
msgid "Exception: network device"
msgstr "Exception : périphérique réseau"
msgid "Exclude device(s)"
msgstr "Exclure le(s) appareil(s)"
msgid "Exclude the given network device(s) (separated by a blank or comma) from firewall rules."
msgstr "Exclure le(s) périphérique(s) réseau (séparés par un vide ou une virgule) des règles de pare-feu."
msgid "Current client devices: <code>%s</code>"
msgstr "Périphériques clients actuels : <code>%s</code>"
msgid "The access point <code>%s</code> is per default excluded."
msgstr "Le point d'accès <code>%s</code> est exclu par défaut."
msgid "Exception: IP-Address"
msgstr "Exception : adresse IP"
msgid "Allow incoming connections from"
msgstr "Autoriser les connexions entrantes depuis"
msgid "For the given IP-addresses (separated by a blank or comma) the incoming connection (via TCP and UDP) is accepted."
msgstr "Pour les adresses IP fournies (séparées par un vide ou une virgule) la connexion entrante (via TCP et UDP) est acceptée."
msgid "This is required for an OpenVPN via UDP or Wireguard connection."
msgstr "Ceci est requis pour une connexion OpenVPN via UDP ou Wireguard."
msgid "The list of configured VPN server IP addresses: <code><b>%s</b></code>"
msgstr "La liste des adresses IP du serveur VPN configurées : <code><b>%s</b></code>"
msgid "Disable Firewall"
msgstr "Désactiver le pare-feu"
msgid "Enable Firewall"
msgstr "Activer le pare-feu"
msgid "Apply changes"
msgstr "Appliquer les modifications"

Binary file not shown.

View File

@ -1,22 +1,21 @@
# RaspAP Portable Object file
# Project home: https://github.com/billz/raspap-webgui
# Licensed under the GNU General Public License v3.0
# This file is distributed under the same license as the RaspAP package
# FIRST AUTHOR billzimmerman@gmail.com, 2017
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1.2.1\n" "Project-Id-Version: raspap\n"
"Report-Msgid-Bugs-To: Bill Zimmerman <billzimmerman@gmail.com>\n" "Report-Msgid-Bugs-To: Bill Zimmerman <billzimmerman@gmail.com>\n"
"POT-Creation-Date: 2017-10-19 08:56+0000\n" "POT-Creation-Date: 2017-10-19 08:56+0000\n"
"PO-Revision-Date: 2019-10-27 15:30-0300\n" "PO-Revision-Date: 2022-01-05 11:43\n"
"Last-Translator: Matheus Dal Mago <matheusdalmago10@gmail.com>\n" "Last-Translator: Bill Zimmerman <billzimmerman@gmail.com>\n"
"Language-Team: \n" "Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n" "Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: raspap\n"
"X-Crowdin-Project-ID: 395801\n"
"X-Crowdin-Language: pt-BR\n"
"X-Crowdin-File: /master/locale/en_US/LC_MESSAGES/messages.po\n"
"X-Crowdin-File-ID: 10\n"
#: index.php #: index.php
msgid "RaspAP Wifi Configuration Portal" msgid "RaspAP Wifi Configuration Portal"
@ -37,8 +36,14 @@ msgstr "Cliente WiFi"
msgid "Hotspot" msgid "Hotspot"
msgstr "Ponto de acesso" msgstr "Ponto de acesso"
msgid "Memory Use"
msgstr "Uso da memória"
msgid "CPU Temp"
msgstr "Temperatura do CPU"
msgid "Networking" msgid "Networking"
msgstr "Networking" msgstr "Rede"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Servidor DHCP" msgstr "Servidor DHCP"
@ -141,9 +146,33 @@ msgstr "Esconder"
msgid "Not configured" msgid "Not configured"
msgstr "Não configurado" msgstr "Não configurado"
msgid "Connected"
msgstr ""
msgid "Known"
msgstr ""
msgid "Nearby"
msgstr ""
msgid "<strong>Note:</strong> WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" msgid "<strong>Note:</strong> WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP"
msgstr "<strong>Nota:</strong> pontos de acesso WEP aparecem como 'Open'. Atualmente, o RaspAP não suporta conexão com WEP" msgstr "<strong>Nota:</strong> pontos de acesso WEP aparecem como 'Open'. Atualmente, o RaspAP não suporta conexão com WEP"
msgid "No Wifi stations found"
msgstr ""
msgid "Reinitializing wpa_supplicant"
msgstr ""
msgid "Click 'Rescan' to search for nearby Wifi stations."
msgstr ""
msgid "Click 'Reinitialize' to force reinitialize <code>wpa_supplicant</code>."
msgstr ""
msgid "Reinitialize"
msgstr ""
#: includes/dashboard.php #: includes/dashboard.php
msgid "Interface Information" msgid "Interface Information"
msgstr "Informação da Interface" msgstr "Informação da Interface"
@ -178,8 +207,8 @@ msgstr "Pacotes Transferidos"
msgid "Transferred Bytes" msgid "Transferred Bytes"
msgstr "Bytes Transferidos" msgstr "Bytes Transferidos"
msgid "Wireless Information" msgid "Wireless Client"
msgstr "Informação de Wireless" msgstr "Cliente WiFi"
msgid "Connected To" msgid "Connected To"
msgstr "Conectado em" msgstr "Conectado em"
@ -238,6 +267,60 @@ msgstr "Parar wlan0"
msgid "Connected Devices" msgid "Connected Devices"
msgstr "Dispositivos Conectados" msgstr "Dispositivos Conectados"
msgid "Client: Ethernet cable"
msgstr ""
msgid "Ethernet"
msgstr ""
msgid "Client: Smartphone (USB tethering)"
msgstr ""
msgid "Smartphone"
msgstr ""
msgid "WiFi"
msgstr ""
msgid "Mobile Data Client"
msgstr ""
msgid "Mobile Data"
msgstr ""
msgid "No information available"
msgstr ""
msgid "Interface name invalid"
msgstr ""
msgid "Required exec function is disabled. Check if exec is not added to php <code>disable_functions</code>."
msgstr ""
msgid "Waiting for the interface to start ..."
msgstr ""
msgid "Stop the Interface"
msgstr ""
msgid "Connection mode"
msgstr ""
msgid "Signal quality"
msgstr ""
msgid "WAN IP"
msgstr ""
msgid "Web-GUI"
msgstr ""
msgid "Signal strength"
msgstr ""
msgid "No Client device or not yet configured"
msgstr ""
#: includes/dhcp.php #: includes/dhcp.php
msgid "DHCP server settings" msgid "DHCP server settings"
msgstr "Configurações do servidor DHCP" msgstr "Configurações do servidor DHCP"
@ -246,7 +329,16 @@ msgid "Client list"
msgstr "Lista de Clientes" msgstr "Lista de Clientes"
msgid "Interface" msgid "Interface"
msgstr "Interface" msgstr "Inteface"
msgid "Enable DHCP for this interface"
msgstr ""
msgid "Enable this option if you want RaspAP to assign IP addresses on the selected interface."
msgstr ""
msgid "DNS Server"
msgstr "Servidor DNS"
msgid "Starting IP Address" msgid "Starting IP Address"
msgstr "Endereço IP Inicial" msgstr "Endereço IP Inicial"
@ -275,6 +367,9 @@ msgstr "Tempo para expirar"
msgid "MAC Address" msgid "MAC Address"
msgstr "Endereço MAC" msgstr "Endereço MAC"
msgid "Optional comment"
msgstr ""
msgid "Host name" msgid "Host name"
msgstr "Nome de host" msgstr "Nome de host"
@ -318,31 +413,55 @@ msgid "Dnsmasq is not running"
msgstr "Dnsmasq não executando" msgstr "Dnsmasq não executando"
msgid "Upstream DNS servers" msgid "Upstream DNS servers"
msgstr "Upstream DNS servers" msgstr ""
msgid "Only ever query DNS servers configured below" msgid "Only ever query DNS servers configured below"
msgstr "Only ever query DNS servers configured below" msgstr ""
msgid "Enable this option if you want RaspAP to <b>send DNS queries to the servers configured below exclusively</b>. By default RaspAP also uses its upstream DHCP server's name servers." msgid "Enable this option if you want RaspAP to <b>send DNS queries to the servers configured below exclusively</b>. By default RaspAP also uses its upstream DHCP server's name servers."
msgstr "Enable this option if you want RaspAP to <b>send DNS queries to the servers configured below exclusively</b>. By default RaspAP also uses its upstream DHCP server's name servers." msgstr ""
msgid "This option adds <code>no-resolv</code> to the dnsmasq configuration." msgid "This option adds <code>no-resolv</code> to the dnsmasq configuration."
msgstr "This option adds <code>no-resolv</code> to the dnsmasq configuration." msgstr ""
msgid "Add upstream DNS server" msgid "Add upstream DNS server"
msgstr "Add upstream DNS server" msgstr ""
msgid "Format" msgid "Format"
msgstr "Format" msgstr ""
msgid "Choose a hosted server" msgid "Choose a hosted server"
msgstr "Choose a hosted server" msgstr ""
msgid "Enable these options to log DHCP server activity."
msgstr ""
msgid "Log DHCP requests" msgid "Log DHCP requests"
msgstr "Log DHCP requests" msgstr ""
msgid "Log DNS queries" msgid "Log DNS queries"
msgstr "Log DNS queries" msgstr ""
msgid "Restrict access"
msgstr ""
msgid "Limit network access to static clients"
msgstr ""
msgid "Enable this option if you want RaspAP to <b>ignore any clients</b> which are not specified in the static leases list."
msgstr ""
msgid "This option adds <code>dhcp-ignore</code> to the dnsmasq configuration."
msgstr ""
msgid "Clients with a particular hardware MAC address can always be allocated the same IP address."
msgstr ""
msgid "This option adds <code>dhcp-host</code> entries to the dnsmasq configuration."
msgstr ""
msgid "This toggles the <code>gateway</code>/<code>nogateway</code> option for this interface in the DHCPCD configuration."
msgstr ""
#: includes/hostapd.php #: includes/hostapd.php
msgid "Basic" msgid "Basic"
@ -367,7 +486,7 @@ msgid "Encryption Type"
msgstr "Tipo de Criptografia" msgstr "Tipo de Criptografia"
msgid "PSK" msgid "PSK"
msgstr "PSK" msgstr ""
msgid "Advanced settings" msgid "Advanced settings"
msgstr "Configurações avançadas" msgstr "Configurações avançadas"
@ -426,28 +545,58 @@ msgstr "Arquivo de Log"
msgid "WiFi client AP mode" msgid "WiFi client AP mode"
msgstr "WiFi modo cliente AP" msgstr "WiFi modo cliente AP"
msgid "Bridged AP mode"
msgstr ""
msgid "Hide SSID in broadcast" msgid "Hide SSID in broadcast"
msgstr "Esconder SSID em transmissão" msgstr "Esconder SSID em transmissão"
msgid "Maximum number of clients" msgid "Maximum number of clients"
msgstr "Número máximo de clientes" msgstr "Número máximo de clientes"
msgid "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." msgid "Configures the <code>max_num_sta</code> option of hostapd. The default and maximum is 2007. If empty or 0, the default applies."
msgstr "Configura a opção max_num_sta do hostapd. O valor padrão e máximo é 2007. Se deixado vazio ou 0, o valor padrão é aplicado." msgstr ""
msgid "Beacon interval"
msgstr ""
msgid "Disable <code>disassoc_low_ack</code>"
msgstr ""
msgid "Do not disassociate stations based on excessive transmission failures."
msgstr ""
msgid "Executing RaspAP service start"
msgstr ""
msgid "Close"
msgstr ""
msgid "Enable this option to log <code>hostapd</code> activity."
msgstr ""
msgid "Transmit power (dBm)"
msgstr ""
msgid "Sets the <code>txpower</code> option for the AP interface and the configured country."
msgstr ""
msgid "dBm is a unit of level used to indicate that a power ratio is expressed in decibels (dB) with reference to one milliwatt (mW). 30 dBm is equal to 1000 mW, while 0 dBm equals 1.25 mW."
msgstr ""
#: includes/networking.php #: includes/networking.php
msgid "Summary" msgid "Summary"
msgstr "Sumário" msgstr "Sumário"
msgid "Internet connection"
msgstr ""
msgid "Current settings" msgid "Current settings"
msgstr "Configurações atuais" msgstr "Configurações atuais"
msgid "Default Gateway" msgid "Default Gateway"
msgstr "Gateway Padrão" msgstr "Gateway Padrão"
msgid "DNS Server"
msgstr "Servidor DNS"
msgid "Alternate DNS Server" msgid "Alternate DNS Server"
msgstr "Servidor DNS Alternativo" msgstr "Servidor DNS Alternativo"
@ -469,12 +618,66 @@ msgstr "Desabilitado"
msgid "Static IP Options" msgid "Static IP Options"
msgstr "Opções de IP Estático" msgstr "Opções de IP Estático"
msgid "Metric"
msgstr ""
msgid "Apply settings" msgid "Apply settings"
msgstr "Aplicar Configurações" msgstr "Aplicar Configurações"
msgid "Information provided by /sys/class/net" msgid "Information provided by /sys/class/net"
msgstr "Informação Provida por /sys/class/net" msgstr "Informação Provida por /sys/class/net"
msgid "Network Devices"
msgstr ""
msgid "Mobile Data Settings"
msgstr ""
msgid "Properties of network devices"
msgstr ""
msgid "Device"
msgstr ""
msgid "MAC"
msgstr ""
msgid "USB vid/pid"
msgstr ""
msgid "Device type"
msgstr ""
msgid "Fixed name"
msgstr ""
msgid "Change"
msgstr ""
msgid "Settings for Mobile Data Devices"
msgstr ""
msgid "PIN of SIM card"
msgstr ""
msgid "APN Settings (Modem device ppp0)"
msgstr ""
msgid "Access Point Name (APN)"
msgstr ""
msgid "Password"
msgstr ""
msgid "Successfully Updated Network Configuration"
msgstr ""
msgid "Error saving network configuration to file"
msgstr ""
msgid "Unable to detect interface"
msgstr ""
#: includes/system.php #: includes/system.php
msgid "System Information" msgid "System Information"
msgstr "Informação do sistema" msgstr "Informação do sistema"
@ -492,10 +695,10 @@ msgid "Language setting saved"
msgstr "Configuração de idioma salva" msgstr "Configuração de idioma salva"
msgid "Console" msgid "Console"
msgstr "Console" msgstr ""
msgid "Hostname" msgid "Hostname"
msgstr "Hostname" msgstr ""
msgid "Pi Revision" msgid "Pi Revision"
msgstr "Revisão do Pi" msgstr "Revisão do Pi"
@ -521,6 +724,12 @@ msgstr "Sistema Reiniciando Agora!"
msgid "System Shutting Down Now!" msgid "System Shutting Down Now!"
msgstr "Sistema Desligando Agora!" msgstr "Sistema Desligando Agora!"
msgid "Web server port"
msgstr ""
msgid "Web server bind address"
msgstr ""
#: includes/themes.php #: includes/themes.php
msgid "Theme settings" msgid "Theme settings"
msgstr "Configurações de tema" msgstr "Configurações de tema"
@ -528,6 +737,9 @@ msgstr "Configurações de tema"
msgid "Select a theme" msgid "Select a theme"
msgstr "Selecione um tema" msgstr "Selecione um tema"
msgid "Color"
msgstr ""
#: includes/data_usage.php #: includes/data_usage.php
msgid "Data usage" msgid "Data usage"
msgstr "Uso de dados" msgstr "Uso de dados"
@ -554,7 +766,7 @@ msgid "Monthly"
msgstr "Por mês" msgstr "Por mês"
msgid "interface" msgid "interface"
msgstr "interface" msgstr ""
msgid "date" msgid "date"
msgstr "data" msgstr "data"
@ -606,7 +818,7 @@ msgid "Diffie Hellman parameters"
msgstr "Parâmetros Diffie Hellman" msgstr "Parâmetros Diffie Hellman"
msgid "KeepAlive" msgid "KeepAlive"
msgstr "KeepAlive" msgstr ""
msgid "Server log" msgid "Server log"
msgstr "Log do servidor" msgstr "Log do servidor"
@ -626,6 +838,66 @@ msgstr "Tentando iniciar openvpn"
msgid "Attempting to stop openvpn" msgid "Attempting to stop openvpn"
msgstr "Tentando parar openvpn" msgstr "Tentando parar openvpn"
msgid "Configurations"
msgstr ""
msgid "Currently available OpenVPN client configurations are displayed below."
msgstr ""
msgid "Activating a configuraton will restart the <code>openvpn-client</code> service."
msgstr ""
msgid "Delete OpenVPN client"
msgstr ""
msgid "Delete client configuration? This cannot be undone."
msgstr ""
msgid "Activate OpenVPN client"
msgstr ""
msgid "Activate client configuration? This will restart the openvpn-client service."
msgstr ""
msgid "Activate"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Enable this option to log <code>openvpn</code> activity."
msgstr ""
msgid "Authentification Method"
msgstr ""
msgid "Username and password"
msgstr ""
msgid "Certificates"
msgstr ""
msgid "Enter username and password"
msgstr ""
msgid "Certificates in the configuration file"
msgstr ""
msgid "RaspAP supports certificates by including them in the configuration file."
msgstr ""
msgid "Signing certification authority (CA) certificate (e.g. <code>ca.crt</code>): enclosed in <code>&lt;ca> ... &lt;/ca></code> tags."
msgstr ""
msgid "Client certificate (public key) (e.g. <code>client.crt</code>): enclosed in <code>&lt;cert> ... &lt;/cert></code> tags."
msgstr ""
msgid "Private key of the client certificate (e.g. <code>client.key</code>): enclosed in <code>&lt;key> ... &lt;/key></code> tags."
msgstr ""
msgid "Configuration File"
msgstr ""
#: includes/torproxy.php #: includes/torproxy.php
msgid "TOR is not running" msgid "TOR is not running"
msgstr "TOR não está sendo executado" msgstr "TOR não está sendo executado"
@ -634,7 +906,7 @@ msgid "TOR is running"
msgstr "TOR está sendo executado" msgstr "TOR está sendo executado"
msgid "Relay" msgid "Relay"
msgstr "Relay" msgstr ""
msgid "Relay settings" msgid "Relay settings"
msgstr "Configurações de relay" msgstr "Configurações de relay"
@ -660,6 +932,10 @@ msgstr "Tentando iniciar TOR"
msgid "Attempting to stop TOR" msgid "Attempting to stop TOR"
msgstr "Tentando parar TOR" msgstr "Tentando parar TOR"
#: template/dashboard.php
msgid "Bridged AP mode is enabled. For Hostname and IP, see your router's admin page."
msgstr ""
#: common form controls #: common form controls
msgid "Save settings" msgid "Save settings"
msgstr "Salvar configurações" msgstr "Salvar configurações"
@ -681,3 +957,250 @@ msgstr "cima"
msgid "down" msgid "down"
msgstr "baixo" msgstr "baixo"
msgid "adblock"
msgstr ""
msgid "Ad Blocking"
msgstr ""
msgid "Start Ad Blocking"
msgstr ""
msgid "Restart Ad Blocking"
msgstr ""
msgid "Blocklist settings"
msgstr ""
msgid "Enable blocklists"
msgstr ""
msgid "Enable this option if you want RaspAP to <b>block DNS requests for ads, tracking and other virtual garbage</b>. Blocklists are gathered from multiple, actively maintained sources and automatically updated, cleaned, optimized and moderated on a daily basis."
msgstr ""
msgid "This option adds <code>conf-file</code> and <code>addn-hosts</code> to the dnsmasq configuration."
msgstr ""
msgid "Choose a blocklist provider"
msgstr ""
msgid "Hostnames blocklist last updated"
msgstr ""
msgid "Domains blocklist last updated"
msgstr ""
msgid "Update now"
msgstr ""
msgid "Statistics"
msgstr ""
msgid "Information provided by adblock"
msgstr ""
msgid "Enable custom blocklist"
msgstr ""
msgid "Define custom hosts to be blocked by entering an IPv4 or IPv6 address followed by any whitespace (spaces or tabs) and the host name."
msgstr ""
msgid "<b>IPv4 example:</b> 0.0.0.0 badhost.com"
msgstr ""
msgid "This option adds an <code>addn-hosts</code> directive to the dnsmasq configuration."
msgstr ""
msgid "Custom blocklist not defined"
msgstr ""
msgid "Invalid custom IP address found on line "
msgstr ""
msgid "Invalid custom host found on line "
msgstr ""
msgid "Tunnel settings"
msgstr ""
msgid "Configuration Method"
msgstr ""
msgid "Upload file"
msgstr ""
msgid "Create manually"
msgstr ""
msgid "Upload a WireGuard config"
msgstr ""
msgid "This option uploads and installs an existing WireGuard <code>.conf</code> file on this device."
msgstr ""
msgid "Apply iptables rules for AP interface"
msgstr ""
msgid "Recommended if you wish to forward network traffic from the wg0 interface to clients connected on the AP interface."
msgstr ""
msgid "This option adds <strong>iptables</strong> <code>Postup</code> and <code>PostDown</code> rules for the configured AP interface (%s)."
msgstr ""
msgid "Select WireGuard configuration file (.conf)"
msgstr ""
msgid "Create a local WireGuard config"
msgstr ""
msgid "Enable server"
msgstr ""
msgid "Enable this option to secure network traffic by creating an encrypted tunnel between RaspAP and configured peers."
msgstr ""
msgid "This setting generates a new WireGuard <code>.conf</code> file on this device."
msgstr ""
msgid "Local public key"
msgstr ""
msgid "Local Port"
msgstr ""
msgid "IP Address"
msgstr ""
msgid "DNS"
msgstr ""
msgid "Peer"
msgstr ""
msgid "Enable peer"
msgstr ""
msgid "Enable this option to encrypt traffic by creating a tunnel between RaspAP and this peer."
msgstr ""
msgid "This option adds <code>client.conf</code> to the WireGuard configuration."
msgstr ""
msgid "Peer public key"
msgstr ""
msgid "Endpoint address"
msgstr ""
msgid "Allowed IPs"
msgstr ""
msgid "Persistent keepalive"
msgstr ""
msgid "Enable this option to display an updated <code>wg-quick</code> debug log."
msgstr ""
msgid "WireGuard debug log updated"
msgstr ""
msgid "Scan this QR code with your client to connect to this tunnel"
msgstr ""
msgid "or download the <code>client.conf</code> file to your device."
msgstr ""
msgid "Download"
msgstr ""
msgid "Start WireGuard"
msgstr ""
msgid "Stop WireGuard"
msgstr ""
msgid "Information provided by wireguard"
msgstr ""
msgid "Attempting to start WireGuard"
msgstr ""
msgid "Attempting to stop WireGuard"
msgstr ""
msgid "WireGuard configuration updated successfully"
msgstr ""
msgid "WireGuard configuration failed to be updated"
msgstr ""
msgid "Client Firewall"
msgstr ""
msgid "Firewall is ENABLED"
msgstr ""
msgid "Firewall is OFF"
msgstr ""
msgid "The default firewall will only allow outgoing and already established traffic."
msgstr ""
msgid "No incoming UDP traffic is allowed."
msgstr ""
msgid "There are no restrictions for the access point <code>%s</code>."
msgstr ""
msgid "Exception: Service"
msgstr ""
msgid "allow SSH access on port 22"
msgstr ""
msgid "allow access to the RaspAP GUI on port 80 or 443"
msgstr ""
msgid "Allow incoming connections for some services from the internet side."
msgstr ""
msgid "Exception: network device"
msgstr ""
msgid "Exclude device(s)"
msgstr ""
msgid "Exclude the given network device(s) (separated by a blank or comma) from firewall rules."
msgstr ""
msgid "Current client devices: <code>%s</code>"
msgstr ""
msgid "The access point <code>%s</code> is per default excluded."
msgstr ""
msgid "Exception: IP-Address"
msgstr ""
msgid "Allow incoming connections from"
msgstr ""
msgid "For the given IP-addresses (separated by a blank or comma) the incoming connection (via TCP and UDP) is accepted."
msgstr ""
msgid "This is required for an OpenVPN via UDP or Wireguard connection."
msgstr ""
msgid "The list of configured VPN server IP addresses: <code><b>%s</b></code>"
msgstr ""
msgid "Disable Firewall"
msgstr ""
msgid "Enable Firewall"
msgstr ""
msgid "Apply changes"
msgstr ""

View File

@ -4,7 +4,8 @@
<div class="col-md-6 mb-2"> <div class="col-md-6 mb-2">
<div class="custom-control custom-switch"> <div class="custom-control custom-switch">
<?php $checked = $arrHostapdConf['BridgedEnable'] == 1 ? 'checked="checked"' : '' ?> <?php $checked = $arrHostapdConf['BridgedEnable'] == 1 ? 'checked="checked"' : '' ?>
<input class="custom-control-input" id="chxbridgedenable" name="bridgedEnable" type="checkbox" value="1" <?php echo $checked ?> /> <?php $disabled = strpos(strtolower($operatingSystem),'ubuntu') !== false ? 'disabled="disabled"' : '' ?>
<input class="custom-control-input" id="chxbridgedenable" name="bridgedEnable" type="checkbox" value="1" <?php echo $checked ?> <?php echo $disabled ?> />
<label class="custom-control-label" for="chxbridgedenable"><?php echo _("Bridged AP mode"); ?></label> <label class="custom-control-label" for="chxbridgedenable"><?php echo _("Bridged AP mode"); ?></label>
</div> </div>
</div> </div>

View File

@ -55,6 +55,29 @@
</div> </div>
</div> </div>
</div> </div>
<h4 class="mt-3"><?php echo _("Routing table"); ?></h4>
<div class="card h-100 w-100">
<div class="card-header"><?php echo _("raw output") ?></div>
<div class="card-body">
<div class="row">
<div class="col-sm-12">
<div class="table-responsive">
<table class="table">
<tbody>
<?php foreach($routeInfoRaw as $route): ?>
<tr>
<pre class="unstyled"><?php echo $route; ?></pre>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<h4 class="mt-3"><?php echo _("Current settings") ?></h4> <h4 class="mt-3"><?php echo _("Current settings") ?></h4>
<div class="row"> <div class="row">
<?php if (!$bridgedEnabled) : // No interface details when bridged ?> <?php if (!$bridgedEnabled) : // No interface details when bridged ?>

View File

@ -16,6 +16,12 @@ include('includes/sysstats.php');
<div class="row mb-1"> <div class="row mb-1">
<div class="info-item col-xs-3"><?php echo _("Pi Revision"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars(RPiVersion(), ENT_QUOTES); ?></div> <div class="info-item col-xs-3"><?php echo _("Pi Revision"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars(RPiVersion(), ENT_QUOTES); ?></div>
</div> </div>
<div class="row mb-1">
<div class="info-item col-xs-3"><?php echo _("OS"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($os, ENT_QUOTES); ?></div>
</div>
<div class="row mb-1">
<div class="info-item col-xs-3"><?php echo _("Kernel"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($kernel, ENT_QUOTES); ?></div>
</div>
<div class="row mb-1"> <div class="row mb-1">
<div class="info-item col-xs-3"><?php echo _("Uptime"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($uptime, ENT_QUOTES); ?></div> <div class="info-item col-xs-3"><?php echo _("Uptime"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($uptime, ENT_QUOTES); ?></div>
</div> </div>

View File

@ -936,12 +936,12 @@ copy-descriptor@^0.1.0:
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
copy-props@^2.0.1: copy-props@^2.0.1:
version "2.0.4" version "2.0.5"
resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2"
integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==
dependencies: dependencies:
each-props "^1.3.0" each-props "^1.3.2"
is-plain-object "^2.0.1" is-plain-object "^5.0.0"
core-util-is@1.0.2, core-util-is@~1.0.0: core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2" version "1.0.2"
@ -1143,7 +1143,7 @@ duplexify@^3.6.0:
readable-stream "^2.0.0" readable-stream "^2.0.0"
stream-shift "^1.0.0" stream-shift "^1.0.0"
each-props@^1.3.0: each-props@^1.3.2:
version "1.3.2" version "1.3.2"
resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333"
integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==
@ -2321,6 +2321,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies: dependencies:
isobject "^3.0.1" isobject "^3.0.1"
is-plain-object@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
is-relative@^1.0.0: is-relative@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d"
@ -2757,9 +2762,9 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
version "1.2.5" version "1.2.6"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
version "2.9.0" version "2.9.0"
@ -2817,9 +2822,9 @@ mkdirp@^1.0.3:
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
moment@^2.10.2: moment@^2.10.2:
version "2.24.0" version "2.29.2"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4"
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==
ms@2.0.0: ms@2.0.0:
version "2.0.0" version "2.0.0"