WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
WARNING: untranslated string: pakfire invalid tree = Invalid repository selected
WARNING: untranslated string: public key = Public Key
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: reg_file_data_sampling = Register File Data Sampling (RFDS)
WARNING: untranslated string: regenerate host certificate = Renew Host Certificate
WARNING: untranslated string: reiserfs warning1 = Reiserfs is deprecated and scheduled to be removed from the kernel in 2025.
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: winbind daemon = Winbind Daemon
WARNING: untranslated string: wio = unknown string
WARNING: untranslated string: qos enter bandwidths = You will need to enter your downstream and upstream bandwidth!
WARNING: untranslated string: qos graphs = Qos Graphs
WARNING: untranslated string: qos warning = The rule <strong>must</strong> be saved, otherwise it will be discarded!
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: ram = RAM
WARNING: untranslated string: rdns = rDNS
WARNING: untranslated string: read bytes = Bytes Read
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: whois results from = WHOIS results from
WARNING: untranslated string: password has quotation mark = Password contains an illegal double quotation mark.
WARNING: untranslated string: processors = Processors
WARNING: untranslated string: public key = Public Key
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: reg_file_data_sampling = Register File Data Sampling (RFDS)
WARNING: untranslated string: regenerate host certificate = Renew Host Certificate
WARNING: untranslated string: reiserfs warning1 = Reiserfs is deprecated and scheduled to be removed from the kernel in 2025.
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: wio = unknown string
WARNING: untranslated string: password has quotation mark = Password contains an illegal double quotation mark.
WARNING: untranslated string: processors = Processors
WARNING: untranslated string: public key = Public Key
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: reg_file_data_sampling = Register File Data Sampling (RFDS)
WARNING: untranslated string: remarks = unknown string
WARNING: untranslated string: remote subnets = Remote Subnets
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: wio = unknown string
WARNING: untranslated string: processors = Processors
WARNING: untranslated string: ptr = PTR
WARNING: untranslated string: public key = Public Key
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: rdns = rDNS
WARNING: untranslated string: reboot fsck = Reboot & run ‘fsck’
WARNING: untranslated string: rebooting ipfire fsck = Rebooting IPFire, forcing filesystem check
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: whois results from = WHOIS results from
WARNING: untranslated string: processors = Processors
WARNING: untranslated string: ptr = PTR
WARNING: untranslated string: public key = Public Key
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: rdns = rDNS
WARNING: untranslated string: rebooting ipfire fsck = Rebooting IPFire, forcing filesystem check
WARNING: untranslated string: received = Received
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: whois results from = WHOIS results from
WARNING: untranslated string: ptr = PTR
WARNING: untranslated string: public key = Public Key
WARNING: untranslated string: qos enter bandwidths = You will need to enter your downstream and upstream bandwidth!
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: rdns = rDNS
WARNING: untranslated string: reboot fsck = Reboot & run ‘fsck’
WARNING: untranslated string: rebooting ipfire fsck = Rebooting IPFire, forcing filesystem check
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: whois results from = WHOIS results from
WARNING: untranslated string: ptr = PTR
WARNING: untranslated string: public key = Public Key
WARNING: untranslated string: qos enter bandwidths = You will need to enter your downstream and upstream bandwidth!
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: rdns = rDNS
WARNING: untranslated string: reboot fsck = Reboot & run ‘fsck’
WARNING: untranslated string: rebooting ipfire fsck = Rebooting IPFire, forcing filesystem check
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: whois results from = WHOIS results from
WARNING: untranslated string: processors = Processors
WARNING: untranslated string: ptr = PTR
WARNING: untranslated string: public key = Public Key
+WARNING: untranslated string: qr code = QR Code
WARNING: untranslated string: reboot fsck = Reboot & run ‘fsck’
WARNING: untranslated string: rebooting ipfire fsck = Rebooting IPFire, forcing filesystem check
WARNING: untranslated string: received = Received
WARNING: untranslated string: wg no remote subnets = No remote subnets given
WARNING: untranslated string: wg peer configuration = Peer Configuration
WARNING: untranslated string: wg peer does not exist = Peer does not exist
+WARNING: untranslated string: wg scan the qr code = Scan the QR code to import the WireGuard configuration into a mobile client.
WARNING: untranslated string: wg warning configuration only shown once = Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.
WARNING: untranslated string: whitelisted = Whitelisted
WARNING: untranslated string: whois results from = WHOIS results from
< pakfire no dependencies found
< pakfire resolvedeps wait
< public key
+< qr code
< quick control
< random number generator daemon
< regenerate host certificate
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< winbind daemon
< wireguard
< password has quotation mark
< processors
< public key
+< qr code
< regenerate host certificate
< reg_file_data_sampling
< reiserfs warning1
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< whitelisted
< wireguard
< password has quotation mark
< processors
< public key
+< qr code
< reg_file_data_sampling
< remote subnets
< routing
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< whitelisted
< wireguard
< processor vulnerability mitigations
< ptr
< public key
+< qr code
< random number generator daemon
< rdns
< reboot fsck
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< whitelisted
< whois results from
< processor vulnerability mitigations
< ptr
< public key
+< qr code
< random number generator daemon
< rdns
< rebooting ipfire fsck
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< whitelisted
< whois results from
< ptr
< public key
< qos enter bandwidths
+< qr code
< random number generator daemon
< rdns
< reboot fsck
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< whitelisted
< whois results from
< ptr
< public key
< qos enter bandwidths
+< qr code
< random number generator daemon
< rdns
< reboot fsck
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< whitelisted
< whois results from
< processor vulnerability mitigations
< ptr
< public key
+< qr code
< random number generator daemon
< reboot fsck
< rebooting ipfire fsck
< wg peer configuration
< wg peer does not exist
< wg pre-shared key (optional)
+< wg scan the qr code
< wg warning configuration only shown once
< whitelisted
< whois results from
# enable only the following on debugging purpose
use warnings;
use CGI::Carp 'fatalsToBrowser';
+use Imager::QRCode;
use MIME::Base64;
require "/var/ipfire/general-functions.pl";
my $key = shift;
my $private_key = shift;
+ # The generated QR code
+ my $qrcode;
+
# Send HTTP Headers
&Header::showhttpheaders();
# Generate the client configuration
my $config = &generate_client_configuration(\%peer);
+ # Create a QR code generator
+ my $qrgen = Imager::QRCode->new(
+ size => 6,
+ margin => 0,
+ version => 0,
+ level => 'M',
+ mode => '8-bit',
+ casesensitive => 1,
+ lightcolor => Imager::Color->new(255, 255, 255),
+ darkcolor => Imager::Color->new(0, 0, 0),
+ );
+
+ # Encode the configuration
+ my $img = $qrgen->plot("$config");
+
+ # Encode the image as PNG
+ $img->write(data => \$qrcode, type => "png") or die $img->errstr;
+
+ # Encode the image as bas64
+ $qrcode = &MIME::Base64::encode_base64($qrcode);
+
# Open a new box
&Header::openbox('100%', '', "$Lang::tr{'wg peer configuration'}: $peer{'NAME'}");
print <<END;
+ <div class="text-center">
+ <p>
+ <img src="data:image/png;base64,${qrcode}" alt="$Lang::tr{'qr code'}">
+ </p>
+
+ <p>
+ $Lang::tr{'wg scan the qr code'}
+ </p>
+ </div>
+
<h6>$Lang::tr{'wg client configuration file'}</h6>
<code><pre>$config</textarea></code>
'qos enter bandwidths' => 'You will need to enter your downstream and upstream bandwidth!',
'qos graphs' => 'Qos Graphs',
'qos warning' => 'The rule <strong>must</strong> be saved, otherwise it will be discarded!',
+'qr code' => 'QR Code',
'quick control' => 'Quick Control',
'quick playlist' => 'Quick Playlist',
'ram' => 'RAM',
'wg peer configuration' => 'Peer Configuration',
'wg peer does not exist' => 'Peer does not exist',
'wg pre-shared key (optional)' => 'Pre-Shared Key (optional)',
+'wg scan the qr code' => 'Scan the QR code to import the WireGuard configuration into a mobile client.',
'wg warning configuration only shown once' => 'Attention: This WireGuard configuration file will only be shown this one time as it contains private key material that is not being stored on IPFire.',
'whitelisted' => 'Whitelisted',
'whois results from' => 'WHOIS results from',