diff --git a/install/dist/tpl/gentoo/jk_init.ini.master b/install/dist/tpl/gentoo/jk_init.ini.master
index a2ff3a19517d46019a7843c6189be49698d4684f..6e11d05fd5414b5d3904bc3b188efd8b52e8f816 100644
--- a/install/dist/tpl/gentoo/jk_init.ini.master
+++ b/install/dist/tpl/gentoo/jk_init.ini.master
@@ -99,6 +99,8 @@ directories = /etc/joe, /etc/terminfo, /usr/share/vim, /usr/share/terminfo, /usr
 comment = several internet utilities like wget, ftp, rsync, scp, ssh
 executables = /usr/bin/wget, /usr/bin/lynx, /usr/bin/ftp, /usr/bin/host, /usr/bin/rsync, /usr/bin/smbclient
 includesections = netbasics, ssh, sftp, scp
+directories = /etc/ssl/certs/
+regularfiles = /usr/lib/ssl/certs
 
 [apacheutils]
 comment = htpasswd utility
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 346b62b9abe3d4c84fbe94715a0d4cb0a9fdbae7..e5ac1428d8f7cc817c6a36f3f274c020b4ed7af3 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2478,24 +2478,13 @@ class installer_base {
 		//* copy the ISPConfig security part
 		$command = 'cp -rf ../security '.$install_dir;
 		caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-		
-		//* Apply changed security_settings.ini values to new security_settings.ini file
-		if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) {
-			$security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~'));
-			$security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini'));
-			if(is_array($security_settings_new) && is_array($security_settings_old)) {
-				foreach($security_settings_new as $section => $sval) {
-					if(is_array($sval)) {
-						foreach($sval as $key => $val) {
-							if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) {
-								$security_settings_new[$section][$key] = $security_settings_old[$section][$key];
-							}
-						}
-					}
-				}
-				file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new));
-			}
+	
+		$configfile = 'security_settings.ini';
+		if(is_file($install_dir.'/security/'.$configfile)) {
+			copy($install_dir.'/security/'.$configfile, $install_dir.'/security/'.$configfile.'~');
 		}
+		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master');
+		wf($install_dir.'/security/'.$configfile, $content);	
 
 		//* Create a symlink, so ISPConfig is accessible via web
 		// Replaced by a separate vhost definition for port 8080
diff --git a/install/sql/README.txt b/install/sql/README.txt
index fe15ce5403747dd82bd02da4c6989a7a247e1ac0..97a07a4863fd9a4759b16ec54205fae4440957f1 100644
--- a/install/sql/README.txt
+++ b/install/sql/README.txt
@@ -9,18 +9,15 @@ then follow these steps:
 1) Add the field or table in the ispconfig3.sql file. This file contains the
    complete database dump which is used when ISPConfig gets installed.
    
-2) Create a new file in the "incremental" subfolder wich contains the alter 
-   table, or if it is a complete new table then the add table, statement(s) in 
-   MySQL syntax which is/are required to modify the current ispconfig database 
-   during update. The naming scheme of the sql patch update files is 
-   upd_0001.sql, upd_0002.sql, upd_0003.sql etc. Ensure that the number that 
-   you choose for the new file is a +1 increment of the number of the last
-   existing file and that the number is formatted with 4 digits.
+2) Add your ALTER TABLE, or if it is a complete new table then the add table,
+   statement(s) in MySQL syntax which is/are required to modify the current
+   ispconfig database during update to the file upd_dev_collection.sql in the
+   sql/incremental subfolder.
    
-   A patch file may contain one or more alter table statements. Every patch file
-   gets executed once in the database, so do not modify older (already released) 
-   patch files, they will not get executed again if the update was already run 
-   once on a system.
+   Please do not create new patch sql files as those will be generated on
+   new releases from the upd_dev_collection.sql file. Also please do not
+   modify older (already released) patch files, they will not get executed
+   again if the update was already run once on a system.
    
    After a patch has been executed, the dbversion field in the server table gets
    increeased to the version number of the last installed patch.
diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index 29ba602bf817b238a69adf828adb9f1a091e6e13..d07b33d4ba797e17a200160ac030bb16172d2bb2 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -1,3 +1,15 @@
 -- add new proxy_protocol column
 ALTER TABLE `web_domain`
     ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `log_retention`;
+
+-- backup format
+ALTER TABLE `web_domain` ADD  `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default' AFTER `backup_copies`;
+ALTER TABLE `web_domain` ADD  `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip' AFTER `backup_format_web`;
+-- end of backup format
+
+-- backup encryption
+ALTER TABLE `web_domain` ADD  `backup_encrypt` enum('n','y') NOT NULL DEFAULT 'n' AFTER `backup_format_db`;
+ALTER TABLE `web_domain` ADD  `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `backup_encrypt`;
+ALTER TABLE `web_backup` ADD  `backup_format` VARCHAR( 64 ) NOT NULL DEFAULT '' AFTER `backup_mode`;
+ALTER TABLE `web_backup` ADD  `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `filesize`;
+-- end of backup encryption
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index bfef9733e5e05d719aa7fd3c6ac596247f3a8d47..b64eab94c3f6346a107ffc2d9fdd24d4fd5602d3 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1922,9 +1922,11 @@ CREATE TABLE `web_backup` (
   `parent_domain_id` int(10) unsigned NOT NULL DEFAULT '0',
   `backup_type` enum('web','mysql','mongodb') NOT NULL DEFAULT 'web',
   `backup_mode` varchar(64) NOT NULL DEFAULT  '',
+  `backup_format` varchar(64) NOT NULL DEFAULT '',
   `tstamp` int(10) unsigned NOT NULL DEFAULT '0',
   `filename` varchar(255) NOT NULL DEFAULT '',
   `filesize` VARCHAR(20) NOT NULL DEFAULT '',
+  `backup_password` VARCHAR(255) NOT NULL DEFAULT '',
   PRIMARY KEY (`backup_id`)
 ) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
 
@@ -2055,6 +2057,10 @@ CREATE TABLE `web_domain` (
   `custom_php_ini` mediumtext,
   `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none',
   `backup_copies` INT NOT NULL DEFAULT '1',
+  `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default',
+  `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip',
+  `backup_encrypt` enum('n','y') NOT NULL DEFAULT 'n',
+  `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '',
   `backup_excludes` mediumtext,
   `active` enum('n','y') NOT NULL default 'y',
   `traffic_quota_lock` enum('n','y') NOT NULL default 'n',
diff --git a/install/tpl/jk_init.ini.master b/install/tpl/jk_init.ini.master
index d34332b72e31655a5909a33e64672b3e6c2a752e..469e655a310469d38ebc5b9f852022d4c82000de 100644
--- a/install/tpl/jk_init.ini.master
+++ b/install/tpl/jk_init.ini.master
@@ -96,6 +96,8 @@ directories = /etc/joe, /etc/terminfo, /usr/share/vim, /usr/share/terminfo, /lib
 comment = several internet utilities like wget, ftp, rsync, scp, ssh
 executables = /usr/bin/wget, /usr/bin/lynx, /usr/bin/ftp, /usr/bin/host, /usr/bin/rsync, /usr/bin/smbclient
 includesections = netbasics, ssh, sftp, scp
+directories = /etc/ssl/certs/
+regularfiles = /usr/lib/ssl/certs
 
 [apacheutils]
 comment = htpasswd utility
diff --git a/security/security_settings.ini b/install/tpl/security_settings.ini.master
similarity index 100%
rename from security/security_settings.ini
rename to install/tpl/security_settings.ini.master
diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php
index 8e4c17af7938bf4e4d867bc65ee84be1eb735b94..b1ebf9d189520f667c06af8c56c3202d788635a4 100644
--- a/interface/lib/classes/aps_guicontroller.inc.php
+++ b/interface/lib/classes/aps_guicontroller.inc.php
@@ -340,6 +340,8 @@ class ApsGUIController extends ApsBase
 								 "remote_access" => $mysql_db_remote_access,
 								 "remote_ips" => $mysql_db_remote_ips,
 								 "backup_copies" => $websrv['backup_copies'],
+								 "backup_format_web" => $websrv['backup_format_web'],
+								 "backup_format_db" => $websrv['backup_format_db'],
 								 "active" => 'y', 
 								 "backup_interval" => $websrv['backup_interval']
 								 );
diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php
index e0ffb628ee8adad78aaba3cd35747f6e19c09976..86eebd3d6465922cca3f236e2dd5123209674b80 100644
--- a/interface/lib/classes/listform_actions.inc.php
+++ b/interface/lib/classes/listform_actions.inc.php
@@ -189,6 +189,7 @@ class listform_actions {
 		//* substitute value for select fields
 		if(is_array($app->listform->listDef['item']) && count($app->listform->listDef['item']) > 0) {
 			foreach($app->listform->listDef['item'] as $field) {
+				if($rec['active'] == 'n') $rec['warn_inactive'] = 'y';
 				$key = $field['field'];
 				if(isset($field['formtype']) && $field['formtype'] == 'SELECT') {
 					if(strtolower($rec[$key]) == 'y' or strtolower($rec[$key]) == 'n') {
diff --git a/interface/lib/classes/plugin_backuplist.inc.php b/interface/lib/classes/plugin_backuplist.inc.php
index e96be012e3d6847d43ba990cd9b79c82c3f247f3..9e21dc6ba6a59b5eef2d77af2e242a00378bbf4e 100644
--- a/interface/lib/classes/plugin_backuplist.inc.php
+++ b/interface/lib/classes/plugin_backuplist.inc.php
@@ -37,6 +37,34 @@ class plugin_backuplist extends plugin_base {
 	var $formdef;
 	var $options;
 
+	/**
+	 * Process request to make a backup. This request is triggered manually by the user in the ISPConfig interface.
+	 * @param string $message
+	 * @param string $error
+	 * @param string[] $wb language text
+	 * @author Ramil Valitov <ramilvalitov@gmail.com>
+	 * @uses backup_plugin::make_backup_callback() this method is called later in the plugin to run the backup
+	 */
+	protected function makeBackup(&$message, &$error, $wb)
+	{
+		global $app;
+
+		$mode = $_GET['make_backup'];
+		$action_type = ($mode == 'web') ? 'backup_web_files' : 'backup_database';
+		$domain_id = intval($this->form->id);
+
+		$sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = ? AND action_param = ?";
+		$tmp = $app->db->queryOneRecord($sql, $action_type, $domain_id);
+		if ($tmp['number'] == 0) {
+			$server_id = $this->form->dataRecord['server_id'];
+			$message .= $wb['backup_info_txt'];
+			$sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) VALUES (?, UNIX_TIMESTAMP(), ?, ?, 'pending', '')";
+			$app->db->query($sql, $server_id, $action_type, $domain_id);
+		} else {
+			$error .= $wb['backup_pending_txt'];
+		}
+	}
+
 	function onShow() {
 
 		global $app;
@@ -52,6 +80,10 @@ class plugin_backuplist extends plugin_base {
 		$message = '';
 		$error = '';
 
+		if (isset($_GET['make_backup'])) {
+			$this->makeBackup($message, $error, $wb);
+		}
+
 		if(isset($_GET['backup_action'])) {
 			$backup_id = $app->functions->intval($_GET['backup_id']);
 
@@ -137,7 +169,30 @@ class plugin_backuplist extends plugin_base {
 				$rec["bgcolor"] = $bgcolor;
 
 				$rec['date'] = date($app->lng('conf_format_datetime'), $rec['tstamp']);
-				$rec['backup_type'] = $wb[('backup_type_'.$rec['backup_type'])];
+				$backup_format = $rec['backup_format'];
+				if (empty($backup_format)) {
+					//We have a backup from old version of ISPConfig
+					switch ($rec['backup_type']) {
+						case 'mysql':
+							$backup_format = 'gzip';
+							break;
+						case 'web':
+							$backup_format = ($rec['backup_mode'] == 'userzip') ? 'zip' : 'tar_gzip';
+							break;
+						default:
+							$app->log('Unsupported backup type "' . $rec['backup_type'] . '" for backup id ' . $rec['backup_id'], LOGLEVEL_ERROR);
+							break;
+					}
+				}
+				$rec['backup_type'] = $wb[('backup_type_' . $rec['backup_type'])];
+				$backup_format = (!empty($backup_format)) ? $wb[('backup_format_' . $backup_format . '_txt')] : $wb["backup_format_unknown_txt"];
+				if (empty($backup_format))
+					$backup_format = $wb["backup_format_unknown_txt"];
+
+				$rec['backup_format'] = $backup_format;
+				$rec['backup_encrypted'] = empty($rec['backup_password']) ? $wb["no_txt"] : $wb["yes_txt"];
+				$backup_manual_prefix = 'manual-';
+				$rec['backup_job'] = (substr($rec['filename'], 0, strlen($backup_manual_prefix)) == $backup_manual_prefix) ? $wb["backup_job_manual_txt"] : $wb["backup_job_auto_txt"];
 				
 				$rec['download_available'] = true;
 				if($rec['server_id'] != $web['server_id']) $rec['download_available'] = false;
diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php
index d90b90bd8910a09c733847156fe3641c57292816..9efbecc09177c976c24baef19ba062b3c5bd0e36 100644
--- a/interface/lib/classes/remote.d/sites.inc.php
+++ b/interface/lib/classes/remote.d/sites.inc.php
@@ -132,10 +132,12 @@ class remoting_sites extends remoting {
 			$app->sites_database_plugin->processDatabaseInsert($this);
 			
 			// set correct values for backup_interval and backup_copies
-			if(isset($params['backup_interval']) || isset($params['backup_copies'])){
+			if(isset($params['backup_interval']) || isset($params['backup_copies']) || isset($params['backup_format_web']) || isset($params['backup_format_db'])){
 				$sql_set = array();
 				if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'";
 				if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']);
+				if(isset($params['backup_format_web'])) $sql_set[] = "backup_format_web = ".$app->functions->intval($params['backup_format_web']);
+				if(isset($params['backup_format_db'])) $sql_set[] = "backup_format_db = ".$app->functions->intval($params['backup_format_db']);
 				$this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval, $retval, $params);
 			}
 			
@@ -165,10 +167,12 @@ class remoting_sites extends remoting {
 			$retval = $this->updateQueryExecute($sql, $primary_id, $params);
 			
 			// set correct values for backup_interval and backup_copies
-			if(isset($params['backup_interval']) || isset($params['backup_copies'])){
+			if(isset($params['backup_interval']) || isset($params['backup_copies']) || isset($params['backup_format_web']) || isset($params['backup_format_db'])){
 				$sql_set = array();
 				if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'";
 				if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']);
+				if(isset($params['backup_format_web'])) $sql_set[] = "backup_format_web = ".$app->functions->intval($params['backup_format_web']);
+				if(isset($params['backup_format_db'])) $sql_set[] = "backup_format_db = ".$app->functions->intval($params['backup_format_db']);
 				$this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$primary_id, $primary_id, $params);
 			}
 			
diff --git a/interface/lib/classes/sites_database_plugin.inc.php b/interface/lib/classes/sites_database_plugin.inc.php
index 89cb7ce9c278a649d610a2a8ef4891cafbb47ebd..faf3fa30f7f36904a821c42280c7e52219aaf2be 100644
--- a/interface/lib/classes/sites_database_plugin.inc.php
+++ b/interface/lib/classes/sites_database_plugin.inc.php
@@ -45,10 +45,12 @@ class sites_database_plugin {
 			//* The Database user shall be owned by the same group then the website
 			$sys_groupid = $app->functions->intval($web['sys_groupid']);
 			$backup_interval = $web['backup_interval'];
+			$backup_format_web = $web['backup_format_web'];
+			$backup_format_db = $web['backup_format_db'];
 			$backup_copies = $app->functions->intval($web['backup_copies']);
 
-			$sql = "UPDATE web_database SET sys_groupid = ?, backup_interval = ?, backup_copies = ? WHERE database_id = ?";
-			$app->db->query($sql, $sys_groupid, $backup_interval, $backup_copies, $form_page->id);
+			$sql = "UPDATE web_database SET sys_groupid = ?, backup_interval = ?, backup_copies = ?, backup_format_web = ?, backup_format_db = ? WHERE database_id = ?";
+			$app->db->query($sql, $sys_groupid, $backup_interval, $backup_copies, $backup_format_web, $backup_format_db, $form_page->id);
 		}
 	}
 
diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php
index 0be2b6b1e9a7c774601c95caf94b5ad12f9282d3..b6d3479694193287a1e8c878e5af11225e5b7a3d 100644
--- a/interface/lib/classes/system.inc.php
+++ b/interface/lib/classes/system.inc.php
@@ -97,5 +97,17 @@ class system {
 		call_user_func_array(array($this, 'exec_safe'), func_get_args());
 		return implode("\n", $this->_last_exec_out);
 	}	
+
+    //* Check if a application is installed
+    public function is_installed($appname) {
+        $this->exec_safe('which ? 2> /dev/null', $appname);
+        $out = $this->last_exec_out();
+        $returncode = $this->last_exec_retcode();
+        if(isset($out[0]) && stristr($out[0], $appname) && $returncode == 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
 	
 } //* End Class
diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
index 2d1ce3794ac2407f67a73c28c79dc6ab124505bd..3f9b0db5b6b7ef92fcbaf112ca4ea092d22872fb 100644
--- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
+++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
@@ -249,18 +249,22 @@ class sites_web_vhost_domain_plugin {
 				}
 
 				//* Change database backup options when web backup options have been changed
-				if(isset($page_form->dataRecord['backup_interval']) && ($page_form->dataRecord['backup_interval'] != $page_form->oldDataRecord['backup_interval'] || $page_form->dataRecord['backup_copies'] != $page_form->oldDataRecord['backup_copies'])) {
+				if(isset($page_form->dataRecord['backup_interval']) && ($page_form->dataRecord['backup_interval'] != $page_form->oldDataRecord['backup_interval'] || $page_form->dataRecord['backup_copies'] != $page_form->oldDataRecord['backup_copies'] || $page_form->dataRecord['backup_format_web'] != $page_form->oldDataRecord['backup_format_web'] || $page_form->dataRecord['backup_format_db'] != $page_form->oldDataRecord['backup_format_db'])) {
 					//* Update all databases
 					$backup_interval = $page_form->dataRecord['backup_interval'];
 					$backup_copies = $app->functions->intval($page_form->dataRecord['backup_copies']);
+					$backup_format_web = $page_form->dataRecord['backup_format_web'];
+					$backup_format_db = $page_form->dataRecord['backup_format_db'];
 					$records = $app->db->queryAllRecords("SELECT database_id FROM web_database WHERE parent_domain_id = ".$page_form->id);
 					foreach($records as $rec) {
-						$app->db->datalogUpdate('web_database', array("backup_interval" => $backup_interval, "backup_copies" => $backup_copies), 'database_id', $rec['database_id']);
+						$app->db->datalogUpdate('web_database', array("backup_interval" => $backup_interval, "backup_copies" => $backup_copies, "backup_format_web" => $backup_format_web, "backup_format_db" => $backup_format_db), 'database_id', $rec['database_id']);
 					}
 					unset($records);
 					unset($rec);
 					unset($backup_copies);
 					unset($backup_interval);
+                    unset($backup_format_web);
+                    unset($backup_format_db);
 				}
 
 				//* Change vhost subdomain and alias ip/ipv6 if domain ip/ipv6 has changed
diff --git a/interface/web/admin/form/users.tform.php b/interface/web/admin/form/users.tform.php
index be77122b103a1cae9f0f9bc9f6fa0bf86a514598..30c9cbb397c1685c7166a84f9c68ee6679a90dd8 100644
--- a/interface/web/admin/form/users.tform.php
+++ b/interface/web/admin/form/users.tform.php
@@ -61,7 +61,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 $form['title']   = 'Users';
-$form['description']  = 'Form to edit systemusers.';
+//$form['description']  = 'Form to edit systemusers.';
 $form['name']   = 'users';
 $form['action']  = 'users_edit.php';
 $form['db_table'] = 'sys_user';
diff --git a/interface/web/admin/lib/lang/bg_server_ip_map.lng b/interface/web/admin/lib/lang/bg_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/bg_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/bg_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/br_server_ip_map.lng b/interface/web/admin/lib/lang/br_server_ip_map.lng
index 81a2bb4b961b2cb771f0a1a282376442345641ce..51af1099abed80be91981ef6bcbdefebc4834ba5 100644
--- a/interface/web/admin/lib/lang/br_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/br_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Servidor para mapeamento IP';
 $wb['source_txt'] = 'Endereço IP de origem';
 $wb['destination_txt'] = 'Endereço IP de destino';
diff --git a/interface/web/admin/lib/lang/ca_server_ip_map.lng b/interface/web/admin/lib/lang/ca_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/ca_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/ca_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/cz_server_ip_map.lng b/interface/web/admin/lib/lang/cz_server_ip_map.lng
index 683451d1d8fcb8d77a215ebcee5c95029b824cb0..57c5ba010803e1b3d759ba34bc29fa9b239cf4cf 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Zdrojová IP adresa';
 $wb['destination_txt'] = 'Cílová IP adresa';
diff --git a/interface/web/admin/lib/lang/de_server_ip_map.lng b/interface/web/admin/lib/lang/de_server_ip_map.lng
index 4fdb51be1abaab0076396e1a6193246112809ec3..96863c72617ce92ef462324f8ec899a4bcbdd396 100644
--- a/interface/web/admin/lib/lang/de_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/de_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite auf Server';
 $wb['source_txt'] = 'eigentliche IP';
 $wb['destination_txt'] = 'neue IP';
diff --git a/interface/web/admin/lib/lang/de_server_php.lng b/interface/web/admin/lib/lang/de_server_php.lng
index 67dad7064ae56db3e87a1e8e2885dcaee572ffe2..f43e79b4af19076cf177201298c3b6988e959b48 100644
--- a/interface/web/admin/lib/lang/de_server_php.lng
+++ b/interface/web/admin/lib/lang/de_server_php.lng
@@ -14,4 +14,6 @@ $wb['php_fpm_init_script_txt'] = 'Pfad zum PHP-FPM Init Script';
 $wb['php_fpm_ini_dir_txt'] = 'Pfad zum php.ini Verzeichnis';
 $wb['php_fpm_pool_dir_txt'] = 'Pfad zum PHP-FPM Pool Verzeichnis';
 $wb['active_txt'] = 'Aktiv';
+$wb['php_in_use_error'] = 'Diese PHP-Version wird noch benutzt.';
+$wb['php_name_in_use_error'] = 'Der Name kann nicht geändert werden.';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_server_ip_map.lng b/interface/web/admin/lib/lang/dk_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/dk_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/dk_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/el_server_ip_map.lng b/interface/web/admin/lib/lang/el_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/el_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/el_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/en_server_ip_map.lng b/interface/web/admin/lib/lang/en_server_ip_map.lng
index 94508abb79482826e697520969cf9948b1dc61e4..d47d33cf360ea2c95341a81efa3e29257a708273 100644
--- a/interface/web/admin/lib/lang/en_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/en_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb["server_id_txt"] = 'Rewrite on Server';
 $wb["source_txt"] = 'Source IP';
 $wb["destination_txt"] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/en_server_php.lng b/interface/web/admin/lib/lang/en_server_php.lng
index 179a8fc357142ea401cd663697ef817237957d10..9d322804bb689273678d0733d9ba6e23c738b6c6 100644
--- a/interface/web/admin/lib/lang/en_server_php.lng
+++ b/interface/web/admin/lib/lang/en_server_php.lng
@@ -14,4 +14,6 @@ $wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script';
 $wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory';
 $wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory';
 $wb['active_txt'] = 'Active';
+$wb['php_in_use_error'] = 'This PHP-Version is in use.';
+$wb['php_name_in_use_error'] = 'The name can not be changed.';
 ?>
diff --git a/interface/web/admin/lib/lang/es_server_ip_map.lng b/interface/web/admin/lib/lang/es_server_ip_map.lng
index 4cf57cdc82e87405d5d6f32ddea57bb028c00bcf..c151fb565c1937fb77db691c8b49399da3963d79 100644
--- a/interface/web/admin/lib/lang/es_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/es_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['active_txt'] = 'Activo';
 $wb['destination_ip_empty'] = 'La IP de destino está vacía.';
 $wb['destination_txt'] = 'IP de destino';
diff --git a/interface/web/admin/lib/lang/fi_server_ip_map.lng b/interface/web/admin/lib/lang/fi_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/fi_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/fi_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/fr_server_ip_map.lng b/interface/web/admin/lib/lang/fr_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/fr_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/fr_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/hr_server_ip_map.lng b/interface/web/admin/lib/lang/hr_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/hr_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/hr_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/hu_server_ip_map.lng b/interface/web/admin/lib/lang/hu_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/hu_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/hu_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/id_server_ip_map.lng b/interface/web/admin/lib/lang/id_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/id_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/id_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/it_server_ip_map.lng b/interface/web/admin/lib/lang/it_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/it_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/it_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/ja_server_ip_map.lng b/interface/web/admin/lib/lang/ja_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/ja_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/ja_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/nl_server_ip_map.lng b/interface/web/admin/lib/lang/nl_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/nl_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/nl_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/pl_server_ip_map.lng b/interface/web/admin/lib/lang/pl_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/pl_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/pl_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/pt_server_ip_map.lng b/interface/web/admin/lib/lang/pt_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/pt_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/pt_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/ro_server_ip_map.lng b/interface/web/admin/lib/lang/ro_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/ro_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/ro_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/ru_server_ip_map.lng b/interface/web/admin/lib/lang/ru_server_ip_map.lng
index 2b284360e506113421c9644131a82544ef59fae0..467edf86e4563910bd85f3348598bd40f6072ac9 100644
--- a/interface/web/admin/lib/lang/ru_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/ru_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite на сервер';
 $wb['source_txt'] = 'IP-адрес источника';
 $wb['destination_txt'] = 'IP-адрес назначения';
diff --git a/interface/web/admin/lib/lang/se_server_ip_map.lng b/interface/web/admin/lib/lang/se_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/se_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/se_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/sk_server_ip_map.lng b/interface/web/admin/lib/lang/sk_server_ip_map.lng
index 68b196fb23a8a805455d768e32ed419d405f9ecb..f02bdafd848b900e9960346c10c6e927221b10f7 100644
--- a/interface/web/admin/lib/lang/sk_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/sk_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Rewrite on Server';
 $wb['source_txt'] = 'Source IP';
 $wb['destination_txt'] = 'Destination IP';
diff --git a/interface/web/admin/lib/lang/tr_server_ip_map.lng b/interface/web/admin/lib/lang/tr_server_ip_map.lng
index c05e19c4b1f808b77b2864c3afdd0d4eec22dd20..e18a2433440fb4dc936fec39940d1770e482592e 100644
--- a/interface/web/admin/lib/lang/tr_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/tr_server_ip_map.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['server_ip_map_title'] = 'IPv4 Address mapping';
+$wb['server_ip_map_desc'] = 'Form to map IPv4-addresses for Web-Server';
 $wb['server_id_txt'] = 'Sunucuda Yeniden Yazma';
 $wb['source_txt'] = 'Kaynak IP';
 $wb['destination_txt'] = 'Hedef IP';
diff --git a/interface/web/admin/server_php_del.php b/interface/web/admin/server_php_del.php
index 6848eea8d472a0c787e011558b7429375fc7965e..f160c1b2d93e89db8899b97cb31364f0811d7cd1 100644
--- a/interface/web/admin/server_php_del.php
+++ b/interface/web/admin/server_php_del.php
@@ -46,7 +46,39 @@ require_once '../../lib/app.inc.php';
 $app->auth->check_module_permissions('admin');
 $app->auth->check_security_permissions('admin_allow_server_php');
 
-$app->uses("tform_actions");
-$app->tform_actions->onDelete();
+$app->uses('tpl,tform,tform_actions');
+$app->load('tform_actions');
+
+class page_action extends tform_actions {
+
+	function onBeforeDelete() {
+		global $app; $conf;
+
+		$check = array();
+
+		// fastcgi
+		if(!empty(trim($this->dataRecord['php_fastcgi_binary']))) $check[] = trim($this->dataRecord['php_fastcgi_binary']);
+		if(!empty(trim($this->dataRecord['php_fastcgi_ini_dir']))) $check[] = trim($this->dataRecord['php_fastcgi_ini_dir']);
+		if(!empty($check)) $fastcgi_check = implode(':', $check);
+		unset($check);
+
+		// fpm
+		if(!empty(trim($this->dataRecord['php_fpm_init_script']))) $check[] = trim($this->dataRecord['php_fpm_init_script']);
+		if(!empty(trim($this->dataRecord['php_fpm_ini_dir']))) $check[] = trim($this->dataRecord['php_fpm_ini_dir']);
+		if(!empty(trim($this->dataRecord['php_fpm_pool_dir']))) $check[] = trim($this->dataRecord['php_fpm_pool_dir']);
+		if(!empty($check)) $fpm_check = implode(':', $check);
+
+ 		$sql = 'SELECT domain_id FROM web_domain WHERE server_id = ? AND fastcgi_php_version LIKE ?';
+ 		if(isset($fastcgi_check)) $web_domains_fastcgi = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fastcgi_check);
+		if(isset($fpm_check)) $web_domains_fpm = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fpm_check);
+
+		if(!empty($webdomains_fastcgi) || !empty($web_domains_fpm))	$app->error($app->tform->lng('php_in_use_error'));
+
+	}
+
+}
+
+$page = new page_action;
+$page->onDelete();
 
 ?>
diff --git a/interface/web/admin/server_php_edit.php b/interface/web/admin/server_php_edit.php
index 12aacf60b92a687c75c71f33fad9abe5b83cad5a..c200b25bae2a72a7d60a3afe17d425b83b2e5282 100644
--- a/interface/web/admin/server_php_edit.php
+++ b/interface/web/admin/server_php_edit.php
@@ -50,7 +50,35 @@ $app->uses('tpl,tform,tform_actions');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
+	function onSubmit() {
+		global $app;
+
+		if(isset($this->id) && $this->id > 0 && $app->tform->getCurrentTab() == 'php_name') {
+			$rec = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $this->id);
+			if($rec['name'] != $this->dataRecord['name']) {
+				$check = array();
+				// fastcgi
+				if($rec['php_fastcgi_binary'] != '') $check[] = $rec['php_fastcgi_binary'];
+				if($rec['php_fastcgi_ini_dir'] != '') $check[] = $rec['php_fastcgi_ini_dir'];
+				if(!empty($check)) $fastcgi_check = implode(':', $check);
+				unset($check);
+				// fpm
+				if($rec['php_fpm_init_script'] != '') $check[] = $rec['php_fpm_init_script'];
+				if($rec['php_fpm_ini_dir'] != '') $check[] = $rec['php_fpm_ini_dir'];
+				if($rec['php_fpm_pool_dir'] != '') $check[] = $rec['php_fpm_pool_dir'];
+				if(!empty($check)) $fpm_check = implode(':', $check);
+
+ 				$sql = 'SELECT domain_id FROM web_domain WHERE server_id = ? AND fastcgi_php_version LIKE ?';
+		 		if(isset($fastcgi_check)) $web_domains_fastcgi = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fastcgi_check);
+				if(isset($fpm_check)) $web_domains_fpm = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fpm_check);
+
+				if(!empty($webdomains_fastcgi) || !empty($web_domains_fpm))	$app->error($app->tform->lng('php_in_use_error').' '.$app->tform->lng('php_name_in_use_error'));
+			}
+		}
 
+		parent::onSubmit();
+
+	}
 	function onBeforeUpdate() {
 		global $app, $conf;
 
diff --git a/interface/web/admin/templates/directive_snippets_edit.htm b/interface/web/admin/templates/directive_snippets_edit.htm
index 657d0ad1efe1f71594958643c09561df98dbc3b6..ee4d2ab3cd84c6ce0a9f75e99d474f65cdfd3e54 100644
--- a/interface/web/admin/templates/directive_snippets_edit.htm
+++ b/interface/web/admin/templates/directive_snippets_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <tmpl_if name='is_master'><div class="col-sm-9 col-text">{tmpl_var name='name'}</div></tmpl_else><div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></tmpl_if>
diff --git a/interface/web/admin/templates/firewall_edit.htm b/interface/web/admin/templates/firewall_edit.htm
index cd643a8cafb67e8e06160805fb5b23243c327a1d..07fe3d0ff52e3e3a8e0748b1e13a0b9674aa2b02 100644
--- a/interface/web/admin/templates/firewall_edit.htm
+++ b/interface/web/admin/templates/firewall_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -30,4 +23,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/firewall_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/firewall_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/admin/templates/remote_action_osupdate.htm b/interface/web/admin/templates/remote_action_osupdate.htm
index d5fa2fffd5c1c8d7dc3cbfdeef4acee489f8c5ec..55629fc1e9adfd21c39dc384a85200e39f3e42b8 100644
--- a/interface/web/admin/templates/remote_action_osupdate.htm
+++ b/interface/web/admin/templates/remote_action_osupdate.htm
@@ -4,7 +4,6 @@
 <p><tmpl_var name="do_osupdate_desc"></p>
 
 
-        <legend>{tmpl_var name='do_osupdate_caption'}</legend>
             <div class="form-group">
                 <label for="server_select" class="col-sm-3 control-label">{tmpl_var name='select_server_txt'}</label>
                 <div class="col-sm-9"><select name="server_select" id="server" class="form-control" onchange="$('#OKMsg').hide(); ">
@@ -19,4 +18,4 @@
             
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_do_txt'}" data-submit-form="pageForm" data-form-action="admin/remote_action_osupdate.php">{tmpl_var name='btn_do_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/admin/templates/remote_user_edit.htm b/interface/web/admin/templates/remote_user_edit.htm
index 099af58eb50c946f59bed638e56c9e07b5d25c3b..723c3e6966b9c6967281443ab996d14b0eaf2324 100644
--- a/interface/web/admin/templates/remote_user_edit.htm
+++ b/interface/web/admin/templates/remote_user_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="remote_username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="remote_username" id="username" value="{tmpl_var name='remote_username'}" class="form-control" /></div></div>
diff --git a/interface/web/admin/templates/server_edit_services.htm b/interface/web/admin/templates/server_edit_services.htm
index 2775e029d3d6a1b85ab3012e40b6e0ca2b0b8ba9..b0aca56b17b0b842cb8e9c07b9f54c083fd16673 100644
--- a/interface/web/admin/templates/server_edit_services.htm
+++ b/interface/web/admin/templates/server_edit_services.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_name" class="col-sm-3 control-label">{tmpl_var name='server_name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="server_name" id="server_name" value="{tmpl_var name='server_name'}" class="form-control" /></div></div>
diff --git a/interface/web/admin/templates/server_ip_edit.htm b/interface/web/admin/templates/server_ip_edit.htm
index 85f06432e8de0e33804e5b40eb0f9d0a24f5aa1d..f0e0eb78d78b6c72b0a0185c2fe3399899bfc83f 100644
--- a/interface/web/admin/templates/server_ip_edit.htm
+++ b/interface/web/admin/templates/server_ip_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>{tmpl_var name='server_ip_edit_title'}</legend>
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
diff --git a/interface/web/admin/templates/server_ip_map_edit.htm b/interface/web/admin/templates/server_ip_map_edit.htm
index bba26348aed0e9af04a05ff6d2aa8d64390e13d3..6986213742256cb43f9cfe71c941372e3a517433 100644
--- a/interface/web/admin/templates/server_ip_map_edit.htm
+++ b/interface/web/admin/templates/server_ip_map_edit.htm
@@ -1,7 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
 <div class="form-group">
 	<label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
 	<div class="col-sm-9">
diff --git a/interface/web/admin/templates/server_php_fastcgi_edit.htm b/interface/web/admin/templates/server_php_fastcgi_edit.htm
index 99a3eeb09d8f0243569547509588b89eacb89fb6..e219addde0c921b6f4a3843c45f8378f4147928d 100644
--- a/interface/web/admin/templates/server_php_fastcgi_edit.htm
+++ b/interface/web/admin/templates/server_php_fastcgi_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="php_fastcgi_binary" class="col-sm-3 control-label">{tmpl_var name='php_fastcgi_binary_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="php_fastcgi_binary" id="php_fastcgi_binary" value="{tmpl_var name='php_fastcgi_binary'}" class="form-control" /></div></div>
@@ -18,4 +11,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_php_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_php_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/admin/templates/server_php_fpm_edit.htm b/interface/web/admin/templates/server_php_fpm_edit.htm
index 4186584f0fc2860bbf3147613e69350c2838de79..372b3702fcccbad4edbb06c46db3cff9da74f986 100644
--- a/interface/web/admin/templates/server_php_fpm_edit.htm
+++ b/interface/web/admin/templates/server_php_fpm_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="php_fpm_init_script" class="col-sm-3 control-label">{tmpl_var name='php_fpm_init_script_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="php_fpm_init_script" id="php_fpm_init_script" value="{tmpl_var name='php_fpm_init_script'}" class="form-control" /></div></div>
@@ -21,4 +14,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_php_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_php_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/admin/templates/server_php_name_edit.htm b/interface/web/admin/templates/server_php_name_edit.htm
index cfdaab63f9a220bd8bd210c615d67cf0624f0f4c..ab1d889ef94155e1a142df3ce2577a0a13b39403 100644
--- a/interface/web/admin/templates/server_php_name_edit.htm
+++ b/interface/web/admin/templates/server_php_name_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
diff --git a/interface/web/admin/templates/software_repo_edit.htm b/interface/web/admin/templates/software_repo_edit.htm
index 3aa6c61fc600a6e9cf5383f56cebc68601bc591a..a43ea74900dddbd01d8091792acddadf45a15764 100644
--- a/interface/web/admin/templates/software_repo_edit.htm
+++ b/interface/web/admin/templates/software_repo_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="repo_name" class="col-sm-3 control-label">{tmpl_var name='repo_name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="repo_name" id="repo_name" value="{tmpl_var name='repo_name'}" class="form-control" /></div></div>
@@ -30,4 +23,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/software_repo_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/software_repo_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/admin/templates/system_config_mail_edit.htm b/interface/web/admin/templates/system_config_mail_edit.htm
index 526da2502a84d7c5756744f7f7f0c7a8b32fd1ab..af0a7a25cad39ec7e13f6cfc45584afdfafc853c 100644
--- a/interface/web/admin/templates/system_config_mail_edit.htm
+++ b/interface/web/admin/templates/system_config_mail_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='enable_custom_login_txt'}</label>
                 <div class="col-sm-9">
diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm
index b8f36b2efd3de889402fdcd03ff6531b58decd28..31fafdc5453b9d403718f482212d441413d652c4 100644
--- a/interface/web/admin/templates/system_config_misc_edit.htm
+++ b/interface/web/admin/templates/system_config_misc_edit.htm
@@ -1,7 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
 			<!--
 			<div class="form-group">
                 <label for="file" class="col-sm-3 control-label">{tmpl_var name='logo_txt'}</label>
diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm
index a0f95e479a36bcdf336a5b723a6bae4a2c04cc7a..09b55fd1183a9f363bbe0d1d820c895fe2029982 100644
--- a/interface/web/admin/templates/system_config_sites_edit.htm
+++ b/interface/web/admin/templates/system_config_sites_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="dbname_prefix" class="col-sm-3 control-label">{tmpl_var name='dbname_prefix_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="dbname_prefix" id="dbname_prefix" value="{tmpl_var name='dbname_prefix'}" class="form-control" /></div></div>
diff --git a/interface/web/admin/templates/users_groups_edit.htm b/interface/web/admin/templates/users_groups_edit.htm
index 5f09bfa8eaa4081b7244162f73e45c2c933b975f..112791dc4c7ac34644733fa4c66445cfc89bbe9a 100644
--- a/interface/web/admin/templates/users_groups_edit.htm
+++ b/interface/web/admin/templates/users_groups_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="default_group" class="col-sm-3 control-label">{tmpl_var name='default_group_txt'}</label>
                 <div class="col-sm-9"><select name="default_group" id="default_group" class="form-control">
@@ -24,4 +17,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/users_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/users_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/admin/templates/users_user_edit.htm b/interface/web/admin/templates/users_user_edit.htm
index fb9658c14b4a114e6a6f3c8bdffec4b3d40f0564..baf5f58554d7924d58de57d3b0d0e415ff23abe5 100644
--- a/interface/web/admin/templates/users_user_edit.htm
+++ b/interface/web/admin/templates/users_user_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="username" id="username" value="{tmpl_var name='username'}" class="form-control" /></div></div>
diff --git a/interface/web/client/lib/lang/ar_client_message.lng b/interface/web/client/lib/lang/ar_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/ar_client_message.lng
+++ b/interface/web/client/lib/lang/ar_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/bg_client_message.lng b/interface/web/client/lib/lang/bg_client_message.lng
index 671d454304146f1b47ab4d57838f88f504ed5b9e..557972113bef0501f8f315aed8f3ada25ef0aa39 100644
--- a/interface/web/client/lib/lang/bg_client_message.lng
+++ b/interface/web/client/lib/lang/bg_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Полето с Тема е празно.';
 $wb['message_invalid_error'] = 'Полето с съобщение е празно.';
 $wb['email_sent_to_txt'] = 'Изпрати до:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/el_client_message.lng b/interface/web/client/lib/lang/el_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/el_client_message.lng
+++ b/interface/web/client/lib/lang/el_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/en_client_message.lng b/interface/web/client/lib/lang/en_client_message.lng
index c04bd6cda2353e73de5b53f97e21317e1485389e..01d34392f76756f6cf132a6778642306d6c8db10 100644
--- a/interface/web/client/lib/lang/en_client_message.lng
+++ b/interface/web/client/lib/lang/en_client_message.lng
@@ -1,5 +1,5 @@
 <?php
-$wb["page_head_txt"] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb["btn_send_txt"] = 'Send email';
 $wb["btn_cancel_txt"] = 'Cancel';
 $wb["sender_txt"] = 'Sender email address';
diff --git a/interface/web/client/lib/lang/fi_client_message.lng b/interface/web/client/lib/lang/fi_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/fi_client_message.lng
+++ b/interface/web/client/lib/lang/fi_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/hu_client_message.lng b/interface/web/client/lib/lang/hu_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/hu_client_message.lng
+++ b/interface/web/client/lib/lang/hu_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/id_client_message.lng b/interface/web/client/lib/lang/id_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/id_client_message.lng
+++ b/interface/web/client/lib/lang/id_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/it_client_message.lng b/interface/web/client/lib/lang/it_client_message.lng
index f5f93c22940eb23d8675001fd45229c05b255e4b..c21f9fb3bee8d9f4ace572a5ea76f013d3504529 100644
--- a/interface/web/client/lib/lang/it_client_message.lng
+++ b/interface/web/client/lib/lang/it_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject  vuoto.';
 $wb['message_invalid_error'] = 'Message  vuoto.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/ja_client_message.lng b/interface/web/client/lib/lang/ja_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/ja_client_message.lng
+++ b/interface/web/client/lib/lang/ja_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/nl_client_message.lng b/interface/web/client/lib/lang/nl_client_message.lng
index aaa93be1b8da1785450faa9a06fe0473aa3df229..39962efa658fd9671a62c8dd292937a7bb4075d6 100644
--- a/interface/web/client/lib/lang/nl_client_message.lng
+++ b/interface/web/client/lib/lang/nl_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Onderwerp is leeg.';
 $wb['message_invalid_error'] = 'Bericht is leeg.';
 $wb['email_sent_to_txt'] = 'E-mail verstuurd aan:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Ontvanger';
 $wb['all_clients_resellers_txt'] = 'Alle klanten en resellers';
 $wb['all_clients_txt'] = 'Alle klanten';
diff --git a/interface/web/client/lib/lang/pt_client_message.lng b/interface/web/client/lib/lang/pt_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/pt_client_message.lng
+++ b/interface/web/client/lib/lang/pt_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/ro_client_message.lng b/interface/web/client/lib/lang/ro_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/ro_client_message.lng
+++ b/interface/web/client/lib/lang/ro_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/lib/lang/sk_client_message.lng b/interface/web/client/lib/lang/sk_client_message.lng
index 6b2a872f10af4cb357413ee297331408c740a6c2..1b6b3bb7ae97ce9d64c22fd788034b0e1d49f82e 100644
--- a/interface/web/client/lib/lang/sk_client_message.lng
+++ b/interface/web/client/lib/lang/sk_client_message.lng
@@ -10,7 +10,7 @@ $wb['sender_invalid_error'] = 'Sender email invalid.';
 $wb['subject_invalid_error'] = 'Subject is empty.';
 $wb['message_invalid_error'] = 'Message is empty.';
 $wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
+$wb["page_head_txt"] = 'Send email message to clients and resellers';
 $wb['recipient_txt'] = 'Recipient';
 $wb['all_clients_resellers_txt'] = 'All clients and resellers';
 $wb['all_clients_txt'] = 'All clients';
diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm
index 689849287cf0e7417e912a59e6f51c38cea98190..23318b218b45b0b76aa32e0ecf747bbf04886569 100644
--- a/interface/web/client/templates/client_edit_address.htm
+++ b/interface/web/client/templates/client_edit_address.htm
@@ -1,9 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
         <legend>{tmpl_var name='Address'}</legend>
             <div class="form-group">
                 <label for="company_name" class="col-sm-3 control-label">{tmpl_var name='company_name_txt'}</label>
diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index c8cf74e328b2b03aea5fcbc679d584c582a75f25..0508ab5090bec316646efbdcf7215925fc7e0129 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -1,10 +1,3 @@
-<tmpl_if name="list_head_txt">
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-</tmpl_if>
-<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
-
 <div class="panel panel_client">
     
 	<div class="pnl_formsarea">
diff --git a/interface/web/client/templates/client_message.htm b/interface/web/client/templates/client_message.htm
index 7e1b1da70183a46853d19ccf9caa98ffd075f437..b546181fa71a5a77edee9ae936cafb80e4e31756 100644
--- a/interface/web/client/templates/client_message.htm
+++ b/interface/web/client/templates/client_message.htm
@@ -1,10 +1,6 @@
 <div class='page-header'>
 	<h1><tmpl_var name="page_head_txt"></h1>
 </div>
-<p><tmpl_var name="form_desc_txt"></p>
-
-
-        <legend>{tmpl_var name='form_legend_txt'}</legend>
             <tmpl_if name="okmsg">
                 <div id="OKMsg"><p><tmpl_var name="okmsg"></p></div>
             </tmpl_if>
@@ -32,4 +28,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_send_txt'}" data-submit-form="pageForm" data-form-action="client/client_message.php">{tmpl_var name='btn_send_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm
index df5501602b4aed8fc9e781e0337c1324b5c4e22f..a3e4b63e9aa99454d5e107a2a249022712498134 100644
--- a/interface/web/client/templates/client_template_edit_limits.htm
+++ b/interface/web/client/templates/client_template_edit_limits.htm
@@ -1,11 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>{tmpl_var name="Limits"}</legend>
-		
 <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
   <div class="panel panel-default">
     <div class="panel-heading" role="tab" id="headingWeb">
diff --git a/interface/web/client/templates/client_template_edit_template.htm b/interface/web/client/templates/client_template_edit_template.htm
index e06d07792d9b5e45a7271378a485a71430f98de9..181dedd20f019b8e26f86d9790099d654f8c89f2 100644
--- a/interface/web/client/templates/client_template_edit_template.htm
+++ b/interface/web/client/templates/client_template_edit_template.htm
@@ -1,12 +1,3 @@
-<tmpl_if name="list_head_txt">
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-</tmpl_if>
-<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
-
-
-        <legend>Template</legend>
             <div class="form-group">
                 <label for="template_type" class="col-sm-3 control-label">{tmpl_var name='template_type_txt'}</label>
                 <div class="col-sm-9"><select name="template_type" id="template_type" class="form-control">
diff --git a/interface/web/client/templates/message_template.htm b/interface/web/client/templates/message_template.htm
index 7fd63f3448c4aadf61e8b1f1471b91e343b35194..4078d36ac89617cbe9eedb1a2d6fc9fb63d34196 100644
--- a/interface/web/client/templates/message_template.htm
+++ b/interface/web/client/templates/message_template.htm
@@ -1,12 +1,6 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <div class="panel panel_invoice_message_template">
 
   <div class="pnl_formsarea">
-    <legend>Settings</legend>
       <div class="form-group">
       	<label for="template_type" class="col-sm-3 control-label">{tmpl_var name='template_type_txt'}</label>
         <div class="col-sm-9"><select name="template_type" id="template_type" class="form-control">
diff --git a/interface/web/client/templates/reseller_edit_address.htm b/interface/web/client/templates/reseller_edit_address.htm
index 5cb829a0088d70b60c45e3920280cdfd1ba38a0b..eb2760dc3d6aeac4228df02bd36cb64bf5b3d6fc 100644
--- a/interface/web/client/templates/reseller_edit_address.htm
+++ b/interface/web/client/templates/reseller_edit_address.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>{tmpl_var name='Address'}</legend>
             <div class="form-group">
                 <label for="company_name" class="col-sm-3 control-label">{tmpl_var name='company_name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="company_name" id="company_name" value="{tmpl_var name='company_name'}" class="form-control" /></div></div>
diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm
index 7a4dc090411d77d6f9daa9307b4a8c0711737852..c0a25939dfaa91a2abddf4af56d015e833b1f294 100644
--- a/interface/web/client/templates/reseller_edit_limits.htm
+++ b/interface/web/client/templates/reseller_edit_limits.htm
@@ -1,14 +1,6 @@
-<tmpl_if name="list_head_txt">
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-</tmpl_if>
-<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
-
 <div class="panel panel_client">
 
     <div class="pnl_formsarea">
-        <legend>{tmpl_var name="Limits"}</legend>
 			<tmpl_if name="is_admin">
                 <div class="form-group">
                     <label for="template_master" class="col-sm-3 control-label">{tmpl_var name='template_master_txt'}</label>
diff --git a/interface/web/dns/templates/dns_a_edit.htm b/interface/web/dns/templates/dns_a_edit.htm
index 92dfbcd3ae1328546c9dc0ddf4759eaf60906002..907d84b0bc7a96ea338a7de020f5a1c29a001b74 100644
--- a/interface/web/dns/templates/dns_a_edit.htm
+++ b/interface/web/dns/templates/dns_a_edit.htm
@@ -1,11 +1,4 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
-            <div class="form-group">
+                   <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div><p class="formHint">{tmpl_var name='name_hint_txt'}</p>
             </div>
@@ -45,4 +38,4 @@
         searchFieldWatermark: '',
         resultBoxPosition: ''
     });	
-</script>
\ No newline at end of file
+</script>
diff --git a/interface/web/dns/templates/dns_aaaa_edit.htm b/interface/web/dns/templates/dns_aaaa_edit.htm
index fbbc757ceca1d0d3b41ff421382fa9ab72a883b1..13ee0ccaab0194a0e37b2c818b23e54dc5f31971 100644
--- a/interface/web/dns/templates/dns_aaaa_edit.htm
+++ b/interface/web/dns/templates/dns_aaaa_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div><p class="formHint">{tmpl_var name='name_hint_txt'}</p>
@@ -45,4 +38,4 @@
         searchFieldWatermark: '',
         resultBoxPosition: ''
     });	
-</script>
\ No newline at end of file
+</script>
diff --git a/interface/web/dns/templates/dns_alias_edit.htm b/interface/web/dns/templates/dns_alias_edit.htm
index 5ab2a3ccaa23ddb7954266715b6645f2b40bd8fa..ad6c74d863c38abb4a8d185e53c18110b92c2f30 100644
--- a/interface/web/dns/templates/dns_alias_edit.htm
+++ b/interface/web/dns/templates/dns_alias_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_alias_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_caa_edit.htm b/interface/web/dns/templates/dns_caa_edit.htm
index 3de64818b4936ae902004b53de139742c3187e81..8d4372d9a9783c33895cf05a18af28ed1965802d 100644
--- a/interface/web/dns/templates/dns_caa_edit.htm
+++ b/interface/web/dns/templates/dns_caa_edit.htm
@@ -1,6 +1,3 @@
-<div class='page-header'><h1><tmpl_var name="list_head_txt"></h1></div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <div class="form-group">
 	<label for="ca_list" class="col-sm-2 control-label">{tmpl_var name='ca_list_txt'}</label>
 	<div class="col-sm-4"><select name="ca_list" id="ca_list" class="form-control">{tmpl_var name='ca_list'}</select></div>
diff --git a/interface/web/dns/templates/dns_cname_edit.htm b/interface/web/dns/templates/dns_cname_edit.htm
index 778279cbd80687f507086c6870107b8388a3f603..3b37e5133d6614812bc6c17f3a77f49db487de42 100644
--- a/interface/web/dns/templates/dns_cname_edit.htm
+++ b/interface/web/dns/templates/dns_cname_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_cname_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_dkim_edit.htm b/interface/web/dns/templates/dns_dkim_edit.htm
index 310dda1c9e9cc056c2a95b6cf80b34934a730ede..be3bea3dd53f0e9f357da901d7469116f0ea6a68 100644
--- a/interface/web/dns/templates/dns_dkim_edit.htm
+++ b/interface/web/dns/templates/dns_dkim_edit.htm
@@ -1,7 +1,3 @@
-<div class='page-header'><h1><tmpl_var name="list_head_txt"></h1></div>
-
-<p><tmpl_var name="list_desc_txt"></p>
-
 <div class="form-group">
 	<label for="data" class="col-sm-3 control-label">{tmpl_var name='public_key_txt'}</label>
 	<tmpl_if name="edit_disabled">
diff --git a/interface/web/dns/templates/dns_dmarc_edit.htm b/interface/web/dns/templates/dns_dmarc_edit.htm
index 4b7646a398d41ea6ddaffe3651f782b1efd55070..668b29f8df797929f34ebf2626b50f95a72662f9 100644
--- a/interface/web/dns/templates/dns_dmarc_edit.htm
+++ b/interface/web/dns/templates/dns_dmarc_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="domain" class="col-sm-2 control-label">{tmpl_var name='domain_txt'}</label>
 				<div class="col-sm-3">
diff --git a/interface/web/dns/templates/dns_ds_edit.htm b/interface/web/dns/templates/dns_ds_edit.htm
index 56113f0ec0e95df7075d815bfc96a3c63c6c60fc..c7012d9fd9a7d2db0217d121e0203a2e382d818c 100644
--- a/interface/web/dns/templates/dns_ds_edit.htm
+++ b/interface/web/dns/templates/dns_ds_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_ds_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_hinfo_edit.htm b/interface/web/dns/templates/dns_hinfo_edit.htm
index 0be975f529bee5aa8c25147866b789bd27007fec..39a02dabbc2ed56ee17a31ed722d0dade7ec84e9 100644
--- a/interface/web/dns/templates/dns_hinfo_edit.htm
+++ b/interface/web/dns/templates/dns_hinfo_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_hinfo_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_import.htm b/interface/web/dns/templates/dns_import.htm
index 87d54316f3556df143990c2ad3edafce10ca6102..dafb9016a0c3a13e2f3bd2bf0ecc241f9a440912 100644
--- a/interface/web/dns/templates/dns_import.htm
+++ b/interface/web/dns/templates/dns_import.htm
@@ -62,4 +62,4 @@
             jQuery('.positive').trigger('click');
         }
     }
-</script>
\ No newline at end of file
+</script>
diff --git a/interface/web/dns/templates/dns_loc_edit.htm b/interface/web/dns/templates/dns_loc_edit.htm
index 12cfb6357fd42285214e4423c5e9196b6c5dc7df..d8e261991ce840e5679f562b76a3661c83b66c0d 100644
--- a/interface/web/dns/templates/dns_loc_edit.htm
+++ b/interface/web/dns/templates/dns_loc_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_loc_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_mx_edit.htm b/interface/web/dns/templates/dns_mx_edit.htm
index 290c218faf96b3cbb772c2b257c4c1c2aef67f69..3a84cbacb432b4106164df54823595e707d458f8 100644
--- a/interface/web/dns/templates/dns_mx_edit.htm
+++ b/interface/web/dns/templates/dns_mx_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -32,4 +25,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_mx_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_ns_edit.htm b/interface/web/dns/templates/dns_ns_edit.htm
index 3cafa17dafaa8bf64046db2bf86f10874ab02f8e..6644af152ccb47a62ebec03993a6dbfd9064b7cf 100644
--- a/interface/web/dns/templates/dns_ns_edit.htm
+++ b/interface/web/dns/templates/dns_ns_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_ns_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_ptr_edit.htm b/interface/web/dns/templates/dns_ptr_edit.htm
index de59069259df650f1359a102d3b52af31b1ff27a..725bbb17fabb1e0b5797743a2ed8edd3fc1ad781 100644
--- a/interface/web/dns/templates/dns_ptr_edit.htm
+++ b/interface/web/dns/templates/dns_ptr_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_ptr_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_records_edit.htm b/interface/web/dns/templates/dns_records_edit.htm
index a2a42c3d45c70f3906690fe19a6c12fc75cb12d8..979cebe5fd58636304f789c508cafd6cacc27923 100644
--- a/interface/web/dns/templates/dns_records_edit.htm
+++ b/interface/web/dns/templates/dns_records_edit.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <div class="panel panel_dns_soa">
 
     {tmpl_var name='dns_records'}
@@ -11,4 +6,4 @@
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
     </div>
   
-</div>
\ No newline at end of file
+</div>
diff --git a/interface/web/dns/templates/dns_rp_edit.htm b/interface/web/dns/templates/dns_rp_edit.htm
index 3dd04adf1a3344d7d9864c02f57e0bb4bb7465fd..9a4b9f4e55db2069ea15a5d5b34d9c1a7d4d7762 100644
--- a/interface/web/dns/templates/dns_rp_edit.htm
+++ b/interface/web/dns/templates/dns_rp_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_rp_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_slave_edit.htm b/interface/web/dns/templates/dns_slave_edit.htm
index 832fec1abc0445f73aceb06073a05184406c7601..1f4f7234d613d00c21291ae3292ca6108d15d9cd 100644
--- a/interface/web/dns/templates/dns_slave_edit.htm
+++ b/interface/web/dns/templates/dns_slave_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend><tmpl_var name="secondary_zone_txt"></legend>
             <tmpl_if name="is_admin">
                 <div class="form-group">
                     <tmpl_if name="edit_disabled">
diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm
index 7a069cb3bf27d5d2e354d4aca240e44b13255c74..ce8154c85736269c3d738f26a19848597341d56e 100644
--- a/interface/web/dns/templates/dns_soa_edit.htm
+++ b/interface/web/dns/templates/dns_soa_edit.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
 	<p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
@@ -10,7 +5,6 @@
 </div>
 </tmpl_if>
 
-        <legend>DNS Zone</legend>
             <tmpl_if name="is_admin">
                 <div class="form-group">
                     <tmpl_if name="edit_disabled">
diff --git a/interface/web/dns/templates/dns_spf_edit.htm b/interface/web/dns/templates/dns_spf_edit.htm
index fc7400d6200f61c7d24d576da966458d65f5a02d..2817d7645b8dc8ca7233b18501ff6a1612f94625 100644
--- a/interface/web/dns/templates/dns_spf_edit.htm
+++ b/interface/web/dns/templates/dns_spf_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div>
diff --git a/interface/web/dns/templates/dns_srv_edit.htm b/interface/web/dns/templates/dns_srv_edit.htm
index fd9f00d7b48058871fc68373d7ff8d2be8ac7320..f142f482d433c14f310aebc2a8d3e9b614585962 100644
--- a/interface/web/dns/templates/dns_srv_edit.htm
+++ b/interface/web/dns/templates/dns_srv_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -38,4 +31,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_srv_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_template_edit.htm b/interface/web/dns/templates/dns_template_edit.htm
index 9de8c93447f466f0394ba52fb82a972886b7ce06..db0ee9d92580c35e3c974c0e39d0040c93c6363e 100644
--- a/interface/web/dns/templates/dns_template_edit.htm
+++ b/interface/web/dns/templates/dns_template_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
diff --git a/interface/web/dns/templates/dns_tlsa_edit.htm b/interface/web/dns/templates/dns_tlsa_edit.htm
index c2cde8be6197c060588bf337749b315e6ed151c9..297077eecb125d532648fa4c3000332c401860f5 100644
--- a/interface/web/dns/templates/dns_tlsa_edit.htm
+++ b/interface/web/dns/templates/dns_tlsa_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_tlsa_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_txt_edit.htm b/interface/web/dns/templates/dns_txt_edit.htm
index f03f6d36c86209aec2aff3e2c368ba83e13b7f41..de69bc553e29f22eb11e39a220d5a4543ab2465c 100644
--- a/interface/web/dns/templates/dns_txt_edit.htm
+++ b/interface/web/dns/templates/dns_txt_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div></div>
@@ -29,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_txt_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='zone'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/dns/templates/dns_wizard.htm b/interface/web/dns/templates/dns_wizard.htm
index 907dedca888b4e5f987854fac46eca215025125f..2f4f24b4e08266604971ea4d521b7206290b6e48 100644
--- a/interface/web/dns/templates/dns_wizard.htm
+++ b/interface/web/dns/templates/dns_wizard.htm
@@ -1,14 +1,12 @@
 <div class='page-header'>
 	<h1><tmpl_var name="list_head_txt"></h1>
 </div>
-<p><tmpl_var name="list_desc_txt"></p>
 
 <tmpl_if name="error">
     <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
 </tmpl_if>
 
 
-        <legend><tmpl_var name="dns_zone_txt"></legend>
             <div class="form-group">
                 <label for="template_id" class="col-sm-3 control-label">{tmpl_var name='template_id_txt'}</label>
                 <div class="col-sm-9"><select name="template_id" id="template_id" class="form-control" onChange="ISPConfig.submitForm('pageForm','dns/dns_wizard.php')">
diff --git a/interface/web/help/templates/faq_edit.htm b/interface/web/help/templates/faq_edit.htm
index 3bf9d8a903a100a998e8b1e9b3ae878b5273a9c3..d0f976051149db9c628ba7e6fae0e815e0355b7f 100644
--- a/interface/web/help/templates/faq_edit.htm
+++ b/interface/web/help/templates/faq_edit.htm
@@ -1,5 +1,3 @@
-
-        <legend>{tmpl_var name='faq_faq_txt'}</legend>
             <div class="form-group">
                 <label for="hf_section" class="col-sm-3 control-label">{tmpl_var name='faq_section_txt'}</label>
                 <div class="col-sm-9"><select name="hf_section" id="hf_section" class="form-control">
@@ -20,4 +18,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="help/faq_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="help/faq_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/help/templates/faq_sections_edit.htm b/interface/web/help/templates/faq_sections_edit.htm
index 1380447db870743aada6e519c00c4959e9e50a9d..2ff83549766c3a0e39c6b8d71754d3fb5265e1c8 100644
--- a/interface/web/help/templates/faq_sections_edit.htm
+++ b/interface/web/help/templates/faq_sections_edit.htm
@@ -1,5 +1,3 @@
-
-        <legend>{tmpl_var name='faq_section_name_txt'}</legend>
             <div class="form-group">
                 <label for="hfs_name" class="col-sm-3 control-label">{tmpl_var name='faq_section_name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="hfs_name" id="hfs_name" value="{tmpl_var name='hfs_name'}" class="form-control" /></div></div>
@@ -11,4 +9,3 @@
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="help/faq_sections_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="help/faq_sections_list.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
-
diff --git a/interface/web/help/templates/support_message_edit.htm b/interface/web/help/templates/support_message_edit.htm
index fb54578e1670cc3d87a73c5d5cf06ced8bcd82fc..a01cb31076407c61d108625e97377384b197eabd 100644
--- a/interface/web/help/templates/support_message_edit.htm
+++ b/interface/web/help/templates/support_message_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>{tmpl_var name='message_txt'}</legend>
             <div class="form-group">
                 <label for="recipient_id" class="col-sm-3 control-label">{tmpl_var name='recipient_id_txt'}</label>
                 <div class="col-sm-9"><select name="recipient_id" id="recipient_id" class="form-control">
@@ -26,4 +19,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="help/support_message_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="help/support_message_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/help/templates/support_message_view.htm b/interface/web/help/templates/support_message_view.htm
index faaaf859cd0843cc8e7070b68232abfac6bb97f3..4771a47148817e768fbd2c576e8576ca06b08665 100644
--- a/interface/web/help/templates/support_message_view.htm
+++ b/interface/web/help/templates/support_message_view.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>{tmpl_var name='message_txt'}</legend>
             <div class="form-group">
                 <label for="subject" class="col-sm-3 control-label">{tmpl_var name='subject_txt'}</label>
                 <p>{tmpl_var name='subject'}</p>
@@ -20,4 +13,4 @@
         
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='reply_txt'}" data-load-content="help/support_message_edit.php?reply={tmpl_var name='id'}">{tmpl_var name='reply_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_alias_edit.htm b/interface/web/mail/templates/mail_alias_edit.htm
index 6a67887bf9d4f68921dfd97664208943b654e8c3..2fd149a348351667536af5e57fa0a67081524bbd 100644
--- a/interface/web/mail/templates/mail_alias_edit.htm
+++ b/interface/web/mail/templates/mail_alias_edit.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 			<div class="form-group">
                 <label class="col-sm-3 control-label"><em>*</em> {tmpl_var name='email_txt'}</label>
                 <div class="col-sm-9">
diff --git a/interface/web/mail/templates/mail_aliasdomain_edit.htm b/interface/web/mail/templates/mail_aliasdomain_edit.htm
index 9e19b5d07aa619883300e2c22d693b23c88a06a3..a18ff0e3db0529e5b7d6b60de84cd16276483db9 100644
--- a/interface/web/mail/templates/mail_aliasdomain_edit.htm
+++ b/interface/web/mail/templates/mail_aliasdomain_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="destination" class="col-sm-3 control-label">{tmpl_var name='source_txt'}</label>
                 <div class="col-sm-9"><select name="source" id="source" class="form-control">
@@ -31,4 +24,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_aliasdomain_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_aliasdomain_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_blacklist_edit.htm b/interface/web/mail/templates/mail_blacklist_edit.htm
index c68729cbceec5e32778e792af94da9cef034f057..24ad67e569920a96afb0b801630c784f0f7ca52a 100644
--- a/interface/web/mail/templates/mail_blacklist_edit.htm
+++ b/interface/web/mail/templates/mail_blacklist_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -34,4 +27,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_blacklist_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_blacklist_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_content_filter_edit.htm b/interface/web/mail/templates/mail_content_filter_edit.htm
index 4aa59c8e06ea9993ea47427a6509eec51f0996e7..8eb4266feffb64d2e261b931df2457bcf18e04a8 100644
--- a/interface/web/mail/templates/mail_content_filter_edit.htm
+++ b/interface/web/mail/templates/mail_content_filter_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -42,4 +35,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_content_filter_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_content_filter_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_domain_catchall_edit.htm b/interface/web/mail/templates/mail_domain_catchall_edit.htm
index 5991f2aecc21ad3729cd68f7a80e8ba5100f56d7..0ccae15a8feab950c71c71deafd1378f0f161173 100644
--- a/interface/web/mail/templates/mail_domain_catchall_edit.htm
+++ b/interface/web/mail/templates/mail_domain_catchall_edit.htm
@@ -1,8 +1,4 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-			<div class="form-group">
+<			<div class="form-group">
                 <label for="email_domain" class="col-sm-3 control-label">{tmpl_var name='source_txt'}</label>
                 <div class="col-sm-9">
 					<div class="input-group">
@@ -33,4 +29,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_domain_catchall_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_domain_catchall_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm
index 71a6655e80850a7bc1a733856ac20c1635f1301c..1e4a49c2a5bfa621ed0dc93b43640355a7ba8eed 100644
--- a/interface/web/mail/templates/mail_domain_edit.htm
+++ b/interface/web/mail/templates/mail_domain_edit.htm
@@ -1,11 +1,4 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
-            <tmpl_if name="is_admin">
+                 <tmpl_if name="is_admin">
                 <div class="form-group">
                     <tmpl_if name="edit_disabled">
                         <label for="server_id_disabled" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
diff --git a/interface/web/mail/templates/mail_forward_edit.htm b/interface/web/mail/templates/mail_forward_edit.htm
index 7c1fca02993ea101c207a95fb2b43eaafe09fae0..a5de2a00b73421a23ffb670af039169badba9867 100644
--- a/interface/web/mail/templates/mail_forward_edit.htm
+++ b/interface/web/mail/templates/mail_forward_edit.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
             <div class="form-group">
                 <label class="col-sm-3 control-label"><em>*</em> {tmpl_var name='email_txt'}</label>
                 <div class="col-sm-9">
diff --git a/interface/web/mail/templates/mail_get_edit.htm b/interface/web/mail/templates/mail_get_edit.htm
index f3d8a3b0f4f93a241bfe0e9708b00ecd060a36e6..6b5b8c198e6992ba9c2126e62074636a479924a3 100644
--- a/interface/web/mail/templates/mail_get_edit.htm
+++ b/interface/web/mail/templates/mail_get_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="type" class="col-sm-3 control-label">{tmpl_var name='type_txt'}</label>
                 <div class="col-sm-9"><select name="type" id="type" class="form-control">
@@ -51,4 +44,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_get_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_get_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_mailinglist_edit.htm b/interface/web/mail/templates/mail_mailinglist_edit.htm
index 9d6f8bdde60c807372c7c3583f5062e80523ef1e..ac43cbb4178148e99305bcc954674dab952736ca 100644
--- a/interface/web/mail/templates/mail_mailinglist_edit.htm
+++ b/interface/web/mail/templates/mail_mailinglist_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>Mailing List</legend>	
             <tmpl_if name="is_admin">
                 <div class="form-group">
                     <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
diff --git a/interface/web/mail/templates/mail_relay_recipient_edit.htm b/interface/web/mail/templates/mail_relay_recipient_edit.htm
index 83e52aa661310fc6b92d3d4983c0b2e55e737cd1..7b476fe37a5194d9dbfb88de6914563899497db3 100644
--- a/interface/web/mail/templates/mail_relay_recipient_edit.htm
+++ b/interface/web/mail/templates/mail_relay_recipient_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>Relay recipient</legend>
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -28,4 +21,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_relay_recipient_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_relay_recipient_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_transport_edit.htm b/interface/web/mail/templates/mail_transport_edit.htm
index e0332de1b6dfbad2919d6a162a5f6d9bf0d1ee85..694e57634d578fb049eb1c40b6c10803be47be17 100644
--- a/interface/web/mail/templates/mail_transport_edit.htm
+++ b/interface/web/mail/templates/mail_transport_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -48,4 +41,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_transport_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_transport_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_user_autoresponder_edit.htm b/interface/web/mail/templates/mail_user_autoresponder_edit.htm
index c5fc584c09f961d8c899500845f5511746ae348c..1c1cdc6759ce9a41cad0952eb66e7721543ad14a 100644
--- a/interface/web/mail/templates/mail_user_autoresponder_edit.htm
+++ b/interface/web/mail/templates/mail_user_autoresponder_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="autoresponder_subject" class="col-sm-3 control-label">{tmpl_var name='autoresponder_subject_txt'}</label>
                 <div class="col-sm-9"><input class="form-control" type="text" name="autoresponder_subject" id="autoresponder_subject" value="{tmpl_var name='autoresponder_subject'}" /></div></div>
@@ -30,4 +23,4 @@
             <button class="btn btn-default formbutton-success" type="button"
                     value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_user_backup.htm b/interface/web/mail/templates/mail_user_backup.htm
index f9abba3bba1ba119a3d1fef71c509acbf64fb46d..0de61a3297030bdf5d8b4066eac2021544aa7831 100644
--- a/interface/web/mail/templates/mail_user_backup.htm
+++ b/interface/web/mail/templates/mail_user_backup.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                 <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
diff --git a/interface/web/mail/templates/mail_user_custom_rules_edit.htm b/interface/web/mail/templates/mail_user_custom_rules_edit.htm
index d12378678c935229bba74d7415927faef6bd94e3..263ea7916a7ee93f2fc582d4aa8e8109911fa5fc 100644
--- a/interface/web/mail/templates/mail_user_custom_rules_edit.htm
+++ b/interface/web/mail/templates/mail_user_custom_rules_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="custom_mailfilter" class="col-sm-3 control-label">{tmpl_var name='custom_mailfilter_txt'}</label>
                 <div class="col-sm-9"><textarea class="form-control" name="custom_mailfilter" id="custom_mailfilter" rows='15' cols='30'>{tmpl_var name='custom_mailfilter'}</textarea></div>
@@ -16,4 +9,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_user_filter_edit.htm b/interface/web/mail/templates/mail_user_filter_edit.htm
index cb2d79a2498d73c5ce84dff2e17af2d86a45f749..6a7983c64e03723fb7d62b79ca2b7758d1286221 100644
--- a/interface/web/mail/templates/mail_user_filter_edit.htm
+++ b/interface/web/mail/templates/mail_user_filter_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="rulename" class="col-sm-3 control-label">{tmpl_var name='rulename_txt'}</label>
                 <div class="col-sm-9"><input type="text" id="rulename" name="rulename" value="{tmpl_var name='rulename'}" class="form-control"></div>
@@ -32,4 +25,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_filter_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='mailuser_id'}">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm
index bcab744de3b54ca7b45efa541061d90c459ef64a..a90799cf11d7b7f777d110c0f7f06d5824f3652c 100644
--- a/interface/web/mail/templates/mail_user_mailbox_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="name" class="col-sm-3 control-label">{tmpl_var name='name_txt'}</label>
                 <div class="col-sm-6"><input type="text" name="name" id="name" value="{tmpl_var name='name'}" class="form-control" /></div><div class="col-sm-3 input-sm"> &nbsp; {tmpl_var name='name_optional_txt'}
diff --git a/interface/web/mail/templates/mail_user_mailfilter_edit.htm b/interface/web/mail/templates/mail_user_mailfilter_edit.htm
index 183a98b5e332e0c7e6eb4b3d7bc20e633917c5b4..fc40398d5dc4f5ed1d93f840647b2912941f0e01 100644
--- a/interface/web/mail/templates/mail_user_mailfilter_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailfilter_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='move_junk_txt'}</label>
                 <div class="col-sm-9">
@@ -20,4 +13,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/mail_whitelist_edit.htm b/interface/web/mail/templates/mail_whitelist_edit.htm
index 1f72e6935f0dd2d82fa8630e9a118cb2622ea87d..575a6ae2fb5bf9e15893bcef409abde301288364 100644
--- a/interface/web/mail/templates/mail_whitelist_edit.htm
+++ b/interface/web/mail/templates/mail_whitelist_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -34,4 +27,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_whitelist_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_whitelist_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/spamfilter_amavis_edit.htm b/interface/web/mail/templates/spamfilter_amavis_edit.htm
index 41bf6b5410eb6046746f51c18e29d800fc348b82..d770ed842af8be2b37a5d4e20aa0af3648ab8d6d 100644
--- a/interface/web/mail/templates/spamfilter_amavis_edit.htm
+++ b/interface/web/mail/templates/spamfilter_amavis_edit.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
 	<!-- Settings -->
   <div class="panel panel-default">
@@ -195,4 +190,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/spamfilter_blacklist_edit.htm b/interface/web/mail/templates/spamfilter_blacklist_edit.htm
index 1db93dd7c2092787854e113aaf5634634ea2b02e..3a7fd47869c953a7c603d752bb06936b0059b1d0 100644
--- a/interface/web/mail/templates/spamfilter_blacklist_edit.htm
+++ b/interface/web/mail/templates/spamfilter_blacklist_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <!--
                 <div class="form-group">
                     <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
@@ -42,4 +35,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_blacklist_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_blacklist_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/spamfilter_policy_edit.htm b/interface/web/mail/templates/spamfilter_policy_edit.htm
index 506b4d5b89fa1f1dd7062265361ce7ec79927905..11fd8e73d13a80c4e9708633d922b4a147d4074f 100644
--- a/interface/web/mail/templates/spamfilter_policy_edit.htm
+++ b/interface/web/mail/templates/spamfilter_policy_edit.htm
@@ -1,9 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-       
             <div class="form-group">
                 <label for="policy_name" class="col-sm-3 control-label">{tmpl_var name='policy_name_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="policy_name" id="policy_name" value="{tmpl_var name='policy_name'}" class="form-control" /></div></div>
@@ -26,4 +20,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/spamfilter_rspamd_edit.htm b/interface/web/mail/templates/spamfilter_rspamd_edit.htm
index 2f8ea0f4513592a73f2bf7dc76c59b6128b38d9c..5d1602514a85f23a843debca49fc804ae688e8b8 100644
--- a/interface/web/mail/templates/spamfilter_rspamd_edit.htm
+++ b/interface/web/mail/templates/spamfilter_rspamd_edit.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 			<div class="form-group">
                 <label for="rspamd_spam_greylisting_level" class="col-sm-3 control-label">{tmpl_var name='rspamd_spam_greylisting_level_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="rspamd_spam_greylisting_level" id="rspamd_spam_greylisting_level" value="{tmpl_var name='rspamd_spam_greylisting_level'}" class="form-control" /></div>
@@ -27,4 +22,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_policy_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_policy_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/spamfilter_users_edit.htm b/interface/web/mail/templates/spamfilter_users_edit.htm
index 7c75c5ee345d818f1a1691166648c7795e069226..80bdbd66ca6b55596bdd2ad5ab7af2036beae697 100644
--- a/interface/web/mail/templates/spamfilter_users_edit.htm
+++ b/interface/web/mail/templates/spamfilter_users_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                 <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -42,4 +35,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_users_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_users_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/spamfilter_whitelist_edit.htm b/interface/web/mail/templates/spamfilter_whitelist_edit.htm
index aefe5f9fec0ba075af734b2e1d56e82256f014ef..fcc6e09a2ebe5c21ee1c076de620d5c45cdb0c27 100644
--- a/interface/web/mail/templates/spamfilter_whitelist_edit.htm
+++ b/interface/web/mail/templates/spamfilter_whitelist_edit.htm
@@ -1,11 +1,4 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
-            <!--
+                  <!--
                   <div class="form-group">
                     <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
                     <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
@@ -42,4 +35,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/spamfilter_whitelist_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/spamfilter_whitelist_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/mail/templates/xmpp_domain_edit.htm b/interface/web/mail/templates/xmpp_domain_edit.htm
index 5c4e8d79a096fb594d574a7830479f0688139c0b..6953fbfb14848f6684774bb2d7a093a6ce513fd4 100644
--- a/interface/web/mail/templates/xmpp_domain_edit.htm
+++ b/interface/web/mail/templates/xmpp_domain_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <tmpl_if name="is_admin">
                 <div class="form-group">
                     <tmpl_if name="edit_disabled">
diff --git a/interface/web/mail/templates/xmpp_domain_edit_modules.htm b/interface/web/mail/templates/xmpp_domain_edit_modules.htm
index 8efcf509760b533849287d79e2894d4ce0d57c49..f705c495daa65707317aae7045f6805c843347e8 100644
--- a/interface/web/mail/templates/xmpp_domain_edit_modules.htm
+++ b/interface/web/mail/templates/xmpp_domain_edit_modules.htm
@@ -1,9 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
 <tmpl_if name="limit_xmpp_anon" value="y">
     <div class="form-group">
         <label class="col-sm-3 control-label">{tmpl_var name='use_anon_host_txt'}</label>
diff --git a/interface/web/mail/templates/xmpp_domain_edit_muc.htm b/interface/web/mail/templates/xmpp_domain_edit_muc.htm
index dd46514cae130308cc87bcf26c1df50c879d0d90..542582235256daab4890701dc5a0b07ab1556669 100644
--- a/interface/web/mail/templates/xmpp_domain_edit_muc.htm
+++ b/interface/web/mail/templates/xmpp_domain_edit_muc.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-
 <div class="form-group">
     <label class="col-sm-3 control-label">{tmpl_var name='use_muc_host_txt'}</label>
     <div class="col-sm-9">
diff --git a/interface/web/mail/templates/xmpp_domain_edit_ssl.htm b/interface/web/mail/templates/xmpp_domain_edit_ssl.htm
index 2bb7d059aade1ee4015a8041c0df6f45f38cacf5..0ef2e2c96266c80b33bcee4aec13b80aa8fb0c6c 100644
--- a/interface/web/mail/templates/xmpp_domain_edit_ssl.htm
+++ b/interface/web/mail/templates/xmpp_domain_edit_ssl.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                 <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
@@ -97,4 +92,4 @@
     }
 	</tmpl_if>
 //-->
-</script>
\ No newline at end of file
+</script>
diff --git a/interface/web/mail/templates/xmpp_user_edit.htm b/interface/web/mail/templates/xmpp_user_edit.htm
index 467b83fb529ae7fe6babe48aca3659f2e66b02b2..c70155d8f56fa0e99a48c3e015d2da5043fd22dd 100644
--- a/interface/web/mail/templates/xmpp_user_edit.htm
+++ b/interface/web/mail/templates/xmpp_user_edit.htm
@@ -1,7 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
 			<div class="form-group">
                 <label class="col-sm-3 control-label"><em>*</em> {tmpl_var name='jid_txt'}</label>
                 <div class="col-sm-9">
diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php
index 5c3057f6851e7605d83e95a90e3b6886a70bf487..24ee6d4e62601fd64110cac5c44f4510c77249b7 100644
--- a/interface/web/sites/form/web_vhost_domain.tform.php
+++ b/interface/web/sites/form/web_vhost_domain.tform.php
@@ -96,7 +96,7 @@ if(!$app->auth->is_admin()) {
 	if($client['limit_backup'] != 'y') $backup_available = false;
 }
 
-$app->uses('getconf');
+$app->uses('getconf,system');
 $web_config = $app->getconf->get_global_config('sites');
 
 $form["tabs"]['domain'] = array (
@@ -649,6 +649,28 @@ $form["tabs"]['stats'] = array (
 
 //* Backup
 if ($backup_available) {
+	$missing_utils = array();
+	$compressors_list = array(
+		'gzip',
+		'gunzip',
+		'zip',
+		'unzip',
+		'pigz',
+		'tar',
+		'bzip2',
+		'bunzip2',
+		'xz',
+		'unxz',
+		'7z',
+		'rar',
+	);
+	foreach ($compressors_list as $compressor) {
+		if (!$app->system->is_installed($compressor)) {
+			array_push($missing_utils, $compressor);
+		}
+	}
+	$app->tpl->setVar("missing_utils", implode(", ",$missing_utils), true);
+
 	$form["tabs"]['backup'] = array (
 		'title'  => "Backup",
 		'width'  => 100,
@@ -682,6 +704,58 @@ if ($backup_available) {
 				'width'  => '30',
 				'maxlength' => '255'
 			),
+			'backup_format_web' => array (
+				'datatype' => 'VARCHAR',
+				'formtype' => 'SELECT',
+				'default' => '',
+				'value' => array(
+					'default' => 'backup_format_default_txt',
+					'zip' => 'backup_format_zip_txt',
+					'zip_bzip2' => 'backup_format_zip_bzip2_txt',
+					'tar_gzip' => 'backup_format_tar_gzip_txt',
+					'tar_bzip2' => 'backup_format_tar_bzip2_txt',
+					'tar_xz' => 'backup_format_tar_xz_txt',
+					'tar_7z_lzma2' => 'backup_format_tar_7z_lzma2_txt',
+					'tar_7z_lzma' => 'backup_format_tar_7z_lzma_txt',
+					'tar_7z_ppmd' => 'backup_format_tar_7z_ppmd_txt',
+					'tar_7z_bzip2' => 'backup_format_tar_7z_bzip2_txt',
+					'rar' => 'backup_format_rar_txt',
+				)
+			),
+			'backup_format_db' => array (
+				'datatype' => 'VARCHAR',
+				'formtype' => 'SELECT',
+				'default' => '',
+				'value' => array(
+					'zip' => 'backup_format_zip_txt',
+					'zip_bzip2' => 'backup_format_zip_bzip2_txt',
+					'gzip' => 'backup_format_gzip_txt',
+					'bzip2' => 'backup_format_bzip2_txt',
+					'xz' => 'backup_format_xz_txt',
+					'7z_lzma2' => 'backup_format_7z_lzma2_txt',
+					'7z_lzma' => 'backup_format_7z_lzma_txt',
+					'7z_ppmd' => 'backup_format_7z_ppmd_txt',
+					'7z_bzip2' => 'backup_format_7z_bzip2_txt',
+					'rar' => 'backup_format_rar_txt',
+				)
+			),
+			'backup_encrypt' => array (
+				'datatype' => 'VARCHAR',
+				'formtype' => 'CHECKBOX',
+				'default'  => 'n',
+				'value' => array (
+					0 => 'n',
+					1 => 'y'
+				)
+			),
+			'backup_password' => array (
+				'datatype' => 'VARCHAR',
+				'formtype' => 'TEXT',
+				'default' => '',
+				'value'  => '',
+				'width'  => '30',
+				'maxlength' => '255'
+			),
 			//#################################
 			// END Datatable fields
 			//#################################
diff --git a/interface/web/sites/lib/lang/ar_web_backup_list.lng b/interface/web/sites/lib/lang/ar_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/ar_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/ar_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
index f866aa7b25a3565dd99f38adfb6329ada36cbdd9..f9c396616bc778487cf79e2f4ec3fa0642bea7b4 100644
--- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_web_backup_list.lng b/interface/web/sites/lib/lang/bg_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/bg_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/bg_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
index 84b729eda59db38119715b7ca6cdf330ac15eeaf..1ab6c244cc4849bb26df7134190020ec1f89e71c 100644
--- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_backup_list.lng b/interface/web/sites/lib/lang/br_web_backup_list.lng
index 82883c1f29fe17de0982a3dfe073770c0c9849f0..00384c6e15b5135e76905cb549e171b7184fa469 100644
--- a/interface/web/sites/lib/lang/br_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/br_web_backup_list.lng
@@ -18,5 +18,36 @@ $wb['delete_pending_txt'] = 'Já existe uma remoção de backup em andamento.';
 $wb['backup_type_mongodb'] = 'MongoDB';
 $wb['backup_type_mysql'] = 'MySQL';
 $wb['backup_type_web'] = 'Arquivos do site';
-
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng
index 7d021d4a3243a47d394ffa784df701b7c43206e0..a074b160a39ff03b41a410eac41507ed0674bed6 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng
@@ -161,4 +161,31 @@ $wb['log_retention_txt'] = 'Tempo de retenção do log de arquivos';
 $wb['log_retention_error_regex'] = 'Tempo de retenção em dias (valores permitidos: mínimo 0, máximo 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Cota de disco não pode ser configurada para 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_web_backup_list.lng b/interface/web/sites/lib/lang/ca_web_backup_list.lng
index 97b04a0c0508d02e78e99194e1efbd06b05affe8..89d40ddb05a007a56bae2b1b50b2e6a12836fc91 100644
--- a/interface/web/sites/lib/lang/ca_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/ca_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak
 $wb['delete_confirm_txt'] = 'Really delete this backup?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
index 40fda06d115c972db8424325afe3b6a99022fece..d0a5a58bd3046c1b16f5b2b9191fbf7d15cadb72 100644
--- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_web_backup_list.lng b/interface/web/sites/lib/lang/cz_web_backup_list.lng
index d30e41d961b094dfdfdadfd6f0fa0399c2364da5..e881afca1251c883acd2b6291ad6ddcce482bf79 100644
--- a/interface/web/sites/lib/lang/cz_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Bylo zahájeno odstranění zálohy. Tato akce může
 $wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?';
 $wb['delete_pending_txt'] = 'Již existuje čekající úloha pro odstranění zálohy.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
index 5e6ed3e7561c6831569d9db602c1c078a2a5654b..250f98c89032efdd9f38ad9f424599ae48a7d5bf 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/de_web_backup_list.lng b/interface/web/sites/lib/lang/de_web_backup_list.lng
index 63b27051bbc9de3c595e11b102a0ec1dcbd778de..3c38207b76879686cc4d16d7795c73a5eb796368 100644
--- a/interface/web/sites/lib/lang/de_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/de_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['delete_pending_txt'] = 'Es liegt bereits ein Backup-Lösch-Job an.';
 $wb['backup_type_mysql'] = 'MySQL-Datenbank';
 $wb['backup_type_web'] = 'Webseiten-Dateien';
 $wb['filesize_txt'] = 'Filesize';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
index b5fef5aa15dc9d5da23ab681be8875cb271965f9..e4424799a645f13ac08d07baad0485f155b4c475 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Log-Dateien Aufbewahrungszeit';
 $wb['log_retention_error_regex'] = 'Aufbewahrungszeit in Tagen (Erlaubte Werte: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota kann nicht 0 sein.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_web_backup_list.lng b/interface/web/sites/lib/lang/dk_web_backup_list.lng
index eb45c4e89b3fc71313c1558bf12795c44a304e30..fb9f0e997f505ae23b53b6c7cae7eb61767d61a5 100644
--- a/interface/web/sites/lib/lang/dk_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/dk_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak
 $wb['delete_confirm_txt'] = 'Really delete this backup?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
index 40fda06d115c972db8424325afe3b6a99022fece..d0a5a58bd3046c1b16f5b2b9191fbf7d15cadb72 100644
--- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/el_web_backup_list.lng b/interface/web/sites/lib/lang/el_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/el_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/el_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain.lng b/interface/web/sites/lib/lang/el_web_vhost_domain.lng
index 4fc9e15107f5ce135223c29edc7a1345af5b9583..d4cb988a17a75699c92ba61df41c1624ae879a7c 100644
--- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/en_web_backup_list.lng b/interface/web/sites/lib/lang/en_web_backup_list.lng
index 6ec5f5f3c74bf8bd42955bde5e520d3f217d21a3..f541108807e4c693d22dffc5fd99fcdf76883014 100644
--- a/interface/web/sites/lib/lang/en_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/en_web_backup_list.lng
@@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'Existing backups';
 $wb['date_txt'] = 'Date';
 $wb['backup_type_txt'] = 'Type';
 $wb['filename_txt'] = 'Backup file';
-$wb['filesize_txt'] = 'Filesize';
+$wb['filesize_txt'] = 'File size';
 $wb['restore_backup_txt'] = 'Restore';
 $wb['download_backup_txt'] = 'Download';
 $wb['download_info_txt'] = 'The backup file will be available for download in the backup folder of the website in a few minutes.';
@@ -18,5 +18,36 @@ $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
 $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
-
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
index 985a1abcf26a93de6b49df712b514dabc22d71da..66bfd1ca19abcae6ad1428ff4305840091f2f735 100644
--- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
@@ -161,4 +161,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/es_web_backup_list.lng b/interface/web/sites/lib/lang/es_web_backup_list.lng
index 04896d9eba27dc80a18f7cc17a35a8cab9df365c..931ada712b26edf24292e0703be3df55666b790d 100644
--- a/interface/web/sites/lib/lang/es_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/es_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'Base de datos MySQL';
 $wb['backup_type_web'] = 'Archivos del sitio web';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng
index d6de7b80889c56d4e73ec323ae16e16a75efffe6..504bea2aa6a0c524a080672d6432a1cf8d363f74 100644
--- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_web_backup_list.lng b/interface/web/sites/lib/lang/fi_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/fi_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/fi_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
index 3c9dfc5578012409404027553d1c0f867342b686..460fbadff79d03c3e9b2cfbd41eef5f1bd7c1821 100644
--- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_web_backup_list.lng b/interface/web/sites/lib/lang/fr_web_backup_list.lng
index 6f1c5e13486dc6490b8bbaaf8aeb60aac288cdae..92e44845aede00f50dd52928d44cef6b9c8fedf3 100644
--- a/interface/web/sites/lib/lang/fr_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak
 $wb['delete_confirm_txt'] = 'Really delete this backup?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
index 91a806f8700fab7416a3bd5f420c596f215d46b3..306a48aedc7e04daf9188eec5c70996d667d9d0a 100644
--- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_web_backup_list.lng b/interface/web/sites/lib/lang/hr_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/hr_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/hr_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
index 3874c876f1b3f32d4f162da8b2d27dffa9c52437..d8835323973e14b14076ca2974f7c31c85e4e06e 100644
--- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_web_backup_list.lng b/interface/web/sites/lib/lang/hu_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/hu_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/hu_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
index d14356efefc841432e615f6ed45e7db4819e321e..4d54b0a4c74ba69e15ab8406046a459aec287750 100644
--- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/id_web_backup_list.lng b/interface/web/sites/lib/lang/id_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/id_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/id_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain.lng b/interface/web/sites/lib/lang/id_web_vhost_domain.lng
index 0d7d7285ab6a291c8d21d0ea95e60ae646d028cc..3aa65982cda753af40bcb5b79525bc21ac42d671 100644
--- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/it_web_backup_list.lng b/interface/web/sites/lib/lang/it_web_backup_list.lng
index 9aa7b0c1750414f81488e0723eeddf8cdb19dbe3..d81039ea1ac5c45c91cd080e69d958089adfda5f 100644
--- a/interface/web/sites/lib/lang/it_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/it_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['delete_info_txt'] = 'Delete of the backup has been started. This action tak
 $wb['delete_confirm_txt'] = 'Really delete this backup?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain.lng b/interface/web/sites/lib/lang/it_web_vhost_domain.lng
index 4613d2e14e26ffe5d417b556e5171987881c6779..cc890d855ef27a50798498c795ca5168d2ae31c6 100644
--- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_web_backup_list.lng b/interface/web/sites/lib/lang/ja_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/ja_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/ja_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
index f4eabe51de05802c386279441031836735a842b1..bfb5e8b13773b9ed36aececa3451938a59f52733 100644
--- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_backup_list.lng b/interface/web/sites/lib/lang/nl_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/nl_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
index fbd13b159d7c6c77104219fac16428d8920eb1f2..d67cde421abb02725299b0877820fb708666c2dc 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_web_backup_list.lng b/interface/web/sites/lib/lang/pl_web_backup_list.lng
index b9fdf3d63224fccd87dbd21ab0317996a78c7bb7..a04c0bacd22da4d47fafbaba4c91c2ffaef4ba7b 100644
--- a/interface/web/sites/lib/lang/pl_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/pl_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'Baza MySQL';
 $wb['backup_type_web'] = 'Pliki strony';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
index ce4cdaceaf28603fca9d63e293041bc35032a980..c24c319fe59399b914cdb929518960e6f515d6d2 100644
--- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_web_backup_list.lng b/interface/web/sites/lib/lang/pt_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/pt_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/pt_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
index 8c1e76af3814b40d744512f90ed3e678b8829c52..dc6895c3e1fa4398aa9ce404dcc940567aa8a9dc 100644
--- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_web_backup_list.lng b/interface/web/sites/lib/lang/ro_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/ro_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/ro_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
index 00a9c247fc177e2129c0b8364b954c3f5e0bba5e..8e27105a6adbd7ee5bc83dc7923409d580190ae9 100644
--- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_web_backup_list.lng b/interface/web/sites/lib/lang/ru_web_backup_list.lng
index 8d5b7b757b9fa30a8846bdab2ddabc5798dcd880..8943d94750a7e0ee429de40b9250da5bfef40909 100644
--- a/interface/web/sites/lib/lang/ru_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/ru_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'База данных MySQL';
 $wb['backup_type_web'] = 'Файлы Web сайта';
 $wb['filesize_txt'] = 'Размер файла';
 $wb['backup_type_mongodb'] = 'База данных MongoDB';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
index 8e596defa399a59f4ce7c8062c27d99daa177b31..c9a2a0a4ba116639b491126a06bf56498c3c4e07 100644
--- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/se_web_backup_list.lng b/interface/web/sites/lib/lang/se_web_backup_list.lng
index 1f9073ab6de74b70db042178f7606cf02d5bb21b..702a46e8d2e14344d0b98fd29cf2c0f6dd344496 100644
--- a/interface/web/sites/lib/lang/se_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/se_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL-databaser';
 $wb['backup_type_web'] = 'Webbsidefiler';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain.lng b/interface/web/sites/lib/lang/se_web_vhost_domain.lng
index 01db60b572a21ec4f550078e0d931af5412ae6af..ec509b333aa90818ad8f0ba7b9dc67542c284436 100644
--- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_txt'] = 'Logfiles retention time';
 $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_web_backup_list.lng b/interface/web/sites/lib/lang/sk_web_backup_list.lng
index d1133334f0dd6ae11875e5f8991bef9ab7b63b3c..056c7576aeedae6308b0a1254ba1ec4983493488 100644
--- a/interface/web/sites/lib/lang/sk_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/sk_web_backup_list.lng
@@ -18,4 +18,36 @@ $wb['backup_type_mysql'] = 'MySQL Database';
 $wb['backup_type_web'] = 'Website files';
 $wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
index 7d52d3edf189dfac4fc46608acc73c264d828f0c..0509b1a3bb56480beaf35b290b3aaa048dc9d146 100644
--- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
@@ -156,4 +156,31 @@ $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min.
 $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.';
 $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.';
 $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_backup_list.lng b/interface/web/sites/lib/lang/tr_web_backup_list.lng
index 31aea494ca227e1341cdddbac02d80c6101bb04b..e304290f615aaad79a068dcffa1db663a01d36cd 100644
--- a/interface/web/sites/lib/lang/tr_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_backup_list.lng
@@ -18,5 +18,36 @@ $wb['delete_pending_txt'] = 'Bekleyen bir yedek silme iÅŸlemi var.';
 $wb['backup_type_mongodb'] = 'MongoDB Veritabanı';
 $wb['backup_type_mysql'] = 'MySQL Veritabanı';
 $wb['backup_type_web'] = 'Web sitesi dosyaları';
-
+$wb['backup_pending_txt'] = 'There is already a pending backup job.';
+$wb['error_txt'] = 'Error';
+$wb['backup_info_txt'] = 'A backup process started. This action can take several minutes to complete.';
+$wb["backup_format_txt"] = 'Backup format';
+$wb["backup_format_unknown_txt"] = 'Unknown';
+$wb["backup_job_txt"] = 'Scheduler';
+$wb["backup_job_manual_txt"] = 'Manual';
+$wb["backup_job_auto_txt"] = 'Auto';
+$wb["manual_backup_title_txt"] = 'Manual backup';
+$wb["make_backup_web_txt"] = 'Make backup of web files';
+$wb["make_backup_database_txt"] = 'Make backup of databases';
+$wb["make_backup_confirm_txt"] = 'You are about to start a manual backup process. Manual backups count towards the total number of allowed backup copies: therefore if the limit will be exceeded, then oldest backups may be deleted automatically. Proceed?';
+$wb["yes_txt"] = 'Yes';
+$wb["no_txt"] = 'No';
+$wb["backup_is_encrypted_txt"] = "Encrypted";
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
+$wb["backup_format_rar_txt"] = 'RAR';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
index a190375c374423fce7f0cb7ac9f9427bdfa05547..071df396e4958171fb8b0049cae3d5464ce578e6 100644
--- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
@@ -158,4 +158,31 @@ $wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.';
 $wb['enable_pagespeed_txt'] = 'PageSpeed Kullanılsın';
 $wb['log_retention_txt'] = 'Günlük Dosyalarının Silinme Sıklığı';
 $wb['log_retention_error_regex'] = 'Gün cinsinden günlük dosyalarının silinme sıklığı (En küçük: 0 - En büyük: 9999)';
+$wb["backup_format_web_txt"] = 'Backup format for web files';
+$wb["backup_format_db_txt"] = 'Backup format for database';
+$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.';
+$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: ';
+$wb["backup_compression_options_txt"] = 'Compression options';
+$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it.";
+$wb["backup_encryption_options_txt"] = 'Encryption options';
+$wb["backup_enable_encryption_txt"] = 'Enable encryption';
+$wb["backup_password_txt"] = 'Password';
+$wb["backup_format_default_txt"] = 'Default: zip (deflate) or tar (gzip)';
+$wb["backup_format_zip_txt"] = 'zip (deflate)';
+$wb["backup_format_gzip_txt"] = 'gzip';
+$wb["backup_format_bzip2_txt"] = 'bzip2';
+$wb["backup_format_xz_txt"] = 'xz';
+$wb["backup_format_zip_bzip2_txt"] = 'zip (bzip2)';
+$wb["backup_format_7z_lzma_txt"] = '7z (LZMA)';
+$wb["backup_format_7z_lzma2_txt"] = '7z (LZMA2)';
+$wb["backup_format_7z_ppmd_txt"] = '7z (PPMd)';
+$wb["backup_format_7z_bzip2_txt"] = '7z (BZip2)';
+$wb["backup_format_tar_gzip_txt"] = 'tar (gzip)';
+$wb["backup_format_tar_bzip2_txt"] = 'tar (bzip2)';
+$wb["backup_format_tar_xz_txt"] = 'tar (xz)';
+$wb["backup_format_rar_txt"] = 'RAR';
+$wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)';
+$wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)';
+$wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)';
+$wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)';
 ?>
diff --git a/interface/web/sites/templates/cron_edit.htm b/interface/web/sites/templates/cron_edit.htm
index 579ba8af4f969900139c14dd224e225ba08c6950..2c0f22ddb92728b2ef061a0eea1923cfe5ad0c77 100644
--- a/interface/web/sites/templates/cron_edit.htm
+++ b/interface/web/sites/templates/cron_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>Cron Job</legend>
             <div class="form-group">
                 <tmpl_if name="edit_disabled">
                     <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
@@ -80,4 +73,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/cron_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/cron_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/sites/templates/database_edit.htm b/interface/web/sites/templates/database_edit.htm
index 290ae30a96e5a90293699d4caa7628ec4745b431..a61e85e193d1ce26afbb8603e4426c157a27e712 100644
--- a/interface/web/sites/templates/database_edit.htm
+++ b/interface/web/sites/templates/database_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <tmpl_if name="is_admin">
                 <div class="form-group">
                     <tmpl_if name="edit_disabled">
diff --git a/interface/web/sites/templates/database_user_edit.htm b/interface/web/sites/templates/database_user_edit.htm
index c9ae106cb02032dd482dadf9fb95329543432a07..8e9c9fd43dfe3f6ef9a7fe46a9b4b445bd21f0da 100644
--- a/interface/web/sites/templates/database_user_edit.htm
+++ b/interface/web/sites/templates/database_user_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <tmpl_if name="is_admin">
                 <div class="form-group">
                     <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
@@ -64,4 +57,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/database_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/database_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/sites/templates/ftp_user_advanced.htm b/interface/web/sites/templates/ftp_user_advanced.htm
index 11069aee97376d495126b9976ec6d87f91be162f..e77c0bcb262e817c4d133fb47dac13f7bf18bf4b 100644
--- a/interface/web/sites/templates/ftp_user_advanced.htm
+++ b/interface/web/sites/templates/ftp_user_advanced.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="uid" class="col-sm-3 control-label">{tmpl_var name='uid_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="uid" id="uid" value="{tmpl_var name='uid'}" class="form-control" /></div></div>
diff --git a/interface/web/sites/templates/ftp_user_advanced_client.htm b/interface/web/sites/templates/ftp_user_advanced_client.htm
index 02479c9e2f372da9bd269b5cf111440b4cfb31b3..c4cb1646ac04150f621ad69c449c7fb442fda850 100644
--- a/interface/web/sites/templates/ftp_user_advanced_client.htm
+++ b/interface/web/sites/templates/ftp_user_advanced_client.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="dir" class="col-sm-3 control-label">{tmpl_var name='dir_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="dir" id="dir" value="{tmpl_var name='dir'}" class="form-control" /></div></div>
diff --git a/interface/web/sites/templates/ftp_user_edit.htm b/interface/web/sites/templates/ftp_user_edit.htm
index 72ec55fbecdd3ce629f255681a3d70e38f86d92d..e9b4e7ff9a2647c25038abd751869f0b2e700c0c 100644
--- a/interface/web/sites/templates/ftp_user_edit.htm
+++ b/interface/web/sites/templates/ftp_user_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
                 <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control">
@@ -64,4 +57,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/ftp_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/ftp_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/sites/templates/shell_user_advanced.htm b/interface/web/sites/templates/shell_user_advanced.htm
index bcbbdfa16d471731536daf9f3c267048bc7394e7..640497a5716a0a3e05a45f4beef94bb2c9139dbb 100644
--- a/interface/web/sites/templates/shell_user_advanced.htm
+++ b/interface/web/sites/templates/shell_user_advanced.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 		<div class="form-group">
 			<label for="puser" class="col-sm-3 control-label">{tmpl_var name='puser_txt'}</label>
 			<div class="col-sm-9"><input type="text" name="puser" id="puser" value="{tmpl_var name='puser'}" class="form-control" /></div>
@@ -30,4 +25,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/shell_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/shell_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/sites/templates/shell_user_edit.htm b/interface/web/sites/templates/shell_user_edit.htm
index e5b305b0d4da5de711bd19f621b0722778bfd4b1..c1c23965f14caa87033e9fc42c2a0185b7e33311 100644
--- a/interface/web/sites/templates/shell_user_edit.htm
+++ b/interface/web/sites/templates/shell_user_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <tmpl_if name="edit_disabled">
                     <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
@@ -86,4 +79,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/shell_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/shell_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm
index 31028a703c9d6ff5a5aabb8ee0ea94bea2639452..95c51d0c15e9ebd885b1fbaa71ec472133874ce5 100644
--- a/interface/web/sites/templates/web_backup_list.htm
+++ b/interface/web/sites/templates/web_backup_list.htm
@@ -1,12 +1,18 @@
+<h3><tmpl_var name="manual_backup_title_txt"></h3>
+<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&make_backup=database&','{tmpl_var name='make_backup_confirm_txt'}');">{tmpl_var name="make_backup_database_txt"}</button>
+<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&make_backup=web&','{tmpl_var name='make_backup_confirm_txt'}');">{tmpl_var name="make_backup_web_txt"}</button>
+
 <tmpl_if name="msg">
-    <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
+    <div id="OKMsg" class="tab-content bg-success text-success text-center"><p><tmpl_var name="msg"></p></div>
 </tmpl_if>
 <tmpl_if name="error">
-    <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
+    <div id="errorMsg" class="tab-content bg-danger text-danger text-center">
+        <h4><tmpl_var name="error_txt"></h4>
+        <p><tmpl_var name="error"></p>
+    </div>
 </tmpl_if>
 <h3><tmpl_var name="list_head_txt"></h3>
 
-
         <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p>
             <div class="table-wrapper marginTop15">
 <table class="table table-auto table-striped" style="padding: 5px;">
@@ -14,6 +20,9 @@
                     <tr>
                         <th data-column="date"><tmpl_var name="date_txt"></th>
                         <th data-column="backup_type"><tmpl_var name="backup_type_txt"></th>
+                        <th data-column="backup_format"><tmpl_var name="backup_format_txt"></th>
+                        <th data-column="backup_job"><tmpl_var name="backup_job_txt"></th>
+                        <th data-column="backup_encrypted"><tmpl_var name="backup_is_encrypted_txt"></th>
                         <th data-column="filename"><tmpl_var name="filename_txt"></th>
                         <th data-column="filesize"><tmpl_var name="filesize_txt"></th>
                         <th class="small-col text-right">{tmpl_var name='search_limit'}</th>
@@ -24,6 +33,9 @@
                         <tr>
                             <td>{tmpl_var name="date"}</td>
                             <td>{tmpl_var name="backup_type"}</td>
+                            <td>{tmpl_var name="backup_format"}</td>
+                            <td>{tmpl_var name="backup_job"}</td>
+                            <td>{tmpl_var name="backup_encrypted"}</td>
                             <td>{tmpl_var name="filename"}</td>
                             <td>{tmpl_var name="filesize"}</td>
                             <td class="text-center">
diff --git a/interface/web/sites/templates/web_childdomain_advanced.htm b/interface/web/sites/templates/web_childdomain_advanced.htm
index 1eac3118247f998c9104a96c4e6349eae7b13d4b..e2a1bc49755dd4a6684a5592c5c925b5fb8bf9e3 100644
--- a/interface/web/sites/templates/web_childdomain_advanced.htm
+++ b/interface/web/sites/templates/web_childdomain_advanced.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-    <legend>Options</legend>
       <div class="form-group proxy">
                 <label for="proxy_directives" class="col-sm-3 control-label">{tmpl_var name='proxy_directives_txt'}</label>
 				 <div class="col-sm-9"><textarea class="form-control" name="proxy_directives" id="proxy_directives" rows='10' cols='50'>{tmpl_var name='proxy_directives'}</textarea>&nbsp;<b>{tmpl_var name="available_proxy_directive_snippets_txt"}</b><br><br>&nbsp;{tmpl_var name="proxy_directive_snippets_txt"}
diff --git a/interface/web/sites/templates/web_childdomain_edit.htm b/interface/web/sites/templates/web_childdomain_edit.htm
index 4836f4a65cd586da1e0624d34d1e2d820cccd267..9e16d3ce94464ff95b58701513763c218936c477 100644
--- a/interface/web/sites/templates/web_childdomain_edit.htm
+++ b/interface/web/sites/templates/web_childdomain_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
 			<tmpl_if name="childdomain_type" value="subdomain">
             <tmpl_if name="domain_option">
             <div class="form-group">
@@ -175,4 +168,4 @@
             }
         });
     }
-</script>
\ No newline at end of file
+</script>
diff --git a/interface/web/sites/templates/web_folder_edit.htm b/interface/web/sites/templates/web_folder_edit.htm
index dd24094434b3e0d04557b477b3e3209b3a4991bb..e3fef0e4775fb5b8ee7111668f8751cbee9442c0 100644
--- a/interface/web/sites/templates/web_folder_edit.htm
+++ b/interface/web/sites/templates/web_folder_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>Folder</legend>
             <div class="form-group">
                 <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
                 <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control">
diff --git a/interface/web/sites/templates/web_folder_user_edit.htm b/interface/web/sites/templates/web_folder_user_edit.htm
index 5a7ab466c1efb9aaa45885b7719ae2beef09b870..a0c0db81202ae084212f641ed7c2a9933a73ebca 100644
--- a/interface/web/sites/templates/web_folder_user_edit.htm
+++ b/interface/web/sites/templates/web_folder_user_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        <legend>Folder</legend>
             <div class="form-group">
                 <label for="web_folder_id" class="col-sm-3 control-label">{tmpl_var name='web_folder_id_txt'}</label>
                 <div class="col-sm-9"><select name="web_folder_id" id="web_folder_id" class="form-control">
diff --git a/interface/web/sites/templates/web_vhost_domain_admin_list.htm b/interface/web/sites/templates/web_vhost_domain_admin_list.htm
index 20be5a359f6b902876dc022c8e6787c911428df0..85458f732958708bdce17444655dafa331b8bc09 100644
--- a/interface/web/sites/templates/web_vhost_domain_admin_list.htm
+++ b/interface/web/sites/templates/web_vhost_domain_admin_list.htm
@@ -37,7 +37,7 @@
                 </thead>
                 <tbody>
                 <tmpl_loop name="records">
-                    <tr>
+						<tr <tmpl_if name="warn_inactive"> class="danger" </tmpl_if> >
                     	<tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="domain_id"}</a></td></tmpl_if>
                         <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="active"}</a></td>
                         <tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="sys_groupid"}</a></td></tmpl_if>
diff --git a/interface/web/sites/templates/web_vhost_domain_advanced.htm b/interface/web/sites/templates/web_vhost_domain_advanced.htm
index 11f95d9cbdec9e8ef7969c2a961d8227bd42851e..f1df422bad7f01ec2bb6bbc741b154b87d739aa8 100644
--- a/interface/web/sites/templates/web_vhost_domain_advanced.htm
+++ b/interface/web/sites/templates/web_vhost_domain_advanced.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                 <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
diff --git a/interface/web/sites/templates/web_vhost_domain_backup.htm b/interface/web/sites/templates/web_vhost_domain_backup.htm
index c31a579fc2972e83725e55bb596b8ec8b922779c..0228ae76bbc4ce80830038c714807697910b1b8f 100644
--- a/interface/web/sites/templates/web_vhost_domain_backup.htm
+++ b/interface/web/sites/templates/web_vhost_domain_backup.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                 <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
@@ -12,7 +7,6 @@
 </div>
 </tmpl_if>
 
-        <legend>Backup</legend>
             <div class="form-group">
                 <label for="backup_interval" class="col-sm-3 control-label">{tmpl_var name='backup_interval_txt'}</label>
                 <div class="col-sm-9"><select name="backup_interval" id="backup_interval" class="form-control">
@@ -29,7 +23,53 @@
                 <label for="backup_excludes" class="col-sm-3 control-label">{tmpl_var name='backup_excludes_txt'}</label>
                 <div class="col-sm-6"><input type="text" name="backup_excludes" id="backup_excludes" value="{tmpl_var name='backup_excludes'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;{tmpl_var name='backup_excludes_note_txt'}
             </div></div>
-        
+
+            <legend>{tmpl_var name='backup_compression_options_txt'}</legend>
+            <div class="tab-content">
+                {tmpl_var name='backup_format_web_note_txt'}
+            </div>
+            <tmpl_if name="missing_utils">
+                <div class="tab-content bg-warning text-warning">
+                    {tmpl_var name='backup_missing_utils_txt'} {tmpl_var name='missing_utils'}
+                </div>
+            </tmpl_if>
+            <div class="form-group">
+                <label for="backup_format_web" class="col-sm-3 control-label">{tmpl_var name='backup_format_web_txt'}</label>
+                <div class="col-sm-9">
+                    <select name="backup_format_web" id="backup_format_web" class="form-control">
+                        {tmpl_var name='backup_format_web'}
+                    </select>
+                </div>
+            </div>
+            <div class="form-group">
+                <label for="backup_format_db" class="col-sm-3 control-label">{tmpl_var name='backup_format_db_txt'}</label>
+                <div class="col-sm-9">
+                    <select name="backup_format_db" id="backup_format_db" class="form-control">
+                        {tmpl_var name='backup_format_db'}
+                    </select>
+                </div>
+            </div>
+
+            <legend>{tmpl_var name='backup_encryption_options_txt'}</legend>
+            <div class="tab-content">
+                {tmpl_var name='backup_encryption_note_txt'}
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">
+                    {tmpl_var name='backup_enable_encryption_txt'}
+                </label>
+                <div class="col-sm-9">
+                    {tmpl_var name="backup_encrypt"}
+                </div>
+            </div>
+            <div class="form-group">
+                <label for="backup_password" class="col-sm-3 control-label">
+                    {tmpl_var name='backup_password_txt'}
+                </label>
+                <div class="col-sm-9">
+                    <input type="text" name="backup_password" id="backup_password" value="{tmpl_var name='backup_password'}" class="form-control" />
+                </div>
+            </div>
 
         {tmpl_var name='backup_records'}
 
@@ -38,4 +78,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/web_vhost_domain_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/web_vhost_domain_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/sites/templates/web_vhost_domain_edit.htm b/interface/web/sites/templates/web_vhost_domain_edit.htm
index 247ef175e222cbf574d53dee4f4ebe2da468203b..6092778af876ab69eaf6d142d35ca7517881cac0 100644
--- a/interface/web/sites/templates/web_vhost_domain_edit.htm
+++ b/interface/web/sites/templates/web_vhost_domain_edit.htm
@@ -92,7 +92,9 @@
 			<tmpl_if name="edit_disabled">
 				<div class="form-group">
 					<label for="document_root" class="col-sm-3 control-label" readonly >{tmpl_var name='document_root_txt'}</label>
-					<div class="col-sm-9">{tmpl_var name='document_root'}</div>
+					<div class="col-sm-9">
+                        <div class="checkbox">{tmpl_var name='document_root'}</div>
+                    </div> 
 				</div>
 			</tmpl_if>
             <div class="form-group">
diff --git a/interface/web/sites/templates/web_vhost_domain_list.htm b/interface/web/sites/templates/web_vhost_domain_list.htm
index 4cdde852a3c5bbb2a503b281d74982295111ab3a..3726a707f4d067ab84f2a6d02b698f2332a23155 100644
--- a/interface/web/sites/templates/web_vhost_domain_list.htm
+++ b/interface/web/sites/templates/web_vhost_domain_list.htm
@@ -52,7 +52,7 @@
                 </thead>
                 <tbody>
                 <tmpl_loop name="records">
-                    <tr>
+					<tr <tmpl_if name="warn_inactive"> class="danger" </tmpl_if> >
                     	<tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="domain_id"}</a></td></tmpl_if>
                         <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="active"}</a></td>
                         <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
diff --git a/interface/web/sites/templates/web_vhost_domain_redirect.htm b/interface/web/sites/templates/web_vhost_domain_redirect.htm
index e38c08671c7a5899af323fee3e4e90b1776531b2..3326d5ec96592b324e20979d5552472f6c5e9bc3 100644
--- a/interface/web/sites/templates/web_vhost_domain_redirect.htm
+++ b/interface/web/sites/templates/web_vhost_domain_redirect.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                 <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
@@ -94,4 +89,4 @@
         });
     }
 			
-</script>
\ No newline at end of file
+</script>
diff --git a/interface/web/sites/templates/web_vhost_domain_ssl.htm b/interface/web/sites/templates/web_vhost_domain_ssl.htm
index ad9629fe4cdf670eb8087e9980b6dbcbf1ad5296..8b3d986a02ac43fc459132d7d2f1117bbc295d13 100644
--- a/interface/web/sites/templates/web_vhost_domain_ssl.htm
+++ b/interface/web/sites/templates/web_vhost_domain_ssl.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                 <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
@@ -111,4 +106,4 @@
     }
 	</tmpl_if>
 //-->
-</script>
\ No newline at end of file
+</script>
diff --git a/interface/web/sites/templates/web_vhost_domain_stats.htm b/interface/web/sites/templates/web_vhost_domain_stats.htm
index 66c9fa3c94c75063842a28f06477816d0fe369dd..6ebf9a6613855ea51ad391698440805979655795 100644
--- a/interface/web/sites/templates/web_vhost_domain_stats.htm
+++ b/interface/web/sites/templates/web_vhost_domain_stats.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 <tmpl_if name="config_error_msg">
 <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                 <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
diff --git a/interface/web/sites/templates/webdav_user_edit.htm b/interface/web/sites/templates/webdav_user_edit.htm
index ee261ec29e52a10b6f717362ee42dbdf46c5ac63..3ea8ed2776a56272485c4800b138a65fbf6984c2 100644
--- a/interface/web/sites/templates/webdav_user_edit.htm
+++ b/interface/web/sites/templates/webdav_user_edit.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
-
-        
             <div class="form-group">
                 <tmpl_if name="edit_disabled">
                     <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
@@ -76,4 +69,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/webdav_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/webdav_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/tools/form/interface_settings.tform.php b/interface/web/tools/form/interface_settings.tform.php
index 9ab49eb0f140b0b21bd7381eeea43d0bcd848a37..05eaba941655e0bbb4adac4e4c6e87188ec84694 100644
--- a/interface/web/tools/form/interface_settings.tform.php
+++ b/interface/web/tools/form/interface_settings.tform.php
@@ -61,7 +61,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 $form['title']   = 'interface_head_txt';
-$form['description']  = 'interface_desc_txt';
+//*$form['description']  = 'interface_desc_txt';
 $form['name']   = 'interface';
 $form['action']  = 'interface_settings.php';
 $form['db_table'] = 'sys_user';
diff --git a/interface/web/tools/form/user_settings.tform.php b/interface/web/tools/form/user_settings.tform.php
index f3ad5a2d3d3b1362cb72de062092ac75f5831a83..7daa1a7b84989713bc00186430b18c798e02ee04 100644
--- a/interface/web/tools/form/user_settings.tform.php
+++ b/interface/web/tools/form/user_settings.tform.php
@@ -61,7 +61,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 $form['title']    = 'User Settings';
-$form['description']  = 'Form to edit the user password and language.';
+//*$form['description']  = 'Form to edit the user password and language.';
 $form['name']    = 'usersettings';
 $form['action']   = 'user_settings.php';
 $form['db_table']  = 'sys_user';
diff --git a/interface/web/tools/templates/dns_import_tupa.htm b/interface/web/tools/templates/dns_import_tupa.htm
index cd47f431e017f967aa316fce7fbe75d528cdcb65..4593fbb8002e71ca47c63ae50fce1a9afcb89191 100644
--- a/interface/web/tools/templates/dns_import_tupa.htm
+++ b/interface/web/tools/templates/dns_import_tupa.htm
@@ -2,7 +2,6 @@
 <p><tmpl_var name="list_desc_txt"></p>
 
 
-        <legend>PowerDNS Tupa import</legend>
             <div class="form-group">
                 <label class="col-sm-3 control-label" for="dbhost">Tupa database hostname</label>
                 <div class="col-sm-9"><input class="form-control" type="text" id="dbhost" value="{tmpl_var name='dbhost'}" name="dbhost" /></div>
diff --git a/interface/web/tools/templates/interface_settings.htm b/interface/web/tools/templates/interface_settings.htm
index ccd500044521a6e29e5e093811fdaaa081b3f0bb..6767287206140bca39b52268de0d75be409fa621 100644
--- a/interface/web/tools/templates/interface_settings.htm
+++ b/interface/web/tools/templates/interface_settings.htm
@@ -1,10 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="page_head_txt"></h1>
-</div>
-<p><tmpl_var name="page_desc_txt"></p>
-
-
-        
             <!-- TODO: If user theme change is activated -->
             <div class="form-group">
                 <label for="app_theme" class="col-sm-3 control-label">{tmpl_var name='app_theme_txt'}</label>
@@ -26,4 +19,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/interface_settings.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/tools/templates/resync.htm b/interface/web/tools/templates/resync.htm
index 3e66290fb0fd46e2117a7550bf0d0a12e18d76cd..ef3ac886c8b49c46487d7137c9d430b9745e9bec 100644
--- a/interface/web/tools/templates/resync.htm
+++ b/interface/web/tools/templates/resync.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-	
 <div class="form-group">
 	<label for="resync_all" class="col-sm-2 control-label">{tmpl_var name='resync_all_txt'}</label>
 	<div class="col-sm-1"><input type="checkbox" id="resync_all" value="1" name="resync_all"></div>
diff --git a/interface/web/tools/templates/user_settings.htm b/interface/web/tools/templates/user_settings.htm
index 26f9e0c861602e55c3e1d099aed496a747a6c658..4fa1c9de34d0b2007d6923f32f4f147f2957e8ad 100644
--- a/interface/web/tools/templates/user_settings.htm
+++ b/interface/web/tools/templates/user_settings.htm
@@ -1,8 +1,3 @@
-<div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
-</div>
-<p><tmpl_var name="list_desc_txt"></p>
-
 			<div class="form-group">
                 <label for="passwort" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
@@ -43,4 +38,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/user_settings.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/remoting_client/API-docs/sites_database_add.html b/remoting_client/API-docs/sites_database_add.html
index acf53e7bc0102aa57c5d3e8a002c4c91f3a8bfee..143d034721092c9ce211ef62a3d1770dcee5b80f 100644
--- a/remoting_client/API-docs/sites_database_add.html
+++ b/remoting_client/API-docs/sites_database_add.html
@@ -31,6 +31,8 @@
 <p class="margin"> remote_ips&nbsp;&nbsp;(<span class="paratype">text</span>)</p>
 <p class="margin"> backup_interval&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> backup_copies&nbsp;&nbsp;(<span class="paratype">int(11)</span>)</p>
+<p class="margin"> backup_format_web&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
+<p class="margin"> backup_format_db&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> active&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <p class="headgrp">Output: </p> 
 <p class="margin"> Returns the ID of the newly added database.</p>
diff --git a/remoting_client/API-docs/sites_web_aliasdomain_add.html b/remoting_client/API-docs/sites_web_aliasdomain_add.html
index 12e313efcc6f2e980562da0b45d635a489f8a0f6..688b6cd139f09c1417eb668b2e3935d733ca1b04 100644
--- a/remoting_client/API-docs/sites_web_aliasdomain_add.html
+++ b/remoting_client/API-docs/sites_web_aliasdomain_add.html
@@ -59,6 +59,8 @@
 <p class="margin"> custom_php_ini&nbsp;&nbsp;(<span class="paratype">mediumtext</span>)</p>
 <p class="margin"> backup_interval&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> backup_copies&nbsp;&nbsp;(<span class="paratype">int(11)</span>)</p>
+<p class="margin"> backup_format_web&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
+<p class="margin"> backup_format_db&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> active&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <p class="margin"> traffic_quota_lock&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <p class="headgrp">Output: </p> 
diff --git a/remoting_client/API-docs/sites_web_aliasdomain_update.html b/remoting_client/API-docs/sites_web_aliasdomain_update.html
index 53daaa2b2b363f4354ff428daf7ebaa383545a88..52b118f58b5b2bbb2c3ef34a0eb075a392f08617 100644
--- a/remoting_client/API-docs/sites_web_aliasdomain_update.html
+++ b/remoting_client/API-docs/sites_web_aliasdomain_update.html
@@ -60,6 +60,8 @@
 <p class="margin"> custom_php_ini&nbsp;&nbsp;(<span class="paratype">mediumtext</span>)</p>
 <p class="margin"> backup_interval&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> backup_copies&nbsp;&nbsp;(<span class="paratype">int(11)</span>)</p>
+<p class="margin"> backup_format_web&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
+<p class="margin"> backup_format_db&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> active&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <p class="margin"> traffic_quota_lock&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <b>Output: </b> 
diff --git a/remoting_client/API-docs/sites_web_subdomain_add.html b/remoting_client/API-docs/sites_web_subdomain_add.html
index 3e884f4ec7c733071db6ca589d66e03a9cf3839f..b2c5404a0456a2c2d40ab6972ecdc623694813f5 100644
--- a/remoting_client/API-docs/sites_web_subdomain_add.html
+++ b/remoting_client/API-docs/sites_web_subdomain_add.html
@@ -59,6 +59,8 @@
 <p class="margin"> custom_php_ini&nbsp;&nbsp;(<span class="paratype">mediumtext</span>)</p>
 <p class="margin"> backup_interval&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> backup_copies&nbsp;&nbsp;(<span class="paratype">int(11)</span>)</p>
+<p class="margin"> backup_format_web&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
+<p class="margin"> backup_format_db&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> active&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <p class="margin"> traffic_quota_lock&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <p class="headgrp">Output: </p> 
diff --git a/remoting_client/API-docs/sites_web_subdomain_update.html b/remoting_client/API-docs/sites_web_subdomain_update.html
index 4563912b59daa09bc0c5076f31e4703911c2b41f..a6b47245d6f8cf6008486bb30b739ac11e0e1bfe 100644
--- a/remoting_client/API-docs/sites_web_subdomain_update.html
+++ b/remoting_client/API-docs/sites_web_subdomain_update.html
@@ -59,6 +59,8 @@
 <p class="margin"> custom_php_ini&nbsp;&nbsp;(<span class="paratype">mediumtext</span>)</p>
 <p class="margin"> backup_interval&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> backup_copies&nbsp;&nbsp;(<span class="paratype">int(11)</span>)</p>
+<p class="margin"> backup_format_web&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
+<p class="margin"> backup_format_db&nbsp;&nbsp;(<span class="paratype">varchar(255)</span>)</p>
 <p class="margin"> active&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <p class="margin"> traffic_quota_lock&nbsp;&nbsp;(<span class="paratype">enum('n','y')</span>)</p>
 <b>Output: </b> 
diff --git a/remoting_client/examples/sites_database_add.php b/remoting_client/examples/sites_database_add.php
index c63ad551eb243da03c4b0475cac66bb7fbf254a0..9de1e6674bd7ae53e4ad615ec542fbc7f43e9738 100644
--- a/remoting_client/examples/sites_database_add.php
+++ b/remoting_client/examples/sites_database_add.php
@@ -28,6 +28,8 @@ try {
 		'remote_ips' => '',
 		'backup_interval' => 'none',
 		'backup_copies' => 1,
+		'backup_format_web' => 'default',
+		'backup_format_db' => 'gzip',
 		'active' => 'y'
 	);
 
diff --git a/remoting_client/examples/sites_web_aliasdomain_add.php b/remoting_client/examples/sites_web_aliasdomain_add.php
index c459e47b87a8a875d63d0eef831ed89f4c093b37..602b273dd1b0ecbcabdcaed58f9af5d248c62c03 100644
--- a/remoting_client/examples/sites_web_aliasdomain_add.php
+++ b/remoting_client/examples/sites_web_aliasdomain_add.php
@@ -57,6 +57,8 @@ try {
 		'custom_php_ini' => '',
 		'backup_interval' => '',
 		'backup_copies' => 1,
+		'backup_format_web' => 'default',
+		'backup_format_db' => 'gzip',
 		'active' => 'y',
 		'traffic_quota_lock' => 'n'
 	);
diff --git a/remoting_client/examples/sites_web_domain_add.php b/remoting_client/examples/sites_web_domain_add.php
index 1ddd21e13669d0291f2fa7c356a0aaec3dc389e9..0ee462ab7a34d2e67944de3adbb37cad81944462 100644
--- a/remoting_client/examples/sites_web_domain_add.php
+++ b/remoting_client/examples/sites_web_domain_add.php
@@ -58,6 +58,8 @@ try {
 		'custom_php_ini' => '',
 		'backup_interval' => '',
 		'backup_copies' => 1,
+		'backup_format_web' => 'default',
+		'backup_format_db' => 'gzip',
 		'active' => 'y',
 		'traffic_quota_lock' => 'n',
 		'http_port' => '80',
diff --git a/remoting_client/examples/sites_web_subdomain_add.php b/remoting_client/examples/sites_web_subdomain_add.php
index ac319388f0958dad44a14d24a7b3c35ebf83d125..c5a92b4703795944347e44253d0a63b10db4f35f 100644
--- a/remoting_client/examples/sites_web_subdomain_add.php
+++ b/remoting_client/examples/sites_web_subdomain_add.php
@@ -57,6 +57,8 @@ try {
 		'custom_php_ini' => '',
 		'backup_interval' => '',
 		'backup_copies' => 1,
+		'backup_format_web' => 'default',
+		'backup_format_db' => 'gzip',
 		'active' => 'y',
 		'traffic_quota_lock' => 'n'
 	);
diff --git a/server/backup-now.php b/server/backup-now.php
new file mode 100644
index 0000000000000000000000000000000000000000..aa73a8436931ef8b2cb846ed7c4c844a677f88aa
--- /dev/null
+++ b/server/backup-now.php
@@ -0,0 +1,108 @@
+<?php
+
+/*
+Copyright (c) 2007-2016, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"]));
+require SCRIPT_PATH."/lib/config.inc.php";
+require SCRIPT_PATH."/lib/app.inc.php";
+
+set_time_limit(0);
+ini_set('error_reporting', E_ALL & ~E_NOTICE);
+
+/**
+ * Prints usage info
+ * @author Ramil Valitov <ramilvalitov@gmail.com>
+ */
+function printUsageInfo(){
+    echo <<<EOT
+Usage:
+	php backup-now.php --id=<4> [--type=<all>]
+Options:
+	--id		id of the website to backup.
+	--type		backup type: all, web or mysql. Default is all.
+
+EOT;
+}
+
+/**
+ * Makes a backup
+ * @param int $domain_id id of the domain
+ * @param string $type type: mysql, web or all
+ * @return bool true if success
+ * @uses backup::run_backup() to make backups
+ * @author Ramil Valitov <ramilvalitov@gmail.com>
+ */
+function makeBackup($domain_id, $type)
+{
+    global $app;
+
+    echo "Making backup of website id=" . $domain_id . ", type=" . $type . ", please wait...\n";
+
+    // Load required class
+    $app->load('backup');
+
+    switch ($type) {
+        case "all":
+            $success = backup::run_backup($domain_id, "web", "manual");
+            $success = $success && backup::run_backup($domain_id, "mysql", "manual");
+            break;
+        case "mysql":
+            $success = backup::run_backup($domain_id, "mysql", "manual");
+            break;
+        case "web":
+            $success = backup::run_backup($domain_id, "web", "manual");
+            break;
+        default:
+            echo "Unknown format=" . $type . "\n";
+            printUsageInfo();
+            $success = false;
+    }
+    return $success;
+}
+
+//** Get commandline options
+$cmd_opt = getopt('', array('id::', 'type::'));
+$id = filter_var($cmd_opt['id'], FILTER_VALIDATE_INT);;
+if (!isset($cmd_opt['id']) || !is_int($id)) {
+    printUsageInfo();
+    exit(1);
+}
+
+if (isset($cmd_opt['type']) && !empty($cmd_opt['type'])) {
+    $type = $cmd_opt['type'];
+} else
+    $type = "all";
+
+$success = makeBackup($id, $type);
+
+echo "All operations finished, status " . ($success ? "success" : "failed") . ".\n";
+
+exit($success ? 0 : 2);
+
+?>
diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php
index 146f2465c066813216796646c2dad553b1590062..ec8b1668d19041b9ebd1627ce951f5cd103d7bab 100644
--- a/server/lib/app.inc.php
+++ b/server/lib/app.inc.php
@@ -36,6 +36,10 @@ class app {
 	var $loaded_modules = array();
 	var $loaded_plugins = array();
 	var $_calling_script = '';
+	/**
+	 * @var db
+	 */
+	public $db;
 
 	function __construct() {
 
diff --git a/server/lib/classes/backup.inc.php b/server/lib/classes/backup.inc.php
new file mode 100644
index 0000000000000000000000000000000000000000..f996340bd5de9a29ce8b7ef5576e51559c5554b1
--- /dev/null
+++ b/server/lib/classes/backup.inc.php
@@ -0,0 +1,1449 @@
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/**
+ * Class backup
+ * All code that makes actual backup and restore of web files and database is here.
+ * @author Ramil Valitov <ramilvalitov@gmail.com>
+ * @see backup::run_backup() to run a single backup
+ * @see backup::run_all_backups() to run all backups
+ * @see backup::restoreBackupDatabase() to restore a database
+ * @see backup::restoreBackupWebFiles() to restore web files
+ */
+class backup
+{
+    /**
+     * Returns file extension for specified backup format
+     * @param string $format backup format
+     * @return string|null
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function getBackupDbExtension($format)
+    {
+        $prefix = '.sql';
+        switch ($format) {
+            case 'gzip':
+                return $prefix . '.gz';
+            case 'bzip2':
+                return $prefix . '.bz2';
+            case 'xz':
+                return $prefix . '.xz';
+            case 'zip':
+            case 'zip_bzip2':
+                return '.zip';
+            case 'rar':
+                return '.rar';
+        }
+        if (strpos($format, "7z_") === 0) {
+            return $prefix . '.7z';
+        }
+        return null;
+    }
+
+    /**
+     * Returns file extension for specified backup format
+     * @param string $format backup format
+     * @return string|null
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function getBackupWebExtension($format)
+    {
+        switch ($format) {
+            case 'tar_gzip':
+                return '.tar.gz';
+            case 'tar_bzip2':
+                return '.tar.bz2';
+            case 'tar_xz':
+                return '.tar.xz';
+            case 'zip':
+            case 'zip_bzip2':
+                return '.zip';
+            case 'rar':
+                return '.rar';
+        }
+        if (strpos($format, "tar_7z_") === 0) {
+            return '.tar.7z';
+        }
+        return null;
+    }
+
+    /**
+     * Sets file ownership to $web_user for all files and folders except log, ssl and web/stats
+     * @param string $web_document_root
+     * @param string $web_user
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function restoreFileOwnership($web_document_root, $web_user)
+    {
+        global $app;
+
+        $app->log('Restoring permissions for ' . $web_document_root, LOGLEVEL_DEBUG);
+        $app->system->exec_safe('cd ? && find . -not -path "./web/stats/*" -and -not -path "./log" -and -not -path "./log/*" -and -not -path "./ssl" -and -not -path "./ssl/*" -and -not -path "." -exec chown ?:? {} \;', $web_document_root, $web_user, $web_user);
+    }
+
+    /**
+     * Returns default backup format used in previous versions of ISPConfig
+     * @param string $backup_mode can be 'userzip' or 'rootgz'
+     * @param string $backup_type can be 'web' or 'mysql'
+     * @return string
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function getDefaultBackupFormat($backup_mode, $backup_type)
+    {
+        //We have a backup from old version of ISPConfig
+        switch ($backup_type) {
+            case 'mysql':
+                return 'gzip';
+            case 'web':
+                return ($backup_mode == 'userzip') ? 'zip' : 'tar_gzip';
+        }
+        return "";
+    }
+
+    /**
+     * Restores a database backup.
+     * The backup directory must be mounted before calling this method.
+     * @param string $backup_format
+     * @param string $password password for encrypted backup or empty string if archive is not encrypted
+     * @param string $backup_dir
+     * @param string $filename
+     * @param string $backup_mode
+     * @param string $backup_type
+     * @return bool true if succeeded
+     * @see backup_plugin::mount_backup_dir()
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    public static function restoreBackupDatabase($backup_format, $password, $backup_dir, $filename, $backup_mode, $backup_type)
+    {
+        global $app;
+
+        //* Load sql dump into db
+        include 'lib/mysql_clientdb.conf';
+
+        if (empty($backup_format)) {
+            $backup_format = self::getDefaultBackupFormat($backup_mode, $backup_type);
+        }
+        $extension = self::getBackupDbExtension($backup_format);
+        if (!empty($extension)) {
+            //Replace dots for preg_match search
+            $extension = str_replace('.', '\.', $extension);
+        }
+        $success = false;
+        $full_filename = $backup_dir . '/' . $filename;
+
+        $app->log('Restoring MySQL backup ' . $full_filename . ', backup format "' . $backup_format . '", backup mode "' . $backup_mode . '"', LOGLEVEL_DEBUG);
+
+        if (file_exists($full_filename) && !empty($extension)) {
+            preg_match('@^(manual-)?db_(?P<db>.+)_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}' . $extension . '$@', $filename, $matches);
+            if (!isset($matches['db']) || empty($matches['db'])) {
+                $app->log('Failed to detect database name during restore of ' . $full_filename, LOGLEVEL_ERROR);
+                return false;
+            }
+            $db_name = $matches['db'];
+            switch ($backup_format) {
+                case "gzip":
+                    $command = "gunzip --stdout ? | mysql -h ? -u ? -p? ?";
+                    break;
+                case "zip":
+                case "zip_bzip2":
+                    $command = "unzip -qq -p -P " . escapeshellarg($password) . " ? | mysql -h ? -u ? -p? ?";
+                    break;
+                case "bzip2":
+                    $command = "bunzip2 -q -c ? | mysql -h ? -u ? -p? ?";
+                    break;
+                case "xz":
+                    $command = "unxz -q -q -c ? | mysql -h ? -u ? -p? ?";
+                    break;
+                case "rar":
+                    //First, test that the archive is correct and we have a correct password
+                    $options = self::getUnrarOptions($password);
+                    $app->system->exec_safe("rar t " . $options . " ?", $full_filename);
+                    if ($app->system->last_exec_retcode() == 0) {
+                        $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG);
+                        $command = "rar x " . $options. " ? | mysql -h ? -u ? -p? ?";
+                    }
+                    break;
+            }
+            if (strpos($backup_format, "7z_") === 0) {
+                $options = self::get7zDecompressOptions($password);
+                //First, test that the archive is correct and we have a correct password
+                $app->system->exec_safe("7z t " . $options . " ?", $full_filename);
+                if ($app->system->last_exec_retcode() == 0) {
+                    $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG);
+                    $command = "7z x " . $options . " -so ? | mysql -h ? -u ? -p? ?";
+                } else
+                    $command = null;
+            }
+            if (!empty($command)) {
+                /** @var string $clientdb_host */
+                /** @var string $clientdb_user */
+                /** @var string $clientdb_password */
+                $app->system->exec_safe($command, $full_filename, $clientdb_host, $clientdb_user, $clientdb_password, $db_name);
+                $retval = $app->system->last_exec_retcode();
+                if ($retval == 0) {
+                    $app->log('Restored MySQL backup ' . $full_filename, LOGLEVEL_DEBUG);
+                    $success = true;
+                } else {
+                    $app->log('Failed to restore web backup ' . $full_filename . ', exit code ' . $retval, LOGLEVEL_ERROR);
+                }
+            } else {
+                $app->log('Archive test failed for ' . $full_filename, LOGLEVEL_DEBUG);
+            }
+        } else {
+            $app->log('Failed to process MySQL backup ' . $full_filename, LOGLEVEL_ERROR);
+        }
+        unset($clientdb_host);
+        unset($clientdb_user);
+        unset($clientdb_password);
+
+        return $success;
+    }
+
+    /**
+     * Restores web files backup.
+     * The backup directory must be mounted before calling this method.
+     * @param string $backup_format
+     * @param string $password password for encrypted backup or empty string if archive is not encrypted
+     * @param string $backup_dir
+     * @param string $filename
+     * @param string $backup_mode
+     * @param string $backup_type
+     * @param string $web_root
+     * @param string $web_user
+     * @param string $web_group
+     * @return bool true if succeed
+     * @see backup_plugin::mount_backup_dir()
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    public static function restoreBackupWebFiles($backup_format, $password, $backup_dir, $filename, $backup_mode, $backup_type, $web_root, $web_user, $web_group)
+    {
+        global $app;
+
+        if (empty($backup_format)) {
+            $backup_format = self::getDefaultBackupFormat($backup_mode, $backup_type);
+        }
+        $full_filename = $backup_dir . '/' . $filename;
+        $result = false;
+
+        $app->log('Restoring web backup ' . $full_filename . ', backup format "' . $backup_format . '", backup mode "' . $backup_mode . '"', LOGLEVEL_DEBUG);
+
+        if (!empty($backup_format)) {
+            $app->system->web_folder_protection($web_root, false);
+            if ($backup_mode == 'userzip' || $backup_mode == 'rootgz') {
+                $user_mode = $backup_mode == 'userzip';
+                $filename = $user_mode ? ($web_root . '/backup/' . $filename) : $full_filename;
+
+                if (file_exists($full_filename) && $web_root != '' && $web_root != '/' && !stristr($full_filename, '..') && !stristr($full_filename, 'etc')) {
+                    if ($user_mode) {
+                        if (file_exists($filename)) rename($filename, $filename . '.bak');
+                        copy($full_filename, $filename);
+                        chgrp($filename, $web_group);
+                    }
+                    $user_prefix_cmd = $user_mode ? 'sudo -u ' . escapeshellarg($web_user) : '';
+                    $success = false;
+                    $retval = 0;
+                    switch ($backup_format) {
+                        case "tar_gzip":
+                        case "tar_bzip2":
+                        case "tar_xz":
+                            $command = $user_prefix_cmd . ' tar xf ? --directory ?';
+                            $app->system->exec_safe($command, $filename, $web_root);
+                            $retval = $app->system->last_exec_retcode();
+                            $success = ($retval == 0 || $retval == 2);
+                            break;
+                        case "zip":
+                        case "zip_bzip2":
+                            $command = $user_prefix_cmd . ' unzip -qq -P ' . escapeshellarg($password) . ' -o ? -d ? 2> /dev/null';
+                            $app->system->exec_safe($command, $filename, $web_root);
+                            $retval = $app->system->last_exec_retcode();
+                            /*
+                             * Exit code 50 can happen when zip fails to overwrite files that do not
+                             * belong to selected user, so we can consider this situation as success
+                             * with warnings.
+                             */
+                            $success = ($retval == 0 || $retval == 50);
+                            if ($success) {
+                                self::restoreFileOwnership($web_root, $web_user);
+                            }
+                            break;
+                        case 'rar':
+                            $options = self::getUnRarOptions($password);
+                            //First, test that the archive is correct and we have a correct password
+                            $command = $user_prefix_cmd . " rar t " . $options . " ? ?";
+                            //Rar requires trailing slash
+                            $app->system->exec_safe($command, $filename, $web_root . '/');
+                            $success = ($app->system->last_exec_retcode() == 0);
+                            if ($success) {
+                                //All good, now we can extract
+                                $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG);
+                                $command = $user_prefix_cmd . " rar x " . $options . " ? ?";
+                                //Rar requires trailing slash
+                                $app->system->exec_safe($command, $filename, $web_root . '/');
+                                $retval = $app->system->last_exec_retcode();
+                                //Exit code 9 can happen when we have file permission errors, in this case some
+                                //files will be skipped during extraction.
+                                $success = ($retval == 0 || $retval == 1 || $retval == 9);
+                            } else {
+                                $app->log('Archive test failed for ' . $full_filename, LOGLEVEL_DEBUG);
+                            }
+                            break;
+                    }
+                    if (strpos($backup_format, "tar_7z_") === 0) {
+                        $options = self::get7zDecompressOptions($password);
+                        //First, test that the archive is correct and we have a correct password
+                        $command = $user_prefix_cmd . " 7z t " . $options . " ?";
+                        $app->system->exec_safe($command, $filename);
+                        $success = ($app->system->last_exec_retcode() == 0);
+                        if ($success) {
+                            //All good, now we can extract
+                            $app->log('Archive test passed for ' . $full_filename, LOGLEVEL_DEBUG);
+                            $command = $user_prefix_cmd . " 7z x " . $options . " -so ? | tar xf - --directory ?";
+                            $app->system->exec_safe($command, $filename, $web_root);
+                            $retval = $app->system->last_exec_retcode();
+                            $success = ($retval == 0 || $retval == 2);
+                        } else {
+                            $app->log('Archive test failed for ' . $full_filename, LOGLEVEL_DEBUG);
+                        }
+                    }
+                    if ($user_mode) {
+                        unlink($filename);
+                        if (file_exists($filename . '.bak')) rename($filename . '.bak', $filename);
+                    }
+                    if ($success) {
+                        $app->log('Restored web backup ' . $full_filename, LOGLEVEL_DEBUG);
+                        $result = true;
+                    } else {
+                        $app->log('Failed to restore web backup ' . $full_filename . ', exit code ' . $retval, LOGLEVEL_ERROR);
+                    }
+                }
+            } else {
+                $app->log('Failed to restore web backup ' . $full_filename . ', backup mode "' . $backup_mode . '" not recognized.', LOGLEVEL_DEBUG);
+            }
+            $app->system->web_folder_protection($web_root, true);
+        } else {
+            $app->log('Failed to restore web backup ' . $full_filename . ', backup format not recognized.', LOGLEVEL_DEBUG);
+        }
+        return $result;
+    }
+
+    /**
+     * Returns a compression method, for example returns bzip2 for tar_7z_bzip2
+     * @param string $format
+     * @return false|string
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function getCompressionMethod($format)
+    {
+        $pos = strrpos($format, "_");
+        return substr($format, $pos + 1);
+    }
+
+    /**
+     * Returns default options for compressing rar
+     * @param string $backup_tmp temporary directory that rar can use
+     * @param string|null $password backup password if any
+     * @return string options for rar
+     */
+    protected static function getRarOptions($backup_tmp, $password)
+    {
+        /**
+         * All rar options are listed here:
+         * https://documentation.help/WinRAR/HELPCommands.htm
+         * https://documentation.help/WinRAR/HELPSwitches.htm
+         * Some compression profiles and different versions of rar may use different default values, so it's better
+         * to specify everything explicitly.
+         * The difference between compression methods is not big in terms of file size, but is huge in terms of
+         * CPU and RAM consumption. Therefore it makes sense only to use fastest the compression method.
+         */
+        $options = array(
+            /**
+             * Start with fastest compression method (least compressive)
+             */
+            '-m1',
+
+            /**
+             * Disable solid archiving.
+             * Never use solid archive: it's very slow and requires to read and sort all files first
+             */
+            '-S-',
+
+            /**
+             * Ignore default profile and environment variables
+             * https://documentation.help/WinRAR/HELPSwCFGm.htm
+             */
+            '-CFG-',
+
+            /**
+             *  Disable error messages output
+             * https://documentation.help/WinRAR/HELPSwINUL.htm
+             */
+            '-inul',
+
+            /**
+             * Lock archive: this switch prevents any further archive modifications by rar
+             * https://documentation.help/WinRAR/HELPSwK.htm
+             */
+            '-k',
+
+            /**
+             * Create archive in RAR 5.0 format
+             * https://documentation.help/WinRAR/HELPSwMA.htm
+             */
+            '-ma',
+
+            /**
+             * Set dictionary size to 16Mb.
+             * When archiving, rar needs about 6x memory of specified dictionary size.
+             * https://documentation.help/WinRAR/HELPSwMD.htm
+             */
+            '-md16m',
+
+            /**
+             * Use only one CPU thread
+             * https://documentation.help/WinRAR/HELPSwMT.htm
+             */
+            '-mt1',
+
+            /**
+             * Use this switch when archiving to save file security information and when extracting to restore it.
+             * It stores file owner, group, file permissions and audit information.
+             * https://documentation.help/WinRAR/HELPSwOW.htm
+             */
+            '-ow',
+
+            /**
+             * Overwrite all
+             * https://documentation.help/WinRAR/HELPSwO.htm
+             */
+            '-o+',
+
+            /**
+             * Exclude base folder from names.
+             * Required for correct directory structure inside archive
+             * https://documentation.help/WinRAR/HELPSwEP1.htm
+             */
+            '-ep1',
+
+            /**
+             * Never add quick open information.
+             * This information is useful only if you want to read the contents of archive (list of files).
+             * Besides it can increase the archive size. As we need the archive only for future complete extraction,
+             * there's no need to use this information at all.
+             * https://documentation.help/WinRAR/HELPSwQO.htm
+             */
+            '-qo-',
+
+            /**
+             * Set lowest task priority (1) and 10ms sleep time between read/write operations.
+             * https://documentation.help/WinRAR/HELPSwRI.htm
+             */
+            '-ri1:10',
+
+            /**
+             * Temporary folder
+             * https://documentation.help/WinRAR/HELPSwW.htm
+             */
+            '-w' . escapeshellarg($backup_tmp),
+
+            /**
+             * Assume Yes on all queries
+             * https://documentation.help/WinRAR/HELPSwY.htm
+             */
+            '-y',
+        );
+
+        $options = implode(" ", $options);
+
+        if (!empty($password)) {
+            /**
+             * Encrypt both file data and headers
+             * https://documentation.help/WinRAR/HELPSwHP.htm
+             */
+            $options .= ' -HP' . escapeshellarg($password);
+        }
+        return $options;
+    }
+
+    /**
+     * Returns default options for decompressing rar
+     * @param string|null $password backup password if any
+     * @return string options for rar
+     */
+    protected static function getUnRarOptions($password)
+    {
+        /**
+         * All rar options are listed here:
+         * https://documentation.help/WinRAR/HELPCommands.htm
+         * https://documentation.help/WinRAR/HELPSwitches.htm
+         * Some compression profiles and different versions of rar may use different default values, so it's better
+         * to specify everything explicitly.
+         * The difference between compression methods is not big in terms of file size, but is huge in terms of
+         * CPU and RAM consumption. Therefore it makes sense only to use fastest the compression method.
+         */
+        $options = array(
+            /**
+             * Ignore default profile and environment variables
+             * https://documentation.help/WinRAR/HELPSwCFGm.htm
+             */
+            '-CFG-',
+
+            /**
+             *  Disable error messages output
+             * https://documentation.help/WinRAR/HELPSwINUL.htm
+             */
+            '-inul',
+
+            /**
+             * Use only one CPU thread
+             * https://documentation.help/WinRAR/HELPSwMT.htm
+             */
+            '-mt1',
+
+            /**
+             * Use this switch when archiving to save file security information and when extracting to restore it.
+             * It stores file owner, group, file permissions and audit information.
+             * https://documentation.help/WinRAR/HELPSwOW.htm
+             */
+            '-ow',
+
+            /**
+             * Overwrite all
+             * https://documentation.help/WinRAR/HELPSwO.htm
+             */
+            '-o+',
+
+            /**
+             * Set lowest task priority (1) and 10ms sleep time between read/write operations.
+             * https://documentation.help/WinRAR/HELPSwRI.htm
+             */
+            '-ri1:10',
+
+            /**
+             * Assume Yes on all queries
+             * https://documentation.help/WinRAR/HELPSwY.htm
+             */
+            '-y',
+        );
+
+        $options = implode(" ", $options);
+
+        if (!empty($password)) {
+            $options .= ' -P' . escapeshellarg($password);
+        }
+        return $options;
+    }
+
+    /**
+     * Returns compression options for 7z
+     * @param string $format compression format used in 7z
+     * @param string $password password if any
+     * @return string
+     */
+    protected static function get7zCompressOptions($format, $password)
+    {
+        $method = self::getCompressionMethod($format);
+        /**
+         * List of 7z options is here:
+         * https://linux.die.net/man/1/7z
+         * https://sevenzip.osdn.jp/chm/cmdline/syntax.htm
+         * https://sevenzip.osdn.jp/chm/cmdline/switches/
+         */
+        $options = array(
+            /**
+             * Use 7z format (container)
+             */
+            '-t7z',
+
+            /**
+             * Compression method (LZMA, LZMA2, etc.)
+             * https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm
+             */
+            '-m0=' . $method,
+
+            /**
+             * Fastest compression method
+             */
+            '-mx=1',
+
+            /**
+             * Disable solid mode
+             */
+            '-ms=off',
+
+            /**
+             * Disable multithread mode, use less CPU
+             */
+            '-mmt=off',
+
+            /**
+             * Disable multithread mode for filters, use less CPU
+             */
+            '-mmtf=off',
+
+            /**
+             * Disable progress indicator
+             */
+            '-bd',
+
+            /**
+             * Assume yes on all queries
+             * https://sevenzip.osdn.jp/chm/cmdline/switches/yes.htm
+             */
+            '-y',
+        );
+        $options = implode(" ", $options);
+        switch (strtoupper($method)) {
+            case 'LZMA':
+            case 'LZMA2':
+                /**
+                 * Dictionary size is 5Mb.
+                 * 7z can use 12 times more RAM
+                 */
+                $options .= ' -md=5m';
+                break;
+            case 'PPMD':
+                /**
+                 * Dictionary size is 64Mb.
+                 * It's the maximum RAM that 7z is allowed to use.
+                 */
+                $options .= ' -mmem=64m';
+                break;
+        }
+        if (!empty($password)) {
+            $options .= ' -mhe=on -p' . escapeshellarg($password);
+        }
+        return $options;
+    }
+
+    /**
+     * Returns decompression options for 7z
+     * @param string $password password if any
+     * @return string
+     */
+    protected static function get7zDecompressOptions($password)
+    {
+        /**
+         * List of 7z options is here:
+         * https://linux.die.net/man/1/7z
+         * https://sevenzip.osdn.jp/chm/cmdline/syntax.htm
+         * https://sevenzip.osdn.jp/chm/cmdline/switches/
+         */
+        $options = array(
+            /**
+             * Disable multithread mode, use less CPU
+             */
+            '-mmt=off',
+
+            /**
+             * Disable progress indicator
+             */
+            '-bd',
+
+            /**
+             * Assume yes on all queries
+             * https://sevenzip.osdn.jp/chm/cmdline/switches/yes.htm
+             */
+            '-y',
+        );
+        $options = implode(" ", $options);
+        if (!empty($password)) {
+            $options .= ' -p' . escapeshellarg($password);
+        }
+        return $options;
+    }
+
+    /**
+     * Clears expired backups.
+     * The backup directory must be mounted before calling this method.
+     * @param integer $server_id
+     * @param integer $web_id id of the website
+     * @param integer $max_backup_copies number of backup copies to keep, all files beyond the limit will be erased
+     * @param string $backup_dir directory to scan
+     * @return bool
+     * @see backup_plugin::backups_garbage_collection() call this method first
+     * @see backup_plugin::mount_backup_dir()
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function clearBackups($server_id, $web_id, $max_backup_copies, $backup_dir)
+    {
+        global $app;
+
+        $files = self::get_files($backup_dir);
+        usort($files, function ($a, $b) use ($backup_dir) {
+            $time_a = filemtime($backup_dir . '/' . $a);
+            $time_b = filemtime($backup_dir . '/' . $b);
+            return ($time_a > $time_b) ? -1 : 1;
+        });
+
+        $db_list = array($app->db);
+        if ($app->db->dbHost != $app->dbmaster->dbHost)
+            array_push($db_list, $app->dbmaster);
+
+        //Delete old files that are beyond the limit
+        for ($n = $max_backup_copies; $n < sizeof($files); $n++) {
+            $filename = $files[$n];
+            $full_filename = $backup_dir . '/' . $filename;
+            $app->log('Backup file ' . $full_filename . ' is beyond the limit of ' . $max_backup_copies . " copies and will be deleted from disk and database", LOGLEVEL_DEBUG);
+            $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
+            foreach ($db_list as $db) {
+                $db->query($sql, $server_id, $web_id, $filename);
+            }
+            @unlink($full_filename);
+        }
+        return true;
+    }
+
+    /**
+     * Garbage collection: deletes records from database about files that do not exist and deletes untracked files.
+     * The backup directory must be mounted before calling this method.
+     * @param int $server_id
+     * @param string|null $backup_type if defined then process only backups of this type
+     * @param string|null $domain_id if defined then process only backups that belong to this domain
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     * @see backup_plugin::mount_backup_dir()
+     */
+    protected static function backups_garbage_collection($server_id, $backup_type = null, $domain_id = null)
+    {
+        global $app;
+
+        //First check that all records in database have related files and delete records without files on disk
+        $args = array();
+        $args_domains = array();
+        $server_config = $app->getconf->get_server_config($server_id, 'server');
+        $backup_dir = trim($server_config['backup_dir']);
+        $sql = "SELECT * FROM web_backup WHERE server_id = ?";
+        $sql_domains = "SELECT domain_id,system_user,system_group,backup_interval FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias')";
+        array_push($args, $server_id);
+        array_push($args_domains, $server_id);
+        if (!empty($backup_type)) {
+            $sql .= " AND backup_type = ?";
+            array_push($args, $backup_type);
+        }
+        if (!empty($domain_id)) {
+            $sql .= " AND parent_domain_id = ?";
+            $sql_domains .= " AND domain_id = ?";
+            array_push($args, $domain_id);
+            array_push($args_domains, $domain_id);
+        }
+        array_unshift($args, $sql);
+        array_unshift($args_domains, $sql_domains);
+
+        $db_list = array($app->db);
+        if ($app->db->dbHost != $app->dbmaster->dbHost)
+            array_push($db_list, $app->dbmaster);
+
+        foreach ($db_list as $db) {
+            $backups = call_user_func_array(array($db, "queryAllRecords"), $args);
+            foreach ($backups as $backup) {
+                $backup_file = $backup_dir . '/web' . $backup['parent_domain_id'] . '/' . $backup['filename'];
+                if (!is_file($backup_file)) {
+                    $app->log('Backup file ' . $backup_file . ' does not exist on disk, deleting this entry from database', LOGLEVEL_DEBUG);
+                    $sql = "DELETE FROM web_backup WHERE backup_id = ?";
+                    $db->query($sql, $backup['backup_id']);
+                }
+            }
+        }
+
+        foreach ($db_list as $db) {
+            $domains = call_user_func_array(array($db, "queryAllRecords"), $args_domains);
+            foreach ($domains as $rec) {
+                $domain_id = $rec['domain_id'];
+                $domain_backup_dir = $backup_dir . '/web' . $domain_id;
+                $files = self::get_files($domain_backup_dir);
+
+                //Delete files that are in backup directory, but do not exist in database
+                if (!empty($files)) {
+                    $sql = "SELECT backup_id,filename FROM web_backup WHERE server_id = ? AND parent_domain_id = ?";
+                    $backups = $db->queryAllRecords($sql, $server_id, $domain_id);
+                    foreach ($backups as $backup) {
+                        if (!in_array($backup['filename'],$files)) {
+                            $backup_file = $backup_dir . '/web' . $domain_id . '/' . $backup['filename'];
+                            $app->log('Backup file ' . $backup_file . ' is not contained in database, deleting this file from disk', LOGLEVEL_DEBUG);
+                            @unlink($backup_file);
+                        }
+                    }
+                }
+
+                //Remove backupdir symlink and create as directory instead
+                $web_path = $rec['document_root'];
+                $app->system->web_folder_protection($web_path, false);
+
+                $backup_download_dir = $web_path . '/backup';
+                if (is_link($backup_download_dir)) {
+                    unlink($backup_download_dir);
+                }
+                if (!is_dir($backup_download_dir)) {
+                    mkdir($backup_download_dir);
+                    chown($backup_download_dir, $rec['system_user']);
+                    chgrp($backup_download_dir, $rec['system_group']);
+                }
+
+                $app->system->web_folder_protection($web_path, true);
+
+                // delete old files from backup download dir (/var/www/example.com/backup)
+                if (is_dir($backup_download_dir)) {
+                    $dir_handle = dir($backup_download_dir);
+                    $now = time();
+                    while (false !== ($entry = $dir_handle->read())) {
+                        $full_filename = $backup_download_dir . '/' . $entry;
+                        if ($entry != '.' && $entry != '..' && is_file($full_filename)) {
+                            // delete files older than 3 days
+                            if ($now - filemtime($full_filename) >= 60 * 60 * 24 * 3) {
+                                $app->log('Backup file ' . $full_filename . ' is too old, deleting this file from disk', LOGLEVEL_DEBUG);
+                                @unlink($full_filename);
+                            }
+                        }
+                    }
+                    $dir_handle->close();
+                }
+            }
+        }
+    }
+
+    /**
+     * Gets list of files in directory
+     * @param string $directory
+     * @param string[]|null $prefix_list filter files that have one of the prefixes. Use null for default filtering.
+     * @param string[]|null $endings_list filter files that have one of the endings. Use null for default filtering.
+     * @return string[]
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function get_files($directory, $prefix_list = null, $endings_list = null)
+    {
+        $default_prefix_list = array(
+            'web',
+            'manual-web',
+            'db_',
+            'manual-db_',
+        );
+        $default_endings_list = array(
+            '.gz',
+            '.7z',
+            '.rar',
+            '.zip',
+            '.xz',
+            '.bz2',
+        );
+        if (is_null($prefix_list))
+            $prefix_list = $default_prefix_list;
+        if (is_null($endings_list))
+            $endings_list = $default_endings_list;
+
+        $dir_handle = dir($directory);
+        $files = array();
+        while (false !== ($entry = $dir_handle->read())) {
+            $full_filename = $directory . '/' . $entry;
+            if ($entry != '.' && $entry != '..' && is_file($full_filename)) {
+                if (!empty($prefix_list)) {
+                    $add = false;
+                    foreach ($prefix_list as $prefix) {
+                        if (substr($entry, 0, strlen($prefix)) == $prefix) {
+                            $add = true;
+                            break;
+                        }
+                    }
+                } else
+                    $add = true;
+                if ($add && !empty($endings_list)) {
+                    $add = false;
+                    foreach ($endings_list as $ending) {
+                        if (substr($entry, -strlen($ending)) == $ending) {
+                            $add = true;
+                            break;
+                        }
+                    }
+                }
+                if ($add)
+                    array_push($files, $entry);
+            }
+        }
+        $dir_handle->close();
+
+        return $files;
+    }
+
+    /**
+     * Generates excludes list for compressors
+     * @param string[] $backup_excludes
+     * @param string $arg
+     * @return string
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function generateExcludeList($backup_excludes, $arg)
+    {
+        $excludes = implode(" " . $arg, $backup_excludes);
+        if (!empty($excludes)) {
+            $excludes = $arg . $excludes;
+        }
+        return $excludes;
+    }
+
+    /**
+     * Runs a web compression routine
+     * @param string $format
+     * @param string[] $backup_excludes
+     * @param string $backup_mode
+     * @param string $web_path
+     * @param string $web_backup_dir
+     * @param string $web_backup_file
+     * @param string $web_user
+     * @param string $web_group
+     * @param string $http_server_user
+     * @param string $backup_tmp
+     * @param string|null $password
+     * @return bool true if success
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function runWebCompression($format, $backup_excludes, $backup_mode, $web_path, $web_backup_dir, $web_backup_file, $web_user, $web_group, $http_server_user, $backup_tmp, $password)
+    {
+        global $app;
+
+        $find_user_files = 'cd ? && sudo -u ? find . -group ? -or -user ? -print 2> /dev/null';
+        $excludes = self::generateExcludeList($backup_excludes, '--exclude=');
+        $tar_dir = 'tar pcf - ' . $excludes . ' --directory ? .';
+        $tar_input = 'tar pcf --null -T -';
+
+        $app->log('Performing web files backup of ' . $web_path . ' in format ' . $format . ', mode ' . $backup_mode, LOGLEVEL_DEBUG);
+        switch ($format) {
+            case 'tar_gzip':
+                if ($app->system->is_installed('pigz')) {
+                    //use pigz
+                    if ($backup_mode == 'user_zip') {
+                        $app->system->exec_safe($find_user_files . ' | ' . $tar_input . ' | pigz > ?', $web_path, $web_user, $web_group, $http_server_user, $web_path, $web_backup_dir . '/' . $web_backup_file);
+                    } else {
+                        //Standard casual behaviour of ISPConfig
+                        $app->system->exec_safe($tar_dir . ' | pigz > ?', $web_path, $web_backup_dir . '/' . $web_backup_file);
+                    }
+                    $exit_code = $app->system->last_exec_retcode();
+                    return $exit_code == 0;
+                } else {
+                    //use gzip
+                    if ($backup_mode == 'user_zip') {
+                        $app->system->exec_safe($find_user_files . ' | tar pczf ? --null -T -', $web_path, $web_user, $web_group, $http_server_user, $web_backup_dir . '/' . $web_backup_file);
+                    } else {
+                        //Standard casual behaviour of ISPConfig
+                        $app->system->exec_safe('tar pczf ? ' . $excludes . ' --directory ? .', $web_backup_dir . '/' . $web_backup_file, $web_path);
+                    }
+                    $exit_code = $app->system->last_exec_retcode();
+                    // tar can return 1 and still create valid backups
+                    return ($exit_code == 0 || $exit_code == 1);
+                }
+            case 'zip':
+            case 'zip_bzip2':
+                $zip_options = ($format === 'zip_bzip2') ? ' -Z bzip2 ' : '';
+                if (!empty($password)) {
+                    $zip_options .= ' --password ' . escapeshellarg($password);
+                }
+                if ($backup_mode == 'user_zip') {
+                    //Standard casual behaviour of ISPConfig
+                    $app->system->exec_safe($find_user_files . ' | zip ' . $zip_options . ' -b ? ' . $excludes . ' --symlinks ? -@', $web_path, $web_user, $web_group, $http_server_user, $backup_tmp, $web_backup_dir . '/' . $web_backup_file);
+                } else {
+                    //Use cd to have a correct directory structure inside the archive, extra options to zip hidden (dot) files
+                    $app->system->exec_safe('cd ? && zip ' . $zip_options . ' -b ? ' . $excludes . ' --symlinks -r ? * .* -x "../*"', $web_path, $backup_tmp, $web_backup_dir . '/' . $web_backup_file);
+                }
+                $exit_code = $app->system->last_exec_retcode();
+                // zip can return 12(due to harmless warnings) and still create valid backups
+                return ($exit_code == 0 || $exit_code == 12);
+            case 'tar_bzip2':
+                if ($backup_mode == 'user_zip') {
+                    $app->system->exec_safe($find_user_files . ' | tar pcjf ? --null -T -', $web_path, $web_user, $web_group, $http_server_user, $web_backup_dir . '/' . $web_backup_file);
+                } else {
+                    $app->system->exec_safe('tar pcjf ? ' . $excludes . ' --directory ? .', $web_backup_dir . '/' . $web_backup_file, $web_path);
+                }
+                $exit_code = $app->system->last_exec_retcode();
+                // tar can return 1 and still create valid backups
+                return ($exit_code == 0 || $exit_code == 1);
+            case 'tar_xz':
+                if ($backup_mode == 'user_zip') {
+                    $app->system->exec_safe($find_user_files . ' | tar pcJf ? --null -T -', $web_path, $web_user, $web_group, $http_server_user, $web_backup_dir . '/' . $web_backup_file);
+                } else {
+                    $app->system->exec_safe('tar pcJf ? ' . $excludes . ' --directory ? .', $web_backup_dir . '/' . $web_backup_file, $web_path);
+                }
+                $exit_code = $app->system->last_exec_retcode();
+                // tar can return 1 and still create valid backups
+                return ($exit_code == 0 || $exit_code == 1);
+            case 'rar':
+                $options = self::getRarOptions($backup_tmp,$password);
+                if ($backup_mode != 'user_zip') {
+                    //Recurse subfolders, otherwise we will pass a list of files to compress
+                    $options .= ' -r';
+                }
+                $excludes = self::generateExcludeList($backup_excludes, '-x');
+                $zip_command = 'rar a ' . $options . ' '.$excludes.' ?';
+                if ($backup_mode == 'user_zip') {
+                    $app->system->exec_safe($find_user_files . ' | ' . $zip_command . ' ? @', $web_path, $web_user, $web_group, $http_server_user, $web_path, $web_backup_dir . '/' . $web_backup_file);
+                } else {
+                    $app->system->exec_safe('cd ? && ' . $zip_command . ' .', $web_path, $web_backup_dir . '/' . $web_backup_file);
+                }
+                $exit_code = $app->system->last_exec_retcode();
+                return ($exit_code == 0 || $exit_code == 1);
+        }
+        if (strpos($format, "tar_7z_") === 0) {
+            $options = self::get7zCompressOptions($format, $password);
+            $zip_command = '7z a ' . $options . ' -si ?';
+            if ($backup_mode == 'user_zip') {
+                $app->system->exec_safe($find_user_files . ' | ' . $tar_input . ' | '. $zip_command, $web_path, $web_user, $web_group, $http_server_user, $web_path, $web_backup_dir . '/' . $web_backup_file);
+            } else {
+                $app->system->exec_safe($tar_dir . ' | ' . $zip_command, $web_path, $web_backup_dir . '/' . $web_backup_file);
+            }
+            $exit_code = $app->system->last_exec_retcode();
+            return $exit_code == 0;
+        }
+        return false;
+    }
+
+    /**
+     * Runs a database compression routine
+     * @param string $format
+     * @param string $db_backup_dir
+     * @param string $db_backup_file
+     * @param string $compressed_backup_file
+     * @param string $backup_tmp
+     * @param string|null $password
+     * @return bool true if success
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function runDatabaseCompression($format, $db_backup_dir, $db_backup_file, $compressed_backup_file, $backup_tmp, $password)
+    {
+        global $app;
+
+        $app->log('Performing database backup to file ' . $compressed_backup_file . ' in format ' . $format, LOGLEVEL_DEBUG);
+        switch ($format) {
+            case 'gzip':
+                if ($app->system->is_installed('pigz')) {
+                    //use pigz
+                    $zip_cmd = 'pigz';
+                } else {
+                    //use gzip
+                    $zip_cmd = 'gzip';
+                }
+                $app->system->exec_safe($zip_cmd . " -c ? > ?", $db_backup_dir . '/' . $db_backup_file, $db_backup_dir . '/' . $compressed_backup_file);
+                $exit_code = $app->system->last_exec_retcode();
+                return $exit_code == 0;
+            case 'zip':
+            case 'zip_bzip2':
+                $zip_options = ($format === 'zip_bzip2') ? ' -Z bzip2 ' : '';
+                if (!empty($password)) {
+                    $zip_options .= ' --password ' . escapeshellarg($password);
+                }
+                $app->system->exec_safe('zip ' . $zip_options . ' -j -b ? ? ?', $backup_tmp, $db_backup_dir . '/' . $compressed_backup_file, $db_backup_dir . '/' . $db_backup_file);
+                $exit_code = $app->system->last_exec_retcode();
+                // zip can return 12(due to harmless warnings) and still create valid backups
+                return ($exit_code == 0 || $exit_code == 12);
+            case 'bzip2':
+                $app->system->exec_safe("bzip2 -q -c ? > ?", $db_backup_dir . '/' . $db_backup_file, $db_backup_dir . '/' . $compressed_backup_file);
+                $exit_code = $app->system->last_exec_retcode();
+                return $exit_code == 0;
+            case 'xz':
+                $app->system->exec_safe("xz -q -q -c ? > ?", $db_backup_dir . '/' . $db_backup_file, $db_backup_dir . '/' . $compressed_backup_file);
+                $exit_code = $app->system->last_exec_retcode();
+                return $exit_code == 0;
+            case 'rar':
+                $options = self::getRarOptions($backup_tmp, $password);
+                $zip_command = 'rar a ' . $options . ' ? ?';
+                $app->system->exec_safe($zip_command, $db_backup_dir . '/' . $compressed_backup_file, $db_backup_dir . '/' . $db_backup_file);
+                $exit_code = $app->system->last_exec_retcode();
+                return ($exit_code == 0 || $exit_code == 1);
+        }
+        if (strpos($format, "7z_") === 0) {
+            $options = self::get7zCompressOptions($format, $password);
+            $zip_command = '7z a ' . $options . ' ? ?';
+            $app->system->exec_safe($zip_command, $db_backup_dir . '/' . $compressed_backup_file, $db_backup_dir . '/' . $db_backup_file);
+            $exit_code = $app->system->last_exec_retcode();
+            return $exit_code == 0;
+        }
+        return false;
+    }
+
+    /**
+     * Mounts the backup directory if required
+     * @param int $server_id
+     * @return bool true if success
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     * @see backup_plugin::unmount_backup_dir()
+     */
+    public static function mount_backup_dir($server_id)
+    {
+        global $app;
+
+        $server_config = $app->getconf->get_server_config($server_id, 'server');
+        if ($server_config['backup_dir_is_mount'] == 'y')
+            return $app->system->mount_backup_dir($server_config['backup_dir']);
+        return true;
+    }
+
+    /**
+     * Unmounts the backup directory if required
+     * @param int $server_id
+     * @return bool true if success
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     * @see backup_plugin::mount_backup_dir()
+     */
+    public static function unmount_backup_dir($server_id)
+    {
+        global $app;
+
+        $server_config = $app->getconf->get_server_config($server_id, 'server');
+        if ($server_config['backup_dir_is_mount'] == 'y')
+            return $app->system->umount_backup_dir($server_config['backup_dir']);
+        return true;
+    }
+
+    /**
+     * Makes backup of database.
+     * The backup directory must be mounted before calling this method.
+     * This method is for private use only, don't call this method unless you know what you're doing.
+     * @param array $web_domain
+     * @param string $backup_job type of backup job: manual or auto
+     * @return bool true if success
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     * @see backup_plugin::run_backup() recommeneded to use if you need to make backups
+     */
+    protected static function make_database_backup($web_domain, $backup_job)
+    {
+        global $app;
+
+        $server_id = intval($web_domain['server_id']);
+        $domain_id = intval($web_domain['domain_id']);
+        $server_config = $app->getconf->get_server_config($server_id, 'server');
+        $backup_dir = trim($server_config['backup_dir']);
+        $backup_tmp = trim($server_config['backup_tmp']);
+        $db_backup_dir = $backup_dir . '/web' . $domain_id;
+        $success = false;
+
+        if (empty($backup_job))
+            $backup_job = "auto";
+
+        $records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id);
+        if (empty($records)){
+            $app->log('Skipping database backup for domain ' . $web_domain['domain_id'] . ', because no related databases found.', LOGLEVEL_ERROR);
+            return true;
+        }
+
+        self::prepare_backup_dir($server_id, $web_domain);
+
+        include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf';
+
+        //* Check mysqldump capabilities
+        exec('mysqldump --help', $tmp);
+        $mysqldump_routines = (strpos(implode($tmp), '--routines') !== false) ? '--routines' : '';
+        unset($tmp);
+
+        foreach ($records as $rec) {
+            $password = ($web_domain['backup_encrypt'] == 'y') ? trim($web_domain['backup_password']) : '';
+            $backup_format_db = $web_domain['backup_format_db'];
+            if (empty($backup_format_db)) {
+                $backup_format_db = 'gzip';
+            }
+            $backup_extension_db = self::getBackupDbExtension($backup_format_db);
+
+            if (!empty($backup_extension_db)) {
+                //* Do the mysql database backup with mysqldump
+                $db_name = $rec['database_name'];
+                $db_file_prefix = 'db_' . $db_name . '_' . date('Y-m-d_H-i');
+                $db_backup_file = $db_file_prefix . '.sql';
+                $db_compressed_file = ($backup_job == 'manual' ? 'manual-' : '') . $db_file_prefix . $backup_extension_db;
+                $command = "mysqldump -h ? -u ? -p? -c --add-drop-table --create-options --quick --max_allowed_packet=512M " . $mysqldump_routines . " --result-file=? ?";
+                /** @var string $clientdb_host */
+                /** @var string $clientdb_user */
+                /** @var string $clientdb_password */
+                $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $db_backup_dir . '/' . $db_backup_file, $db_name);
+                $exit_code = $app->system->last_exec_retcode();
+
+                //* Compress the backup
+                if ($exit_code == 0) {
+                    $exit_code = self::runDatabaseCompression($backup_format_db, $db_backup_dir, $db_backup_file, $db_compressed_file, $backup_tmp, $password) ? 0 : 1;
+                    if ($exit_code !== 0)
+                        $app->log('Failed to make backup of database ' . $rec['database_name'], LOGLEVEL_ERROR);
+                } else {
+                    $app->log('Failed to make backup of database ' . $rec['database_name'] . ', because mysqldump failed', LOGLEVEL_ERROR);
+                }
+
+                if ($exit_code == 0) {
+                    if (is_file($db_backup_dir . '/' . $db_compressed_file)) {
+                        chmod($db_backup_dir . '/' . $db_compressed_file, 0750);
+                        chown($db_backup_dir . '/' . $db_compressed_file, fileowner($db_backup_dir));
+                        chgrp($db_backup_dir . '/' . $db_compressed_file, filegroup($db_backup_dir));
+
+                        //* Insert web backup record in database
+                        $file_size = filesize($db_backup_dir . '/' . $db_compressed_file);
+                        $sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, backup_format, tstamp, filename, filesize, backup_password) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
+                        //Making compatible with previous versions of ISPConfig:
+                        $sql_mode = ($backup_format_db == 'gzip') ? 'sqlgz' : ('sql' . $backup_format_db);
+                        $app->db->query($sql, $server_id, $domain_id, 'mysql', $sql_mode, $backup_format_db, time(), $db_compressed_file, $file_size, $password);
+                        if ($app->db->dbHost != $app->dbmaster->dbHost)
+                            $app->dbmaster->query($sql, $server_id, $domain_id, 'mysql', $sql_mode, $backup_format_db, time(), $db_compressed_file, $file_size, $password);
+                        $success = true;
+                    }
+                } else {
+                    if (is_file($db_backup_dir . '/' . $db_compressed_file)) unlink($db_backup_dir . '/' . $db_compressed_file);
+                }
+                //* Remove the uncompressed file
+                if (is_file($db_backup_dir . '/' . $db_backup_file)) unlink($db_backup_dir . '/' . $db_backup_file);
+
+                //* Remove old backups
+                self::backups_garbage_collection($server_id, 'mysql', $domain_id);
+                self::clearBackups($server_id, $domain_id, intval($rec['backup_copies']), $db_backup_dir);
+            } else {
+                $app->log('Failed to process mysql backup format ' . $backup_format_db . ' for database ' . $rec['database_name'], LOGLEVEL_ERROR);
+            }
+        }
+
+        unset($clientdb_host);
+        unset($clientdb_user);
+        unset($clientdb_password);
+
+        return $success;
+    }
+
+    /**
+     * Makes backup of web files.
+     * The backup directory must be mounted before calling this method.
+     * This method is for private use only, don't call this method unless you know what you're doing
+     * @param array $web_domain info about domain to backup, SQL record of table 'web_domain'
+     * @param string $backup_job type of backup job: manual or auto
+     * @return bool true if success
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     * @see backup_plugin::mount_backup_dir()
+     * @see backup_plugin::run_backup() recommeneded to use if you need to make backups
+     */
+    protected static function make_web_backup($web_domain, $backup_job)
+    {
+        global $app;
+
+        $server_id = intval($web_domain['server_id']);
+        $domain_id = intval($web_domain['domain_id']);
+        $server_config = $app->getconf->get_server_config($server_id, 'server');
+        $global_config = $app->getconf->get_global_config('sites');
+        $backup_dir = trim($server_config['backup_dir']);
+        $backup_mode = $server_config['backup_mode'];
+        $backup_tmp = trim($server_config['backup_tmp']);
+        if (empty($backup_mode))
+            $backup_mode = 'userzip';
+
+        $web_config = $app->getconf->get_server_config($server_id, 'web');
+        $http_server_user = $web_config['user'];
+
+        if (empty($backup_dir)) {
+            $app->log('Failed to make backup of web files for domain id ' . $domain_id . ' on server id ' . $server_id . ', because backup directory is not defined', LOGLEVEL_ERROR);
+            return false;
+        }
+        if (empty($backup_job))
+            $backup_job = "auto";
+
+        $backup_format_web = $web_domain['backup_format_web'];
+        //Check if we're working with data saved in old version of ISPConfig
+        if (empty($backup_format_web)) {
+            $backup_format_web = 'default';
+        }
+        if ($backup_format_web == 'default') {
+            $backup_format_web = self::getDefaultBackupFormat($backup_mode, 'web');
+        }
+        $password = ($web_domain['backup_encrypt'] == 'y') ? trim($web_domain['backup_password']) : '';
+        $backup_extension_web = self::getBackupWebExtension($backup_format_web);
+        if (empty($backup_extension_web)) {
+            $app->log('Failed to make backup of web files, because of unknown backup format ' . $backup_format_web . ' for website ' . $web_domain['domain'], LOGLEVEL_ERROR);
+            return false;
+        }
+
+        $web_path = $web_domain['document_root'];
+        $web_user = $web_domain['system_user'];
+        $web_group = $web_domain['system_group'];
+        $web_id = $web_domain['domain_id'];
+
+        self::prepare_backup_dir($server_id, $web_domain);
+        $web_backup_dir = $backup_dir . '/web' . $web_id;
+
+        $backup_excludes = array(escapeshellarg('./backup\*'));
+        $b_excludes = explode(',', trim($web_domain['backup_excludes']));
+        if (is_array($b_excludes) && !empty($b_excludes)) {
+            foreach ($b_excludes as $b_exclude) {
+                $b_exclude = trim($b_exclude);
+                if ($b_exclude != '') {
+                    array_push($backup_excludes, escapeshellarg($b_exclude));
+                }
+            }
+        }
+
+        $web_backup_file = ($backup_job == 'manual' ? 'manual-' : '') . 'web' . $web_id . '_' . date('Y-m-d_H-i') . $backup_extension_web;
+        $full_filename = $web_backup_dir . '/' . $web_backup_file;
+        if (self::runWebCompression($backup_format_web, $backup_excludes, $backup_mode, $web_path, $web_backup_dir, $web_backup_file, $web_user, $web_group, $http_server_user, $backup_tmp, $password)) {
+            if (is_file($full_filename)) {
+                $backup_username = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_user : 'root';
+                $backup_group = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_group : 'root';
+                chown($full_filename, $backup_username);
+                chgrp($full_filename, $backup_group);
+                chmod($full_filename, 0750);
+
+                //Insert web backup record in database
+                $file_size = filesize($full_filename);
+                $sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, backup_format, tstamp, filename, filesize, backup_password) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
+                $app->db->query($sql, $server_id, $web_id, 'web', $backup_mode, $backup_format_web, time(), $web_backup_file, $file_size, $password);
+                if ($app->db->dbHost != $app->dbmaster->dbHost)
+                    $app->dbmaster->query($sql, $server_id, $web_id, 'web', $backup_mode, $backup_format_web, time(), $web_backup_file, $file_size, $password);
+                unset($file_size);
+                $app->log('Backup of web files for domain ' . $web_domain['domain'] . ' completed successfully to file ' . $full_filename, LOGLEVEL_DEBUG);
+            } else {
+                $app->log('Backup of web files for domain ' . $web_domain['domain'] . ' reported success, but the resulting file ' . $full_filename . ' not found.', LOGLEVEL_ERROR);
+            }
+
+        } else {
+            if (is_file($full_filename))
+                unlink($full_filename);
+            $app->log('Backup of web files for domain ' . $web_domain['domain'] . ' failed using path ' . $web_path . ' failed.', LOGLEVEL_ERROR);
+        }
+
+        self::clearBackups($server_id, $web_id, intval($web_domain['backup_copies']), $web_backup_dir);
+        return true;
+    }
+
+    /**
+     * Creates and prepares a backup dir
+     * @param int $server_id
+     * @param array $domain_data
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    protected static function prepare_backup_dir($server_id, $domain_data)
+    {
+        global $app;
+
+        $server_config = $app->getconf->get_server_config($server_id, 'server');
+        $global_config = $app->getconf->get_global_config('sites');
+
+        if (isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') {
+            $backup_dir_permissions = 0755;
+        } else {
+            $backup_dir_permissions = 0750;
+        }
+
+        $backup_dir = $server_config['backup_dir'];
+
+        if (!is_dir($backup_dir)) {
+            mkdir($backup_dir, $backup_dir_permissions, true);
+        } else {
+            chmod($backup_dir, $backup_dir_permissions);
+        }
+
+        $web_backup_dir = $backup_dir . '/web' . $domain_data['domain_id'];
+        if (!is_dir($web_backup_dir))
+            mkdir($web_backup_dir, 0750);
+        chmod($web_backup_dir, 0750);
+
+        $backup_username = 'root';
+        $backup_group = 'root';
+
+        if ($global_config['backups_include_into_web_quota'] == 'y') {
+            $backup_username = $domain_data['system_user'];
+            $backup_group = $domain_data['system_group'];
+        }
+        chown($web_backup_dir, $backup_username);
+        chgrp($web_backup_dir, $backup_group);
+    }
+
+    /**
+     * Makes a backup of website files or database.
+     * @param string|int $domain_id
+     * @param string $type backup type: web or mysql
+     * @param string $backup_job how the backup is initiated: manual or auto
+     * @param bool $mount if true, then the backup dir will be mounted and unmounted automatically
+     * @return bool returns true if success
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    public static function run_backup($domain_id, $type, $backup_job, $mount = true)
+    {
+        global $app;
+
+        $domain_id = intval($domain_id);
+
+        $sql = "SELECT * FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND domain_id = ?";
+        $rec = $app->db->queryOneRecord($sql, $domain_id);
+        if (empty($rec)) {
+            $app->log('Failed to make backup of type ' . $type . ', because no information present about requested domain id ' . $domain_id, LOGLEVEL_ERROR);
+            return false;
+        }
+        $server_id = intval($rec['server_id']);
+
+        if ($mount && !self::mount_backup_dir($server_id)) {
+            $app->log('Failed to make backup of type ' . $type . ' for domain id ' . $domain_id . ', because failed to mount backup directory', LOGLEVEL_ERROR);
+            return false;
+        }
+        $ok = false;
+
+        switch ($type) {
+            case 'web':
+                $ok = self::make_web_backup($rec, $backup_job);
+                break;
+            case 'mysql':
+                $ok = self::make_database_backup($rec, $backup_job);
+                break;
+            default:
+                $app->log('Failed to make backup, because backup type is unknown: ' . $type, LOGLEVEL_ERROR);
+                break;
+        }
+        if ($mount)
+            self::unmount_backup_dir($server_id);
+        return $ok;
+    }
+
+    /**
+     * Runs backups of all websites that have backups enabled with respect to their backup interval settings
+     * @param int $server_id
+     * @param string $backup_job backup tupe: auto or manual
+     * @author Ramil Valitov <ramilvalitov@gmail.com>
+     */
+    public static function run_all_backups($server_id, $backup_job = "auto")
+    {
+        global $app;
+
+        $server_id = intval($server_id);
+
+        $sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y' AND backup_interval != 'none' AND backup_interval != ''";
+        $domains = $app->db->queryAllRecords($sql, $server_id);
+
+        if (!self::mount_backup_dir($server_id)) {
+            $app->log('Failed to run regular backups routine because failed to mount backup directory', LOGLEVEL_ERROR);
+            return;
+        }
+        self::backups_garbage_collection($server_id);
+
+        $date_of_week = date('w');
+        $date_of_month = date('d');
+        foreach ($domains as $domain) {
+            if (($domain['backup_interval'] == 'daily' or ($domain['backup_interval'] == 'weekly' && $date_of_week == 0) or ($domain['backup_interval'] == 'monthly' && $date_of_month == '01'))) {
+                self::run_backup($domain['domain_id'], 'web', $backup_job, false);
+                self::run_backup($domain['domain_id'], 'mysql', $backup_job, false);
+            }
+        }
+        self::unmount_backup_dir($server_id);
+    }
+}
+
+?>
+
diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php
index 9329be7c2e66b67a8343af17cf957e91abd26167..cf4272991e340515b76399bcb27f884dae171b9c 100644
--- a/server/lib/classes/cron.d/500-backup.inc.php
+++ b/server/lib/classes/cron.d/500-backup.inc.php
@@ -33,11 +33,6 @@ class cronjob_backup extends cronjob {
 	// job schedule
 	protected $_schedule = '0 0 * * *';
 
-	/**
-	 * The maximum number of backups that ISPConfig can store.
-	 */
-	const max_backups = 30;
-
 	/* this function is optional if it contains no custom code */
 	public function onPrepare() {
 		global $app;
@@ -55,363 +50,8 @@ class cronjob_backup extends cronjob {
 	public function onRunJob() {
 		global $app, $conf;
 
-		$server_config = $app->getconf->get_server_config($conf['server_id'], 'server');
-		$global_config = $app->getconf->get_global_config('sites');
-		$backup_dir = trim($server_config['backup_dir']);
-		$backup_mode = $server_config['backup_mode'];
-		$backup_tmp = trim($server_config['backup_tmp']);
-		if($backup_mode == '') $backup_mode = 'userzip';
-
-		$web_config = $app->getconf->get_server_config($conf['server_id'], 'web');
-		$http_server_user = $web_config['user'];
-
-		if($backup_dir != '') {
-
-			if(isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') {
-				$backup_dir_permissions = 0755;
-			} else {
-				$backup_dir_permissions = 0750;
-			}
-
-			if(!is_dir($backup_dir)) {
-				mkdir($backup_dir, $backup_dir_permissions, true);
-			} else {
-				chmod($backup_dir, $backup_dir_permissions);
-			}
-            $run_backups = true;
-            //* mount backup directory, if necessary
-            if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($backup_dir) ) $run_backups = false;
-			if($run_backups){
-				$web_array = array();
-
-				system('which pigz > /dev/null', $ret);
-				if($ret === 0) {
-					$use_pigz = true;
-					$zip_cmd = 'pigz'; // db-backups
-				} else {
-					$use_pigz = false;
-					$zip_cmd = 'gzip'; // db-backups
-				}
-				
-				//* backup only active domains
-				$sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y'";
-				$records = $app->db->queryAllRecords($sql, $conf['server_id']);
-				if(is_array($records)) {
-					foreach($records as $rec) {
-
-						//* Do the website backup
-						if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) {
-
-							$web_path = $rec['document_root'];
-							$web_user = $rec['system_user'];
-							$web_group = $rec['system_group'];
-							$web_id = $rec['domain_id'];
-							if(!in_array($web_id, $web_array)) $web_array[] = $web_id;
-							$web_backup_dir = $backup_dir.'/web'.$web_id;
-							if(!is_dir($web_backup_dir)) mkdir($web_backup_dir, 0750);
-							chmod($web_backup_dir, 0750);
-							//if(isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') {
-							chown($web_backup_dir, $rec['system_user']);
-							chgrp($web_backup_dir, $rec['system_group']);
-							/*} else {
-								chown($web_backup_dir, 'root');
-								chgrp($web_backup_dir, 'root');
-							}*/
-						
-							$backup_excludes = '';
-							$b_excludes = explode(',', trim($rec['backup_excludes']));
-							if(is_array($b_excludes) && !empty($b_excludes)){
-								foreach($b_excludes as $b_exclude){
-									$b_exclude = trim($b_exclude);
-									if($b_exclude != ''){
-										$backup_excludes .= ' --exclude='.escapeshellarg($b_exclude);
-									}
-								}
-							}
-						
-							if($backup_mode == 'userzip') {
-								//* Create a .zip backup as web user and include also files owned by apache / nginx user
-								$web_backup_file = 'web'.$web_id.'_'.date('Y-m-d_H-i').'.zip';
-								$app->system->exec_safe('cd ? && sudo -u ? find . -group ? -or -user ? -print 2> /dev/null | zip -b ? --exclude=./backup\*'.$backup_excludes.' --symlinks ? -@', $web_path, $web_user, $web_group, $http_server_user, $backup_tmp, $web_backup_dir.'/'.$web_backup_file);
-								$retval = $app->system->last_exec_retcode();
-							} else {
-								//* Create a tar.gz backup as root user
-								$web_backup_file = 'web'.$web_id.'_'.date('Y-m-d_H-i').'.tar.gz';
-								if ($use_pigz) {
-									$app->system->exec_safe('tar pcf - --exclude=./backup\*'.$backup_excludes.' --directory ? . | pigz > ?', $web_path, $web_backup_dir.'/'.$web_backup_file);
-									$retval = $app->system->last_exec_retcode();
-								} else {
-									$app->system->exec_safe('tar pczf ? --exclude=./backup\*'.$backup_excludes.' --directory ? .', $web_backup_dir.'/'.$web_backup_file, $web_path);
-									$retval = $app->system->last_exec_retcode();
-								}
-							}
-							if($retval == 0 || ($backup_mode != 'userzip' && $retval == 1) || ($backup_mode == 'userzip' && $retval == 12)) { // tar can return 1, zip can return 12(due to harmless warings) and still create valid backups  
-								if(is_file($web_backup_dir.'/'.$web_backup_file)){
-									$backupusername = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_user : 'root';
-									$backupgroup = ($global_config['backups_include_into_web_quota'] == 'y') ? $web_group : 'root';
-									chown($web_backup_dir.'/'.$web_backup_file, $backupusername);
-									chgrp($web_backup_dir.'/'.$web_backup_file, $backupgroup);
-									chmod($web_backup_dir.'/'.$web_backup_file, 0750);
-
-									//* Insert web backup record in database
-									$filesize = filesize($web_backup_dir.'/'.$web_backup_file);
-									$sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, tstamp, filename, filesize) VALUES (?, ?, ?, ?, ?, ?, ?)";
-									$app->db->query($sql, $conf['server_id'], $web_id, 'web', $backup_mode, time(), $web_backup_file, $filesize);
-									if($app->db->dbHost != $app->dbmaster->dbHost) 
-										$app->dbmaster->query($sql, $conf['server_id'], $web_id, 'web', $backup_mode, time(), $web_backup_file, $filesize);
-									unset($filesize);
-								}
-							} else {
-								if(is_file($web_backup_dir.'/'.$web_backup_file)) unlink($web_backup_dir.'/'.$web_backup_file);
-								$app->log('Backup of '.$web_path.' failed.', LOGLEVEL_WARN);
-							}
-
-							//* Remove old backups
-							$backup_copies = intval($rec['backup_copies']);
-
-							$dir_handle = dir($web_backup_dir);
-							$files = array();
-							while (false !== ($entry = $dir_handle->read())) {
-								if($entry != '.' && $entry != '..' && substr($entry, 0, 3) == 'web' && is_file($web_backup_dir.'/'.$entry)) {
-									$files[] = $entry;
-								}
-							}
-							$dir_handle->close();
-
-							rsort($files);
-
-							for ($n = $backup_copies; $n <= self::max_backups; $n++) {
-								if(isset($files[$n]) && is_file($web_backup_dir.'/'.$files[$n])) {
-									$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
-									$app->db->query($sql, $conf['server_id'], $web_id, $files[$n]);
-									if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'],  $web_id, $files[$n]);
-									@unlink($web_backup_dir.'/'.$files[$n]);
-								}
-							}
-
-							unset($files);
-							unset($dir_handle);
-
-							//* Remove backupdir symlink and create as directory instead
-							$app->system->web_folder_protection($web_path, false);
-
-							if(is_link($web_path.'/backup')) {
-								unlink($web_path.'/backup');
-							}
-							if(!is_dir($web_path.'/backup')) {
-								mkdir($web_path.'/backup');
-								chown($web_path.'/backup', $rec['system_user']);
-								chgrp($web_path.'/backup', $rec['system_group']);
-							}
-
-							$app->system->web_folder_protection($web_path, true);
-						}
-
-						/* If backup_interval is set to none and we have a
-						backup directory for the website, then remove the backups */
-						if($rec['backup_interval'] == 'none' || $rec['backup_interval'] == '') {
-							$web_id = $rec['domain_id'];
-							$web_user = $rec['system_user'];
-							$web_backup_dir = realpath($backup_dir.'/web'.$web_id);
-							if(is_dir($web_backup_dir)) {
-								$dir_handle = opendir($web_backup_dir.'/');
-								while ($file = readdir($dir_handle)) {
-									if(!is_dir($file)) {
-										unlink ("$web_backup_dir/"."$file");
-									}
-								}
-							}
-							$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ?";
-							$app->db->query($sql, $conf['server_id'], $web_id);
-							if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $web_id);
-						}
-					}
-				}
-
-				$records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND backup_interval != 'none' AND backup_interval != ''", $conf['server_id']);
-				if(is_array($records)) {
-
-					include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf';
-					
-					//* Check mysqldump capabilities
-					exec('mysqldump --help',$tmp);
-					$mysqldump_routines = (strpos(implode($tmp),'--routines') !== false)?'--routines':'';
-					unset($tmp);
-
-					foreach($records as $rec) {
-
-						//* Do the database backup
-						if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) {
-
-							$web_id = $rec['parent_domain_id'];
-							if(!in_array($web_id, $web_array)) $web_array[] = $web_id;
-							$db_backup_dir = $backup_dir.'/web'.$web_id;
-							if(!is_dir($db_backup_dir)) mkdir($db_backup_dir, 0750);
-							chmod($db_backup_dir, 0750);
-							$backupusername = 'root';
-							$backupgroup = 'root';
-							if ($global_config['backups_include_into_web_quota'] == 'y') {
-								$sql = "SELECT * FROM web_domain WHERE domain_id = ".$rec['parent_domain_id'];
-								$webdomain = $app->db->queryOneRecord($sql);
-								$backupusername = $webdomain['system_user'];
-								$backupgroup = $webdomain['system_group'];
-							}
-							chown($db_backup_dir, $backupusername);
-							chgrp($db_backup_dir, $backupgroup);
-
-							//* Do the mysql database backup with mysqldump
-							$db_id = $rec['database_id'];
-							$db_name = $rec['database_name'];
-							$db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql';
-							$command = "mysqldump -h ? -u ? -p? -c --add-drop-table --create-options --quick --max_allowed_packet=512M ".$mysqldump_routines." --result-file=? ?";
-							$app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $db_backup_dir.'/'.$db_backup_file, $db_name);
-							$retval = $app->system->last_exec_retcode();
-							
-							//* Compress the backup with gzip / pigz
-							if($retval == 0) {
-								$app->system->exec_safe("$zip_cmd -c ? > ?", $db_backup_dir.'/'.$db_backup_file, $db_backup_dir.'/'.$db_backup_file . '.gz');
-								$retval = $app->system->last_exec_retcode();
-							}
-							
-							if($retval == 0){
-								if(is_file($db_backup_dir.'/'.$db_backup_file.'.gz')){
-									chmod($db_backup_dir.'/'.$db_backup_file.'.gz', 0750);
-									chown($db_backup_dir.'/'.$db_backup_file.'.gz', fileowner($db_backup_dir));
-									chgrp($db_backup_dir.'/'.$db_backup_file.'.gz', filegroup($db_backup_dir));
-
-									//* Insert web backup record in database
-									$filesize = filesize($db_backup_dir.'/'.$db_backup_file.'.gz');
-									$sql = "INSERT INTO web_backup (server_id, parent_domain_id, backup_type, backup_mode, tstamp, filename, filesize) VALUES (?, ?, ?, ?, ?, ?, ?)";
-									$app->db->query($sql, $conf['server_id'], $web_id, 'mysql', 'sqlgz', time(), $db_backup_file.'.gz', $filesize);
-									if($app->db->dbHost != $app->dbmaster->dbHost) 
-										$app->dbmaster->query($sql, $conf['server_id'], $web_id, 'mysql', 'sqlgz', time(), $db_backup_file.'.gz', $filesize);
-									unset($filesize);
-								}
-							} else {
-								if(is_file($db_backup_dir.'/'.$db_backup_file.'.gz')) unlink($db_backup_dir.'/'.$db_backup_file.'.gz');
-							}
-							//* Remove the uncompressed file
-							if(is_file($db_backup_dir.'/'.$db_backup_file)) unlink($db_backup_dir.'/'.$db_backup_file);
-
-							//* Remove old backups
-							$backup_copies = intval($rec['backup_copies']);
-
-							$dir_handle = dir($db_backup_dir);
-							$files = array();
-							while (false !== ($entry = $dir_handle->read())) {
-								if($entry != '.' && $entry != '..' && preg_match('/^db_('.$db_name.')_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}\.sql.gz$/', $entry, $matches) && is_file($db_backup_dir.'/'.$entry)) {
-									if(array_key_exists($matches[1], $files) == false) $files[$matches[1]] = array();
-									$files[$matches[1]][] = $entry;
-								}
-							}
-							$dir_handle->close();
-
-							reset($files);
-							foreach($files as $db_name => $filelist) {
-								rsort($filelist);
-								for ($n = $backup_copies; $n <= self::max_backups; $n++) {
-									if(isset($filelist[$n]) && is_file($db_backup_dir.'/'.$filelist[$n])) {
-										$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
-										$app->db->query($sql, $conf['server_id'], $web_id, $filelist[$n]);
-										if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $web_id, $filelist[$n]);
-										@unlink($db_backup_dir.'/'.$filelist[$n]);
-									}
-								}
-							}
-
-							unset($files);
-							unset($dir_handle);
-						}
-					}
-
-					unset($clientdb_host);
-					unset($clientdb_user);
-					unset($clientdb_password);
-
-				}
-
-				// remove non-existing backups from database
-				$backups = $app->db->queryAllRecords("SELECT * FROM web_backup WHERE server_id = ?", $conf['server_id']);
-				if(is_array($backups) && !empty($backups)){
-					foreach($backups as $backup){
-						$backup_file = $backup_dir.'/web'.$backup['parent_domain_id'].'/'.$backup['filename'];
-						if(!is_file($backup_file)){
-							$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
-							$app->db->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']);
-						}
-					}
-				}
-				if($app->db->dbHost != $app->dbmaster->dbHost){
-					$backups = $app->dbmaster->queryAllRecords("SELECT * FROM web_backup WHERE server_id = ?", $conf['server_id']);
-					if(is_array($backups) && !empty($backups)){
-						foreach($backups as $backup){
-							$backup_file = $backup_dir.'/web'.$backup['parent_domain_id'].'/'.$backup['filename'];
-							if(!is_file($backup_file)){
-								$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
-								$app->dbmaster->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']);
-							}
-						}
-					}
-				}
-				
-				// garbage collection (non-existing databases)
-				if(is_array($web_array) && !empty($web_array)){
-					foreach($web_array as $tmp_web_id){
-						$tmp_backup_dir = $backup_dir.'/web'.$tmp_web_id;
-						if(is_dir($tmp_backup_dir)){
-							$dir_handle = dir($tmp_backup_dir);
-							$files = array();
-							while (false !== ($entry = $dir_handle->read())) {
-								if($entry != '.' && $entry != '..' && preg_match('/^db_(.*?)_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}\.sql.gz$/', $entry, $matches) && is_file($tmp_backup_dir.'/'.$entry)) {
-
-									$tmp_db_name = $matches[1];
-									$tmp_database = $app->db->queryOneRecord("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ? AND database_name = ?", $conf['server_id'], $tmp_web_id, $tmp_db_name);
-
-									if(is_array($tmp_database) && !empty($tmp_database)){
-										if($tmp_database['backup_interval'] == 'none' || intval($tmp_database['backup_copies']) == 0){
-											@unlink($tmp_backup_dir.'/'.$entry);
-											$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
-											$app->db->query($sql, $conf['server_id'], $tmp_web_id, $entry);
-											if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $tmp_web_id, $entry);
-										}
-									} else {
-										@unlink($tmp_backup_dir.'/'.$entry);
-										$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
-										$app->db->query($sql, $conf['server_id'], $tmp_web_id, $entry);
-										if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $tmp_web_id, $entry);
-									}
-								}
-							}
-							$dir_handle->close();
-						}
-					}
-				}
-				//* end run_backups
-				if( $server_config['backup_dir_is_mount'] == 'y' ) $app->system->umount_backup_dir($backup_dir);
-			} 
-		}
-		
-		// delete files from backup download dir (/var/www/example.com/backup)
-		unset($records, $entry, $files);
-		$sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y'";
-		$records = $app->db->queryAllRecords($sql, $conf['server_id']);
-		if(is_array($records)) {
-			foreach($records as $rec) {
-				$backup_download_dir = $rec['document_root'].'/backup';
-				if(is_dir($backup_download_dir)){
-					$dir_handle = dir($backup_download_dir);
-					$files = array();
-					while (false !== ($entry = $dir_handle->read())) {
-						if($entry != '.' && $entry != '..' && is_file($backup_download_dir.'/'.$entry)) {
-							// delete files older than 3 days
-							if(time() - filemtime($backup_download_dir.'/'.$entry) >= 60*60*24*3) @unlink($backup_download_dir.'/'.$entry);
-						}
-					}
-					$dir_handle->close();
-				}
-			}
-		}
-
+		$app->load("backup");
+		backup::run_all_backups($conf['server_id'], "auto");
 		parent::onRunJob();
 	}
 
diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php
index 3308289d41dfff03564450137cced34aaedb3d8e..607491216db10d442d4cf0b85ccf8713bf84b092 100644
--- a/server/plugins-available/backup_plugin.inc.php
+++ b/server/plugins-available/backup_plugin.inc.php
@@ -54,6 +54,8 @@ class backup_plugin {
 		$app->plugins->registerAction('backup_download', $this->plugin_name, 'backup_action');
 		$app->plugins->registerAction('backup_restore', $this->plugin_name, 'backup_action');
 		$app->plugins->registerAction('backup_delete', $this->plugin_name, 'backup_action');
+		$app->plugins->registerAction('backup_web_files', $this->plugin_name, 'make_backup_callback');
+		$app->plugins->registerAction('backup_database', $this->plugin_name, 'make_backup_callback');
 		//$app->plugins->registerAction('backup_download_mail', $this->plugin_name, 'backup_action_mail');
 		$app->plugins->registerAction('backup_restore_mail', $this->plugin_name, 'backup_action_mail');
 		$app->plugins->registerAction('backup_delete_mail', $this->plugin_name, 'backup_action_mail');
@@ -69,6 +71,7 @@ class backup_plugin {
 		if(is_array($backup)) {
 
 			$app->uses('ini_parser,file,getconf,system');
+			$app->load("backup");
 
 			$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $backup['parent_domain_id']);
 			$server_config = $app->getconf->get_server_config($conf['server_id'], 'server');
@@ -78,7 +81,8 @@ class backup_plugin {
 			
 			$backup_dir_is_ready = true;
             //* mount backup directory, if necessary
-            if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($server_config['backup_dir']) ) $backup_dir_is_ready = false;
+			if (!backup::mount_backup_dir($conf['server_id']))
+				$backup_dir_is_ready = false;
 
 			if($backup_dir_is_ready){
 				//* Make backup available for download
@@ -121,47 +125,12 @@ class backup_plugin {
 
 				//* Restore a mysql backup
 				if($action_name == 'backup_restore' && $backup['backup_type'] == 'mysql') {
-					//* Load sql dump into db
-					include 'lib/mysql_clientdb.conf';
-
-					if(file_exists($backup_dir.'/'.$backup['filename'])) {
-						//$parts = explode('_',$backup['filename']);
-						//$db_name = $parts[1];
-						preg_match('@^db_(.+)_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}\.sql\.gz$@', $backup['filename'], $matches);
-						$db_name = $matches[1];
-						$command = "gunzip --stdout ? | mysql -h ? -u ? -p? ?";
-						$app->system->exec_safe($command, $backup_dir.'/'.$backup['filename'], $clientdb_host, $clientdb_user, $clientdb_password, $db_name);
-					}
-					unset($clientdb_host);
-					unset($clientdb_user);
-					unset($clientdb_password);
-					$app->log('Restored MySQL backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG);
+					backup::restoreBackupDatabase($backup['backup_format'], trim($backup['backup_password']), $backup_dir, $backup['filename'], $backup['backup_mode'], $backup['backup_type']);
 				}
 
 				//* Restore a web backup
 				if($action_name == 'backup_restore' && $backup['backup_type'] == 'web') {
-					$app->system->web_folder_protection($web['document_root'], false);
-					if($backup['backup_mode'] == 'userzip') {
-						if(file_exists($backup_dir.'/'.$backup['filename']) && $web['document_root'] != '' && $web['document_root'] != '/' && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) {
-							if(file_exists($web['document_root'].'/backup/'.$backup['filename'])) rename($web['document_root'].'/backup/'.$backup['filename'], $web['document_root'].'/backup/'.$backup['filename'].'.bak');
-							copy($backup_dir.'/'.$backup['filename'], $web['document_root'].'/backup/'.$backup['filename']);
-							chgrp($web['document_root'].'/backup/'.$backup['filename'], $web['system_group']);
-							//chown($web['document_root'].'/backup/'.$backup['filename'],$web['system_user']);
-							$command = 'sudo -u ? unzip -qq -o ? -d ? 2> /dev/null';
-							$app->system->exec_safe($command, $web['system_user'], $web['document_root'].'/backup/'.$backup['filename'], $web['document_root']);
-							unlink($web['document_root'].'/backup/'.$backup['filename']);
-							if(file_exists($web['document_root'].'/backup/'.$backup['filename'].'.bak')) rename($web['document_root'].'/backup/'.$backup['filename'].'.bak', $web['document_root'].'/backup/'.$backup['filename']);
-							$app->log('Restored Web backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG);
-						}
-					}
-					if($backup['backup_mode'] == 'rootgz') {
-						if(file_exists($backup_dir.'/'.$backup['filename']) && $web['document_root'] != '' && $web['document_root'] != '/' && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) {
-							$command = 'tar xzf ? --directory ?';
-							$app->system->exec_safe($command, $backup_dir.'/'.$backup['filename'], $web['document_root']);
-							$app->log('Restored Web backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG);
-						}
-					}
-					$app->system->web_folder_protection($web['document_root'], true);
+					backup::restoreBackupWebFiles($backup['backup_format'], trim($backup['backup_password']), $backup_dir, $backup['filename'], $backup['backup_mode'], $backup['backup_type'], $web['document_root'], $web['system_user'], $web['system_group']);
 				}
 				
 				if($action_name == 'backup_delete') {
@@ -175,7 +144,7 @@ class backup_plugin {
 					}
 				}
 
-				if( $server_config['backup_dir_is_mount'] == 'y' ) $app->system->umount_backup_dir($backup_dir);
+				backup::unmount_backup_dir($conf['server_id']);
 			} else {
 				$app->log('Backup directory not ready.', LOGLEVEL_DEBUG);
 			}
@@ -186,6 +155,37 @@ class backup_plugin {
 		return 'ok';
 	}
 
+	/**
+	 * Makes a backup of website files or database, it's triggered by action and required for the plugin to work.
+	 * Please, don't call this function directly unless you know what you're doing.
+	 * @param string $action_name is the backup source: web files or database
+	 * @param string|int $domain_id
+	 * @return string
+	 * @author Ramil Valitov <ramilvalitov@gmail.com>
+	 * @uses backup_plugin::run_backup() recommended to use if you need to make backups
+	 */
+	public function make_backup_callback($action_name, $domain_id)
+	{
+		global $app;
+
+		//Load backup class
+		$app->load('backup');
+		$app->log('Triggered backup routine for domain id ' . $domain_id . ', action name ' . $action_name, LOGLEVEL_DEBUG);
+
+		switch ($action_name) {
+			case 'backup_web_files':
+				backup::run_backup($domain_id, 'web', "manual");
+				break;
+			case 'backup_database':
+				backup::run_backup($domain_id, 'mysql', "manual");
+				break;
+			default:
+				$app->log('Unknown backup action name: ' . $action_name, LOGLEVEL_ERROR);
+				break;
+		}
+		return 'ok';
+	}
+
 	//* Restore a mail backup - florian@schaal-24.de
 	public function backup_action_mail($action_name, $data) {
 		global $app, $conf;
diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php
index e6c197ea20f8d02fd734078ddcae19976729a1ef..ad122807ba61edc34369f773c811f59f833c12f7 100644
--- a/server/plugins-available/cron_plugin.inc.php
+++ b/server/plugins-available/cron_plugin.inc.php
@@ -224,7 +224,7 @@ class cron_plugin {
 					$cron_line = str_replace(" ", "", $job['run_min']) . "\t" . str_replace(" ", "", $job['run_hour']) . "\t" . str_replace(" ", "", $job['run_mday']) . "\t" . str_replace(" ", "", $job['run_month']) . "\t" . str_replace(" ", "", $job['run_wday']);
 				}
 				
-				$log_target = ">/dev/null 2>&1";
+				$log_target = "";
 				$log_wget_target = '/dev/null';
 				$log_root = '';
 				if($job['log'] == 'y') {