From 1d5d2fd6e54b460b7e0f63b23bb077cfd8566e3c Mon Sep 17 00:00:00 2001
From: Andreas Palm <ap@ewsp.de>
Date: Tue, 14 Mar 2023 23:01:57 +0100
Subject: [PATCH] add new config options for PROXY protocol in server_config
 web section #6477

---
 install/tpl/server.ini.master                 |  4 ++++
 .../web/admin/form/server_config.tform.php    | 19 +++++++++++++++++--
 .../web/admin/lib/lang/ar_server_config.lng   |  1 +
 .../web/admin/lib/lang/bg_server_config.lng   |  1 +
 .../web/admin/lib/lang/br_server_config.lng   |  1 +
 .../web/admin/lib/lang/ca_server_config.lng   |  1 +
 .../web/admin/lib/lang/cz_server_config.lng   |  1 +
 .../web/admin/lib/lang/de_server_config.lng   |  1 +
 .../web/admin/lib/lang/dk_server_config.lng   |  1 +
 .../web/admin/lib/lang/el_server_config.lng   |  1 +
 .../web/admin/lib/lang/en_server_config.lng   |  1 +
 .../web/admin/lib/lang/es_server_config.lng   |  1 +
 .../web/admin/lib/lang/fi_server_config.lng   |  1 +
 .../web/admin/lib/lang/fr_server_config.lng   |  1 +
 .../web/admin/lib/lang/hr_server_config.lng   |  1 +
 .../web/admin/lib/lang/hu_server_config.lng   |  1 +
 .../web/admin/lib/lang/id_server_config.lng   |  1 +
 .../web/admin/lib/lang/it_server_config.lng   |  1 +
 .../web/admin/lib/lang/ja_server_config.lng   |  1 +
 .../web/admin/lib/lang/nl_server_config.lng   |  1 +
 .../web/admin/lib/lang/pl_server_config.lng   |  1 +
 .../web/admin/lib/lang/pt_server_config.lng   |  1 +
 .../web/admin/lib/lang/ro_server_config.lng   |  1 +
 .../web/admin/lib/lang/ru_server_config.lng   |  1 +
 .../web/admin/lib/lang/se_server_config.lng   |  1 +
 .../web/admin/lib/lang/sk_server_config.lng   |  1 +
 .../web/admin/lib/lang/tr_server_config.lng   |  1 +
 .../templates/server_config_web_edit.htm      | 12 +++++++++++-
 28 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index c9949c2793..a9168355eb 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -136,6 +136,10 @@ overquota_notify_onok=n
 logging=yes
 php_fpm_reload_mode=reload
 php_fpm_default_chroot=n
+vhost_proxy_protocol_enabled=n
+vhost_proxy_protocol_protocols=ipv4
+vhost_proxy_protocol_http_port=880
+vhost_proxy_protocol_https_port=8443
 
 [dns]
 bind_user=root
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 679ebb2b7f..f1bda56033 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -926,10 +926,25 @@ $form["tabs"]['web'] = array(
 		),
 		'vhost_proxy_protocol_enabled' => array (
 			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
+			'formtype' => 'SELECT',
 			'default' => 'n',
-			'value' => array(0 => 'n',1 => 'y')
+			'value' => array(
+                'n' => 'Disabled',
+                'y' => 'Enabled (per site)',
+                'all' => 'Enabled (all sites)'
+            )
 		),
+        'vhost_proxy_protocol_protocols' => array(
+            'datatype' => 'VARCHAR',
+            'formtype' => 'SELECT',
+            'value' => array(
+                'none' => 'None',
+                'ipv4' => 'IPv4',
+                'ipv6' => 'IPv6',
+                'ipv4,ipv6' => 'IPv4 + IPv6'
+            ),
+            'default' => 'ipv4'
+        ),
 		'vhost_proxy_protocol_http_port' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index a58dbaaf44..3858a5a095 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index c856e7640f..0d46f65e4d 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index 1041676ceb..d90e835828 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Habilitar protocolo PROXY';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'Porta HTTP protocolo PROXY';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'Porta HTTPS protocolo PROXY';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Gabarito authorized_keys Jailkit';
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 3d4ad3a70c..4f0abe2ee0 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index bdc1152cbc..f716027e4e 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 42046a2e44..e3e1fb8abe 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys Template';
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index d7b081150d..a3cd8b22be 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 40af42057f..4dd7275e04 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 363f528fba..f93598b749 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -344,6 +344,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_hardlinks_txt'] = 'Hardlinks within Jailkit chroot';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index 528dfe36af..dec63be52f 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 906013f785..96dc050503 100644
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 274c2b6804..1733bcdbd7 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index 5d35d0d33f..b0ec440b5d 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 74a5b15701..2dab5571b9 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 2419ee63f1..3bbc2cb620 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index 4d01d70b22..ae62590e52 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -332,6 +332,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) che Rspamd user
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password per Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password per Bayes Redis Server (lasciare vuoto se non usato).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Abilita protocollo PROXY';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'Porta HHTP per il protocollo PROXY';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'Porta HHTPS per il protocollo PROXY';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'modello Jailkit authorized_keys';
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 66d505562b..3ab9fb5b94 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 8ea60a21a8..845ddd018d 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index c186f5d2a6..bd7df00c12 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 2e398500db..977bb97f8e 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index 2756ae7acd..783f444027 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 2fbf9cf7d6..a0a8005316 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index e21017769c..a9b26af274 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 9ec5367be5..a868390d86 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -333,6 +333,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 29ccbe6129..a4cbd91ed6 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -330,6 +330,7 @@ $wb['tooltip_rspamd_redis_bayes_servers_txt'] = 'Redis server(s) which Rspamd wi
 $wb['rspamd_redis_bayes_password_txt'] = 'Redis Password for Bayes';
 $wb['tooltip_rspamd_redis_bayes_password_txt'] = 'Password for Bayes Redis Server (leave blank if unused).';
 $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol';
+$wb['vhost_proxy_protocol_protocols_txt'] = 'Use PROXY Protocol on';
 $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port';
 $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port';
 $wb['jailkit_chroot_authorized_keys_template_txt'] = 'Jailkit authorized_keys template';
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 2161907cb5..1f8185f2b9 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -54,7 +54,17 @@
         <div class="form-group">
             <label for="vhost_proxy_protocol_enabled" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_enabled_txt'}</label>
             <div class="col-sm-9">
-                {tmpl_var name='vhost_proxy_protocol_enabled'}
+                <select name="vhost_proxy_protocol_enabled" id="vhost_proxy_protocol_enabled" class="form-control">
+                    {tmpl_var name='vhost_proxy_protocol_enabled'}
+                </select>
+            </div>
+        </div>
+        <div class="form-group">
+            <label for="vhost_proxy_protocol_protocols" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_protocols_txt'}</label>
+            <div class="col-sm-9">
+                <select name="vhost_proxy_protocol_protocols" id="vhost_proxy_protocol_protocols" class="form-control">
+                    {tmpl_var name='vhost_proxy_protocol_protocols'}
+                </select>
             </div>
         </div>
         <div class="form-group">
-- 
GitLab