You have to agree that you have read the update notifications.';
}
}
$current_version = Settings::Get('panel.version');
$current_db_version = Settings::Get('panel.db_version');
if (empty($current_db_version)) {
$current_db_version = "0";
}
$new_version = Froxlor::VERSION;
$new_db_version = Froxlor::DBVERSION;
if (Froxlor::VERSION != $current_version) {
$replacer_currentversion = $current_version;
$replacer_newversion = $new_version;
} else {
// show db version
$replacer_currentversion = $current_db_version;
$replacer_newversion = $new_db_version;
}
$ui_text = lng('update.update_information.part_a', [$replacer_newversion, $replacer_currentversion]);
$ui_text .= lng('update.update_information.part_b');
$upd_formfield = [
'updates' => [
'title' => lng('update.update'),
'image' => 'fa-solid fa-download',
'description' => lng('update.description'),
'sections' => [],
'buttons' => [
[
'label' => lng('update.proceed')
]
]
]
];
$preconfig = Preconfig::getPreConfig();
if (!empty($preconfig)) {
$upd_formfield['updates']['sections'] = $preconfig;
}
UI::view('user/form-note.html.twig', [
'formaction' => $linker->getLink(['section' => 'updates']),
'formdata' => $upd_formfield['updates'],
// alert
'type' => !empty($message) ? 'danger' : 'info',
'alert_msg' => $ui_text . $message
]);
} else {
Response::standardSuccess('update.noupdatesavail', Settings::Get('system.update_channel') == 'testing' ? lng('serversettings.uc_testing') . ' ' : '');
}
}
================================================
FILE: api.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Api\Api;
use Froxlor\Api\Response;
require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/lib/functions.php';
require __DIR__ . '/lib/tables.inc.php';
// set error-handler
@set_error_handler([
'\\Froxlor\\Api\\Api',
'phpErrHandler'
]);
// Return response
try {
echo (new Api)->formatMiddleware(@file_get_contents('php://input'))->handle();
} catch (Exception $e) {
echo Response::jsonErrorResponse($e->getMessage(), $e->getCode());
}
================================================
FILE: api_keys.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
if (!defined('AREA')) {
header("Location: index.php");
exit();
}
use Froxlor\Database\Database;
use Froxlor\FroxlorLogger;
use Froxlor\UI\HTML;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
// redirect if this customer has no permission for API usage
if ($userinfo['adminsession'] == 0 && $userinfo['api_allowed'] == 0) {
Response::redirectTo('customer_index.php');
}
// redirect if this admin has no permission for API usage
if ($userinfo['adminsession'] == 1 && $userinfo['api_allowed'] == 0) {
Response::redirectTo('admin_index.php');
}
// This file is being included in admin_index and customer_index
// and therefore does not need to require lib/init.php
$del_stmt = Database::prepare("DELETE FROM `" . TABLE_API_KEYS . "` WHERE id = :id");
$id = (int)Request::any('id');
// do the delete and then just show a success-message and the apikeys list again
if ($action == 'delete' && $id > 0) {
HTML::askYesNo('apikey_reallydelete', $filename, [
'id' => $id,
'page' => $page,
'action' => 'deletesure'
], '', [
'section' => 'index',
'page' => $page
]);
} elseif (Request::post('send') == 'send' && $action == 'deletesure' && $id > 0) {
$chk = (AREA == 'admin' && $userinfo['customers_see_all'] == '1') ? true : false;
if (AREA == 'customer') {
$chk_stmt = Database::prepare("
SELECT c.customerid FROM `" . TABLE_PANEL_CUSTOMERS . "` c
LEFT JOIN `" . TABLE_API_KEYS . "` ak ON ak.customerid = c.customerid
WHERE ak.`id` = :id AND c.`customerid` = :cid
");
$chk = Database::pexecute_first($chk_stmt, [
'id' => $id,
'cid' => $userinfo['customerid']
]);
} elseif (AREA == 'admin' && $userinfo['customers_see_all'] == '0') {
$chk_stmt = Database::prepare("
SELECT a.adminid FROM `" . TABLE_PANEL_ADMINS . "` a
LEFT JOIN `" . TABLE_API_KEYS . "` ak ON ak.adminid = a.adminid
WHERE ak.`id` = :id AND a.`adminid` = :aid
");
$chk = Database::pexecute_first($chk_stmt, [
'id' => $id,
'aid' => $userinfo['adminid']
]);
}
if ($chk !== false) {
Database::pexecute($del_stmt, [
'id' => $id
]);
Response::standardSuccess('apikeys.apikey_removed', $id, [
'filename' => $filename,
'page' => $page
]);
}
} elseif ($action == 'add') {
if (Request::post('send') == 'send') {
$user_passwd = Request::post('user_password');
if (empty($user_passwd)) {
Response::dynamicError(lng('panel.noauthentication'));
}
if ($userinfo['adminsession']) {
$table = "`" . TABLE_PANEL_ADMINS . "`";
$uid = 'adminid';
} else {
$table = "`" . TABLE_PANEL_CUSTOMERS . "`";
$uid = 'customerid';
}
if (\Froxlor\System\Crypt::validatePasswordLogin($userinfo, $user_passwd, $table, $uid)) {
$ins_stmt = Database::prepare("
INSERT INTO `" . TABLE_API_KEYS . "` SET
`apikey` = :key, `secret` = :secret, `adminid` = :aid, `customerid` = :cid, `valid_until` = '-1', `allowed_from` = ''
");
// customer generates for himself, admins will see a customer-select-box later
if (AREA == 'admin') {
$cid = 0;
} elseif (AREA == 'customer') {
$cid = $userinfo['customerid'];
}
$key = hash('sha256', openssl_random_pseudo_bytes(64 * 64));
$secret = hash('sha512', openssl_random_pseudo_bytes(64 * 64 * 4));
Database::pexecute($ins_stmt, [
'key' => $key,
'secret' => $secret,
'aid' => $userinfo['adminid'],
'cid' => $cid
]);
Response::standardSuccess('apikeys.apikey_added', '', [
'filename' => $filename,
'page' => $page
]);
} else {
Response::dynamicError(lng('panel.authenticationfailed'));
}
}
HTML::askUserPasswd('apikey_reallyadd', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], '', [
'section' => 'index',
'page' => $page
]);
exit;
}
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed api::api_keys");
// select all my (accessible) api-keys
$keys_stmt_query = "SELECT ak.*, c.loginname, a.loginname as adminname
FROM `" . TABLE_API_KEYS . "` ak
LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` c ON `c`.`customerid` = `ak`.`customerid`
LEFT JOIN `" . TABLE_PANEL_ADMINS . "` a ON `a`.`adminid` = `ak`.`adminid`
WHERE ";
$qry_params = [];
if (AREA == 'admin' && $userinfo['customers_see_all'] == '0') {
// admin with only customer-specific permissions
$keys_stmt_query .= "ak.adminid = :adminid ";
$qry_params['adminid'] = $userinfo['adminid'];
$fields = [
'a.loginname' => lng('login.username')
];
} elseif (AREA == 'customer') {
// customer-area
$keys_stmt_query .= "ak.customerid = :cid ";
$qry_params['cid'] = $userinfo['customerid'];
$fields = [
'c.loginname' => lng('login.username')
];
} else {
// admin who can see all customers / reseller / admins
$keys_stmt_query .= "1 ";
$fields = [
'a.loginname' => lng('login.username')
];
}
//$keys_stmt_query .= $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit();
$keys_stmt = Database::prepare($keys_stmt_query);
Database::pexecute($keys_stmt, $qry_params);
$all_keys = $keys_stmt->fetchAll(PDO::FETCH_ASSOC);
$apikeys_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.apikeys.php';
$collection = [
'data' => $all_keys,
'pagination' => []
];
$tpl = 'user/table.html.twig';
UI::view($tpl, [
'listing' => Listing::formatFromArray($collection, $apikeys_list_data['apikeys_list'], 'apikeys_list'),
'actions_links' => (int)$userinfo['api_allowed'] == 1 ? [
[
'href' => $linker->getLink(['section' => 'index', 'page' => $page, 'action' => 'add']),
'label' => lng('apikeys.key_add')
]
] : null,
]);
================================================
FILE: bin/froxlor-cli
================================================
#!/usr/bin/env php
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Froxlor;
use Symfony\Component\Console\Application;
// validate correct php version
if (version_compare("7.4.0", PHP_VERSION, ">=")) {
die('Froxlor requires at least php-7.4. Please validate that your php-cli version is suitable.');
}
// ensure that default timezone is set
if (function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get")) {
@date_default_timezone_set(@date_default_timezone_get());
}
require dirname(__DIR__) . '/vendor/autoload.php';
require dirname(__DIR__) . '/lib/tables.inc.php';
$application = new Application('froxlor-cli', Froxlor::getFullVersion());
// files that are no commands
$fileIgnoreList = [
// Current non-command files
'CliCommand.php',
'index.html',
'install.functions.php',
];
// directory of commands to include
$cmd_files = glob(Froxlor::getInstallDir() . '/lib/Froxlor/Cli/*.php');
// include and add commands
foreach ($cmd_files as $cmdFile) {
// check ignore-list
if (!in_array(basename($cmdFile), $fileIgnoreList)) {
// include class-file
require $cmdFile;
// create class-name including namespace
$cmdClass = "\\Froxlor\\Cli\\" . substr(basename($cmdFile), 0, -4);
// check whether it exists
if (class_exists($cmdClass) && is_subclass_of($cmdClass, '\Symfony\Component\Console\Command\Command')) {
// add to cli application
$application->add(new $cmdClass());
}
}
}
$application->run();
================================================
FILE: build.xml
================================================
================================================
FILE: composer.json
================================================
{
"name": "froxlor/froxlor",
"description": "The server administration software for your needs. Developed by experienced server administrators, this panel simplifies the effort of managing your hosting platform.",
"keywords": [
"server",
"administration",
"php"
],
"homepage": "https://www.froxlor.org",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "Michael Kaufmann",
"email": "team@froxlor.org",
"role": "Lead Developer"
}
],
"support": {
"email": "team@froxlor.org",
"issues": "https://github.com/Froxlor/Froxlor/issues",
"forum": "https://forum.froxlor.org/",
"source": "https://github.com/Froxlor/Froxlor",
"docs": "https://docs.froxlor.org/",
"chat": "https://discord.froxlor.org/"
},
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/d00p"
}
],
"require": {
"php": "^7.4 || ^8.0",
"ext-session": "*",
"ext-ctype": "*",
"ext-pdo": "*",
"ext-pdo_mysql": "*",
"ext-simplexml": "*",
"ext-xml": "*",
"ext-filter": "*",
"ext-posix": "*",
"ext-mbstring": "*",
"ext-curl": "*",
"ext-json": "*",
"ext-openssl": "*",
"ext-fileinfo": "*",
"ext-gmp": "*",
"ext-gd": "*",
"phpmailer/phpmailer": "~6.0",
"monolog/monolog": "^1.24",
"robthree/twofactorauth": "^1.6",
"froxlor/idna-convert-legacy": "^2.1",
"voku/anti-xss": "^4.1",
"twig/twig": "^3.3",
"symfony/console": "^5.4",
"pear/net_dns2": "^1.5",
"amnuts/opcache-gui": "^3.4",
"league/commonmark": "^2.4",
"phpseclib/phpseclib": "~3.0"
},
"require-dev": {
"phpunit/phpunit": "^9",
"ext-pcntl": "*",
"phpcompatibility/php-compatibility": "*",
"squizlabs/php_codesniffer": "*",
"pdepend/pdepend": "^2.9",
"sebastian/phpcpd": "^6.0",
"phploc/phploc": "^7.0",
"phpmd/phpmd": "^2.10",
"phpunit/php-timer" : "^5",
"phpstan/phpstan": "^1.8"
},
"suggest": {
"ext-bcmath": "*",
"ext-zip": "*",
"ext-gnupg": "*",
"ext-apcu": "*",
"ext-readline": "*"
},
"config": {
"platform": {
"php": "7.4"
}
},
"autoload": {
"psr-4": {
"Froxlor\\": [
"lib/Froxlor"
]
}
},
"scripts": {
"dev": [
"Composer\\Config::disableProcessTimeout",
"npx concurrently -c \"#93c5fd,#fdba74\" \"php -S 127.0.0.1:8000\" \"npm run dev\" --names=server,vite"
],
"post-install-cmd": "if [ -f ./vendor/bin/phpcs ]; then \"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility ; fi",
"post-update-cmd" : "if [ -f ./vendor/bin/phpcs ]; then \"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility ; fi"
}
}
================================================
FILE: customer_domains.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\Commands\SubDomains;
use Froxlor\CurrentUser;
use Froxlor\Database\Database;
use Froxlor\Domain\Domain;
use Froxlor\FileDir;
use Froxlor\FroxlorLogger;
use Froxlor\PhpHelper;
use Froxlor\Settings;
use Froxlor\UI\Collection;
use Froxlor\UI\HTML;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
use Froxlor\Validate\Validate;
// redirect if this customer page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'domains')) {
Response::redirectTo('customer_index.php');
}
$id = (int)Request::any('id');
if ($page == 'overview' || $page == 'domains') {
if ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_INFO, "viewed customer_domains::domains");
$parentdomain_id = (int)Request::any('pid', '0');
try {
$domain_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.domains.php';
$collection = (new Collection(SubDomains::class, $userinfo))
->withPagination($domain_list_data['domain_list']['columns'], $domain_list_data['domain_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$actions_links = [];
if (CurrentUser::canAddResource('subdomains')) {
$actions_links[] = [
'href' => $linker->getLink(['section' => 'domains', 'page' => 'domains', 'action' => 'add']),
'label' => lng('domains.subdomain_add')
];
}
$actions_links[] = [
'href' => \Froxlor\Froxlor::getDocsUrl() . 'user-guide/domains/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
$table_tpl = 'table.html.twig';
if ($collection->count() == 0) {
$table_tpl = 'table-note.html.twig';
}
UI::view('user/' . $table_tpl, [
'listing' => Listing::format($collection, $domain_list_data, 'domain_list'),
'actions_links' => $actions_links,
'entity_info' => lng('domains.description'),
// alert-box
'type' => 'warning',
'alert_msg' => lng('domains.nodomainsassignedbyadmin')
]);
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = SubDomains::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
$alias_stmt = Database::prepare("SELECT COUNT(`id`) AS `count` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `aliasdomain` = :aliasdomain");
$alias_check = Database::pexecute_first($alias_stmt, [
"aliasdomain" => $id
]);
if (isset($result['parentdomainid']) && $result['parentdomainid'] != '0' && $alias_check['count'] == 0) {
if (Request::post('send') == 'send') {
try {
SubDomains::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
HTML::askYesNo('domains_reallydelete', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], $idna_convert->decode($result['domain']));
}
} else {
Response::standardError('domains_cantdeletemaindomain');
}
} elseif ($action == 'add') {
if ($userinfo['subdomains_used'] < $userinfo['subdomains'] || $userinfo['subdomains'] == '-1') {
if (Request::post('send') == 'send') {
try {
SubDomains::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$stmt = Database::prepare("SELECT `id`, `domain`, `documentroot`, `ssl_redirect`,`isemaildomain`,`letsencrypt` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid` = :customerid
AND `parentdomainid` = '0'
AND `email_only` = '0'
AND `deactivated` = '0'
ORDER BY `domain` ASC");
Database::pexecute($stmt, [
"customerid" => $userinfo['customerid']
]);
$domains = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$domains[$row['domain']] = $idna_convert->decode($row['domain']);
}
// check of there are any domains to be used
if (count($domains) <= 0) {
// no, possible direct URL access, redirect to overview
Response::redirectTo($filename, [
'page' => $page
]);
}
$aliasdomains[0] = lng('domains.noaliasdomain');
$domains_stmt = Database::prepare("SELECT `d`.`id`, `d`.`domain` FROM `" . TABLE_PANEL_DOMAINS . "` `d`, `" . TABLE_PANEL_CUSTOMERS . "` `c`
WHERE `d`.`aliasdomain` IS NULL
AND `d`.`id` <> `c`.`standardsubdomain`
AND `d`.`parentdomainid` = '0'
AND `d`.`customerid`=`c`.`customerid`
AND `d`.`email_only`='0'
AND `d`.`customerid`= :customerid
ORDER BY `d`.`domain` ASC");
Database::pexecute($domains_stmt, [
"customerid" => $userinfo['customerid']
]);
while ($row_domain = $domains_stmt->fetch(PDO::FETCH_ASSOC)) {
$aliasdomains[$row_domain['id']] = $idna_convert->decode($row_domain['domain']);
}
$redirectcode = [];
if (Settings::Get('customredirect.enabled') == '1') {
$codes = Domain::getRedirectCodesArray();
foreach ($codes as $rc) {
$redirectcode[$rc['id']] = $rc['code'] . ' (' . lng('redirect_desc.' . $rc['desc']) . ')';
}
}
// check if we at least have one ssl-ip/port, #1179
$ssl_ipsandports = false;
$ssl_ip_stmt = Database::prepare("
SELECT COUNT(*) as countSSL
FROM `" . TABLE_PANEL_IPSANDPORTS . "` pip
LEFT JOIN `" . TABLE_DOMAINTOIP . "` dti ON dti.id_ipandports = pip.id
WHERE pip.`ssl`='1'
");
Database::pexecute($ssl_ip_stmt);
$resultX = $ssl_ip_stmt->fetch(PDO::FETCH_ASSOC);
if (isset($resultX['countSSL']) && (int)$resultX['countSSL'] > 0) {
$ssl_ipsandports = true;
}
$openbasedir = [
0 => lng('domain.docroot'),
1 => lng('domain.homedir'),
2 => lng('domain.docparent')
];
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
$phpconfigs = [];
if (isset($userinfo['allowed_phpconfigs']) && !empty($userinfo['allowed_phpconfigs'])) {
$allowed_cfg = json_decode($userinfo['allowed_phpconfigs'], JSON_OBJECT_AS_ARRAY);
$phpconfigs_result_stmt = Database::query("
SELECT c.*, fc.description as interpreter
FROM `" . TABLE_PANEL_PHPCONFIGS . "` c
LEFT JOIN `" . TABLE_PANEL_FPMDAEMONS . "` fc ON fc.id = c.fpmsettingid
WHERE c.id IN (" . implode(", ", $allowed_cfg) . ")
");
while ($phpconfigs_row = $phpconfigs_result_stmt->fetch(PDO::FETCH_ASSOC)) {
if ((int)Settings::Get('phpfpm.enabled') == 1) {
$phpconfigs[$phpconfigs_row['id']] = $phpconfigs_row['description'] . " [" . $phpconfigs_row['interpreter'] . "]";
} else {
$phpconfigs[$phpconfigs_row['id']] = $phpconfigs_row['description'];
}
}
}
$subdomain_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/domains/formfield.domains_add.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'domains']),
'formdata' => $subdomain_add_data['domain_add']
]);
}
}
} elseif ($action == 'edit' && $id != 0) {
try {
$json_result = SubDomains::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['customerid']) && $result['customerid'] == $userinfo['customerid']) {
if ((int)$result['caneditdomain'] == 0) {
Response::standardError('domaincannotbeedited', $result['domain']);
}
if (Request::post('send') == 'send') {
try {
SubDomains::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$result['domain'] = $idna_convert->decode($result['domain']);
$domains[0] = lng('domains.noaliasdomain');
// also check ip/port combination to be the same, #176
$domains_stmt = Database::prepare("SELECT `d`.`id`, `d`.`domain` FROM `" . TABLE_PANEL_DOMAINS . "` `d` , `" . TABLE_PANEL_CUSTOMERS . "` `c` , `" . TABLE_DOMAINTOIP . "` `dip`
WHERE `d`.`aliasdomain` IS NULL
AND `d`.`id` <> :id
AND `c`.`standardsubdomain` <> `d`.`id`
AND `d`.`parentdomainid` = '0'
AND `d`.`customerid` = :customerid
AND `c`.`customerid` = `d`.`customerid`
AND `d`.`id` = `dip`.`id_domain`
AND `dip`.`id_ipandports`
IN (SELECT `id_ipandports` FROM `" . TABLE_DOMAINTOIP . "`
WHERE `id_domain` = :id)
GROUP BY `d`.`id`, `d`.`domain`
ORDER BY `d`.`domain` ASC");
Database::pexecute($domains_stmt, [
"id" => $result['id'],
"customerid" => $userinfo['customerid']
]);
while ($row_domain = $domains_stmt->fetch(PDO::FETCH_ASSOC)) {
$domains[$row_domain['id']] = $idna_convert->decode($row_domain['domain']);
}
if (preg_match('/^https?\:\/\//', $result['documentroot']) && Validate::validateUrl($result['documentroot'])) {
if (Settings::Get('panel.pathedit') == 'Dropdown') {
$urlvalue = $result['documentroot'];
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
} else {
$urlvalue = '';
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $result['documentroot'], true);
}
} else {
$urlvalue = '';
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $result['documentroot']);
}
$redirectcode = [];
if (Settings::Get('customredirect.enabled') == '1') {
$def_code = Domain::getDomainRedirectId($id);
$codes = Domain::getRedirectCodesArray();
foreach ($codes as $rc) {
$redirectcode[$rc['id']] = $rc['code'] . ' (' . lng('redirect_desc.' . $rc['desc']) . ')';
}
}
// check if we at least have one ssl-ip/port, #1179
$ssl_ipsandports = false;
$ssl_ip_stmt = Database::prepare("
SELECT COUNT(*) as countSSL
FROM `" . TABLE_PANEL_IPSANDPORTS . "` pip
LEFT JOIN `" . TABLE_DOMAINTOIP . "` dti ON dti.id_ipandports = pip.id
WHERE `dti`.`id_domain` = :id_domain AND pip.`ssl`='1'
");
Database::pexecute($ssl_ip_stmt, [
"id_domain" => $result['id']
]);
$resultX = $ssl_ip_stmt->fetch(PDO::FETCH_ASSOC);
if (isset($resultX['countSSL']) && (int)$resultX['countSSL'] > 0) {
$ssl_ipsandports = true;
}
// Fudge the result for ssl_redirect to hide the Let's Encrypt steps
$result['temporary_ssl_redirect'] = $result['ssl_redirect'];
$result['ssl_redirect'] = ($result['ssl_redirect'] == 0 ? 0 : 1);
$openbasedir = [
0 => lng('domain.docroot'),
1 => lng('domain.homedir'),
2 => lng('domain.docparent')
];
// create serveralias options
$serveraliasoptions = [];
$serveraliasoptions_selected = '2';
if ($result['iswildcarddomain'] == '1') {
$serveraliasoptions_selected = '0';
} elseif ($result['wwwserveralias'] == '1') {
$serveraliasoptions_selected = '1';
}
$serveraliasoptions[0] = lng('domains.serveraliasoption_wildcard');
$serveraliasoptions[1] = lng('domains.serveraliasoption_www');
$serveraliasoptions[2] = lng('domains.serveraliasoption_none');
$ips_stmt = Database::prepare("SELECT `p`.`ip` AS `ip` FROM `" . TABLE_PANEL_IPSANDPORTS . "` `p`
LEFT JOIN `" . TABLE_DOMAINTOIP . "` `dip`
ON ( `dip`.`id_ipandports` = `p`.`id` )
WHERE `dip`.`id_domain` = :id_domain
GROUP BY `p`.`ip`");
Database::pexecute($ips_stmt, [
"id_domain" => $result['id']
]);
$domainips = [];
while ($rowip = $ips_stmt->fetch(PDO::FETCH_ASSOC)) {
$domainips[] = ['item' => $rowip['ip']];
}
$phpconfigs = [];
if (isset($userinfo['allowed_phpconfigs']) && !empty($userinfo['allowed_phpconfigs'])) {
$allowed_cfg = json_decode($userinfo['allowed_phpconfigs'], JSON_OBJECT_AS_ARRAY);
$phpconfigs_result_stmt = Database::query("
SELECT c.*, fc.description as interpreter
FROM `" . TABLE_PANEL_PHPCONFIGS . "` c
LEFT JOIN `" . TABLE_PANEL_FPMDAEMONS . "` fc ON fc.id = c.fpmsettingid
WHERE c.id IN (" . implode(", ", $allowed_cfg) . ")
");
while ($phpconfigs_row = $phpconfigs_result_stmt->fetch(PDO::FETCH_ASSOC)) {
if ((int)Settings::Get('phpfpm.enabled') == 1) {
$phpconfigs[$phpconfigs_row['id']] = $phpconfigs_row['description'] . " [" . $phpconfigs_row['interpreter'] . "]";
} else {
$phpconfigs[$phpconfigs_row['id']] = $phpconfigs_row['description'];
}
}
}
$alias_stmt = Database::prepare("SELECT COUNT(`id`) AS count FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `aliasdomain`= :aliasdomain");
$alias_check = Database::pexecute_first($alias_stmt, [
"aliasdomain" => $result['id']
]);
$alias_check = $alias_check['count'];
$subdomain_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/domains/formfield.domains_edit.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'domains', 'id' => $id]),
'formdata' => $subdomain_edit_data['domain_edit'],
'editid' => $id
]);
}
} else {
Response::standardError('domains_canteditdomain');
}
} elseif ($action == 'jqSpeciallogfileNote') {
$domainid = intval(Request::post('id'));
$newval = intval(Request::post('newval'));
try {
$json_result = SubDomains::getLocal($userinfo, [
'id' => $domainid
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if ($newval != $result['speciallogfile']) {
echo json_encode(['changed' => true, 'info' => lng('admin.speciallogwarning')]);
exit();
}
echo 0;
exit();
}
} elseif ($page == 'domainssleditor') {
require_once __DIR__ . '/ssl_editor.php';
} elseif ($page == 'domaindnseditor' && $userinfo['dnsenabled'] == '1' && Settings::Get('system.dnsenabled') == '1') {
require_once __DIR__ . '/dns_editor.php';
} elseif ($page == 'sslcertificates') {
require_once __DIR__ . '/ssl_certificates.php';
} elseif ($page == 'logfiles') {
require_once __DIR__ . '/logfiles_viewer.php';
}
================================================
FILE: customer_email.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\Commands\EmailAccounts;
use Froxlor\Api\Commands\EmailDomains;
use Froxlor\Api\Commands\EmailForwarders;
use Froxlor\Api\Commands\Emails;
use Froxlor\Api\Commands\EmailSender;
use Froxlor\CurrentUser;
use Froxlor\Database\Database;
use Froxlor\Froxlor;
use Froxlor\FroxlorLogger;
use Froxlor\PhpHelper;
use Froxlor\Settings;
use Froxlor\UI\Collection;
use Froxlor\UI\HTML;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
use Froxlor\Validate\Check;
// redirect if this customer page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'email') || $userinfo['emails'] == 0) {
Response::redirectTo('customer_index.php');
}
$id = (int)Request::any('id');
if ($page == 'overview' || $page == 'emails') {
$result_stmt = Database::prepare("
SELECT COUNT(DISTINCT `domainid`) as maildomains FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `customerid`= :cid
");
$domain_count = Database::pexecute_first($result_stmt, [
"cid" => $userinfo['customerid']
]);
if ($domain_count['maildomains'] && $domain_count['maildomains'] > 1) {
try {
$emaildomain_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.emails_overview.php';
$collection = (new Collection(EmailDomains::class, $userinfo))
->withPagination($emaildomain_list_data['emaildomain_list']['columns'],
$emaildomain_list_data['emaildomain_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$actions_links = [];
if (CurrentUser::canAddResource('emails')) {
$actions_links[] = [
'href' => $linker->getLink(['section' => 'email', 'page' => 'email_domain', 'action' => 'add']),
'label' => lng('emails.emails_add')
];
}
$actions_links[] = [
'href' => Froxlor::getDocsUrl() . 'user-guide/emails/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
UI::view('user/table.html.twig', [
'listing' => Listing::format($collection, $emaildomain_list_data, 'emaildomain_list'),
'actions_links' => $actions_links,
]);
} else {
// only emails for one domain -> show email address listing directly
$page = 'email_domain';
}
}
if ($page == 'email_domain') {
$email_domainid = Request::any('domainid', 0);
if ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_INFO, "viewed customer_email::emails");
$sql_search = [];
if ($email_domainid > 0) {
$sql_search = ['sql_search' => ['m.domainid' => ['op' => '=', 'value' => $email_domainid]]];
}
try {
$email_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.emails.php';
$collection = (new Collection(Emails::class, $userinfo, $sql_search))
->withPagination($email_list_data['email_list']['columns'],
$email_list_data['email_list']['default_sorting'], ['domainid=' . $email_domainid]);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result_stmt = Database::prepare("
SELECT COUNT(`id`) as emaildomains
FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid`= :cid AND `isemaildomain` = '1'
");
$result2 = Database::pexecute_first($result_stmt, [
"cid" => $userinfo['customerid']
]);
$emaildomains_count = $result2['emaildomains'];
$actions_links = [];
if ($email_domainid > 0) {
$actions_links[] = [
'class' => 'btn-outline-primary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'emails',
]),
'label' => lng('emails.back_to_overview'),
'icon' => 'fa-solid fa-reply'
];
}
if (CurrentUser::canAddResource('emails')) {
$actions_links[] = [
'href' => $linker->getLink(['section' => 'email', 'page' => 'email_domain', 'action' => 'add', 'domainid' => $email_domainid]),
'label' => lng('emails.emails_add')
];
}
$actions_links[] = [
'href' => Froxlor::getDocsUrl() . 'user-guide/emails/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
UI::view('user/table.html.twig', [
'listing' => Listing::format($collection, $email_list_data, 'email_list'),
'actions_links' => $actions_links,
'entity_info' => lng('emails.description')
]);
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['email']) && $result['email'] != '') {
if (Request::post('send') == 'send') {
try {
Emails::getLocal($userinfo, [
'id' => $id,
'delete_userfiles' => Request::post('delete_userfiles', 0)
])->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
if ($result['popaccountid'] != '0') {
$show_checkbox = true;
} else {
$show_checkbox = false;
}
HTML::askYesNoWithCheckbox('email_reallydelete', 'admin_customer_alsoremovemail', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], $idna_convert->decode($result['email_full']), $show_checkbox);
}
}
} elseif ($action == 'add') {
if ($userinfo['emails_used'] < $userinfo['emails'] || $userinfo['emails'] == '-1') {
if (Request::post('send') == 'send') {
try {
$json_result = Emails::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
Response::redirectTo($filename, [
'page' => $page,
'action' => 'edit',
'id' => $result['id']
]);
} else {
$result_stmt = Database::prepare("SELECT `id`, `domain`, `customerid` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid`= :cid
AND `isemaildomain`='1'
ORDER BY `domain_ace` ASC");
Database::pexecute($result_stmt, [
"cid" => $userinfo['customerid']
]);
$domains = [];
$selected_domain = "";
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
if ($email_domainid == $row['id']) {
$selected_domain = $row['domain'];
}
$domains[$row['domain']] = $idna_convert->decode($row['domain']);
}
if (count($domains) > 0) {
$email_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/email/formfield.emails_add.php';
if (Settings::Get('catchall.catchall_enabled') != '1') {
unset($email_add_data['emails_add']['sections']['section_a']['fields']['iscatchall']);
}
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'email']),
'formdata' => $email_add_data['emails_add']
]);
} else {
Response::standardError('emails.noemaildomainaddedyet');
}
}
} else {
Response::standardError('allresourcesused');
}
} elseif ($action == 'edit' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['email']) && $result['email'] != '') {
if (Request::post('send') == 'send') {
try {
Emails::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
}
$result['email'] = $idna_convert->decode($result['email']);
$result['email_full'] = $idna_convert->decode($result['email_full']);
$result['destination'] = explode(' ', $result['destination']);
uasort($result['destination'], 'strcasecmp');
$forwarders = [];
$forwarders_count = 0;
foreach ($result['destination'] as $dest_id => $destination) {
$destination = $idna_convert->decode($destination);
if ($destination != $result['email_full'] && $destination != '') {
$forwarders[] = [
'item' => $destination,
'href' => $linker->getLink([
'section' => 'email',
'page' => 'forwarders',
'action' => 'delete',
'id' => $id,
'forwarderid' => $dest_id
]),
'label' => lng('panel.delete'),
'classes' => 'btn btn-sm btn-danger'
];
$forwarders_count++;
}
$result['destination'][$dest_id] = $destination;
}
$destinations_count = count($result['destination']);
// allowed senders listing
$senders = [];
$senders_count = 0;
if (Settings::Get('mail.enable_allow_sender') == '1') {
try {
$json_result = EmailSender::getLocal($userinfo, [
'id' => $id
])->listing();
$sender_listing = json_decode($json_result, true)['data'];
if ($sender_listing['count'] > 0) {
foreach ($sender_listing['list'] as $sender) {
$senders[] = [
'item' => $sender['allowed_sender'],
'href' => $linker->getLink([
'section' => 'email',
'page' => 'senders',
'action' => 'delete',
'id' => $id,
'senderid' => $sender['id']
]),
'label' => lng('panel.delete'),
'classes' => 'btn btn-sm btn-danger'
];
$senders_count++;
}
}
} catch (Exception $e) {
// nothing
}
}
$result = PhpHelper::htmlentitiesArray($result);
$email_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/email/formfield.emails_edit.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'email']),
'formdata' => $email_edit_data['emails_edit'],
'editid' => $id
]);
}
}
} elseif ($page == 'accounts') {
$email_domainid = Request::any('domainid', 0);
if ($action == 'add' && $id != 0) {
if ($userinfo['email_accounts'] == '-1' || ($userinfo['email_accounts_used'] < $userinfo['email_accounts'])) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (Request::post('send') == 'send') {
try {
EmailAccounts::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
if (Check::checkMailAccDeletionState($result['email_full'])) {
Response::standardError([
'mailaccistobedeleted'
], $result['email_full']);
}
$result['email_full'] = $idna_convert->decode($result['email_full']);
$result = PhpHelper::htmlentitiesArray($result);
$quota = Settings::Get('system.mail_quota');
$account_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/email/formfield.emails_addaccount.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'email', 'id' => $id]),
'formdata' => $account_add_data['emails_addaccount'],
'actions_links' => [
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]),
'label' => lng('emails.emails_edit'),
'icon' => 'fa-solid fa-pen'
],
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid
]),
'label' => lng('menue.email.emails'),
'icon' => 'fa-solid fa-envelope'
]
],
]);
}
} else {
Response::standardError([
'allresourcesused',
'allocatetoomuchquota'
], $quota);
}
} elseif ($action == 'changepw' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['popaccountid']) && $result['popaccountid'] != '') {
if (Request::post('send') == 'send') {
try {
EmailAccounts::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
$result['email_full'] = $idna_convert->decode($result['email_full']);
$result = PhpHelper::htmlentitiesArray($result);
$account_changepw_data = include_once dirname(__FILE__) . '/lib/formfields/customer/email/formfield.emails_accountchangepasswd.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'email', 'id' => $id]),
'formdata' => $account_changepw_data['emails_accountchangepasswd'],
'actions_links' => [
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]),
'label' => lng('emails.emails_edit'),
'icon' => 'fa-solid fa-pen'
],
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid
]),
'label' => lng('menue.email.emails'),
'icon' => 'fa-solid fa-envelope'
]
],
]);
}
}
} elseif ($action == 'changequota' && Settings::Get('system.mail_quota_enabled') == '1' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['popaccountid']) && $result['popaccountid'] != '') {
if (Request::post('send') == 'send') {
try {
EmailAccounts::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
$result['email_full'] = $idna_convert->decode($result['email_full']);
$result = PhpHelper::htmlentitiesArray($result);
$quota_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/email/formfield.emails_accountchangequota.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'email', 'id' => $id]),
'formdata' => $quota_edit_data['emails_accountchangequota'],
'actions_links' => [
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]),
'label' => lng('emails.emails_edit'),
'icon' => 'fa-solid fa-pen'
],
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid
]),
'label' => lng('menue.email.emails'),
'icon' => 'fa-solid fa-envelope'
]
],
]);
}
}
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['popaccountid']) && $result['popaccountid'] != '') {
if (Request::post('send') == 'send') {
try {
EmailAccounts::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
HTML::askYesNoWithCheckbox('email_reallydelete_account', 'admin_customer_alsoremovemail', $filename, [
'id' => $id,
'page' => $page,
'domainid' => $email_domainid,
'action' => $action
], $idna_convert->decode($result['email_full']));
}
}
}
} elseif ($page == 'forwarders') {
$email_domainid = Request::any('domainid', 0);
if ($action == 'add' && $id != 0) {
if ($userinfo['email_forwarders_used'] < $userinfo['email_forwarders'] || $userinfo['email_forwarders'] == '-1') {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['email']) && $result['email'] != '') {
if (Request::post('send') == 'send') {
try {
EmailForwarders::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
$result['email_full'] = $idna_convert->decode($result['email_full']);
$result = PhpHelper::htmlentitiesArray($result);
$forwarder_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/email/formfield.emails_addforwarder.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'email', 'id' => $id]),
'formdata' => $forwarder_add_data['emails_addforwarder'],
'actions_links' => [
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]),
'label' => lng('emails.emails_edit'),
'icon' => 'fa-solid fa-pen'
],
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid
]),
'label' => lng('menue.email.emails'),
'icon' => 'fa-solid fa-envelope'
]
],
]);
}
}
} else {
Response::standardError('allresourcesused');
}
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['destination']) && $result['destination'] != '') {
$forwarderid = Request::any('forwarderid', 0);
$result['destination'] = explode(' ', $result['destination']);
if (isset($result['destination'][$forwarderid]) && $result['email'] != $result['destination'][$forwarderid]) {
$forwarder = $result['destination'][$forwarderid];
if (Request::post('send') == 'send') {
try {
EmailForwarders::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
HTML::askYesNo('email_reallydelete_forwarder', $filename, [
'id' => $id,
'forwarderid' => $forwarderid,
'page' => $page,
'domainid' => $email_domainid,
'action' => $action
], $idna_convert->decode($result['email_full']) . ' -> ' . $idna_convert->decode($forwarder));
}
}
}
}
} elseif ($page == 'senders' && Settings::Get('mail.enable_allow_sender') == '1') {
$email_domainid = Request::any('domainid', 0);
if ($action == 'add' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['email']) && $result['email'] != '') {
if (Request::post('send') == 'send') {
try {
// build target-sender
$allowed_sender = Request::post('allowed_sender', '');
$allowed_sender .= '@' . Request::post('allowed_domain', '');
$postdata = [
'id' => $id,
'allowed_sender' => $allowed_sender
];
EmailSender::getLocal($userinfo, $postdata)->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
$result['email_full'] = $idna_convert->decode($result['email_full']);
$result = PhpHelper::htmlentitiesArray($result);
if (Settings::Get('mail.allow_external_domains') == '0') {
$result_stmt = Database::prepare("SELECT `id`, `domain`, `customerid` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid`= :cid
AND `isemaildomain`='1'
ORDER BY `domain_ace` ASC
");
Database::pexecute($result_stmt, [
"cid" => $userinfo['customerid']
]);
$domains = [];
$selected_domain = "";
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
if ($email_domainid == $row['id']) {
$selected_domain = $row['domain'];
}
$domains[$row['domain']] = $idna_convert->decode($row['domain']);
}
if (count($domains) == 0) {
Response::standardError('emails.noemaildomainaddedyet');
}
}
$sender_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/email/formfield.emails_addsender.php';
UI::view('user/form-note.html.twig', [
'formaction' => $linker->getLink(['section' => 'email', 'id' => $id]),
'formdata' => $sender_add_data['emails_addsender'],
'actions_links' => [
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]),
'label' => lng('emails.emails_edit'),
'icon' => 'fa-solid fa-pen'
],
[
'class' => 'btn-secondary',
'href' => $linker->getLink([
'section' => 'email',
'page' => 'email_domain',
'domainid' => $email_domainid
]),
'label' => lng('menue.email.emails'),
'icon' => 'fa-solid fa-envelope'
]
],
// alert-box
'type' => 'info',
'alert_msg' => lng('emails.allowed_sender_info')
]);
}
}
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = Emails::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (!empty($result['popaccountid'])) {
$senderid = Request::any('senderid', 0);
if (Request::post('send') == 'send') {
try {
EmailSender::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => 'email_domain',
'domainid' => $email_domainid,
'action' => 'edit',
'id' => $id
]);
} else {
$sel_stmt = Database::prepare("
SELECT s.`allowed_sender`
FROM `" . TABLE_MAIL_SENDER_ALIAS . "` s
LEFT JOIN `" . TABLE_MAIL_USERS . "` u ON u.username = s.email
WHERE u.id = :popaccountid AND u.customerid = :cid AND s.id = :senderid
");
$sender_data = Database::pexecute_first($sel_stmt, ['popaccountid' => $result['popaccountid'], 'cid' => $userinfo['customerid'], 'senderid' => (int)$senderid]);
if ($sender_data) {
HTML::askYesNo('email_reallydelete_sender', $filename, [
'id' => $id,
'senderid' => $senderid,
'page' => $page,
'domainid' => $email_domainid,
'action' => $action
], $idna_convert->decode($result['email_full']) . ' -> ' . $sender_data['allowed_sender']);
}
Response::dynamicError('No such entity');
}
}
}
}
================================================
FILE: customer_extras.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\Commands\DataDump as DataDump;
use Froxlor\Api\Commands\DirOptions as DirOptions;
use Froxlor\Api\Commands\DirProtections as DirProtections;
use Froxlor\Customer\Customer;
use Froxlor\FileDir;
use Froxlor\FroxlorLogger;
use Froxlor\PhpHelper;
use Froxlor\Settings;
use Froxlor\UI\Collection;
use Froxlor\UI\HTML;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
// redirect if this customer page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'extras')) {
Response::redirectTo('customer_index.php');
}
$id = (int)Request::any('id');
if ($page == 'overview' || $page == 'htpasswds') {
// redirect if this customer sub-page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'extras.directoryprotection')) {
Response::redirectTo('customer_index.php');
}
if ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed customer_extras::htpasswds");
$fields = [
'username' => lng('login.username'),
'path' => lng('panel.path')
];
try {
$htpasswd_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.htpasswd.php';
$collection = (new Collection(DirProtections::class, $userinfo))
->withPagination($htpasswd_list_data['htpasswd_list']['columns'], $htpasswd_list_data['htpasswd_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$actions_links = [];
$actions_links[] = [
'href' => $linker->getLink(['section' => 'extras', 'page' => 'htpasswds', 'action' => 'add']),
'label' => lng('extras.directoryprotection_add')
];
$actions_links[] = [
'href' => \Froxlor\Froxlor::getDocsUrl() . 'user-guide/extras/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
UI::view('user/table.html.twig', [
'listing' => Listing::format($collection, $htpasswd_list_data, 'htpasswd_list'),
'actions_links' => $actions_links,
'entity_info' => lng('extras.description')
]);
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = DirProtections::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['username']) && $result['username'] != '') {
if (Request::post('send') == 'send') {
try {
DirProtections::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
if (strpos($result['path'], $userinfo['documentroot']) === 0) {
$result['path'] = str_replace($userinfo['documentroot'], "/", $result['path']);
}
HTML::askYesNo('extras_reallydelete', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], $result['username'] . ' (' . $result['path'] . ')');
}
}
} elseif ($action == 'add') {
if (Request::post('send') == 'send') {
try {
DirProtections::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
$htpasswd_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/extras/formfield.htpasswd_add.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'extras']),
'formdata' => $htpasswd_add_data['htpasswd_add']
]);
}
} elseif ($action == 'edit' && $id != 0) {
try {
$json_result = DirProtections::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['username']) && $result['username'] != '') {
if (Request::post('send') == 'send') {
try {
DirProtections::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
if (strpos($result['path'], $userinfo['documentroot']) === 0) {
$result['path'] = str_replace($userinfo['documentroot'], "/", $result['path']);
}
$result = PhpHelper::htmlentitiesArray($result);
$htpasswd_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/extras/formfield.htpasswd_edit.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'extras', 'id' => $id]),
'formdata' => $htpasswd_edit_data['htpasswd_edit'],
'editid' => $id
]);
}
}
}
} elseif ($page == 'htaccess') {
// redirect if this customer sub-page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'extras.pathoptions')) {
Response::redirectTo('customer_index.php');
}
if ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed customer_extras::htaccess");
$cperlenabled = Customer::customerHasPerlEnabled($userinfo['customerid']);
try {
$htaccess_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.htaccess.php';
$collection = (new Collection(DirOptions::class, $userinfo))
->withPagination($htaccess_list_data['htaccess_list']['columns'], $htaccess_list_data['htaccess_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$actions_links = [];
$actions_links[] = [
'href' => $linker->getLink(['section' => 'extras', 'page' => 'htaccess', 'action' => 'add']),
'label' => lng('extras.pathoptions_add')
];
$actions_links[] = [
'href' => \Froxlor\Froxlor::getDocsUrl() . 'user-guide/extras/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
UI::view('user/table.html.twig', [
'listing' => Listing::format($collection, $htaccess_list_data, 'htaccess_list'),
'actions_links' => $actions_links,
'entity_info' => lng('extras.description')
]);
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = DirOptions::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['customerid']) && $result['customerid'] != '' && $result['customerid'] == $userinfo['customerid']) {
if (Request::post('send') == 'send') {
try {
DirOptions::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
HTML::askYesNo('extras_reallydelete_pathoptions', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], str_replace($userinfo['documentroot'], '/', $result['path']));
}
}
} elseif ($action == 'add') {
if (Request::post('send') == 'send') {
try {
DirOptions::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
$cperlenabled = Customer::customerHasPerlEnabled($userinfo['customerid']);
$htaccess_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/extras/formfield.htaccess_add.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'extras']),
'formdata' => $htaccess_add_data['htaccess_add']
]);
}
} elseif (($action == 'edit') && ($id != 0)) {
try {
$json_result = DirOptions::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if ((isset($result['customerid'])) && ($result['customerid'] != '') && ($result['customerid'] == $userinfo['customerid'])) {
if (Request::post('send') == 'send') {
try {
DirOptions::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
if (strpos($result['path'], $userinfo['documentroot']) === 0) {
$result['path'] = str_replace($userinfo['documentroot'], "/", $result['path']);
}
$cperlenabled = Customer::customerHasPerlEnabled($userinfo['customerid']);
$result = PhpHelper::htmlentitiesArray($result);
$htaccess_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/extras/formfield.htaccess_edit.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'extras', 'id' => $id]),
'formdata' => $htaccess_edit_data['htaccess_edit'],
'editid' => $id
]);
}
}
}
} elseif ($page == 'export') {
// redirect if this customer sub-page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'extras.export')) {
Response::redirectTo('customer_index.php');
}
if (Settings::Get('system.exportenabled') == 1) {
if ($action == 'abort') {
if (Request::post('send') == 'send') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "customer_extras::export - aborted scheduled data export job");
try {
DataDump::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page,
'action' => ''
]);
} else {
HTML::askYesNo('extras_reallydelete_export', $filename, [
'job_entry' => $id,
'section' => 'extras',
'page' => $page,
'action' => $action
]);
}
} elseif ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_INFO, "viewed customer_extras::export");
// check whether there is a backup-job for this customer
try {
$export_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.export.php';
$collection = (new Collection(DataDump::class, $userinfo));
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
if (Request::post('send') == 'send') {
try {
DataDump::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::standardSuccess('exportscheduled');
} else {
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
$export_data = include_once dirname(__FILE__) . '/lib/formfields/customer/extras/formfield.export.php';
$actions_links = [
[
'href' => \Froxlor\Froxlor::getDocsUrl() . 'user-guide/extras/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
]
];
UI::view('user/form-datatable.html.twig', [
'formaction' => $linker->getLink(['section' => 'extras']),
'formdata' => $export_data['export'],
'actions_links' => $actions_links,
'tabledata' => Listing::format($collection, $export_list_data, 'export_list'),
]);
}
}
} else {
Response::standardError('exportfunctionnotenabled');
}
}
================================================
FILE: customer_ftp.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\Commands\Ftps;
use Froxlor\Api\Commands\SshKeys;
use Froxlor\CurrentUser;
use Froxlor\Database\Database;
use Froxlor\FileDir;
use Froxlor\Froxlor;
use Froxlor\FroxlorLogger;
use Froxlor\Settings;
use Froxlor\UI\Collection;
use Froxlor\UI\HTML;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
// redirect if this customer page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'ftp')) {
Response::redirectTo('customer_index.php');
}
$id = (int)Request::any('id', 0);
if ($page == 'overview' || $page == 'accounts') {
if ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed customer_ftp::accounts");
try {
$ftp_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.ftps.php';
$collection = (new Collection(Ftps::class, $userinfo))
->withPagination($ftp_list_data['ftp_list']['columns'], $ftp_list_data['ftp_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$actions_links = [];
if (CurrentUser::canAddResource('ftps')) {
$actions_links[] = [
'href' => $linker->getLink(['section' => 'ftp', 'page' => 'accounts', 'action' => 'add']),
'label' => lng('ftp.account_add')
];
}
$actions_links[] = [
'href' => Froxlor::getDocsUrl() . 'user-guide/ftp-accounts/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
UI::view('user/table.html.twig', [
'listing' => Listing::format($collection, $ftp_list_data, 'ftp_list'),
'actions_links' => $actions_links,
'entity_info' => lng('ftp.description')
]);
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = Ftps::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['username']) && $result['username'] != $userinfo['loginname']) {
if (Request::post('send') == 'send') {
try {
Ftps::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
HTML::askYesNoWithCheckbox('ftp_reallydelete', 'admin_customer_alsoremoveftphomedir', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], $result['username']);
}
} else {
Response::standardError('ftp_cantdeletemainaccount');
}
} elseif ($action == 'add') {
if ($userinfo['ftps_used'] < $userinfo['ftps'] || $userinfo['ftps'] == '-1') {
if (Request::post('send') == 'send') {
try {
Ftps::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], '/');
if (Settings::Get('customer.ftpatdomain') == '1') {
$domainlist = [];
$result_domains_stmt = Database::prepare("SELECT `domain` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid`= :customerid ORDER BY `domain` ASC");
Database::pexecute($result_domains_stmt, [
"customerid" => $userinfo['customerid']
]);
while ($row_domain = $result_domains_stmt->fetch(PDO::FETCH_ASSOC)) {
$domainlist[$row_domain['domain']] = $idna_convert->decode($row_domain['domain']);
}
}
$user_shell_allowed = intval($userinfo['shell_allowed']) == 1;
if (Settings::Get('system.allow_customer_shell') == '1') {
$shells['/bin/false'] = "/bin/false";
$shells_avail = Settings::Get('system.available_shells');
if (!empty($shells_avail)) {
$shells_avail_arr = explode(",", $shells_avail);
$shells_avail_arr = array_map("trim", $shells_avail_arr);
foreach ($shells_avail_arr as $shell) {
$shells[$shell] = $shell;
}
}
}
$ftp_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/ftp/formfield.ftp_add.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'ftp']),
'formdata' => $ftp_add_data['ftp_add']
]);
}
}
} elseif ($action == 'edit' && $id != 0) {
try {
$json_result = Ftps::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['username']) && $result['username'] != '') {
if (Request::post('send') == 'send') {
try {
Ftps::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
if (strpos($result['homedir'], $userinfo['documentroot']) === 0) {
$homedir = str_replace($userinfo['documentroot'], "/", $result['homedir']);
} else {
$homedir = $result['homedir'];
}
$homedir = FileDir::makeCorrectDir($homedir);
$pathSelect = FileDir::makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $homedir);
$user_shell_allowed = intval($userinfo['shell_allowed']) == 1;
if (Settings::Get('system.allow_customer_shell') == '1') {
$shells['/bin/false'] = "/bin/false";
$shells_avail = Settings::Get('system.available_shells');
if (!empty($shells_avail)) {
$shells_avail_arr = explode(",", $shells_avail);
$shells_avail_arr = array_map("trim", $shells_avail_arr);
foreach ($shells_avail_arr as $shell) {
$shells[$shell] = $shell;
}
}
}
$ftp_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/ftp/formfield.ftp_edit.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'ftp', 'id' => $id]),
'formdata' => $ftp_edit_data['ftp_edit'],
'editid' => $id
]);
}
}
}
} elseif ($page == 'sshkeys') {
// redirect if this customer has no permission for API usage
if ($userinfo['adminsession'] == 0 && (intval(Settings::Get('system.allow_customer_shell')) == 0 || $userinfo['shell_allowed'] == 0)) {
Response::redirectTo('customer_index.php');
}
if ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed customer_ftp::sshkeys");
try {
$sshkeys_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.sshkeys.php';
$collection = (new Collection(SshKeys::class, $userinfo))
->withPagination($sshkeys_list_data['sshkeys_list']['columns'], $sshkeys_list_data['sshkeys_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$actions_links = [];
if (/* User-has-ftp-users-with-active-shell */
true) {
$actions_links[] = [
'href' => $linker->getLink(['section' => 'ftp', 'page' => 'sshkeys', 'action' => 'add']),
'label' => lng('ftp.sshkey_add')
];
}
$actions_links[] = [
'href' => Froxlor::getDocsUrl() . 'user-guide/ssh-keys/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
UI::view('user/table.html.twig', [
'listing' => Listing::format($collection, $sshkeys_list_data, 'sshkeys_list'),
'actions_links' => $actions_links,
'entity_info' => lng('sshkeys.description')
]);
} elseif ($action == 'add') {
if (Request::post('send') == 'send') {
try {
SshKeys::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$userList = [];
$result_ftpusers_stmt = Database::prepare("
SELECT `id`, `username`, `shell`
FROM `" . TABLE_FTP_USERS . "`
WHERE `customerid` = :customerid
ORDER BY `username` ASC
");
Database::pexecute($result_ftpusers_stmt, [
"customerid" => $userinfo['customerid']
]);
while ($row_ftpusers = $result_ftpusers_stmt->fetch(PDO::FETCH_ASSOC)) {
$userList[$row_ftpusers['id']] = $row_ftpusers['username'] . ' (Shell: ' . $row_ftpusers['shell'] . ')';
}
$sshkey_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/ftp/formfield.ftp_ssh_add.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'ftp', 'page' => 'sshkeys']),
'formdata' => $sshkey_add_data['sshkey_add']
]);
}
} elseif ($action == 'edit' && $id != 0) {
try {
$json_result = SshKeys::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['ssh_pubkey']) && $result['ssh_pubkey'] != '') {
if (Request::post('send') == 'send') {
try {
SshKeys::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$sshkey_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/ftp/formfield.ftp_ssh_edit.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'ftp', 'page' => 'sshkeys', 'id' => $id]),
'formdata' => $sshkey_edit_data['sshkey_edit'],
'editid' => $id
]);
}
}
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = SshKeys::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['ssh_pubkey']) && $result['ssh_pubkey'] != '') {
if (Request::post('send') == 'send') {
try {
SshKeys::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
HTML::askYesNo('sshkey_reallydelete', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], $result['fingerprint']);
}
}
}
}
================================================
FILE: customer_index.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\Commands\Customers as Customers;
use Froxlor\Cron\TaskId;
use Froxlor\CurrentUser;
use Froxlor\Database\Database;
use Froxlor\Database\DbManager;
use Froxlor\Froxlor;
use Froxlor\FroxlorLogger;
use Froxlor\Language;
use Froxlor\Settings;
use Froxlor\System\Cronjob;
use Froxlor\System\Crypt;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
use Froxlor\Validate\Validate;
if ($action == 'logout') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_INFO, 'logged out');
unset($_SESSION['userinfo']);
CurrentUser::setData();
session_destroy();
Response::redirectTo('index.php');
} elseif ($action == 'suback') {
if (is_array(CurrentUser::getField('switched_user'))) {
$result = CurrentUser::getData();
$result = $result['switched_user'];
session_regenerate_id(true);
CurrentUser::setData($result);
$target = Request::get('target', 'index');
$redirect = "admin_" . $target . ".php";
if (!file_exists(Froxlor::getInstallDir() . "/" . $redirect)) {
$redirect = "admin_index.php";
}
Response::redirectTo($redirect, null, true);
} else {
Response::dynamicError("Cannot change back - You've never switched to another user :-)");
}
}
if ($page == 'overview') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_INFO, "viewed customer_index");
$domain_stmt = Database::prepare("SELECT `domain` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid` = :customerid
AND `parentdomainid` = '0'
AND `id` <> :standardsubdomain
");
Database::pexecute($domain_stmt, [
"customerid" => $userinfo['customerid'],
"standardsubdomain" => $userinfo['standardsubdomain']
]);
$domainArray = [];
while ($row = $domain_stmt->fetch(PDO::FETCH_ASSOC)) {
$domainArray[] = $idna_convert->decode($row['domain']);
}
natsort($domainArray);
// standard-subdomain
$stdsubdomain = '';
if ($userinfo['standardsubdomain'] != '0') {
$std_domain_stmt = Database::prepare("
SELECT `domain` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid` = :customerid
AND `id` = :standardsubdomain
");
$std_domain = Database::pexecute_first($std_domain_stmt, [
"customerid" => $userinfo['customerid'],
"standardsubdomain" => $userinfo['standardsubdomain']
]);
$stdsubdomain = $std_domain['domain'];
}
$userinfo['email'] = $idna_convert->decode($userinfo['email']);
$yesterday = time() - (60 * 60 * 24);
$month = date('M Y', $yesterday);
// get disk-space usages for web, mysql and mail
$usages_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_DISKSPACE . "` WHERE `customerid` = :cid ORDER BY `stamp` DESC LIMIT 1");
$usages = Database::pexecute_first($usages_stmt, [
'cid' => $userinfo['customerid']
]);
// get everything in bytes for the percentage calculation on the dashboard
$userinfo['diskspace_bytes'] = ($userinfo['diskspace'] > -1) ? $userinfo['diskspace'] * 1024 : -1;
$userinfo['traffic_bytes'] = ($userinfo['traffic'] > -1) ? $userinfo['traffic'] * 1024 : -1;
$userinfo['traffic_bytes_used'] = $userinfo['traffic_used'] * 1024;
if (Settings::Get('system.mail_quota_enabled')) {
$userinfo['email_quota_bytes'] = ($userinfo['email_quota'] > -1) ? $userinfo['email_quota'] * 1024 * 1024 : -1;
$userinfo['email_quota_bytes_used'] = $userinfo['email_quota_used'] * 1024 * 1024;
}
if ($usages) {
$userinfo['diskspace_bytes_used'] = $usages['webspace'] * 1024;
$userinfo['mailspace_used'] = $usages['mail'] * 1024;
$userinfo['dbspace_used'] = $usages['mysql'] * 1024;
$userinfo['total_bytes_used'] = ($usages['webspace'] + $usages['mail'] + $usages['mysql']) * 1024;
} else {
$userinfo['diskspace_bytes_used'] = 0;
$userinfo['total_bytes_used'] = 0;
$userinfo['mailspace_used'] = 0;
$userinfo['dbspace_used'] = 0;
}
UI::twig()->addGlobal('userinfo', $userinfo);
UI::view('user/index.html.twig', [
'domains' => $domainArray,
'stdsubdomain' => $stdsubdomain
]);
} elseif ($page == 'profile') {
$languages = Language::getLanguages();
if (!empty($_POST)) {
if (Request::post('send') == 'changepassword') {
$old_password = Validate::validate(Request::post('old_password'), 'old password');
if (!Crypt::validatePasswordLogin($userinfo, $old_password, TABLE_PANEL_CUSTOMERS, 'customerid')) {
Response::standardError('oldpasswordnotcorrect');
}
try {
$new_password = Crypt::validatePassword(Request::post('new_password'), 'new password');
$new_password_confirm = Crypt::validatePassword(Request::post('new_password_confirm'), 'new password confirm');
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
if ($old_password == '') {
Response::standardError([
'stringisempty',
'changepassword.old_password'
]);
} elseif ($new_password == '') {
Response::standardError([
'stringisempty',
'changepassword.new_password'
]);
} elseif ($new_password_confirm == '') {
Response::standardError([
'stringisempty',
'changepassword.new_password_confirm'
]);
} elseif ($new_password != $new_password_confirm) {
Response::standardError('newpasswordconfirmerror');
} else {
// Update user password
try {
Customers::getLocal($userinfo, [
'id' => $userinfo['customerid'],
'new_customer_password' => $new_password
])->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, 'changed password');
// Update ftp password
if (Request::post('change_main_ftp') == 'true') {
$cryptPassword = Crypt::makeCryptPassword($new_password);
$stmt = Database::prepare("UPDATE `" . TABLE_FTP_USERS . "`
SET `password` = :password
WHERE `customerid` = :customerid
AND `username` = :username");
$params = [
"password" => $cryptPassword,
"customerid" => $userinfo['customerid'],
"username" => $userinfo['loginname']
];
Database::pexecute($stmt, $params);
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, 'changed main ftp password');
}
// Update statistics password
if (Request::post('change_stats') == 'true') {
$new_stats_password = Crypt::makeCryptPassword($new_password, true);
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_HTPASSWDS . "`
SET `password` = :password
WHERE `customerid` = :customerid
AND `username` = :username");
$params = [
"password" => $new_stats_password,
"customerid" => $userinfo['customerid'],
"username" => $userinfo['loginname']
];
Database::pexecute($stmt, $params);
Cronjob::inserttask(TaskId::REBUILD_VHOST);
}
// Update global myqsl user password
if ($userinfo['mysqls'] != 0 && Request::post('change_global_mysql') == 'true') {
$allowed_mysqlservers = json_decode($userinfo['allowed_mysqlserver'] ?? '[]', true);
foreach ($allowed_mysqlservers as $dbserver) {
// require privileged access for target db-server
Database::needRoot(true, $dbserver, false);
// get DbManager
$dbm = new DbManager($log);
// give permission to the user on every access-host we have
foreach (array_map('trim', explode(',', Settings::Get('system.mysql_access_host'))) as $mysql_access_host) {
if ($dbm->getManager()->userExistsOnHost($userinfo['loginname'], $mysql_access_host)) {
$dbm->getManager()->grantPrivilegesTo($userinfo['loginname'], $new_password, $mysql_access_host, false, true);
} else {
// create global mysql user if not exists
$dbm->getManager()->grantPrivilegesTo($userinfo['loginname'], $new_password, $mysql_access_host, false, false, true);
}
}
$dbm->getManager()->flushPrivileges();
}
}
Response::redirectTo($filename);
}
} elseif (Request::post('send') == 'changetheme') {
if (Settings::Get('panel.allow_theme_change_customer') == 1) {
$theme = Validate::validate(Request::post('theme'), 'theme');
try {
Customers::getLocal($userinfo, [
'id' => $userinfo['customerid'],
'theme' => $theme
])->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "changed default theme to '" . $theme . "'");
}
Response::redirectTo($filename);
} elseif (Request::post('send') == 'changelanguage') {
$def_language = Validate::validate(Request::post('def_language'), 'default language');
if (isset($languages[$def_language])) {
try {
Customers::getLocal($userinfo, [
'id' => $userinfo['customerid'],
'def_language' => $def_language
])->update();
CurrentUser::setField('language', $def_language);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
}
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "changed default language to '" . $def_language . "'");
Response::redirectTo($filename);
}
} else {
// change theme
$default_theme = Settings::Get('panel.default_theme');
if ($userinfo['theme'] != '') {
$default_theme = $userinfo['theme'];
}
$themes_avail = UI::getThemes();
// change language
$default_lang = Settings::Get('panel.standardlanguage');
if ($userinfo['def_language'] != '') {
$default_lang = $userinfo['def_language'];
}
UI::view('user/profile.html.twig', [
'themes' => $themes_avail,
'default_theme' => $default_theme,
'languages' => $languages,
'default_lang' => $default_lang,
]);
}
} elseif ($page == 'send_error_report' && Settings::Get('system.allow_error_report_customer') == '1') {
require_once __DIR__ . '/error_report.php';
} elseif ($page == 'apikeys' && Settings::Get('api.enabled') == 1) {
require_once __DIR__ . '/api_keys.php';
} elseif ($page == '2fa' && Settings::Get('2fa.enabled') == 1) {
require_once __DIR__ . '/2fa.php';
}
================================================
FILE: customer_logger.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\Commands\SysLog;
use Froxlor\Settings;
use Froxlor\UI\Collection;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Response;
// redirect if this customer page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'extras.logger')) {
Response::redirectTo('customer_index.php');
}
if ($page == 'log') {
if ($action == '') {
try {
$syslog_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.syslog.php';
$collection = (new Collection(SysLog::class, $userinfo))
->withPagination($syslog_list_data['syslog_list']['columns'], $syslog_list_data['syslog_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
UI::view('user/table.html.twig', [
'listing' => Listing::format($collection, $syslog_list_data, 'syslog_list')
]);
}
}
================================================
FILE: customer_mysql.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\Commands\Mysqls;
use Froxlor\Api\Commands\MysqlServer;
use Froxlor\CurrentUser;
use Froxlor\Database\Database;
use Froxlor\Database\DbManager;
use Froxlor\FroxlorLogger;
use Froxlor\Settings;
use Froxlor\System\Crypt;
use Froxlor\UI\Collection;
use Froxlor\UI\HTML;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
// redirect if this customer page is hidden via settings or no resources given
if (Settings::IsInList('panel.customer_hide_options', 'mysql') || $userinfo['mysqls'] == 0) {
Response::redirectTo('customer_index.php');
}
// get sql-root access data
Database::needRoot(true);
Database::needSqlData();
$sql_root = Database::getSqlData();
Database::needRoot(false);
$id = (int)Request::any('id');
if ($page == 'overview' || $page == 'mysqls') {
if ($action == '') {
$log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed customer_mysql::mysqls");
$multiple_mysqlservers = count(json_decode($userinfo['allowed_mysqlserver'] ?? '[]', true)) > 1;
try {
$mysql_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.mysqls.php';
$collection = (new Collection(Mysqls::class, $userinfo))
->withPagination($mysql_list_data['mysql_list']['columns'], $mysql_list_data['mysql_list']['default_sorting']);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$actions_links = [];
if (CurrentUser::canAddResource('mysqls')) {
$actions_links[] = [
'href' => $linker->getLink(['section' => 'mysql', 'page' => 'mysqls', 'action' => 'add']),
'label' => lng('mysql.database_create')
];
}
$view = 'user/table.html.twig';
if ($collection->count() > 0) {
$view = 'user/table-note.html.twig';
$actions_links[] = [
'href' => $linker->getLink(['section' => 'mysql', 'page' => 'mysqls', 'action' => 'global_user']),
'label' => lng('mysql.edit_global_user'),
'icon' => 'fa-solid fa-user-tie',
'class' => 'btn-outline-secondary'
];
}
$actions_links[] = [
'href' => \Froxlor\Froxlor::getDocsUrl() . 'user-guide/databases/',
'target' => '_blank',
'icon' => 'fa-solid fa-circle-info',
'class' => 'btn-outline-secondary'
];
UI::view($view, [
'listing' => Listing::format($collection, $mysql_list_data, 'mysql_list'),
'actions_links' => $actions_links,
'entity_info' => lng('mysql.description'),
// alert-box
'type' => 'info',
'alert_msg' => lng('mysql.globaluserinfo', [$userinfo['loginname']]),
]);
} elseif ($action == 'delete' && $id != 0) {
try {
$json_result = Mysqls::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['databasename']) && $result['databasename'] != '') {
Database::needRoot(true, $result['dbserver'], false);
Database::needSqlData();
$sql_root = Database::getSqlData();
Database::needRoot(false);
if (!isset($sql_root[$result['dbserver']]) || !is_array($sql_root[$result['dbserver']])) {
$result['dbserver'] = 0;
}
if (Request::post('send') == 'send') {
try {
Mysqls::getLocal($userinfo, Request::postAll())->delete();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$dbnamedesc = $result['databasename'];
if (isset($result['description']) && $result['description'] != '') {
$dbnamedesc .= ' (' . $result['description'] . ')';
}
HTML::askYesNo('mysql_reallydelete', $filename, [
'id' => $id,
'page' => $page,
'action' => $action
], $dbnamedesc);
}
}
} elseif ($action == 'add') {
if ($userinfo['mysqls_used'] < $userinfo['mysqls'] || $userinfo['mysqls'] == '-1') {
if (Request::post('send') == 'send') {
try {
Mysqls::getLocal($userinfo, Request::postAll())->add();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$mysql_servers = [];
try {
$result_json = MysqlServer::getLocal($userinfo)->listing();
$result_decoded = json_decode($result_json, true)['data']['list'];
foreach ($result_decoded as $dbserver => $dbdata) {
$mysql_servers[$dbserver] = $dbdata['caption'];
}
} catch (Exception $e) {
/* just none */
}
$mysql_add_data = include_once dirname(__FILE__) . '/lib/formfields/customer/mysql/formfield.mysql_add.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'mysql']),
'formdata' => $mysql_add_data['mysql_add']
]);
}
}
} elseif ($action == 'edit' && $id != 0) {
try {
$json_result = Mysqls::getLocal($userinfo, [
'id' => $id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
if (isset($result['databasename']) && $result['databasename'] != '') {
if (Request::post('send') == 'send') {
try {
$json_result = Mysqls::getLocal($userinfo, Request::postAll())->update();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
Response::redirectTo($filename, [
'page' => $page
]);
} else {
$mysql_servers = [];
try {
$result_json = MysqlServer::getLocal($userinfo)->listing();
$result_decoded = json_decode($result_json, true)['data']['list'];
foreach ($result_decoded as $dbserver => $dbdata) {
$mysql_servers[$dbserver] = $dbdata['caption'] . ' (' . $dbdata['host'] . (isset($dbdata['port']) && !empty($dbdata['port']) ? ':' . $dbdata['port'] : '') . ')';
}
} catch (Exception $e) {
/* just none */
}
$mysql_edit_data = include_once dirname(__FILE__) . '/lib/formfields/customer/mysql/formfield.mysql_edit.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'mysql', 'id' => $id]),
'formdata' => $mysql_edit_data['mysql_edit'],
'editid' => $id
]);
}
}
} elseif ($action == 'global_user') {
$allowed_mysqlservers = json_decode($userinfo['allowed_mysqlserver'] ?? '[]', true);
if ($userinfo['mysqls'] == 0 || empty($allowed_mysqlservers)) {
Response::dynamicError('No permission');
}
if (Request::post('send') == 'send') {
$new_password = Crypt::validatePassword(Request::post('mysql_password'));
foreach ($allowed_mysqlservers as $dbserver) {
// require privileged access for target db-server
Database::needRoot(true, $dbserver, true);
// get DbManager
$dbm = new DbManager($log);
// give permission to the user on every access-host we have
foreach (array_map('trim', explode(',', Settings::Get('system.mysql_access_host'))) as $mysql_access_host) {
if ($dbm->getManager()->userExistsOnHost($userinfo['loginname'], $mysql_access_host)) {
// update password
$dbm->getManager()->grantPrivilegesTo($userinfo['loginname'], $new_password, $mysql_access_host, false, true, true);
} else {
// create missing user
$dbm->getManager()->grantPrivilegesTo($userinfo['loginname'], $new_password, $mysql_access_host, false, false, true);
}
}
$dbm->getManager()->flushPrivileges();
}
Response::redirectTo($filename, [
'page' => 'overview'
]);
} else {
$mysql_global_user_data = include_once dirname(__FILE__) . '/lib/formfields/customer/mysql/formfield.mysql_global_user.php';
UI::view('user/form.html.twig', [
'formaction' => $linker->getLink(['section' => 'mysql', 'page' => 'mysqls', 'action' => 'global_user']),
'formdata' => $mysql_global_user_data['mysql_global_user'],
'editid' => $id
]);
}
}
}
================================================
FILE: customer_traffic.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'customer';
require __DIR__ . '/lib/init.php';
use Froxlor\Traffic\Traffic;
use Froxlor\Settings;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
// redirect if this customer page is hidden via settings
if (Settings::IsInList('panel.customer_hide_options', 'traffic')) {
Response::redirectTo('customer_index.php');
}
$range = Request::any('range', 'currentyear');
if ($page == 'current') {
$range = 'currentmonth';
}
try {
$context = Traffic::getCustomerStats($userinfo, $range);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
// pass metrics to the view
UI::view('user/traffic.html.twig', $context);
================================================
FILE: dns_editor.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
if (!defined('AREA')) {
header("Location: index.php");
exit();
}
use Froxlor\Api\Commands\DomainZones;
use Froxlor\Dns\Dns;
use Froxlor\Settings;
use Froxlor\UI\Collection;
use Froxlor\UI\HTML;
use Froxlor\UI\Listing;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
// This file is being included in admin_domains and customer_domains
// and therefore does not need to require lib/init.php
$domain_id = (int)Request::any('domain_id');
$record = Request::post('dns_record');
$type = Request::post('dns_type', 'A');
$prio = Request::post('dns_mxp');
$content = Request::post('dns_content');
$ttl = (int)Request::post('dns_ttl', Settings::get('system.defaultttl'));
// get domain-name
$domain = Dns::getAllowedDomainEntry($domain_id, AREA, $userinfo);
$errors = "";
$success_message = "";
// action for adding a new entry
if ($action == 'add_record' && !empty($_POST)) {
try {
DomainZones::getLocal($userinfo, [
'id' => $domain_id,
'record' => $record,
'type' => $type,
'prio' => $prio,
'content' => $content,
'ttl' => $ttl
])->add();
$success_message = lng('success.dns_record_added');
$record = $prio = $content = "";
} catch (Exception $e) {
$errors = str_replace("\n", " ", $e->getMessage());
}
} elseif ($action == 'delete') {
$entry_id = (int)Request::get('id', 0);
HTML::askYesNo('dnsentry_reallydelete', $filename, [
'id' => $entry_id,
'domain_id' => $domain_id,
'page' => $page,
'action' => 'deletesure'
], '', [
'section' => 'domains',
'page' => $page,
'domain_id' => $domain_id
]);
} elseif (Request::post('send') == 'send' && $action == 'deletesure' && !empty($_POST)) {
$entry_id = (int)Request::post('id', 0);
$domain_id = (int)Request::post('domain_id', 0);
// remove entry
if ($entry_id > 0 && $domain_id > 0) {
try {
DomainZones::getLocal($userinfo, [
'entry_id' => $entry_id,
'id' => $domain_id
])->delete();
// success message (inline)
$success_message = lng('success.dns_record_deleted');
} catch (Exception $e) {
$errors = str_replace("\n", " ", $e->getMessage());
}
}
}
// select all entries
try {
$dns_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.dns.php';
$collection = (new Collection(DomainZones::class, $userinfo, ['id' => $domain_id]))
->withPagination($dns_list_data['dns_list']['columns'], $dns_list_data['dns_list']['default_sorting'], ['domain_id='.$domain_id]);
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
try {
$json_result = DomainZones::getLocal($userinfo, [
'id' => $domain_id
])->get();
} catch (Exception $e) {
Response::dynamicError($e->getMessage());
}
$result = json_decode($json_result, true)['data'];
$zonefile = implode("\n", $result);
$dns_add_data = include_once dirname(__FILE__) . '/lib/formfields/formfield.dns_add.php';
UI::view('user/dns-editor.html.twig', [
'listing' => Listing::format($collection, $dns_list_data, 'dns_list', ['domain_id' => $domain_id]),
'actions_links' => [
[
'href' => $linker->getLink([
'section' => 'domains',
'page' => 'domains',
'action' => 'edit',
'id' => $domain_id
]),
'label' => lng('admin.domain_edit'),
'icon' => 'fa-solid fa-pen'
],
[
'href' => $linker->getLink(['section' => 'domains', 'page' => 'domains']),
'label' => lng('panel.backtooverview'),
'icon' => 'fa-solid fa-reply'
]
],
'formaction' => $linker->getLink(['section' => 'domains', 'action' => 'add_record', 'domain_id' => $domain_id]),
'formdata' => $dns_add_data['dns_add'],
// alert-box
'type' => (!empty($errors) ? 'danger' : (!empty($success_message) ? 'success' : 'warning')),
'alert_msg' => (!empty($errors) ? $errors : (!empty($success_message) ? $success_message : lng('dns.howitworks'))),
'zonefile' => $zonefile,
]);
================================================
FILE: doc/example/FroxlorAPI.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
class FroxlorAPI
{
private string $url;
private string $key;
private string $secret;
private ?array $lastError = null;
private ?string $lastStatusCode = null;
public function __construct($url, $key, $secret)
{
$this->url = $url;
$this->key = $key;
$this->secret = $secret;
}
public function request($command, array $data = [])
{
$payload = [
'command' => $command,
'params' => $data
];
$ch = curl_init($this->url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERPWD, $this->key . ":" . $this->secret);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$this->lastStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return json_decode($result ?? curl_error($ch), true);
}
public function getLastStatusCode(): ?string
{
return $this->lastStatusCode;
}
}
================================================
FILE: doc/example/create_customer.php
================================================
'test',
'email' => 'test@froxlor.org',
'firstname' => 'Test',
'name' => 'Testman',
'customernumber' => 1337,
'new_customer_password' => 's0mEcRypt1cpassword' . uniqid()
];
// send request
$response = $fapi->request('Customers.add', $data);
// check for error
if ($fapi->getLastStatusCode() != 200) {
echo "HTTP-STATUS: " . $fapi->getLastStatusCode() . PHP_EOL;
echo "Description: " . $response['message'] . PHP_EOL;
exit();
}
// view response data
var_dump($response);
/*
array(60) {
["customerid"]=>
string(1) "1"
["loginname"]=>
string(4) "test"
["password"]=>
string(63) "$5$asdasdasd.asdasd"
["adminid"]=>
string(1) "1"
["name"]=>
string(7) "Testman"
["firstname"]=>
string(4) "Test"
[...]
*/
================================================
FILE: doc/example/index.html
================================================
================================================
FILE: doc/example/list_functions.php
================================================
request('Froxlor.listFunctions');
// check for error
if ($fapi->getLastStatusCode() != 200) {
echo "HTTP-STATUS: " . $fapi->getLastStatusCode() . PHP_EOL;
echo "Description: " . $response['message'] . PHP_EOL;
exit();
}
// view response data
var_dump($response);
================================================
FILE: doc/index.html
================================================
================================================
FILE: error_report.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
if (!defined('AREA')) {
header("Location: index.php");
exit();
}
use Froxlor\FileDir;
use Froxlor\Froxlor;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
use Froxlor\Database\Database;
// This file is being included in admin_domains and customer_domains
// and therefore does not need to require lib/init.php
$errid = Request::any('errorid');
if (!empty($errid)) {
// read error file
$err_dir = FileDir::makeCorrectDir(Froxlor::getInstallDir() . "/logs/");
$err_file = FileDir::makeCorrectFile($err_dir . "/" . $errid . "_sql-error.log");
if (file_exists($err_file)) {
$error_content = file_get_contents($err_file);
$error = explode("|", $error_content);
$_error = [
'code' => str_replace("\n", "", substr($error[1], 5)),
'message' => str_replace("\n", "", substr($error[2], 4)),
'file' => str_replace("\n", "", substr($error[3], 5 + strlen(Froxlor::getInstallDir()))),
'line' => str_replace("\n", "", substr($error[4], 5)),
'trace' => str_replace(Froxlor::getInstallDir(), "", substr($error[5], 6))
];
// build mail-content
$mail_body = "Dear froxlor-team,\n\n";
$mail_body .= "the following error has been reported by a user:\n\n";
$mail_body .= "-------------------------------------------------------------\n";
$mail_body .= $_error['code'] . ' ' . $_error['message'] . "\n\n";
$mail_body .= "File: " . $_error['file'] . ':' . $_error['line'] . "\n\n";
$mail_body .= "Trace:\n" . trim($_error['trace']) . "\n\n";
$mail_body .= "-------------------------------------------------------------\n\n";
$mail_body .= "User-Area: " . AREA . "\n";
$mail_body .= "Froxlor-version: " . Froxlor::VERSION . "\n";
$mail_body .= "DB-version: " . Froxlor::DBVERSION . "\n\n";
try {
$mail_body .= "Database: " . Database::getAttribute(PDO::ATTR_SERVER_VERSION);
} catch (\Exception $e) {
/* ignore */
}
$mail_body .= "End of report";
$mail_html = nl2br($mail_body);
// send actual report to dev-team
if (Request::post('send') == 'send') {
// send mail and say thanks
$_mailerror = false;
try {
$mail->Subject = '[Froxlor] Error report by user';
$mail->AltBody = $mail_body;
$mail->MsgHTML($mail_html);
$mail->AddAddress('error-reports@froxlor.org', 'Froxlor Developer Team');
$mail->Send();
} catch (\PHPMailer\PHPMailer\Exception $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if ($_mailerror) {
// error when reporting an error...LOLFUQ
Response::standardError('send_report_error', $mailerr_msg);
}
// finally remove error from fs
@unlink($err_file);
Response::standardSuccess('sent_error_report', '', ['filename' => 'index.php']);
}
// show a nice summary of the error-report
// before actually sending anything
UI::view('user/error_report.html.twig', [
'mail_html' => $mail_body,
'errorid' => $errid
]);
} else {
Response::redirectTo($filename);
}
} else {
Response::redirectTo($filename);
}
================================================
FILE: index.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const AREA = 'login';
require __DIR__ . '/lib/init.php';
use Froxlor\Api\FroxlorRPC;
use Froxlor\CurrentUser;
use Froxlor\Customer\Customer;
use Froxlor\Database\Database;
use Froxlor\FileDir;
use Froxlor\Froxlor;
use Froxlor\FroxlorLogger;
use Froxlor\FroxlorTwoFactorAuth;
use Froxlor\PhpHelper;
use Froxlor\Settings;
use Froxlor\System\Crypt;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
use Froxlor\User;
use Froxlor\Validate\Validate;
if ($action == '') {
$action = 'login';
}
if ($action == '2fa_entercode') {
// page for entering the 2FA code after successful login
if (!isset($_SESSION) || !isset($_SESSION['secret_2fa'])) {
// no session - redirect to index
Response::redirectTo('index.php');
exit();
}
$smessage = (int)Request::get('showmessage', 0);
$message = "";
if ($smessage > 0) {
$message = lng('error.2fa_wrongcode');
}
// show template to enter code
UI::view('login/enter2fa.html.twig', [
'pagetitle' => lng('login.2fa'),
'remember_me' => (Settings::Get('panel.db_version') >= 202407200) ? true : false,
'message' => $message
]);
} elseif ($action == '2fa_verify') {
// verify code from 2fa code-enter form
if (!isset($_SESSION) || !isset($_SESSION['secret_2fa'])) {
// no session - redirect to index
Response::redirectTo('index.php');
exit();
}
$code = Request::post('2fa_code');
$remember = Request::post('2fa_remember');
// verify entered code
$tfa = new FroxlorTwoFactorAuth('Froxlor ' . Settings::Get('system.hostname'));
// get user-data
$table = $_SESSION['uidtable_2fa'];
$field = $_SESSION['uidfield_2fa'];
$uid = $_SESSION['uid_2fa'];
$isadmin = $_SESSION['unfo_2fa'];
if ($_SESSION['secret_2fa'] == 'email') {
// verify code set to user's data_2fa field
$sel_stmt = Database::prepare("SELECT `data_2fa` FROM " . $table . " WHERE `" . $field . "` = :uid");
$userinfo_code = Database::pexecute_first($sel_stmt, ['uid' => $uid]);
// 60sec discrepancy (possible slow email delivery)
$result = $tfa->verifyCode($userinfo_code['data_2fa'], $code, 60);
} else {
$result = $tfa->verifyCode($_SESSION['secret_2fa'], $code, 3);
}
// either the code is valid when using authenticator-app, or we will select userdata by id and entered code
// which is temporarily stored for the customer when using email-2fa
if ($result) {
$sel_param = [
'uid' => $uid
];
$sel_stmt = Database::prepare("SELECT * FROM " . $table . " WHERE `" . $field . "` = :uid");
$userinfo = Database::pexecute_first($sel_stmt, $sel_param);
// whoops, no (valid) user? Start again
if (empty($userinfo)) {
Response::redirectTo('index.php', [
'showmessage' => '2'
]);
}
// set fields in $userinfo required for finishLogin()
$userinfo['adminsession'] = $isadmin;
$userinfo['userid'] = $uid;
// when using email-2fa, remove the one-time-code
if ($userinfo['type_2fa'] == '1') {
$del_stmt = Database::prepare("UPDATE " . $table . " SET `data_2fa` = '' WHERE `" . $field . "` = :uid");
Database::pexecute_first($del_stmt, [
'uid' => $uid
]);
}
// when remember is activated, set the cookie
if ($remember) {
$selector = base64_encode(Froxlor::genSessionId(9));
$authenticator = Froxlor::genSessionId(33);
$valid_until = time()+60*60*24*30;
$ins_stmt = Database::prepare("
INSERT INTO `".TABLE_PANEL_2FA_TOKENS."` SET
`selector` = :selector,
`token` = :authenticator,
`userid` = :userid,
`valid_until` = :valid_until
");
Database::pexecute($ins_stmt, [
'selector' => $selector,
'authenticator' => hash('sha256', $authenticator),
'userid' => $uid,
'valid_until' => $valid_until
]);
$cookie_params = [
'expires' => $valid_until, // 30 days
'path' => '/',
'domain' => UI::getCookieHost(),
'secure' => UI::requestIsHttps(),
'httponly' => true,
'samesite' => 'Strict'
];
setcookie('frx_2fa_remember', $selector.':'.base64_encode($authenticator), $cookie_params);
}
// if not successful somehow - start again
if (!finishLogin($userinfo)) {
Response::redirectTo('index.php', [
'showmessage' => '2'
]);
}
exit();
}
// wrong 2fa code - treat like "wrong password"
$stmt = Database::prepare("
UPDATE " . $table . "
SET `lastlogin_fail`= :lastlogin_fail, `loginfail_count`=`loginfail_count`+1
WHERE `" . $field . "`= :uid
");
Database::pexecute($stmt, [
"lastlogin_fail" => time(),
"uid" => $uid
]);
// get data for processing further
$stmt = Database::prepare("
SELECT `loginname`, `loginfail_count`, `lastlogin_fail` FROM " . $table . "
WHERE `" . $field . "`= :uid
");
$fail_user = Database::pexecute_first($stmt, [
"uid" => $uid
]);
if ($fail_user['loginfail_count'] >= Settings::Get('login.maxloginattempts') && $fail_user['lastlogin_fail'] > (time() - Settings::Get('login.deactivatetime'))) {
// Log failed login
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => $_SERVER['REMOTE_ADDR']
]);
$rstlog->logAction(FroxlorLogger::LOGIN_ACTION, LOG_WARNING, "User '" . $fail_user['loginname'] . "' entered wrong 2fa code too often.");
unset($fail_user);
Response::redirectTo('index.php', [
'showmessage' => '3'
]);
exit();
}
unset($fail_user);
// back to form
Response::redirectTo('index.php', [
'action' => '2fa_entercode',
'showmessage' => '1'
]);
exit();
} elseif ($action == 'login') {
if (!empty($_POST)) {
$loginname = Validate::validate(Request::post('loginname'), 'loginname');
$password = Validate::validate(Request::post('password'), 'password');
$select_additional = '';
if (Settings::Get('panel.db_version') >= 202312230) {
$select_additional = ' AND `gui_access` = 1';
}
$stmt = Database::prepare("
SELECT `loginname` AS `customer`
FROM `" . TABLE_PANEL_CUSTOMERS . "`
WHERE `loginname`= :loginname" .
$select_additional
);
Database::pexecute($stmt, [
"loginname" => $loginname
]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$is_admin = false;
$table = "";
if ($row && $row['customer'] == $loginname) {
$table = "`" . TABLE_PANEL_CUSTOMERS . "`";
$uid = 'customerid';
$adminsession = '0';
} else {
if ((int)Settings::Get('login.domain_login') == 1) {
$domainname = $idna_convert->encode(preg_replace([
'/\:(\d)+$/',
'/^https?\:\/\//'
], '', $loginname));
$stmt = Database::prepare("
SELECT `customerid`
FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `domain` = :domain
");
Database::pexecute($stmt, [
"domain" => $domainname
]);
$row2 = $stmt->fetch(PDO::FETCH_ASSOC);
if (isset($row2['customerid']) && $row2['customerid'] > 0) {
$loginname = Customer::getCustomerDetail($row2['customerid'], 'loginname');
if ($loginname !== false) {
$stmt = Database::prepare("
SELECT `loginname` AS `customer`
FROM `" . TABLE_PANEL_CUSTOMERS . "`
WHERE `loginname`= :loginname
");
Database::pexecute($stmt, [
"loginname" => $loginname
]);
$row3 = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row3 && $row3['customer'] == $loginname) {
$table = "`" . TABLE_PANEL_CUSTOMERS . "`";
$uid = 'customerid';
$adminsession = '0';
}
}
}
}
}
if (empty($table)) {
// try login as admin of no customer-login method worked
$is_admin = true;
}
if ((Froxlor::hasUpdates() || Froxlor::hasDbUpdates()) && $is_admin == false) {
Response::redirectTo('index.php');
exit();
}
if ($is_admin) {
if (Froxlor::hasUpdates() || Froxlor::hasDbUpdates()) {
$stmt = Database::prepare("
SELECT `loginname` AS `admin` FROM `" . TABLE_PANEL_ADMINS . "`
WHERE `loginname`= :loginname
AND `change_serversettings` = '1'
");
Database::pexecute($stmt, [
"loginname" => $loginname
]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if (!isset($row['admin'])) {
// not an admin who can see updates
Response::redirectTo('index.php');
exit();
}
} else {
$select_additional = '';
if (Settings::Get('panel.db_version') >= 202312230) {
$select_additional = ' AND `gui_access` = 1';
}
$stmt = Database::prepare("
SELECT `loginname` AS `admin`
FROM `" . TABLE_PANEL_ADMINS . "`
WHERE `loginname`= :loginname" .
$select_additional
);
Database::pexecute($stmt, [
"loginname" => $loginname
]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
}
if ($row && $row['admin'] == $loginname) {
$table = "`" . TABLE_PANEL_ADMINS . "`";
$uid = 'adminid';
$adminsession = '1';
} else {
// Log failed login
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => $_SERVER['REMOTE_ADDR']
]);
$rstlog->logAction(FroxlorLogger::LOGIN_ACTION, LOG_WARNING, "Unknown user tried to login.");
Response::redirectTo('index.php', [
'showmessage' => '2'
]);
exit();
}
}
$userinfo_stmt = Database::prepare("
SELECT * FROM $table WHERE `loginname`= :loginname
");
Database::pexecute($userinfo_stmt, [
"loginname" => $loginname
]);
$userinfo = $userinfo_stmt->fetch(PDO::FETCH_ASSOC);
if ($userinfo['loginfail_count'] >= Settings::Get('login.maxloginattempts') && $userinfo['lastlogin_fail'] > (time() - Settings::Get('login.deactivatetime'))) {
Response::redirectTo('index.php', [
'showmessage' => '3'
]);
exit();
} elseif (Crypt::validatePasswordLogin($userinfo, $password, $table, $uid)) {
// only show "you're banned" if the login was successful
// because we don't want to publish that the user does exist
if ($userinfo['deactivated']) {
unset($userinfo);
Response::redirectTo('index.php', [
'showmessage' => '5'
]);
exit();
} else {
// login correct
// reset loginfail_counter, set lastlogin_succ
$stmt = Database::prepare("
UPDATE $table
SET `lastlogin_succ`= :lastlogin_succ, `loginfail_count`='0'
WHERE `$uid`= :uid
");
Database::pexecute($stmt, [
"lastlogin_succ" => time(),
"uid" => $userinfo[$uid]
]);
$userinfo['userid'] = $userinfo[$uid];
$userinfo['adminsession'] = $adminsession;
}
} else {
// login incorrect
$stmt = Database::prepare("
UPDATE $table
SET `lastlogin_fail`= :lastlogin_fail, `loginfail_count`=`loginfail_count`+1
WHERE `$uid`= :uid
");
Database::pexecute($stmt, [
"lastlogin_fail" => time(),
"uid" => $userinfo[$uid]
]);
// Log failed login
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => $_SERVER['REMOTE_ADDR']
]);
$rstlog->logAction(FroxlorLogger::LOGIN_ACTION, LOG_WARNING, "User tried to login with wrong password.");
unset($userinfo);
Response::redirectTo('index.php', [
'showmessage' => '2'
]);
exit();
}
// 2FA activated
if (Settings::Get('2fa.enabled') == '1' && $userinfo['type_2fa'] > 0) {
// check for remember cookie
if (!empty($_COOKIE['frx_2fa_remember'])) {
list($selector, $authenticator) = explode(':', $_COOKIE['frx_2fa_remember']);
$sel_stmt = Database::prepare("SELECT `token` FROM `".TABLE_PANEL_2FA_TOKENS."` WHERE `selector` = :selector AND `userid` = :uid AND `valid_until` >= UNIX_TIMESTAMP()");
$token_check = Database::pexecute_first($sel_stmt, ['selector' => $selector, 'uid' => $userinfo[$uid]]);
if ($token_check && hash_equals($token_check['token'], hash('sha256', base64_decode($authenticator)))) {
if (!finishLogin($userinfo)) {
Response::redirectTo('index.php', [
'showmessage' => '2'
]);
}
exit();
}
// not found or invalid, this cookie is useless, get rid of it
unset($_COOKIE['frx_2fa_remember']);
setcookie('frx_2fa_remember', "", time()-3600);
}
// redirect to code-enter-page
$_SESSION['secret_2fa'] = ($userinfo['type_2fa'] == 2 ? $userinfo['data_2fa'] : 'email');
$_SESSION['uid_2fa'] = $userinfo[$uid];
$_SESSION['uidfield_2fa'] = $uid;
$_SESSION['uidtable_2fa'] = $table;
$_SESSION['unfo_2fa'] = $is_admin;
// send mail if type_2fa = 1 (email)
if ($userinfo['type_2fa'] == 1) {
// generate code
$tfa = new FroxlorTwoFactorAuth('Froxlor ' . Settings::Get('system.hostname'));
$secret = $tfa->createSecret();
$code = $tfa->getCode($secret);
// set code for user
$stmt = Database::prepare("UPDATE $table SET `data_2fa` = :d2fa WHERE `$uid` = :uid");
Database::pexecute($stmt, [
"d2fa" => $secret,
"uid" => $userinfo[$uid]
]);
// build up & send email
$_mailerror = false;
$mailerr_msg = "";
$replace_arr = [
'CODE' => $code
];
$mail_body = html_entity_decode(PhpHelper::replaceVariables(lng('mails.2fa.mailbody'), $replace_arr));
try {
$mail->Subject = lng('mails.2fa.subject');
$mail->AltBody = $mail_body;
$mail->MsgHTML(str_replace("\n", " ", $mail_body));
$mail->AddAddress($userinfo['email'], User::getCorrectUserSalutation($userinfo));
$mail->Send();
} catch (\PHPMailer\PHPMailer\Exception $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if ($_mailerror) {
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => '2fa code-sending'
]);
$rstlog->logAction(FroxlorLogger::ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
Response::redirectTo('index.php', [
'showmessage' => '4',
'customermail' => $userinfo['email']
]);
exit();
}
$mail->ClearAddresses();
}
Response::redirectTo('index.php', [
'action' => '2fa_entercode'
]);
exit();
}
if (!finishLogin($userinfo)) {
Response::redirectTo('index.php', [
'showmessage' => '2'
]);
}
exit();
} else {
$smessage = (int)Request::get('showmessage', 0);
$message = '';
$successmessage = '';
switch ($smessage) {
case 1:
$successmessage = lng('pwdreminder.success');
break;
case 2:
$message = lng('error.login');
break;
case 3:
$message = lng('error.login_blocked', [Settings::Get('login.deactivatetime')]);
break;
case 4:
$message = lng('error.errorsendingmailpub');
break;
case 5:
$message = lng('error.user_banned');
break;
case 6:
$successmessage = lng('pwdreminder.changed');
break;
case 7:
$message = lng('pwdreminder.wrongcode');
break;
case 8:
$message = lng('pwdreminder.notallowed');
break;
}
$update_in_progress = false;
if (Froxlor::hasUpdates() || Froxlor::hasDbUpdates()) {
$update_in_progress = true;
}
// Pass the last used page if needed
$lastscript = Request::any('script', '');
if (!empty($lastscript)) {
$lastscript = str_replace("..", "", $lastscript);
$lastscript = htmlspecialchars($lastscript, ENT_QUOTES);
if (file_exists(__DIR__ . "/" . $lastscript)) {
$_SESSION['lastscript'] = $lastscript;
} else {
$lastscript = "";
}
}
$lastqrystr = Request::any('qrystr', '');
if (!empty($lastqrystr)) {
$lastqrystr = urlencode($lastqrystr);
$_SESSION['lastqrystr'] = $lastqrystr;
}
UI::view('login/login.html.twig', [
'pagetitle' => 'Login',
'upd_in_progress' => $update_in_progress,
'message' => $message,
'successmsg' => $successmessage
]);
}
}
if ($action == 'forgotpwd') {
$adminchecked = false;
$message = '';
if (!empty($_POST)) {
$loginname = Validate::validate(Request::post('loginname'), 'loginname');
$email = Validate::validateEmail(Request::post('loginemail'));
$result_stmt = Database::prepare("SELECT `adminid`, `customerid`, `customernumber`, `firstname`, `name`, `company`, `email`, `loginname`, `def_language`, `deactivated` FROM `" . TABLE_PANEL_CUSTOMERS . "`
WHERE `loginname`= :loginname
AND `email`= :email");
Database::pexecute($result_stmt, [
"loginname" => $loginname,
"email" => $email
]);
if (Database::num_rows() == 0) {
$result_stmt = Database::prepare("SELECT `adminid`, `name`, `email`, `loginname`, `def_language`, `deactivated` FROM `" . TABLE_PANEL_ADMINS . "`
WHERE `loginname`= :loginname
AND `email`= :email");
Database::pexecute($result_stmt, [
"loginname" => $loginname,
"email" => $email
]);
if (Database::num_rows() > 0) {
$adminchecked = true;
} else {
$result_stmt = null;
}
}
if ($adminchecked) {
if (Settings::Get('panel.allow_preset_admin') != '1') {
$message = lng('pwdreminder.notallowed');
unset($adminchecked);
}
} else {
if (Settings::Get('panel.allow_preset') != '1') {
$message = lng('pwdreminder.notallowed');
}
}
if (empty($message)) {
if ($result_stmt !== null) {
$user = $result_stmt->fetch(PDO::FETCH_ASSOC);
/* Check whether user is banned */
if ($user['deactivated']) {
$message = lng('pwdreminder.notallowed');
} else {
if (($adminchecked && Settings::Get('panel.allow_preset_admin') == '1') || $adminchecked == false) {
if ($user !== false) {
// build a activation code
$timestamp = time();
$first = substr(md5($user['loginname'] . $timestamp . PhpHelper::randomStr(16)), 0, 15);
$third = substr(md5($user['email'] . $timestamp . PhpHelper::randomStr(16)), -15);
$activationcode = $first . $timestamp . $third . substr(md5($third . $timestamp), 0, 10);
// Drop all existing activation codes for this user
$stmt = Database::prepare("DELETE FROM `" . TABLE_PANEL_ACTIVATION . "`
WHERE `userid` = :userid
AND `admin` = :admin");
$params = [
"userid" => $adminchecked ? $user['adminid'] : $user['customerid'],
"admin" => $adminchecked ? 1 : 0
];
Database::pexecute($stmt, $params);
// Add new activation code to database
$stmt = Database::prepare("INSERT INTO `" . TABLE_PANEL_ACTIVATION . "`
(userid, admin, creation, activationcode)
VALUES (:userid, :admin, :creation, :activationcode)");
$params = [
"userid" => $adminchecked ? $user['adminid'] : $user['customerid'],
"admin" => $adminchecked ? 1 : 0,
"creation" => $timestamp,
"activationcode" => $activationcode
];
Database::pexecute($stmt, $params);
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => 'password_reset'
]);
$rstlog->logAction(FroxlorLogger::USR_ACTION, LOG_WARNING, "User '" . $user['loginname'] . "' requested a link for setting a new password.");
// Set together our activation link
$protocol = empty($_SERVER['HTTPS']) ? 'http' : 'https';
// this can be a fixed value to avoid potential exploiting by modifying headers
$host = Settings::Get('system.hostname'); // $_SERVER['HTTP_HOST'];
$port = $_SERVER['SERVER_PORT'] != 80 ? ':' . $_SERVER['SERVER_PORT'] : '';
// don't add :443 when https is used, as it is default (and just looks weird!)
if ($protocol == 'https' && $_SERVER['SERVER_PORT'] == '443') {
$port = '';
}
// there can be only one script to handle this so we can use a fixed value here
$script = "/index.php"; // $_SERVER['SCRIPT_NAME'];
if (Settings::Get('system.froxlordirectlyviahostname') == 0) {
$script = FileDir::makeCorrectFile("/" . basename(__DIR__) . "/" . $script);
}
$activationlink = $protocol . '://' . $host . $port . $script . '?action=resetpwd&resetcode=' . $activationcode;
$replace_arr = [
'SALUTATION' => User::getCorrectUserSalutation($user),
'NAME' => $user['name'],
'FIRSTNAME' => $user['firstname'] ?? "",
'COMPANY' => $user['company'] ?? "",
'CUSTOMER_NO' => $user['customernumber'] ?? 0,
'USERNAME' => $loginname,
'LINK' => $activationlink
];
$def_language = ($user['def_language'] != '') ? $user['def_language'] : Settings::Get('panel.standardlanguage');
$result_stmt = Database::prepare('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '`
WHERE `adminid`= :adminid
AND `language`= :lang
AND `templategroup`=\'mails\'
AND `varname`=\'password_reset_subject\'');
Database::pexecute($result_stmt, [
"adminid" => $user['adminid'],
"lang" => $def_language
]);
$result = $result_stmt->fetch(PDO::FETCH_ASSOC);
$mail_subject = html_entity_decode(PhpHelper::replaceVariables((($result['value'] != '') ? $result['value'] : lng('mails.password_reset.subject')), $replace_arr));
$result_stmt = Database::prepare('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '`
WHERE `adminid`= :adminid
AND `language`= :lang
AND `templategroup`=\'mails\'
AND `varname`=\'password_reset_mailbody\'');
Database::pexecute($result_stmt, [
"adminid" => $user['adminid'],
"lang" => $def_language
]);
$result = $result_stmt->fetch(PDO::FETCH_ASSOC);
$mail_body = html_entity_decode(PhpHelper::replaceVariables((($result['value'] != '') ? $result['value'] : lng('mails.password_reset.mailbody')), $replace_arr));
$_mailerror = false;
$mailerr_msg = "";
try {
$mail->Subject = $mail_subject;
$mail->AltBody = $mail_body;
$mail->MsgHTML(str_replace("\n", " ", $mail_body));
$mail->AddAddress($user['email'], User::getCorrectUserSalutation($user));
$mail->Send();
} catch (\PHPMailer\PHPMailer\Exception $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if ($_mailerror) {
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => 'password_reset'
]);
$rstlog->logAction(FroxlorLogger::ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
Response::redirectTo('index.php', [
'showmessage' => '4',
'customermail' => $user['email']
]);
exit();
}
$mail->ClearAddresses();
Response::redirectTo('index.php', [
'showmessage' => '1'
]);
exit();
} else {
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => 'password_reset'
]);
$rstlog->logAction(FroxlorLogger::USR_ACTION, LOG_WARNING, "Unknown user requested to set a new password, but was not found in database!");
$message = lng('login.usernotfound');
}
unset($user);
}
}
} else {
$message = lng('pwdreminder.notallowed');
}
}
}
UI::view('login/fpwd.html.twig', [
'pagetitle' => lng('login.presend'),
'formaction' => 'index.php?action=' . $action,
'message' => $message,
]);
}
if ($action == 'resetpwd') {
$message = '';
// Remove old activation codes
$stmt = Database::prepare("DELETE FROM `" . TABLE_PANEL_ACTIVATION . "`
WHERE creation < :oldest");
Database::pexecute($stmt, [
"oldest" => time() - 86400
]);
$activationcode = Request::get('resetcode');
if (!empty($activationcode) && strlen($activationcode) == 50) {
// Check if activation code is valid
$timestamp = substr($activationcode, 15, 10);
$third = substr($activationcode, 25, 15);
$check = substr($activationcode, 40, 10);
if (substr(md5($third . $timestamp), 0, 10) == $check && $timestamp >= time() - 86400) {
if (!empty($_POST)) {
$stmt = Database::prepare("SELECT `userid`, `admin` FROM `" . TABLE_PANEL_ACTIVATION . "`
WHERE `activationcode` = :activationcode");
$result = Database::pexecute_first($stmt, [
"activationcode" => $activationcode
]);
if ($result !== false) {
try {
$new_password = Crypt::validatePassword(Request::post('new_password'), true);
$new_password_confirm = Crypt::validatePassword(Request::post('new_password_confirm'), true);
} catch (Exception $e) {
$message = $e->getMessage();
}
if (empty($message) && (empty($new_password) || $new_password != $new_password_confirm)) {
$message = lng('error.newpasswordconfirmerror');
}
if (empty($message)) {
// Update user password
if ($result['admin'] == 1) {
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_ADMINS . "`
SET `password` = :newpassword
WHERE `adminid` = :userid");
} else {
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "`
SET `password` = :newpassword
WHERE `customerid` = :userid");
}
Database::pexecute($stmt, [
"newpassword" => Crypt::makeCryptPassword($new_password),
"userid" => $result['userid']
]);
$rstlog = FroxlorLogger::getInstanceOf([
'loginname' => 'password_reset'
]);
$rstlog->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "changed password using password reset.");
// Remove activation code from DB
$stmt = Database::prepare("DELETE FROM `" . TABLE_PANEL_ACTIVATION . "`
WHERE `activationcode` = :activationcode
AND `userid` = :userid");
Database::pexecute($stmt, [
"activationcode" => $activationcode,
"userid" => $result['userid']
]);
Response::redirectTo('index.php', [
"showmessage" => '6'
]);
}
} else {
Response::redirectTo('index.php', [
"showmessage" => '7'
]);
}
}
UI::view('login/rpwd.html.twig', [
'pagetitle' => lng('pwdreminder.choosenew'),
'formaction' => 'index.php?action=resetpwd&resetcode=' . $activationcode,
'message' => $message,
]);
} else {
Response::redirectTo('index.php', [
"showmessage" => '7'
]);
}
} else {
Response::redirectTo('index.php');
}
}
// one-time link login
if ($action == 'll') {
if (!Froxlor::hasUpdates() && !Froxlor::hasDbUpdates()) {
$loginname = Request::get('ln');
$hash = Request::get('h');
if ($loginname && $hash) {
$sel_stmt = Database::prepare("
SELECT * FROM `" . TABLE_PANEL_LOGINLINKS . "`
WHERE `loginname` = :loginname AND `hash` = :hash
");
try {
$entry = Database::pexecute_first($sel_stmt, ['loginname' => $loginname, 'hash' => $hash]);
} catch (Exception $e) {
$entry = false;
}
if ($entry) {
// delete entry
$del_stmt = Database::prepare("DELETE FROM `" . TABLE_PANEL_LOGINLINKS . "` WHERE `loginname` = :loginname AND `hash` = :hash");
Database::pexecute($del_stmt, ['loginname' => $loginname, 'hash' => $hash]);
if (time() <= $entry['valid_until']) {
$valid = true;
// validate source ip if specified
if (!empty($entry['allowed_from'])) {
$valid = false;
$ip_list = explode(",", $entry['allowed_from']);
if (FroxlorRPC::validateAllowedFrom($ip_list, $_SERVER['REMOTE_ADDR'])) {
$valid = true;
}
}
if ($valid) {
// login user / select only non-deactivated (in case the user got deactivated after generating the link)
$userinfo_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `loginname`= :loginname AND `deactivated` = 0");
try {
$userinfo = Database::pexecute_first($userinfo_stmt, [
"loginname" => $loginname
]);
} catch (Exception $e) {
$userinfo = false;
}
if ($userinfo) {
$userinfo['userid'] = $userinfo['customerid'];
$userinfo['adminsession'] = 0;
finishLogin($userinfo);
}
}
}
}
}
}
Response::redirectTo('index.php');
}
function finishLogin($userinfo)
{
if (isset($userinfo['userid']) && $userinfo['userid'] != '') {
session_regenerate_id(true);
CurrentUser::setData($userinfo);
$language = $userinfo['def_language'] ?? Settings::Get('panel.standardlanguage');
CurrentUser::setField('language', $language);
if (isset($userinfo['theme']) && $userinfo['theme'] != '') {
$theme = $userinfo['theme'];
} else {
$theme = Settings::Get('panel.default_theme');
}
CurrentUser::setField('theme', $theme);
$qryparams = [];
if (!empty($_SESSION['lastqrystr'])) {
parse_str(urldecode($_SESSION['lastqrystr']), $qryparams);
unset($_SESSION['lastqrystr']);
}
if ($userinfo['adminsession'] == '1') {
if (Froxlor::hasUpdates() || Froxlor::hasDbUpdates()) {
Response::redirectTo('admin_updates.php?page=overview');
} else {
if (!empty($_SESSION['lastscript'])) {
$lastscript = $_SESSION['lastscript'];
unset($_SESSION['lastscript']);
if (preg_match("/customer\_/", $lastscript) === 1) {
Response::redirectTo('admin_customers.php', [
"page" => "customers"
]);
} else {
Response::redirectTo($lastscript, $qryparams);
}
} else {
Response::redirectTo('admin_index.php', $qryparams);
}
}
} else {
if (!empty($_SESSION['lastscript'])) {
$lastscript = $_SESSION['lastscript'];
unset($_SESSION['lastscript']);
Response::redirectTo($lastscript, $qryparams);
} else {
Response::redirectTo('customer_index.php', $qryparams);
}
}
}
return false;
}
================================================
FILE: install/froxlor.sql.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return <<<'FROXLORSQL'
DROP TABLE IF EXISTS `ftp_groups`;
CREATE TABLE `ftp_groups` (
`id` int(20) NOT NULL auto_increment,
`groupname` varchar(60) NOT NULL default '',
`gid` int(5) NOT NULL default '0',
`members` longtext NOT NULL,
`customerid` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `groupname` (`groupname`),
KEY `customerid` (`customerid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `ftp_users`;
CREATE TABLE `ftp_users` (
`id` int(20) NOT NULL auto_increment,
`username` varchar(255) NOT NULL,
`uid` int(5) NOT NULL default '0',
`gid` int(5) NOT NULL default '0',
`password` varchar(255) NOT NULL,
`homedir` varchar(255) NOT NULL default '',
`shell` varchar(255) NOT NULL default '/bin/false',
`login_enabled` enum('N','Y') NOT NULL default 'N',
`login_count` int(15) NOT NULL default '0',
`last_login` datetime default NULL,
`up_count` int(15) NOT NULL default '0',
`up_bytes` bigint(30) NOT NULL default '0',
`down_count` int(15) NOT NULL default '0',
`down_bytes` bigint(30) NOT NULL default '0',
`customerid` int(11) NOT NULL default '0',
`description` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
KEY `customerid` (`customerid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `mail_users`;
CREATE TABLE `mail_users` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(255) NOT NULL default '',
`username` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`password_enc` varchar(255) NOT NULL default '',
`uid` int(11) NOT NULL default '0',
`gid` int(11) NOT NULL default '0',
`homedir` varchar(255) NOT NULL default '',
`maildir` varchar(255) NOT NULL default '',
`postfix` enum('Y','N') NOT NULL default 'Y',
`domainid` int(11) NOT NULL default '0',
`customerid` int(11) NOT NULL default '0',
`quota` bigint(13) NOT NULL default '0',
`pop3` tinyint(1) NOT NULL default '1',
`imap` tinyint(1) NOT NULL default '1',
`mboxsize` bigint(30) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `mail_virtual`;
CREATE TABLE `mail_virtual` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(255) NOT NULL default '',
`email_full` varchar(255) NOT NULL default '',
`destination` text,
`domainid` int(11) NOT NULL default '0',
`customerid` int(11) NOT NULL default '0',
`popaccountid` int(11) NOT NULL default '0',
`iscatchall` tinyint(1) unsigned NOT NULL default '0',
`description` varchar(255) NOT NULL DEFAULT '',
`spam_tag_level` float(4,1) NOT NULL DEFAULT 7.0,
`rewrite_subject` tinyint(1) NOT NULL default '1',
`spam_kill_level` float(4,1) NOT NULL DEFAULT 14.0,
`bypass_spam` tinyint(1) NOT NULL default '0',
`policy_greylist` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`id`),
KEY `email` (`email`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `mail_sender_aliases`;
CREATE TABLE `mail_sender_aliases` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(255) NOT NULL,
`allowed_sender` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email_sender` (`email`, `allowed_sender`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_activation`;
CREATE TABLE `panel_activation` (
`id` int(11) unsigned NOT NULL auto_increment,
`userid` int(11) unsigned NOT NULL default '0',
`admin` tinyint(1) unsigned NOT NULL default '0',
`creation` int(11) unsigned NOT NULL default '0',
`activationcode` varchar(50) default NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_admins`;
CREATE TABLE `panel_admins` (
`adminid` int(11) unsigned NOT NULL auto_increment,
`loginname` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`def_language` varchar(100) NOT NULL default '',
`ip` varchar(500) NOT NULL default '-1',
`customers` int(15) NOT NULL default '0',
`customers_used` int(15) NOT NULL default '0',
`customers_see_all` tinyint(1) NOT NULL default '0',
`domains` int(15) NOT NULL default '0',
`domains_used` int(15) NOT NULL default '0',
`caneditphpsettings` tinyint(1) NOT NULL default '0',
`change_serversettings` tinyint(1) NOT NULL default '0',
`diskspace` int(15) NOT NULL default '0',
`diskspace_used` int(15) NOT NULL default '0',
`mysqls` int(15) NOT NULL default '0',
`mysqls_used` int(15) NOT NULL default '0',
`emails` int(15) NOT NULL default '0',
`emails_used` int(15) NOT NULL default '0',
`email_accounts` int(15) NOT NULL default '0',
`email_accounts_used` int(15) NOT NULL default '0',
`email_forwarders` int(15) NOT NULL default '0',
`email_forwarders_used` int(15) NOT NULL default '0',
`email_quota` bigint(13) NOT NULL default '0',
`email_quota_used` bigint(13) NOT NULL default '0',
`ftps` int(15) NOT NULL default '0',
`ftps_used` int(15) NOT NULL default '0',
`subdomains` int(15) NOT NULL default '0',
`subdomains_used` int(15) NOT NULL default '0',
`traffic` bigint(30) NOT NULL default '0',
`traffic_used` bigint(30) NOT NULL default '0',
`deactivated` tinyint(1) NOT NULL default '0',
`lastlogin_succ` int(11) unsigned NOT NULL default '0',
`lastlogin_fail` int(11) unsigned NOT NULL default '0',
`loginfail_count` int(11) unsigned NOT NULL default '0',
`reportsent` tinyint(4) unsigned NOT NULL default '0',
`theme` varchar(50) NOT NULL default 'Froxlor',
`custom_notes` text,
`custom_notes_show` tinyint(1) NOT NULL default '0',
`type_2fa` tinyint(1) NOT NULL default '0',
`data_2fa` varchar(25) NOT NULL default '',
`api_allowed` tinyint(1) NOT NULL default '1',
`gui_access` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`adminid`),
UNIQUE KEY `loginname` (`loginname`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC;
DROP TABLE IF EXISTS `panel_customers`;
CREATE TABLE `panel_customers` (
`customerid` int(11) unsigned NOT NULL auto_increment,
`loginname` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL default '',
`adminid` int(11) unsigned NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`firstname` varchar(255) NOT NULL default '',
`gender` int(1) NOT NULL DEFAULT '0',
`company` varchar(255) NOT NULL default '',
`street` varchar(255) NOT NULL default '',
`zipcode` varchar(25) NOT NULL default '',
`city` varchar(255) NOT NULL default '',
`phone` varchar(50) NOT NULL default '',
`fax` varchar(50) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`customernumber` varchar(100) NOT NULL default '',
`def_language` varchar(100) NOT NULL default '',
`diskspace` bigint(30) NOT NULL default '0',
`diskspace_used` bigint(30) NOT NULL default '0',
`mysqls` int(15) NOT NULL default '0',
`mysqls_used` int(15) NOT NULL default '0',
`emails` int(15) NOT NULL default '0',
`emails_used` int(15) NOT NULL default '0',
`email_accounts` int(15) NOT NULL default '0',
`email_accounts_used` int(15) NOT NULL default '0',
`email_forwarders` int(15) NOT NULL default '0',
`email_forwarders_used` int(15) NOT NULL default '0',
`email_quota` bigint(13) NOT NULL default '0',
`email_quota_used` bigint(13) NOT NULL default '0',
`ftps` int(15) NOT NULL default '0',
`ftps_used` int(15) NOT NULL default '0',
`subdomains` int(15) NOT NULL default '0',
`subdomains_used` int(15) NOT NULL default '0',
`traffic` bigint(30) NOT NULL default '0',
`traffic_used` bigint(30) NOT NULL default '0',
`documentroot` varchar(255) NOT NULL default '',
`standardsubdomain` int(11) NOT NULL default '0',
`guid` int(5) NOT NULL default '0',
`ftp_lastaccountnumber` int(11) NOT NULL default '0',
`mysql_lastaccountnumber` int(11) NOT NULL default '0',
`deactivated` tinyint(1) NOT NULL default '0',
`phpenabled` tinyint(1) NOT NULL default '1',
`lastlogin_succ` int(11) unsigned NOT NULL default '0',
`lastlogin_fail` int(11) unsigned NOT NULL default '0',
`loginfail_count` int(11) unsigned NOT NULL default '0',
`reportsent` tinyint(4) unsigned NOT NULL default '0',
`pop3` tinyint(1) NOT NULL default '1',
`imap` tinyint(1) NOT NULL default '1',
`perlenabled` tinyint(1) NOT NULL default '0',
`dnsenabled` tinyint(1) NOT NULL default '0',
`theme` varchar(50) NOT NULL default 'Froxlor',
`custom_notes` text,
`custom_notes_show` tinyint(1) NOT NULL default '0',
`lepublickey` mediumtext default NULL,
`leprivatekey` mediumtext default NULL,
`leregistered` tinyint(1) NOT NULL default '0',
`allowed_phpconfigs` text NOT NULL,
`type_2fa` tinyint(1) NOT NULL default '0',
`data_2fa` varchar(25) NOT NULL default '',
`api_allowed` tinyint(1) NOT NULL default '1',
`shell_allowed` tinyint(1) NOT NULL default '0',
`logviewenabled` tinyint(1) NOT NULL default '0',
`allowed_mysqlserver` text NOT NULL,
`gui_access` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`customerid`),
UNIQUE KEY `loginname` (`loginname`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC;
DROP TABLE IF EXISTS `panel_databases`;
CREATE TABLE `panel_databases` (
`id` int(11) unsigned NOT NULL auto_increment,
`customerid` int(11) NOT NULL default '0',
`databasename` varchar(255) NOT NULL default '',
`description` varchar(255) NOT NULL default '',
`dbserver` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `customerid` (`customerid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_domains`;
CREATE TABLE `panel_domains` (
`id` int(11) unsigned NOT NULL auto_increment,
`domain` varchar(255) NOT NULL,
`domain_ace` varchar(255) NOT NULL default '',
`adminid` int(11) unsigned NOT NULL default '0',
`customerid` int(11) unsigned NOT NULL default '0',
`aliasdomain` int(11) unsigned NULL,
`documentroot` varchar(255) NOT NULL default '',
`isbinddomain` tinyint(1) NOT NULL default '0',
`isemaildomain` tinyint(1) NOT NULL default '0',
`email_only` tinyint(1) NOT NULL default '0',
`iswildcarddomain` tinyint(1) NOT NULL default '1',
`subcanemaildomain` tinyint(1) NOT NULL default '0',
`caneditdomain` tinyint(1) NOT NULL default '1',
`zonefile` varchar(255) NOT NULL default '',
`dkim` tinyint(1) NOT NULL default '0',
`dkim_id` int(11) unsigned NOT NULL default '0',
`dkim_privkey` text,
`dkim_pubkey` text,
`wwwserveralias` tinyint(1) NOT NULL default '1',
`parentdomainid` int(11) NOT NULL default '0',
`phpenabled` tinyint(1) NOT NULL default '0',
`openbasedir` tinyint(1) NOT NULL default '0',
`openbasedir_path` tinyint(1) NOT NULL default '0',
`speciallogfile` tinyint(1) NOT NULL default '0',
`ssl_redirect` tinyint(4) NOT NULL default '0',
`specialsettings` text,
`ssl_specialsettings` text,
`include_specialsettings` tinyint(1) NOT NULL default '0',
`deactivated` tinyint(1) NOT NULL default '0',
`bindserial` varchar(10) NOT NULL default '2000010100',
`add_date` int( 11 ) NOT NULL default '0',
`registration_date` date DEFAULT NULL,
`termination_date` date DEFAULT NULL,
`phpsettingid` INT( 11 ) UNSIGNED NOT NULL DEFAULT '1',
`mod_fcgid_starter` int(4) default '-1',
`mod_fcgid_maxrequests` int(4) default '-1',
`letsencrypt` tinyint(1) NOT NULL default '0',
`hsts` varchar(10) NOT NULL default '0',
`hsts_sub` tinyint(1) NOT NULL default '0',
`hsts_preload` tinyint(1) NOT NULL default '0',
`ocsp_stapling` tinyint(1) DEFAULT '0',
`http2` tinyint(1) DEFAULT '0',
`http3` tinyint(1) DEFAULT '0',
`notryfiles` tinyint(1) DEFAULT '0',
`writeaccesslog` tinyint(1) DEFAULT '1',
`writeerrorlog` tinyint(1) DEFAULT '1',
`override_tls` tinyint(1) DEFAULT '0',
`ssl_protocols` varchar(255) NOT NULL DEFAULT '',
`ssl_cipher_list` varchar(500) NOT NULL DEFAULT '',
`tlsv13_cipher_list` varchar(500) NOT NULL DEFAULT '',
`ssl_enabled` tinyint(1) DEFAULT '1',
`ssl_honorcipherorder` tinyint(1) DEFAULT '0',
`ssl_sessiontickets` tinyint(1) DEFAULT '1',
`description` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `customerid` (`customerid`),
KEY `parentdomain` (`parentdomainid`),
KEY `domain` (`domain`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC;
DROP TABLE IF EXISTS `panel_ipsandports`;
CREATE TABLE `panel_ipsandports` (
`id` int(11) unsigned NOT NULL auto_increment,
`ip` varchar(39) NOT NULL,
`port` int(5) NOT NULL default '80',
`listen_statement` tinyint(1) NOT NULL default '0',
`namevirtualhost_statement` tinyint(1) NOT NULL default '0',
`vhostcontainer` tinyint(1) NOT NULL default '0',
`vhostcontainer_servername_statement` tinyint(1) NOT NULL default '0',
`specialsettings` text,
`ssl` tinyint(4) NOT NULL default '0',
`ssl_cert_file` varchar(255) NOT NULL default '',
`ssl_key_file` varchar(255) NOT NULL default '',
`ssl_ca_file` varchar(255) NOT NULL default '',
`default_vhostconf_domain` text,
`ssl_cert_chainfile` varchar(255) NOT NULL default '',
`docroot` varchar(255) NOT NULL default '',
`ssl_specialsettings` text,
`include_specialsettings` tinyint(1) NOT NULL default '0',
`ssl_default_vhostconf_domain` text,
`include_default_vhostconf_domain` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `ip_port` (`ip`,`port`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_htaccess`;
CREATE TABLE `panel_htaccess` (
`id` int(11) unsigned NOT NULL auto_increment,
`customerid` int(11) unsigned NOT NULL default '0',
`path` varchar(255) NOT NULL default '',
`options_indexes` tinyint(1) NOT NULL default '0',
`error404path` varchar(255) NOT NULL default '',
`error403path` varchar(255) NOT NULL default '',
`error500path` varchar(255) NOT NULL default '',
`error401path` varchar(255) NOT NULL default '',
`options_cgi` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_htpasswds`;
CREATE TABLE `panel_htpasswds` (
`id` int(11) unsigned NOT NULL auto_increment,
`customerid` int(11) unsigned NOT NULL default '0',
`path` varchar(255) NOT NULL default '',
`username` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`authname` varchar(255) NOT NULL default 'Restricted Area',
PRIMARY KEY (`id`),
KEY `customerid` (`customerid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_settings`;
CREATE TABLE `panel_settings` (
`settingid` int(11) unsigned NOT NULL auto_increment,
`settinggroup` varchar(255) NOT NULL default '',
`varname` varchar(255) NOT NULL default '',
`value` text NOT NULL,
PRIMARY KEY (`settingid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
('catchall', 'catchall_enabled', '1'),
('session', 'allow_multiple_login', '0'),
('session', 'sessiontimeout', '600'),
('customer', 'accountprefix', 'web'),
('customer', 'ftpprefix', 'ftp'),
('customer', 'mysqlprefix', 'sql'),
('customer', 'ftpatdomain', '0'),
('customer', 'show_news_feed', '0'),
('customer', 'news_feed_url', ''),
('logger', 'enabled', '1'),
('logger', 'log_cron', '0'),
('logger', 'logfile', ''),
('logger', 'logtypes', 'syslog,mysql'),
('logger', 'severity', '1'),
('antispam', 'activated', '0'),
('antispam', 'config_file', '/etc/rspamd/local.d/froxlor_settings.conf'),
('antispam', 'reload_command', 'service rspamd restart'),
('antispam', 'dkim_keylength', '1024'),
('antispam', 'default_bypass_spam', '2'),
('antispam', 'default_spam_rewrite_subject', '1'),
('antispam', 'default_policy_greylist', '1'),
('admin', 'show_news_feed', '0'),
('admin', 'show_version_login', '0'),
('admin', 'show_version_footer', '0'),
('caa', 'caa_entry', ''),
('spf', 'use_spf', '0'),
('spf', 'spf_entry', 'v=spf1 a mx -all'),
('dmarc', 'use_dmarc', '0'),
('dmarc', 'dmarc_entry', 'v=DMARC1; p=none;'),
('defaultwebsrverrhandler', 'enabled', '0'),
('defaultwebsrverrhandler', 'err401', ''),
('defaultwebsrverrhandler', 'err403', ''),
('defaultwebsrverrhandler', 'err404', ''),
('defaultwebsrverrhandler', 'err500', ''),
('customredirect', 'enabled', '1'),
('customredirect', 'default', '1'),
('perl', 'suexecworkaround', '0'),
('perl', 'suexecpath', '/var/www/cgi-bin/'),
('login', 'domain_login', '0'),
('login', 'maxloginattempts', '3'),
('login', 'deactivatetime', '900'),
('phpfpm', 'enabled', '0'),
('phpfpm', 'tmpdir', '/var/customers/tmp/'),
('phpfpm', 'peardir', '/usr/share/php/:/usr/share/php5/'),
('phpfpm', 'envpath', '/usr/local/bin:/usr/bin:/bin'),
('phpfpm', 'enabled_ownvhost', '0'),
('phpfpm', 'vhost_httpuser', 'froxlorlocal'),
('phpfpm', 'vhost_httpgroup', 'froxlorlocal'),
('phpfpm', 'aliasconfigdir', '/var/www/php-fpm/'),
('phpfpm', 'defaultini', '1'),
('phpfpm', 'vhost_defaultini', '2'),
('phpfpm', 'fastcgi_ipcdir', '/var/lib/apache2/fastcgi/'),
('phpfpm', 'use_mod_proxy', '1'),
('phpfpm', 'ini_flags', 'asp_tags
display_errors
display_startup_errors
html_errors
log_errors
magic_quotes_gpc
magic_quotes_runtime
magic_quotes_sybase
mail.add_x_header
session.cookie_secure
session.use_cookies
short_open_tag
track_errors
xmlrpc_errors
suhosin.simulation
suhosin.session.encrypt
suhosin.session.cryptua
suhosin.session.cryptdocroot
suhosin.cookie.encrypt
suhosin.cookie.cryptua
suhosin.cookie.cryptdocroot
suhosin.executor.disable_eval
mbstring.func_overload'),
('phpfpm', 'ini_values', 'auto_append_file
auto_prepend_file
date.timezone
default_charset
error_reporting
include_path
log_errors_max_len
mail.log
max_execution_time
session.cookie_domain
session.cookie_lifetime
session.cookie_path
session.name
session.serialize_handler
upload_max_filesize
xmlrpc_error_number
session.auto_start
always_populate_raw_post_data
suhosin.session.cryptkey
suhosin.session.cryptraddr
suhosin.session.checkraddr
suhosin.cookie.cryptkey
suhosin.cookie.plainlist
suhosin.cookie.cryptraddr
suhosin.cookie.checkraddr
suhosin.executor.func.blacklist
suhosin.executor.eval.whitelist'),
('phpfpm', 'ini_admin_flags', 'allow_call_time_pass_reference
allow_url_fopen
allow_url_include
auto_detect_line_endings
cgi.fix_pathinfo
cgi.force_redirect
enable_dl
expose_php
file_uploads
ignore_repeated_errors
ignore_repeated_source
log_errors
register_argc_argv
report_memleaks
opcache.enable
opcache.consistency_checks
opcache.dups_fix
opcache.load_comments
opcache.revalidate_path
opcache.save_comments
opcache.use_cwd
opcache.fast_shutdown'),
('phpfpm', 'ini_admin_values', 'cgi.redirect_status_env
disable_classes
disable_functions
error_log
gpc_order
max_input_time
max_input_vars
memory_limit
open_basedir
output_buffering
post_max_size
precision
sendmail_path
session.gc_divisor
session.gc_probability
variables_order
opcache.log_verbosity_level
opcache.restrict_api
opcache.revalidate_freq
opcache.max_accelerated_files
opcache.memory_consumption
opcache.interned_strings_buffer
opcache.validate_timestamps'),
('nginx', 'fastcgiparams', '/etc/nginx/fastcgi_params'),
('system', 'lastaccountnumber', '0'),
('system', 'lastguid', '9999'),
('system', 'documentroot_prefix', '/var/customers/webs/'),
('system', 'logfiles_directory', '/var/customers/logs/'),
('system', 'ipaddress', 'SERVERIP'),
('system', 'apachereload_command', 'service apache2 reload'),
('system', 'last_traffic_run', '000000'),
('system', 'vmail_uid', '2000'),
('system', 'vmail_gid', '2000'),
('system', 'vmail_homedir', '/var/customers/mail/'),
('system', 'vmail_maildirname', 'Maildir'),
('system', 'bind_enable', '0'),
('system', 'bindconf_directory', '/etc/bind/'),
('system', 'bindreload_command', 'service bind9 reload'),
('system', 'hostname', 'SERVERNAME'),
('system', 'mysql_access_host', 'localhost'),
('system', 'lastcronrun', ''),
('system', 'defaultip', '1'),
('system', 'defaultsslip', ''),
('system', 'phpappendopenbasedir', '/tmp/'),
('system', 'deactivateddocroot', '/var/www/html/froxlor/templates/misc/deactivated/'),
('system', 'mailpwcleartext', '0'),
('system', 'last_tasks_run', '000000'),
('system', 'nameservers', ''),
('system', 'mxservers', ''),
('system', 'mod_fcgid', '0'),
('system', 'apacheconf_vhost', '/etc/apache2/sites-enabled/'),
('system', 'apacheconf_diroptions', '/etc/apache2/sites-enabled/'),
('system', 'apacheconf_htpasswddir', '/etc/apache2/froxlor-htpasswd/'),
('system', 'webalizer_quiet', '2'),
('system', 'last_archive_run', '000000'),
('system', 'mod_fcgid_configdir', '/var/www/php-fcgi-scripts'),
('system', 'mod_fcgid_tmpdir', '/var/customers/tmp'),
('system', 'ssl_cert_file', '/etc/ssl/froxlor_selfsigned.pem'),
('system', 'use_ssl', '0'),
('system', 'default_vhostconf', ''),
('system', 'default_sslvhostconf', ''),
('system', 'mail_quota_enabled', '0'),
('system', 'mail_quota', '100'),
('system', 'httpuser', 'www-data'),
('system', 'httpgroup', 'www-data'),
('system', 'webserver', 'apache2'),
('system', 'mod_fcgid_wrapper', '1'),
('system', 'mod_fcgid_starter', '0'),
('system', 'mod_fcgid_peardir', '/usr/share/php/:/usr/share/php5/'),
('system', 'mod_fcgid_maxrequests', '250'),
('system', 'ssl_key_file','/etc/ssl/froxlor_selfsigned.key'),
('system', 'ssl_ca_file', ''),
('system', 'debug_cron', '0'),
('system', 'store_index_file_subs', '1'),
('system', 'stdsubdomain', ''),
('system', 'awstats_path', '/usr/share/awstats/tools/'),
('system', 'awstats_conf', '/etc/awstats/'),
('system', 'awstats_logformat', '1'),
('system', 'defaultttl', '604800'),
('system', 'mod_fcgid_defaultini', '1'),
('system', 'ftpserver', 'proftpd'),
('system', 'dns_createmailentry', '0'),
('system', 'dns_createcaaentry', '1'),
('system', 'froxlordirectlyviahostname', '1'),
('system', 'report_enable', '1'),
('system', 'report_webmax', '90'),
('system', 'report_trafficmax', '90'),
('system', 'validate_domain', '1'),
('system', 'diskquota_enabled', '0'),
('system', 'diskquota_repquota_path', '/usr/sbin/repquota'),
('system', 'diskquota_quotatool_path', '/usr/bin/quotatool'),
('system', 'diskquota_customer_partition', '/dev/root'),
('system', 'mod_fcgid_idle_timeout', '30'),
('system', 'mod_fcgid_ownvhost', '0'),
('system', 'mod_fcgid_httpuser', 'froxlorlocal'),
('system', 'mod_fcgid_httpgroup', 'froxlorlocal'),
('system', 'awstats_awstatspath', '/usr/lib/cgi-bin/'),
('system', 'mod_fcgid_defaultini_ownvhost', '2'),
('system', 'awstats_icons', '/usr/share/awstats/icon/'),
('system', 'ssl_cert_chainfile', ''),
('system', 'ssl_cipher_list', 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305'),
('system', 'nginx_php_backend', '127.0.0.1:8888'),
('system', 'http2_support', '0'),
('system', 'http3_support', '0'),
('system', 'perl_server', 'unix:/var/run/nginx/cgiwrap-dispatch.sock'),
('system', 'phpreload_command', ''),
('system', 'apache24', '1'),
('system', 'apache24_ocsp_cache_path', 'shmcb:/var/run/apache2/ocsp-stapling.cache(131072)'),
('system', 'documentroot_use_default_value', '0'),
('system', 'passwordcryptfunc', '2y'),
('system', 'axfrservers', ''),
('system', 'powerdns_mode', 'Native'),
('system', 'customer_ssl_path', '/etc/ssl/froxlor-custom/'),
('system', 'allow_error_report_admin', '1'),
('system', 'allow_error_report_customer', '0'),
('system', 'mdalog', '/var/log/mail.log'),
('system', 'mtalog', '/var/log/mail.log'),
('system', 'mdaserver', 'dovecot'),
('system', 'mtaserver', 'postfix'),
('system', 'mailtraffic_enabled', '1'),
('system', 'cronconfig', '/etc/cron.d/froxlor'),
('system', 'crondreload', 'service cron reload'),
('system', 'croncmdline', '/usr/bin/nice -n 5 /usr/bin/php -q'),
('system', 'cron_allowautoupdate', '0'),
('system', 'dns_createhostnameentry', '0'),
('system', 'send_cron_errors', '0'),
('system', 'apacheitksupport', '0'),
('system', 'leprivatekey', 'unset'),
('system', 'lepublickey', 'unset'),
('system', 'letsencryptca', 'letsencrypt'),
('system', 'letsencryptchallengepath', '/var/www/html/froxlor'),
('system', 'letsencryptkeysize', '4096'),
('system', 'letsencryptreuseold', 0),
('system', 'leenabled', '0'),
('system', 'leapiversion', '2'),
('system', 'exportenabled', '0'),
('system', 'dnsenabled', '0'),
('system', 'dns_server', 'Bind'),
('system', 'apacheglobaldiropt', ''),
('system', 'allow_customer_shell', '0'),
('system', 'available_shells', ''),
('system', 'le_froxlor_enabled', '0'),
('system', 'le_froxlor_redirect', '0'),
('system', 'le_renew_hook', 'systemctl restart postfix dovecot proftpd'),
('system', 'le_renew_services', ''),
('system', 'letsencryptacmeconf', '/etc/apache2/conf-enabled/acme.conf'),
('system', 'mail_use_smtp', '0'),
('system', 'mail_smtp_host', 'localhost'),
('system', 'mail_smtp_port', '25'),
('system', 'mail_smtp_usetls', '1'),
('system', 'mail_smtp_auth', '1'),
('system', 'mail_smtp_user', ''),
('system', 'mail_smtp_passwd', ''),
('system', 'hsts_maxage', '10368000'),
('system', 'hsts_incsub', '0'),
('system', 'hsts_preload', '0'),
('system', 'leregistered', '0'),
('system', 'leaccount', ''),
('system', 'nssextrausers', '1'),
('system', 'le_domain_dnscheck', '1'),
('system', 'le_domain_dnscheck_resolver', '1.1.1.1'),
('system', 'ssl_protocols', 'TLSv1.2'),
('system', 'tlsv13_cipher_list', ''),
('system', 'honorcipherorder', '0'),
('system', 'sessiontickets', '1'),
('system', 'sessionticketsenabled', '1'),
('system', 'logfiles_format', ''),
('system', 'logfiles_type', '1'),
('system', 'logfiles_piped', '0'),
('system', 'logfiles_script', ''),
('system', 'dhparams_file', ''),
('system', 'errorlog_level', 'warn'),
('system', 'leecc', '0'),
('system', 'froxloraliases', ''),
('system', 'apply_specialsettings_default', '1'),
('system', 'apply_phpconfigs_default', '1'),
('system', 'hide_incompatible_settings', '1'),
('system', 'include_default_vhostconf', '0'),
('system', 'soaemail', ''),
('system', 'domaindefaultalias', '0'),
('system', 'createstdsubdom_default', '1'),
('system', 'froxlorusergroup', ''),
('system', 'froxlorusergroup_gid', ''),
('system', 'acmeshpath', '/root/.acme.sh/acme.sh'),
('system', 'distribution', ''),
('system', 'distro_mismatch', '0'),
('system', 'update_channel', 'stable'),
('system', 'updatecheck_data', ''),
('system', 'update_notify_last', ''),
('system', 'traffictool', 'goaccess'),
('system', 'req_limit_per_interval', 60),
('system', 'req_limit_interval', 60),
('system', 'report_web_bccadmin', '0'),
('system', 'webserver_serveradmin', 'customer'),
('api', 'enabled', '0'),
('api', 'customer_default', '1'),
('2fa', 'enabled', '1'),
('mail', 'enable_allow_sender', '0'),
('mail', 'allow_external_domains', '0'),
('panel', 'decimal_places', '4'),
('panel', 'adminmail', 'ADMIN_MAIL'),
('panel', 'phpmyadmin_url', ''),
('panel', 'webmail_url', ''),
('panel', 'webftp_url', ''),
('panel', 'standardlanguage', 'en'),
('panel', 'pathedit', 'Manual'),
('panel', 'paging', '20'),
('panel', 'natsorting', '1'),
('panel', 'sendalternativemail', '0'),
('panel', 'allow_domain_change_admin', '0'),
('panel', 'allow_domain_change_customer', '0'),
('panel', 'frontend', 'froxlor'),
('panel', 'default_theme', 'Froxlor'),
('panel', 'password_min_length', '0'),
('panel', 'adminmail_defname', 'Froxlor Administrator'),
('panel', 'adminmail_return', ''),
('panel', 'unix_names', '1'),
('panel', 'allow_preset', '1'),
('panel', 'allow_preset_admin', '0'),
('panel', 'password_regex', ''),
('panel', 'phpconfigs_hidestdsubdomain', '0'),
('panel', 'phpconfigs_hidesubdomains', '1'),
('panel', 'allow_theme_change_admin', '1'),
('panel', 'allow_theme_change_customer', '1'),
('panel', 'password_alpha_lower', '1'),
('panel', 'password_alpha_upper', '1'),
('panel', 'password_numeric', '0'),
('panel', 'password_special_char_required', '0'),
('panel', 'password_special_char', '!?<>§$%+#=@'),
('panel', 'customer_hide_options', ''),
('panel', 'is_configured', '0'),
('panel', 'imprint_url', ''),
('panel', 'terms_url', ''),
('panel', 'privacy_url', ''),
('panel', 'logo_image_header', ''),
('panel', 'logo_image_login', ''),
('panel', 'logo_overridetheme', '0'),
('panel', 'logo_overridecustom', '0'),
('panel', 'settings_mode', '0'),
('panel', 'menu_collapsed', '1'),
('panel', 'version', '2.3.7'),
('panel', 'db_version', '202603100');
DROP TABLE IF EXISTS `panel_tasks`;
CREATE TABLE `panel_tasks` (
`id` int(11) unsigned NOT NULL auto_increment,
`type` int(11) NOT NULL default '0',
`data` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
INSERT INTO `panel_tasks` (`type`) VALUES ('99');
DROP TABLE IF EXISTS `panel_templates`;
CREATE TABLE `panel_templates` (
`id` int(11) NOT NULL auto_increment,
`adminid` int(11) NOT NULL default '0',
`language` varchar(255) NOT NULL default '',
`templategroup` varchar(255) NOT NULL default '',
`varname` varchar(255) NOT NULL default '',
`value` longtext NOT NULL,
`file_extension` varchar(50) NOT NULL default 'html',
PRIMARY KEY (id),
KEY adminid (adminid)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_traffic`;
CREATE TABLE `panel_traffic` (
`id` int(11) unsigned NOT NULL auto_increment,
`customerid` int(11) unsigned NOT NULL default '0',
`year` int(4) unsigned zerofill NOT NULL default '0000',
`month` int(2) unsigned zerofill NOT NULL default '00',
`day` int(2) unsigned zerofill NOT NULL default '00',
`stamp` int(11) unsigned NOT NULL default '0',
`http` bigint(30) unsigned NOT NULL default '0',
`ftp_up` bigint(30) unsigned NOT NULL default '0',
`ftp_down` bigint(30) unsigned NOT NULL default '0',
`mail` bigint(30) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `customerid` (`customerid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_traffic_admins`;
CREATE TABLE `panel_traffic_admins` (
`id` int(11) unsigned NOT NULL auto_increment,
`adminid` int(11) unsigned NOT NULL default '0',
`year` int(4) unsigned zerofill NOT NULL default '0000',
`month` int(2) unsigned zerofill NOT NULL default '00',
`day` int(2) unsigned zerofill NOT NULL default '00',
`stamp` int(11) unsigned NOT NULL default '0',
`http` bigint(30) unsigned NOT NULL default '0',
`ftp_up` bigint(30) unsigned NOT NULL default '0',
`ftp_down` bigint(30) unsigned NOT NULL default '0',
`mail` bigint(30) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `adminid` (`adminid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_diskspace`;
CREATE TABLE `panel_diskspace` (
`id` int(11) unsigned NOT NULL auto_increment,
`customerid` int(11) unsigned NOT NULL default '0',
`year` int(4) unsigned zerofill NOT NULL default '0000',
`month` int(2) unsigned zerofill NOT NULL default '00',
`day` int(2) unsigned zerofill NOT NULL default '00',
`stamp` int(11) unsigned NOT NULL default '0',
`webspace` bigint(30) unsigned NOT NULL default '0',
`mail` bigint(30) unsigned NOT NULL default '0',
`mysql` bigint(30) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `customerid` (`customerid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_syslog`;
CREATE TABLE IF NOT EXISTS `panel_syslog` (
`logid` bigint(20) NOT NULL auto_increment,
`action` int(5) NOT NULL default '10',
`type` int(5) NOT NULL default '0',
`date` int(15) NOT NULL,
`user` varchar(50) NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`logid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_fpmdaemons`;
CREATE TABLE `panel_fpmdaemons` (
`id` int(11) unsigned NOT NULL auto_increment,
`description` varchar(50) NOT NULL,
`reload_cmd` varchar(255) NOT NULL,
`config_dir` varchar(255) NOT NULL,
`pm` varchar(15) NOT NULL DEFAULT 'dynamic',
`max_children` int(4) NOT NULL DEFAULT '5',
`start_servers` int(4) NOT NULL DEFAULT '2',
`min_spare_servers` int(4) NOT NULL DEFAULT '1',
`max_spare_servers` int(4) NOT NULL DEFAULT '3',
`max_requests` int(4) NOT NULL DEFAULT '0',
`idle_timeout` int(4) NOT NULL DEFAULT '10',
`limit_extensions` varchar(255) NOT NULL default '.php',
`custom_config` text,
PRIMARY KEY (`id`),
UNIQUE KEY `reload` (`reload_cmd`),
UNIQUE KEY `config` (`config_dir`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
INSERT INTO `panel_fpmdaemons` (`id`, `description`, `reload_cmd`, `config_dir`) VALUES
(1, 'System default', 'service php7.4-fpm restart', '/etc/php/7.4/fpm/pool.d/');
DROP TABLE IF EXISTS `panel_phpconfigs`;
CREATE TABLE `panel_phpconfigs` (
`id` int(11) unsigned NOT NULL auto_increment,
`description` varchar(50) NOT NULL,
`binary` varchar(255) NOT NULL,
`file_extensions` varchar(255) NOT NULL,
`mod_fcgid_starter` int(4) NOT NULL DEFAULT '-1',
`mod_fcgid_maxrequests` int(4) NOT NULL DEFAULT '-1',
`mod_fcgid_umask` varchar(15) NOT NULL DEFAULT '022',
`fpm_slowlog` tinyint(1) NOT NULL default '0',
`fpm_reqterm` varchar(15) NOT NULL default '60s',
`fpm_reqslow` varchar(15) NOT NULL default '5s',
`phpsettings` text NOT NULL,
`fpmsettingid` int(11) NOT NULL DEFAULT '1',
`pass_authorizationheader` tinyint(1) NOT NULL default '0',
`override_fpmconfig` tinyint(1) NOT NULL DEFAULT '0',
`pm` varchar(15) NOT NULL DEFAULT 'dynamic',
`max_children` int(4) NOT NULL DEFAULT '5',
`start_servers` int(4) NOT NULL DEFAULT '2',
`min_spare_servers` int(4) NOT NULL DEFAULT '1',
`max_spare_servers` int(4) NOT NULL DEFAULT '3',
`max_requests` int(4) NOT NULL DEFAULT '0',
`idle_timeout` int(4) NOT NULL DEFAULT '10',
`limit_extensions` varchar(255) NOT NULL default '.php',
PRIMARY KEY (`id`),
KEY `fpmsettingid` (`fpmsettingid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
INSERT INTO `panel_phpconfigs` (`id`, `description`, `binary`, `file_extensions`, `mod_fcgid_starter`, `mod_fcgid_maxrequests`, `pass_authorizationheader`, `phpsettings`) VALUES
(1, 'Default Config', '/usr/bin/php-cgi', 'php', '-1', '-1', '1', 'allow_url_fopen = Off\r\nallow_url_include = Off\r\nauto_append_file =\r\nauto_globals_jit = On\r\nauto_prepend_file =\r\nbcmath.scale = 0\r\ncli_server.color = On\r\ndefault_charset = "UTF-8"\r\ndefault_mimetype = "text/html"\r\ndefault_socket_timeout = 60\r\nasp_tags = Off\r\ndisable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,curl_exec,curl_multi_exec,exec,parse_ini_file,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,system\r\ndisplay_errors = Off\r\ndisplay_startup_errors = Off\r\ndoc_root =\r\nenable_dl = Off\r\nerror_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE\r\nexpose_php = Off\r\nfile_uploads = On\r\nhtml_errors = On\r\nignore_repeated_errors = Off\r\nignore_repeated_source = Off\r\ninclude_path = ".:{PEAR_DIR}"\r\nimplicit_flush = Off\r\nldap.max_links = -1\r\nlog_errors = On\r\nlog_errors_max_len = 1024\r\nmail.add_x_header = Off\r\nmax_execution_time = 30\r\nmax_file_uploads = 20\r\nmax_input_time = 60\r\nmemory_limit = 128M\r\n{OPEN_BASEDIR_C}open_basedir = "{OPEN_BASEDIR}"\r\noutput_buffering = 4096\r\npost_max_size = 16M\r\nprecision = 14\r\nregister_argc_argv = Off\r\nreport_memleaks = On\r\nrequest_order = "GP"\r\nsendmail_path = "/usr/sbin/sendmail -t -i -f postmaster@{DOMAIN}"\r\nserialize_precision = -1\r\nsession.auto_start = 0\r\nsession.cache_expire = 180\r\nsession.cache_limiter = nocache\r\nsession.cookie_domain =\r\nsession.cookie_httponly =\r\nsession.cookie_lifetime = 0\r\nsession.cookie_path = /\r\nsession.cookie_samesite =\r\nsession.gc_divisor = 1000\r\nsession.gc_maxlifetime = 1440\r\nsession.gc_probability = 0\r\nsession.name = PHPSESSID\r\nsession.referer_check =\r\nsession.save_handler = files\r\nsession.save_path = "{TMP_DIR}"\r\nsession.serialize_handler = php\r\nsession.sid_bits_per_character = 5\r\nsession.sid_length = 26\r\nsession.trans_sid_tags = "a=href,area=href,frame=src,form="\r\nsession.use_cookies = 1\r\nsession.use_only_cookies = 1\r\nsession.use_strict_mode = 0\r\nsession.use_trans_sid = 0\r\nshort_open_tag = On\r\nupload_max_filesize = 32M\r\nupload_tmp_dir = "{TMP_DIR}"\r\nvariables_order = "GPCS"\r\nopcache.restrict_api = "{DOCUMENT_ROOT}"\r\n'),
(2, 'Froxlor Vhost Config', '/usr/bin/php-cgi', 'php', '-1', '-1', '1', 'allow_url_fopen = On\r\nallow_url_include = Off\r\nauto_append_file =\r\nauto_globals_jit = On\r\nauto_prepend_file =\r\nbcmath.scale = 0\r\ncli_server.color = On\r\ndefault_charset = "UTF-8"\r\ndefault_mimetype = "text/html"\r\ndefault_socket_timeout = 60\r\nasp_tags = Off\r\ndisable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,curl_multi_exec,parse_ini_file,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,system\r\ndisplay_errors = Off\r\ndisplay_startup_errors = Off\r\ndoc_root =\r\nenable_dl = Off\r\nerror_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE\r\nexpose_php = Off\r\nfile_uploads = On\r\nhtml_errors = On\r\nignore_repeated_errors = Off\r\nignore_repeated_source = Off\r\ninclude_path = ".:{PEAR_DIR}"\r\nimplicit_flush = Off\r\nldap.max_links = -1\r\nlog_errors = On\r\nlog_errors_max_len = 1024\r\nmail.add_x_header = Off\r\nmax_execution_time = 60\r\nmax_file_uploads = 20\r\nmax_input_time = 60\r\nmemory_limit = 128M\r\noutput_buffering = 4096\r\npost_max_size = 16M\r\nprecision = 14\r\nregister_argc_argv = Off\r\nreport_memleaks = On\r\nrequest_order = "GP"\r\nsendmail_path = "/usr/sbin/sendmail -t -i -f postmaster@{DOMAIN}"\r\nserialize_precision = -1\r\nsession.auto_start = 0\r\nsession.cache_expire = 180\r\nsession.cache_limiter = nocache\r\nsession.cookie_domain =\r\nsession.cookie_httponly =\r\nsession.cookie_lifetime = 0\r\nsession.cookie_path = /\r\nsession.cookie_samesite =\r\nsession.gc_divisor = 1000\r\nsession.gc_maxlifetime = 1440\r\nsession.gc_probability = 0\r\nsession.name = PHPSESSID\r\nsession.referer_check =\r\nsession.save_handler = files\r\nsession.save_path = "{TMP_DIR}"\r\nsession.serialize_handler = php\r\nsession.sid_bits_per_character = 5\r\nsession.sid_length = 26\r\nsession.trans_sid_tags = "a=href,area=href,frame=src,form="\r\nsession.use_cookies = 1\r\nsession.use_only_cookies = 1\r\nsession.use_strict_mode = 0\r\nsession.use_trans_sid = 0\r\nshort_open_tag = On\r\nupload_max_filesize = 32M\r\nupload_tmp_dir = "{TMP_DIR}"\r\nvariables_order = "GPCS"\r\nopcache.restrict_api = ""\r\n');
DROP TABLE IF EXISTS `cronjobs_run`;
CREATE TABLE IF NOT EXISTS `cronjobs_run` (
`id` bigint(20) NOT NULL auto_increment,
`module` varchar(250) NOT NULL,
`cronfile` varchar(250) NOT NULL,
`cronclass` varchar(500) NOT NULL,
`lastrun` int(15) NOT NULL DEFAULT '0',
`interval` varchar(100) NOT NULL DEFAULT '5 MINUTE',
`isactive` tinyint(1) DEFAULT '1',
`desc_lng_key` varchar(100) NOT NULL DEFAULT 'cron_unknown_desc',
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `cronclass`, `interval`, `isactive`, `desc_lng_key`) VALUES
(1, 'froxlor/core', 'tasks', '\\Froxlor\\Cron\\System\\TasksCron', '5 MINUTE', '1', 'cron_tasks'),
(2, 'froxlor/core', 'traffic', '\\Froxlor\\Cron\\Traffic\\TrafficCron', '1 DAY', '1', 'cron_traffic'),
(3, 'froxlor/reports', 'usage_report', '\\Froxlor\\Cron\\Traffic\\ReportsCron', '1 DAY', '1', 'cron_usage_report'),
(4, 'froxlor/core', 'mailboxsize', '\\Froxlor\\Cron\\System\\MailboxsizeCron', '6 HOUR', '1', 'cron_mailboxsize'),
(5, 'froxlor/letsencrypt', 'letsencrypt', '\\Froxlor\\Cron\\Http\\LetsEncrypt\\AcmeSh', '5 MINUTE', '0', 'cron_letsencrypt'),
(6, 'froxlor/export', 'export', '\\Froxlor\\Cron\\System\\ExportCron', '1 HOUR', '0', 'cron_export');
DROP TABLE IF EXISTS `ftp_quotalimits`;
CREATE TABLE IF NOT EXISTS `ftp_quotalimits` (
`name` varchar(255) default NULL,
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`per_session` enum('false','true') NOT NULL default 'false',
`limit_type` enum('soft','hard') NOT NULL default 'hard',
`bytes_in_avail` float NOT NULL,
`bytes_out_avail` float NOT NULL,
`bytes_xfer_avail` float NOT NULL,
`files_in_avail` int(10) unsigned NOT NULL,
`files_out_avail` int(10) unsigned NOT NULL,
`files_xfer_avail` int(10) unsigned NOT NULL
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
INSERT INTO `ftp_quotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES
('froxlor', 'user', 'false', 'hard', 0, 0, 0, 0, 0, 0);
DROP TABLE IF EXISTS `ftp_quotatallies`;
CREATE TABLE IF NOT EXISTS `ftp_quotatallies` (
`name` varchar(255) NOT NULL,
`quota_type` enum('user','group','class','all') NOT NULL,
`bytes_in_used` float NOT NULL,
`bytes_out_used` float NOT NULL,
`bytes_xfer_used` float NOT NULL,
`files_in_used` int(10) unsigned NOT NULL,
`files_out_used` int(10) unsigned NOT NULL,
`files_xfer_used` int(10) unsigned NOT NULL
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `redirect_codes`;
CREATE TABLE IF NOT EXISTS `redirect_codes` (
`id` int(5) NOT NULL auto_increment,
`code` varchar(3) NOT NULL,
`desc` varchar(200) NOT NULL,
`enabled` tinyint(1) DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
INSERT INTO `redirect_codes` (`id`, `code`, `desc`, `enabled`) VALUES
(1, '---', 'rc_default', 1),
(2, '301', 'rc_movedperm', 1),
(3, '302', 'rc_found', 1),
(4, '303', 'rc_seeother', 1),
(5, '307', 'rc_tempred', 1);
DROP TABLE IF EXISTS `domain_redirect_codes`;
CREATE TABLE IF NOT EXISTS `domain_redirect_codes` (
`rid` int(5) NOT NULL,
`did` int(11) unsigned NOT NULL,
UNIQUE KEY `rc` (`rid`, `did`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `domain_ssl_settings`;
CREATE TABLE IF NOT EXISTS `domain_ssl_settings` (
`id` int(5) NOT NULL auto_increment,
`domainid` int(11) NOT NULL,
`ssl_cert_file` mediumtext,
`ssl_key_file` mediumtext,
`ssl_ca_file` mediumtext,
`ssl_cert_chainfile` mediumtext,
`ssl_csr_file` mediumtext,
`ssl_fullchain_file` mediumtext,
`validfromdate` datetime DEFAULT NULL,
`validtodate` datetime DEFAULT NULL,
`issuer` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY (`domainid`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_domaintoip`;
CREATE TABLE IF NOT EXISTS `panel_domaintoip` (
`id_domain` int(11) unsigned NOT NULL,
`id_ipandports` int(11) unsigned NOT NULL,
PRIMARY KEY (`id_domain`,`id_ipandports`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `domain_dns_entries`;
CREATE TABLE `domain_dns_entries` (
`id` int(20) NOT NULL auto_increment,
`domain_id` int(15) NOT NULL,
`record` varchar(255) NOT NULL,
`type` varchar(10) NOT NULL DEFAULT 'A',
`content` text NOT NULL,
`ttl` int(11) NOT NULL DEFAULT '18000',
`prio` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_plans`;
CREATE TABLE `panel_plans` (
`id` int(11) NOT NULL auto_increment,
`adminid` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`description` text NOT NULL,
`value` longtext NOT NULL,
`ts` int(15) NOT NULL default '0',
PRIMARY KEY (id),
KEY adminid (adminid)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `api_keys`;
CREATE TABLE `api_keys` (
`id` int(11) NOT NULL auto_increment,
`adminid` int(11) NOT NULL default '0',
`customerid` int(11) NOT NULL default '0',
`apikey` varchar(500) NOT NULL default '',
`secret` varchar(500) NOT NULL default '',
`allowed_from` text NOT NULL,
`valid_until` int(15) NOT NULL default '0',
PRIMARY KEY (id),
KEY adminid (adminid),
KEY customerid (customerid)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_usercolumns`;
CREATE TABLE `panel_usercolumns` (
`adminid` int(11) NOT NULL default '0',
`customerid` int(11) NOT NULL default '0',
`section` varchar(500) NOT NULL default '',
`columns` text NOT NULL,
UNIQUE KEY `user_section` (`adminid`, `customerid`, `section`),
KEY adminid (adminid),
KEY customerid (customerid)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_loginlinks`;
CREATE TABLE `panel_loginlinks` (
`hash` varchar(500) NOT NULL,
`loginname` varchar(50) NOT NULL,
`valid_until` int(15) NOT NULL,
`allowed_from` text NOT NULL,
UNIQUE KEY `loginname` (`loginname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_2fa_tokens`;
CREATE TABLE `panel_2fa_tokens` (
`id` int(11) NOT NULL auto_increment,
`selector` varchar(200) NOT NULL,
`token` varchar(200) NOT NULL,
`userid` int(11) NOT NULL default '0',
`valid_until` int(15) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
DROP TABLE IF EXISTS `panel_sshkeys`;
CREATE TABLE `panel_sshkeys` (
`id` int(11) NOT NULL auto_increment,
`customerid` int(11) NOT NULL,
`ftp_user_id` int(20) NOT NULL,
`ssh_pubkey` text NOT NULL,
`description` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
FROXLORSQL;
================================================
FILE: install/index.html
================================================
================================================
FILE: install/install.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Http\RateLimiter;
use Froxlor\UI\Panel\UI;
use Froxlor\Install\Install;
require dirname(__DIR__) . '/lib/functions.php';
// define default theme for configurehint, etc.
$_deftheme = 'Froxlor';
// validate correct php version
if (version_compare("7.4.0", PHP_VERSION, ">=")) {
die(view($_deftheme . '/misc/phprequirementfailed.html.twig', [
'{{ basehref }}' => '../',
'{{ froxlor_min_version }}' => '7.4.0',
'{{ current_version }}' => PHP_VERSION,
'{{ current_year }}' => date('Y', time()),
]));
}
// validate vendor autoloader
if (!file_exists(dirname(__DIR__) . '/vendor/autoload.php')) {
die(view($_deftheme . '/misc/vendormissinghint.html.twig', [
'{{ basehref }}' => '../',
'{{ froxlor_install_dir }}' => dirname(__DIR__),
'{{ current_year }}' => date('Y', time()),
]));
}
// check installation status
if (file_exists(dirname(__DIR__) . '/lib/userdata.inc.php')) {
header("Location: ../");
exit;
}
require dirname(__DIR__) . '/vendor/autoload.php';
require dirname(__DIR__) . '/lib/tables.inc.php';
// init twig
UI::initTwig(true);
UI::sendHeaders();
RateLimiter::run(true);
$installer = new Install();
$installer->handle();
================================================
FILE: install/updates/froxlor/index.html
================================================
================================================
FILE: install/updates/froxlor/update_2.0.inc.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Database\Database;
use Froxlor\FileDir;
use Froxlor\Froxlor;
use Froxlor\Install\Update;
use Froxlor\Settings;
if (!defined('_CRON_UPDATE')) {
if (!defined('AREA') || (defined('AREA') && AREA != 'admin') || !isset($userinfo['loginname']) || (isset($userinfo['loginname']) && $userinfo['loginname'] == '')) {
header('Location: ../../../../index.php');
exit();
}
}
// last 0.10.x release
if (Froxlor::isFroxlorVersion('0.10.38.3')) {
$update_to = '2.0.0-beta1';
Update::showUpdateStep("Updating from 0.10.38.3 to " . $update_to, false);
Update::showUpdateStep("Removing unused table");
Database::query("DROP TABLE IF EXISTS `panel_sessions`;");
Database::query("DROP TABLE IF EXISTS `panel_languages`;");
Update::lastStepStatus(0);
Update::showUpdateStep("Updating froxlor - theme");
Database::query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `theme` = 'Froxlor' WHERE `theme` <> 'Froxlor';");
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `theme` = 'Froxlor' WHERE `theme` <> 'Froxlor';");
Settings::Set('panel.default_theme', 'Froxlor');
Update::lastStepStatus(0);
Update::showUpdateStep("Creating new tables and fields");
Database::query("DROP TABLE IF EXISTS `panel_usercolumns`;");
$sql = "CREATE TABLE `panel_usercolumns` (
`adminid` int(11) NOT NULL default '0',
`customerid` int(11) NOT NULL default '0',
`section` varchar(500) NOT NULL default '',
`columns` text NOT NULL,
UNIQUE KEY `user_section` (`adminid`, `customerid`, `section`),
KEY adminid (adminid),
KEY customerid (customerid)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;";
Database::query($sql);
// new customer allowed_mysqlserver field
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ROW_FORMAT=DYNAMIC;");
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` CHANGE COLUMN `customernumber` `customernumber` varchar(100) NOT NULL default '';");
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` CHANGE COLUMN `allowed_phpconfigs` `allowed_phpconfigs` text NOT NULL;");
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `allowed_mysqlserver` text NOT NULL;");
$has_customer_table_update_200 = true;
// ftp_users adjustments
Database::query("ALTER TABLE `" . TABLE_FTP_USERS . "` CHANGE COLUMN `password` `password` varchar(255) NOT NULL default '';");
Database::query("ALTER TABLE `" . TABLE_FTP_QUOTALIMITS . "` CHANGE COLUMN `name` `name` varchar(255) default NULL;");
Database::query("ALTER TABLE `" . TABLE_FTP_QUOTATALLIES . "` CHANGE COLUMN `name` `name` varchar(255) default NULL;");
// mail_users adjustments
Database::query("ALTER TABLE `" . TABLE_MAIL_USERS . "` CHANGE COLUMN `password` `password` varchar(255) NOT NULL default '';");
Database::query("ALTER TABLE `" . TABLE_MAIL_USERS . "` CHANGE COLUMN `password_enc` `password_enc` varchar(255) NOT NULL default '';");
// drop domains_see_all field from panel_admins
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP COLUMN `domains_see_all`;");
Update::lastStepStatus(0);
Update::showUpdateStep("Checking for multiple mysql-servers to allow access to customers for existing databases");
$dbservers_stmt = Database::query("
SELECT `customerid`,
GROUP_CONCAT(DISTINCT `dbserver` SEPARATOR ',') as allowed_mysqlserver
FROM `" . TABLE_PANEL_DATABASES . "`
GROUP BY `customerid`;
");
$upd_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `allowed_mysqlserver` = :allowed_mysqlserver WHERE `customerid` = :customerid");
while ($dbserver = $dbservers_stmt->fetch(PDO::FETCH_ASSOC)) {
if (isset($dbserver['allowed_mysqlserver']) && !empty($dbserver['allowed_mysqlserver'])) {
$allowed_mysqlserver = json_encode(explode(",", $dbserver['allowed_mysqlserver']));
Database::pexecute($upd_stmt,
['allowed_mysql_server' => $allowed_mysqlserver, 'customerid' => $dbserver['customerid']]);
}
}
Update::lastStepStatus(0);
$to_clean = array(
"install/lib",
"install/lng",
"install/updates/froxlor/0.9",
"install/updates/froxlor/0.10",
"install/updates/preconfig/0.9",
"install/updates/preconfig/0.10",
"install/updates/preconfig.php",
"templates/Sparkle",
"lib/version.inc.php",
"lng/czech.lng.php",
"lng/dutch.lng.php",
"lng/english.lng.php",
"lng/french.lng.php",
"lng/german.lng.php",
"lng/italian.lng.php",
"lng/lng_references.php",
"lng/portugues.lng.php",
"lng/swedish.lng.php",
"scripts",
);
Update::cleanOldFiles($to_clean);
Update::showUpdateStep("Adding new settings");
$panel_settings_mode = isset($_POST['panel_settings_mode']) ? (int)$_POST['panel_settings_mode'] : 0;
Settings::AddNew("panel.settings_mode", $panel_settings_mode);
$system_distribution = isset($_POST['system_distribution']) ? $_POST['system_distribution'] : 'bullseye';
Settings::AddNew("system.distribution", $system_distribution);
Settings::AddNew("system.update_channel", 'stable');
Settings::AddNew("system.updatecheck_data", '');
Settings::AddNew("system.update_notify_last", $update_to);
Settings::AddNew("panel.phpconfigs_hidesubdomains", '1');
Update::lastStepStatus(0);
Update::showUpdateStep("Adjusting existing settings");
Settings::Set('system.passwordcryptfunc', PASSWORD_DEFAULT);
// remap default-language
$lang_map = [
'Deutsch' => 'de',
'English' => 'en',
'Français' => 'fr',
'Português' => 'pt',
'Italiano' => 'it',
'Nederlands' => 'nl',
'Svenska' => 'se',
'Česká republika' => 'cz'
];
// update user default languages
$upd_adm_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `def_language` = :nv WHERE `def_language` = :ov");
$upd_cus_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `def_language` = :nv WHERE `def_language` = :ov");
foreach ($lang_map as $old_val => $new_val) {
Database::pexecute($upd_adm_stmt, ['nv' => $new_val, 'ov' => $old_val]);
Database::pexecute($upd_cus_stmt, ['nv' => $new_val, 'ov' => $old_val]);
}
Settings::Set('panel.standardlanguage', $lang_map[Settings::Get('panel_standardlanguage')] ?? 'en');
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'debug_cron'");
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'letsencryptcountrycode'");
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'letsencryptstate'");
Update::lastStepStatus(0);
Update::showUpdateStep("Updating email account password-hashes");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$1$', '{MD5-CRYPT}$1$') WHERE SUBSTRING(`password_enc`, 1, 3) = '$1$'");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$5$', '{SHA256-CRYPT}$5$') WHERE SUBSTRING(`password_enc`, 1, 3) = '$5$'");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$6$', '{SHA512-CRYPT}$6$') WHERE SUBSTRING(`password_enc`, 1, 3) = '$6$'");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$2y$', '{BLF-CRYPT}$2y$') WHERE SUBSTRING(`password_enc`, 1, 4) = '$2y$'");
Update::lastStepStatus(0);
Froxlor::updateToVersion($update_to);
}
if (Froxlor::isDatabaseVersion('202112310')) {
Update::showUpdateStep("Adjusting traffic tool settings");
$traffic_tool = Settings::Get('system.awstats_enabled') == 1 ? 'awstats' : 'webalizer';
Settings::AddNew("system.traffictool", $traffic_tool);
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'awstats_enabled'");
Update::lastStepStatus(0);
Froxlor::updateToDbVersion('202211030');
}
if (Froxlor::isDatabaseVersion('202211030')) {
Update::showUpdateStep("Creating backward compatibility for cronjob");
$disabled = explode(',', ini_get('disable_functions'));
$exec_allowed = !in_array('exec', $disabled);
// check whether old files could be deleted in previous updates and if not,
// user should run cron to regenerate cron.d-file manually as he will run
// the other commands manually only after the update so this file would be deleted too
if ($exec_allowed) {
$complete_filedir = Froxlor::getInstallDir() . '/scripts';
mkdir($complete_filedir, 0750, true);
$newCronBin = Froxlor::getInstallDir() . '/bin/froxlor-cli';
$compCron = <<
' . $cron_run_cmd . '
');
}
Froxlor::updateToDbVersion('202212060');
}
if (Froxlor::isFroxlorVersion('2.0.0-beta1')) {
Update::showUpdateStep("Updating from 2.0.0-beta1 to 2.0.0", false);
Froxlor::updateToVersion('2.0.0');
}
if (Froxlor::isFroxlorVersion('2.0.0')) {
Update::showUpdateStep("Updating from 2.0.0 to 2.0.1", false);
if (!isset($has_customer_table_update_200)) {
Update::showUpdateStep("Creating new tables and fields");
// new customer allowed_mysqlserver field
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` CHANGE COLUMN `allowed_mysqlserver` `allowed_mysqlserver` text NOT NULL;");
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` CHANGE COLUMN `allowed_phpconfigs` `allowed_phpconfigs` text NOT NULL;");
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` CHANGE COLUMN `customernumber` `customernumber` varchar(100) NOT NULL default '';");
Update::lastStepStatus(0);
}
Froxlor::updateToVersion('2.0.1');
}
if (Froxlor::isFroxlorVersion('2.0.1')) {
Update::showUpdateStep("Updating from 2.0.1 to 2.0.2", false);
Froxlor::updateToVersion('2.0.2');
}
if (Froxlor::isFroxlorVersion('2.0.2')) {
Update::showUpdateStep("Updating from 2.0.2 to 2.0.3", false);
Froxlor::updateToVersion('2.0.3');
}
if (Froxlor::isFroxlorVersion('2.0.3')) {
Update::showUpdateStep("Updating from 2.0.3 to 2.0.4", false);
$complete_filedir = Froxlor::getInstallDir() . '/scripts';
// check if compat. cronjob still exists (most likely didn't run successfully b/c of error from former 2.0 release)
if (@file_exists($complete_filedir . '/froxlor_master_cronjob.php')) {
Update::showUpdateStep("Adjusting backward compatibility for cronjob");
$disabled = explode(',', ini_get('disable_functions'));
$exec_allowed = !in_array('exec', $disabled);
if ($exec_allowed) {
$newCronBin = Froxlor::getInstallDir() . '/bin/froxlor-cli';
$compCron = <<
' . $cron_run_cmd . '
');
}
}
Froxlor::updateToVersion('2.0.4');
}
if (Froxlor::isFroxlorVersion('2.0.4')) {
Update::showUpdateStep("Updating from 2.0.4 to 2.0.5", false);
Froxlor::updateToVersion('2.0.5');
}
if (Froxlor::isFroxlorVersion('2.0.5')) {
Update::showUpdateStep("Updating from 2.0.5 to 2.0.6", false);
Update::showUpdateStep("Updating possible missing email account password-hashes");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$1$', '{MD5-CRYPT}$1$') WHERE SUBSTRING(`password_enc`, 1, 3) = '$1$'");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$5$', '{SHA256-CRYPT}$5$') WHERE SUBSTRING(`password_enc`, 1, 3) = '$5$'");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$6$', '{SHA512-CRYPT}$6$') WHERE SUBSTRING(`password_enc`, 1, 3) = '$6$'");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password_enc` = REPLACE(`password_enc`, '$2y$', '{BLF-CRYPT}$2y$') WHERE SUBSTRING(`password_enc`, 1, 4) = '$2y$'");
Update::lastStepStatus(0);
Froxlor::updateToVersion('2.0.6');
}
if (Froxlor::isFroxlorVersion('2.0.6')) {
Update::showUpdateStep("Updating from 2.0.6 to 2.0.7", false);
Update::showUpdateStep("Correcting allowed_mysqlserver for customers");
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `allowed_mysqlserver` = '[0]' WHERE `allowed_mysqlserver` = ''");
Update::lastStepStatus(0);
Froxlor::updateToVersion('2.0.7');
}
if (Froxlor::isDatabaseVersion('202212060')) {
Update::showUpdateStep("Validating acme.sh challenge path");
$acmesh_challenge_dir = Settings::Get('system.letsencryptchallengepath');
$system_letsencryptchallengepath_upd = isset($_POST['system_letsencryptchallengepath_upd']) ? $_POST['system_letsencryptchallengepath_upd'] : $acmesh_challenge_dir;
if ($acmesh_challenge_dir != $system_letsencryptchallengepath_upd) {
Settings::Set('system.letsencryptchallengepath', $system_letsencryptchallengepath_upd);
if ((int)Settings::Get('system.leenabled') == 1) {
// create JSON string for --apply
$dist = Settings::Get('system.distribution');
$webserver = Settings::Get('system.webserver');
if ($webserver == 'apache2') {
$webserver = 'apache22';
if (Settings::Get('system.apache24')) {
$webserver = 'apache24';
}
}
$apply_json = '{"http":"' . $webserver . '","dns":"x","smtp":"x","mail":"x","ftp":"x","distro":"' . $dist . '","system":[]}';
Update::lastStepStatus(1, 'manual commands needed',
"Please reconfigure webserver service using
';
// set errors to session
ErrorBag::addError($err_display);
// return true to ignore php standard error-handler
return true;
}
// of on shell, use the php standard error-handler
return false;
}
/**
* @param Throwable $exception
* @return void
*/
public static function phpExceptionHandler(Throwable $exception)
{
if (!isset($_SERVER['SHELL']) || $_SERVER['SHELL'] == '') {
// show
UI::initTwig(true);
UI::twig()->addGlobal('install_mode', '1');
UI::view('misc/alert_nosession.html.twig', [
'page_title' => 'Uncaught exception',
'heading' => 'Uncaught exception',
'type' => 'danger',
'alert_msg' => $exception->getCode() . ' ' . $exception->getMessage(),
'alert_info' => $exception->getTraceAsString()
]);
die();
}
}
/**
* @param ...$configdirs
* @return array|null
*/
public static function loadConfigArrayDir(...$configdirs)
{
if (count($configdirs) <= 0) {
return null;
}
$data = [];
$data_files = [];
$has_data = false;
foreach ($configdirs as $data_dirname) {
if (is_dir($data_dirname)) {
$data_dirhandle = opendir($data_dirname);
while (false !== ($data_filename = readdir($data_dirhandle))) {
if ($data_filename != '.'
&& $data_filename != '..'
&& $data_filename != ''
&& substr($data_filename, -4) == '.php'
) {
$data_files[] = $data_dirname . $data_filename;
}
}
$has_data = true;
}
}
if ($has_data) {
sort($data_files);
foreach ($data_files as $data_filename) {
$data = array_merge_recursive($data, include $data_filename);
}
}
return $data;
}
/**
* ipv6 aware gethostbynamel function
*
* @param string $host
* @param boolean $try_a default true
* @param string|null $nameserver set additional resolver nameserver to use (e.g. 1.1.1.1)
* @return bool|array
*/
public static function gethostbynamel6(string $host, bool $try_a = true, ?string $nameserver = null)
{
$ips = [];
try {
// set the default nameservers to use, use the system default if none are provided
$resolver = new Net_DNS2_Resolver($nameserver ? ['nameservers' => [$nameserver]] : []);
// get all ip addresses from the A record and normalize them
if ($try_a) {
try {
$answer = $resolver->query($host, 'A')->answer;
foreach ($answer as $rr) {
if ($rr instanceof \Net_DNS2_RR_A) {
$ips[] = inet_ntop(inet_pton($rr->address));
}
}
} catch (Net_DNS2_Exception $e) {
// we can't do anything here, just continue
}
}
// get all ip addresses from the AAAA record and normalize them
try {
$answer = $resolver->query($host, 'AAAA')->answer;
foreach ($answer as $rr) {
if ($rr instanceof \Net_DNS2_RR_AAAA) {
$ips[] = inet_ntop(inet_pton($rr->address));
}
}
} catch (Net_DNS2_Exception $e) {
// we can't do anything here, just continue
}
} catch (Net_DNS2_Exception $e) {
// fallback to php's dns_get_record if Net_DNS2 has no resolver available, but this may cause
// problems if the system's dns is not configured correctly; for example, the acme pre-check
// will fail because some providers put a local ip in /etc/hosts
// get all ip addresses from the A record and normalize them
if ($try_a) {
$answer = @dns_get_record($host, DNS_A);
foreach ($answer as $rr) {
$ips[] = inet_ntop(inet_pton($rr['ip']));
}
}
// get all ip addresses from the AAAA record and normalize them
$answer = @dns_get_record($host, DNS_AAAA);
foreach ($answer as $rr) {
$ips[] = inet_ntop(inet_pton($rr['ipv6']));
}
}
return count($ips) > 0 ? $ips : false;
}
/**
* Function randomStr
*
* generate a pseudo-random string of bytes
*
* @param int $length
* @return string
* @throws Exception
*/
public static function randomStr(int $length): string
{
if (function_exists('openssl_random_pseudo_bytes')) {
return openssl_random_pseudo_bytes($length);
}
return random_bytes($length);
}
/**
* Return human-readable sizes
*
* @param int $size size in bytes
* @param ?string $max maximum unit
* @param string $system 'si' for SI, 'bi' for binary prefixes
* @param string $retstring string-format
*
* @return string
*/
public static function sizeReadable(
$size,
?string $max = '',
string $system = 'si',
string $retstring = '%01.2f %s'
): string
{
// Pick units
$systems = [
'si' => [
'prefix' => [
'B',
'KB',
'MB',
'GB',
'TB',
'PB'
],
'size' => 1000
],
'bi' => [
'prefix' => [
'B',
'KiB',
'MiB',
'GiB',
'TiB',
'PiB'
],
'size' => 1024
]
];
$sys = $systems[$system] ?? $systems['si'];
// Max unit to display
$depth = count($sys['prefix']) - 1;
if ($max && false !== $d = array_search($max, $sys['prefix'])) {
$depth = $d;
}
// Loop
$i = 0;
while ($size >= $sys['size'] && $i < $depth) {
$size /= $sys['size'];
$i++;
}
return sprintf($retstring, $size, $sys['prefix'][$i]);
}
/**
* Replaces all occurrences of variables defined in the second argument
* in the first argument with their values.
*
* @param string $text The string that should be searched for variables
* @param array $vars The array containing the variables with their values
*
* @return string The submitted string with the variables replaced.
*/
public static function replaceVariables(string $text, array $vars): string
{
$pattern = "/\{([a-zA-Z0-9\-_]+)\}/";
$matches = [];
if (count($vars) > 0 && preg_match_all($pattern, $text, $matches)) {
for ($i = 0; $i < count($matches[1]); $i++) {
$current = $matches[1][$i];
if (isset($vars[$current])) {
$var = $vars[$current];
$text = str_replace("{" . $current . "}", $var, $text);
}
}
}
return str_replace('\n', "\n", $text);
}
/**
* @param string $needle
* @param array $haystack
* @param array $keys
* @param string $currentKey
* @return true
*/
public static function recursive_array_search(
string $needle,
array $haystack,
array &$keys = [],
string $currentKey = ''
): bool
{
foreach ($haystack as $key => $value) {
if (empty($value)) {
continue;
}
$pathkey = empty($currentKey) ? $key : $currentKey . '.' . $key;
if (is_array($value)) {
self::recursive_array_search($needle, $value, $keys, $pathkey);
} else {
if (stripos($value, $needle) !== false) {
$keys[] = $pathkey;
}
}
}
return true;
}
/**
* function to check a super-global passed by reference,
* so it gets automatically updated
*
* @param array $global
* @param AntiXSS $antiXss
*/
public static function cleanGlobal(array &$global, AntiXSS &$antiXss)
{
$ignored_fields = [
'system_default_vhostconf',
'system_default_sslvhostconf',
'system_apache_globaldiropt',
'specialsettings',
'ssl_specialsettings',
'default_vhostconf_domain',
'ssl_default_vhostconf_domain',
'filecontent',
'admin_password',
'password',
'new_customer_password',
'privileged_password',
'email_password',
'directory_password',
'ftp_password',
'mysql_password',
'mysql_root_pass',
'mysql_unprivileged_pass',
'admin_pass',
'admin_pass_confirm',
'panel_password_special_char',
'old_password',
'new_password',
'new_password_confirm',
];
if (!empty($global)) {
$tmp = $global;
foreach ($tmp as $index => $value) {
if (!in_array($index, $ignored_fields)) {
$global[$index] = $antiXss->xss_clean($value);
}
}
}
}
/**
* Generate php file from array.
*
* @param array $array
* @param string|null $comment
* @param bool $asReturn
* @return string
*/
public static function parseArrayToPhpFile(array $array, ?string $comment = null, bool $asReturn = false): string
{
$str = sprintf(" $arr) {
$str .= sprintf("\$%s = %s;\n", $var, rtrim(self::parseArrayToString($arr), "\n,"));
}
return $str;
}
/**
* Parse array to array string.
*
* @param array $array
* @param ?string $key
* @param int $depth
* @return string
*/
public static function parseArrayToString(array $array, ?string $key = null, int $depth = 1): string
{
$str = '';
if (!is_null($key)) {
$str .= self::tabPrefix(($depth - 1), "'{$key}' => [\n");
} else {
$str .= self::tabPrefix(($depth - 1), "[\n");
}
foreach ($array as $key => $value) {
if (!is_array($value)) {
if (is_bool($value)) {
$str .= self::tabPrefix($depth, sprintf("'%s' => %s,\n", $key, $value ? 'true' : 'false'));
} elseif (is_int($value)) {
$str .= self::tabPrefix($depth, "'{$key}' => $value,\n");
} else {
if ($key == 'password') {
// special case for passwords (nowdoc)
$str .= self::tabPrefix($depth, "'{$key}' => <<<'EOT'\n{$value}\nEOT,\n");
} else {
// escape backslashes first, then single quotes:
$escaped = str_replace(['\\', "'"], ['\\\\', "\\'"], $value);
$str .= self::tabPrefix($depth, "'{$key}' => '{$escaped}',\n");
}
}
} else {
$str .= self::parseArrayToString($value, $key, ($depth + 1));
}
}
$str .= self::tabPrefix(($depth - 1), "],\n");
return $str;
}
/**
* Apply tabs with given depth to string.
*
* @param int $depth
* @param string $str
* @return string
*/
private static function tabPrefix(int $depth, string $str = ''): string
{
$tab = '';
for ($i = 1; $i <= $depth; $i++) {
$tab .= "\t";
}
return $tab . $str;
}
public static function array_merge_recursive_distinct(array &$array1, array &$array2)
{
$merged = $array1;
foreach ($array2 as $key => &$value) {
if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
$merged[$key] = self::array_merge_recursive_distinct($merged[$key], $value);
} else {
$merged[$key] = $value;
}
}
return $merged;
}
}
================================================
FILE: lib/Froxlor/SImExporter.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor;
use Exception;
use Froxlor\Database\Database;
use Froxlor\UI\Form;
use Froxlor\Validate\Validate;
use PDO;
/**
* Class SImExporter
*
* Import/Export settings to JSON
*/
class SImExporter
{
/**
* settings which are not being exported
*
* @var array
*/
private static $no_export = [
'panel.adminmail',
'admin.show_news_feed',
'system.lastaccountnumber',
'system.lastguid',
'system.ipaddress',
'system.last_traffic_run',
'system.hostname',
'system.mysql_access_host',
'system.lastcronrun',
'system.defaultip',
'system.defaultsslip',
'system.last_tasks_run',
'system.last_archive_run',
'system.leprivatekey',
'system.lepublickey',
'system.updatecheck_data',
];
public static function export()
{
$settings_definitions = [];
foreach (PhpHelper::loadConfigArrayDir(Froxlor::getInstallDir() . '/actions/admin/settings/')['groups'] as $group) {
foreach ($group['fields'] as $field) {
$settings_definitions[$field['settinggroup']][$field['varname']] = $field;
}
}
$result_stmt = Database::query("
SELECT * FROM `" . TABLE_PANEL_SETTINGS . "` ORDER BY `settingid` ASC
");
$_data = [];
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
$index = $row['settinggroup'] . "." . $row['varname'];
if (!in_array($index, self::$no_export)) {
$_data[$index] = $row['value'];
}
if (array_key_exists($row['settinggroup'], $settings_definitions) && array_key_exists($row['varname'],
$settings_definitions[$row['settinggroup']])) {
// Export image file
if ($settings_definitions[$row['settinggroup']][$row['varname']]['type'] === "image") {
if ($row['value'] === "") {
continue;
}
$_data[$index . '.image_data'] = base64_encode(file_get_contents(explode('?', $row['value'],
2)[0]));
}
}
}
// add checksum for validation
$_data['_sha'] = sha1(var_export($_data, true));
$_export = json_encode($_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
if (!$_export) {
throw new Exception("Error exporting settings: " . json_last_error_msg());
}
return $_export;
}
public static function import($json_str = null)
{
// decode data
$_data = json_decode($json_str, true);
if ($_data) {
// get validity check data
$_sha = isset($_data['_sha']) ? $_data['_sha'] : false;
$_version = isset($_data['panel.version']) ? $_data['panel.version'] : false;
$_dbversion = isset($_data['panel.db_version']) ? $_data['panel.db_version'] : false;
// check if we have everything we need
if (!$_sha || !$_version || !$_dbversion) {
throw new Exception("Invalid froxlor settings data. Unable to import.");
}
// validate import file
unset($_data['_sha']);
// compare
if ($_sha != sha1(var_export($_data, true))) {
throw new Exception("SHA check of import data failed. Unable to import.");
}
// do not import version info - but we need that to possibly update settings
// when there were changes in the variable-name or similar
unset($_data['panel.version']);
unset($_data['panel.db_version']);
// validate we got ssl enabled ips when ssl is enabled
// otherwise deactivate it
if ($_data['system.use_ssl'] == 1) {
$result_ssl_ipsandports_stmt = Database::prepare("
SELECT COUNT(*) as count_ssl_ip FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `ssl`='1'
");
$result = Database::pexecute_first($result_ssl_ipsandports_stmt);
if ($result['count_ssl_ip'] <= 0) {
// no ssl-ip -> deactivate
$_data['system.use_ssl'] = 0;
// deactivate other ssl-related settings
$_data['system.leenabled'] = 0;
$_data['system.le_froxlor_enabled'] = 0;
$_data['system.le_froxlor_redirect'] = 0;
}
}
$form_data = [];
$image_data = [];
// read in all current settings
$current_settings = Settings::getAll();
foreach ($current_settings as $setting_group => $setting) {
foreach ($setting as $varname => $value) {
// set all group/varname:values which are not in the import file
if (!array_key_exists($setting_group . '.' . $varname, $_data)) {
$_data[$setting_group . '.' . $varname] = $value;
}
}
}
// re-format the array-key for Form::processForm
foreach ($_data as $key => $value) {
$index_split = explode('.', $key, 3);
if (!isset($current_settings[$index_split[0]][$index_split[1]])) {
continue;
}
if (isset($index_split[2]) && $index_split[2] === 'image_data' && !empty($_data[$index_split[0] . '.' . $index_split[1]])) {
$image_data[$key] = $value;
} else {
$form_data[str_replace(".", "_", $key)] = $value;
}
}
// store new data
$settings_data = PhpHelper::loadConfigArrayDir(Froxlor::getInstallDir() . '/actions/admin/settings/');
Settings::loadSettingsInto($settings_data);
if (Form::processForm($settings_data, $form_data, [], null, true)) {
// save to DB
Settings::Flush();
// Process image_data and save it
if (count($image_data) > 0) {
foreach ($image_data as $index => $value) {
$index_split = explode('.', $index, 3);
$path = Froxlor::getInstallDir() . '/img/';
if (!is_dir($path) && !mkdir($path, 0775)) {
throw new Exception("img directory does not exist and cannot be created");
}
// Make sure we can write to the upload directory
if (!is_writable($path)) {
if (!chmod($path, 0775)) {
throw new Exception("Cannot write to img directory");
}
}
if (Validate::validateBase64Image($value)) {
$img_data = base64_decode($value);
$img_filename = explode('?', $_data[$index_split[0] . '.' . $index_split[1]], 2)[0];
$spl = explode('.', $img_filename);
$file_extension = strtolower(array_pop($spl));
unset($spl);
if (!in_array($file_extension, [
'jpeg',
'jpg',
'png',
'gif'
])) {
throw new Exception("Invalid file-extension, use one of: jpeg, jpg, png, gif");
}
$img_filename = 'img/' . bin2hex(random_bytes(16)) . '.' . $file_extension;
file_put_contents(Froxlor::getInstallDir() . '/' . $img_filename, $img_data);
$img_index = $index_split[0].'.'.$index_split[1];
Settings::Set($img_index, $img_filename . '?v=' . time());
}
}
}
// all good
return true;
} else {
throw new Exception("Importing settings failed");
}
}
throw new Exception("Invalid JSON data: " . json_last_error_msg());
}
}
================================================
FILE: lib/Froxlor/Settings/FroxlorVhostSettings.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\Settings;
use Froxlor\Database\Database;
class FroxlorVhostSettings
{
/**
* @param bool $need_ssl
*
* @return bool
* @throws \Exception
*/
public static function hasVhostContainerEnabled(bool $need_ssl = false): bool
{
$sel_stmt = Database::prepare("SELECT COUNT(*) as vcentries FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `vhostcontainer`= '1'" . ($need_ssl ? " AND `ssl` = '1'" : ""));
$result = Database::pexecute_first($sel_stmt);
if ($result) {
return $result['vcentries'] > 0;
}
return false;
}
}
================================================
FILE: lib/Froxlor/Settings/Store.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\Settings;
use Exception;
use Froxlor\Cron\TaskId;
use Froxlor\Database\Database;
use Froxlor\Database\DbManager;
use Froxlor\FileDir;
use Froxlor\Froxlor;
use Froxlor\Idna\IdnaWrapper;
use Froxlor\PhpHelper;
use Froxlor\Settings;
use Froxlor\System\Cronjob;
use Froxlor\System\IPTools;
use Froxlor\UI\Request;
use Froxlor\Validate\Validate;
use PDO;
class Store
{
public static function storeSettingClearCertificates($fieldname, $fielddata, $newfieldvalue)
{
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false
&& is_array($fielddata)
&& isset($fielddata['settinggroup'])
&& $fielddata['settinggroup'] == 'system'
&& isset($fielddata['varname'])
) {
if ($fielddata['varname'] == 'le_froxlor_enabled' && $newfieldvalue == '0') {
Database::query("
DELETE FROM `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` WHERE `domainid` = '0'
");
} elseif ($fielddata['varname'] == 'froxloraliases' && $newfieldvalue != $fielddata['value']) {
Database::query("
UPDATE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` SET `validtodate`= NULL WHERE `domainid` = '0'
");
}
}
return $returnvalue;
}
public static function storeSettingField($fieldname, $fielddata, $newfieldvalue)
{
if (is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] != '' && isset($fielddata['varname']) && $fielddata['varname'] != '') {
if (Settings::Set($fielddata['settinggroup'] . '.' . $fielddata['varname'], $newfieldvalue) !== false) {
/*
* when fielddata[cronmodule] is set, this means enable/disable a cronjob
*/
if (isset($fielddata['cronmodule']) && $fielddata['cronmodule'] != '') {
Cronjob::toggleCronStatus($fielddata['cronmodule'], $newfieldvalue);
}
/*
* satisfy dependencies
*/
if (isset($fielddata['dependency']) && is_array($fielddata['dependency'])) {
if ((int)$fielddata['dependency']['onlyif'] == (int)$newfieldvalue) {
self::storeSettingField($fielddata['dependency']['fieldname'], $fielddata['dependency']['fielddata'], $newfieldvalue);
}
}
return [
$fielddata['settinggroup'] . '.' . $fielddata['varname'] => $newfieldvalue
];
} else {
return false;
}
} else {
return false;
}
}
public static function storeSettingDefaultIp($fieldname, $fielddata, $newfieldvalue)
{
$defaultips_old = Settings::Get('system.defaultip');
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'defaultip') {
self::updateStdSubdomainDefaultIp($newfieldvalue, $defaultips_old);
}
return $returnvalue;
}
private static function updateStdSubdomainDefaultIp($newfieldvalue, $defaultips_old)
{
// update standard-subdomain of customer if exists
$customerstddomains_result_stmt = Database::prepare("
SELECT `standardsubdomain` FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `standardsubdomain` <> '0'
");
Database::pexecute($customerstddomains_result_stmt);
$ids = [];
while ($customerstddomains_row = $customerstddomains_result_stmt->fetch(PDO::FETCH_ASSOC)) {
$ids[] = (int)$customerstddomains_row['standardsubdomain'];
}
if (count($ids) > 0) {
if (!empty($defaultips_old)) {
// Delete the existing mappings linking to default IPs
$del_stmt = Database::prepare("
DELETE FROM `" . TABLE_DOMAINTOIP . "`
WHERE `id_domain` IN (" . implode(', ', $ids) . ")
AND `id_ipandports` IN (" . $defaultips_old . ")
");
Database::pexecute($del_stmt);
}
$defaultips_new = !empty($newfieldvalue) ? explode(",", $newfieldvalue) : [];
if (count($defaultips_new) > 0) {
// Insert the new mappings
$ins_stmt = Database::prepare("
INSERT INTO `" . TABLE_DOMAINTOIP . "`
SET `id_domain` = :domainid, `id_ipandports` = :ipandportid
");
foreach ($ids as $id) {
foreach ($defaultips_new as $defaultip_new) {
Database::pexecute($ins_stmt, [
'domainid' => $id,
'ipandportid' => $defaultip_new
]);
}
}
}
}
}
public static function storeSettingDefaultSslIp($fieldname, $fielddata, $newfieldvalue)
{
$defaultips_old = Settings::Get('system.defaultsslip');
self::cleanIpSelection($defaultips_old);
self::cleanIpSelection($newfieldvalue);
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'defaultsslip') {
self::updateStdSubdomainDefaultIp($newfieldvalue, $defaultips_old);
}
return $returnvalue;
}
private static function cleanIpSelection(&$selection)
{
$selection_arr = array_filter(explode(',', $selection), function ($value) {
return !empty($value);
});
$selection = implode(",", $selection_arr);
}
/**
* updates the setting for the default panel-theme
* and also the user themes (customers and admins) if
* the changing of themes is disallowed for them
*
* @param string $fieldname
* @param array $fielddata
* @param mixed $newfieldvalue
*
* @return boolean|array
*/
public static function storeSettingDefaultTheme($fieldname, $fielddata, $newfieldvalue)
{
// first save the setting itself
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'panel' && isset($fielddata['varname']) && $fielddata['varname'] == 'default_theme') {
// now, if changing themes is disabled we manually set
// the new theme (customers and admin, depending on settings)
if (Settings::Get('panel.allow_theme_change_customer') == '0') {
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `theme` = :theme
");
Database::pexecute($upd_stmt, [
'theme' => $newfieldvalue
]);
}
if (Settings::Get('panel.allow_theme_change_admin') == '0') {
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_ADMINS . "` SET `theme` = :theme
");
Database::pexecute($upd_stmt, [
'theme' => $newfieldvalue
]);
}
}
return $returnvalue;
}
public static function storeSettingFieldInsertBindTask($fieldname, $fielddata, $newfieldvalue)
{
// first save the setting itself
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false) {
Cronjob::inserttask(TaskId::REBUILD_DNS);
}
return $returnvalue;
}
public static function storeSettingFieldInsertAntispamTask($fieldname, $fielddata, $newfieldvalue)
{
// first save the setting itself
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false) {
Cronjob::inserttask(TaskId::REBUILD_RSPAMD);
}
return $returnvalue;
}
public static function storeSettingFieldInsertUpdateServicesTask($fieldname, $fielddata, $newfieldvalue)
{
// first save the setting itself
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false) {
Cronjob::inserttask(TaskId::UPDATE_LE_SERVICES);
}
return $returnvalue;
}
public static function storeSettingHostname($fieldname, $fielddata, $newfieldvalue)
{
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && ($fielddata['varname'] == 'hostname' || $fielddata['varname'] == 'stdsubdomain')) {
$idna_convert = new IdnaWrapper();
$newfieldvalue = $idna_convert->encode($newfieldvalue);
if (($fielddata['varname'] == 'hostname' && Settings::Get('system.stdsubdomain') == '') || $fielddata['varname'] == 'stdsubdomain') {
if ($fielddata['varname'] == 'stdsubdomain' && $newfieldvalue == '') {
// clear field, reset stdsubdomain to system-hostname
$oldhost = $idna_convert->encode(Settings::Get('system.stdsubdomain'));
$newhost = $idna_convert->encode(Settings::Get('system.hostname'));
} elseif ($fielddata['varname'] == 'stdsubdomain' && Settings::Get('system.stdsubdomain') == '') {
// former std-subdomain was system-hostname
$oldhost = $idna_convert->encode(Settings::Get('system.hostname'));
$newhost = $newfieldvalue;
} elseif ($fielddata['varname'] == 'stdsubdomain') {
// std-subdomain just changed
$oldhost = $idna_convert->encode(Settings::Get('system.stdsubdomain'));
$newhost = $newfieldvalue;
} elseif ($fielddata['varname'] == 'hostname' && Settings::Get('system.stdsubdomain') == '') {
// system-hostname has changed and no system-stdsubdomain is not set
$oldhost = $idna_convert->encode(Settings::Get('system.hostname'));
$newhost = $newfieldvalue;
}
$customerstddomains_result_stmt = Database::prepare("
SELECT `standardsubdomain` FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `standardsubdomain` <> '0'
");
Database::pexecute($customerstddomains_result_stmt);
$ids = [];
while ($customerstddomains_row = $customerstddomains_result_stmt->fetch(PDO::FETCH_ASSOC)) {
$ids[] = (int)$customerstddomains_row['standardsubdomain'];
}
if (count($ids) > 0) {
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_DOMAINS . "` SET
`domain` = REPLACE(`domain`, :host, :newval)
WHERE `id` IN ('" . implode(', ', $ids) . "')
");
Database::pexecute($upd_stmt, [
'host' => $oldhost,
'newval' => $newhost
]);
}
}
}
return $returnvalue;
}
public static function storeSettingIpAddress($fieldname, $fielddata, $newfieldvalue)
{
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'ipaddress') {
$mysql_access_host_array = array_map('trim', explode(',', Settings::Get('system.mysql_access_host')));
$mysql_access_host_array[] = $newfieldvalue;
$mysql_access_host_array = array_unique(PhpHelper::arrayTrim($mysql_access_host_array));
DbManager::correctMysqlUsers($mysql_access_host_array);
$mysql_access_host = implode(',', $mysql_access_host_array);
Settings::Set('system.mysql_access_host', $mysql_access_host);
}
return $returnvalue;
}
public static function storeSettingMysqlAccessHost($fieldname, $fielddata, $newfieldvalue)
{
$ips = $newfieldvalue;
// Convert cidr to netmask for mysql, if needed be
if (strpos($ips, ',') !== false) {
$ips = explode(',', $ips);
}
if (is_array($ips) && count($ips) > 0) {
$newfieldvalue = [];
foreach ($ips as $ip) {
$org_ip = $ip;
$ip_cidr = explode("/", $ip);
if (count($ip_cidr) === 2) {
$ip = $ip_cidr[0];
if (strlen($ip_cidr[1]) <= 2) {
$ip_cidr[1] = IPTools::cidr2NetmaskAddr($org_ip);
}
$newfieldvalue[] = $ip . '/' . $ip_cidr[1];
} else {
$newfieldvalue[] = $org_ip;
}
}
$newfieldvalue = implode(',', $newfieldvalue);
}
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'mysql_access_host') {
$mysql_access_host_array = array_map('trim', explode(',', $newfieldvalue));
if (in_array('127.0.0.1', $mysql_access_host_array) && !in_array('localhost', $mysql_access_host_array)) {
$mysql_access_host_array[] = 'localhost';
}
if (!in_array('127.0.0.1', $mysql_access_host_array) && in_array('localhost', $mysql_access_host_array)) {
$mysql_access_host_array[] = '127.0.0.1';
}
// be aware that ipv6 addresses are enclosed in [ ] when passed here
$mysql_access_host_array = array_map([
'\\Froxlor\\Settings\\Store',
'cleanMySQLAccessHost'
], $mysql_access_host_array);
$mysql_access_host_array = array_unique(PhpHelper::arrayTrim($mysql_access_host_array));
$newfieldvalue = implode(',', $mysql_access_host_array);
DbManager::correctMysqlUsers($mysql_access_host_array);
$mysql_access_host = implode(',', $mysql_access_host_array);
Settings::Set('system.mysql_access_host', $mysql_access_host);
}
return $returnvalue;
}
public static function storeSettingResetCatchall($fieldname, $fielddata, $newfieldvalue)
{
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'catchall' && isset($fielddata['varname']) && $fielddata['varname'] == 'catchall_enabled' && $newfieldvalue == '0') {
Database::query("
UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `iscatchall` = '0' WHERE `iscatchall` = '1'
");
}
return $returnvalue;
}
/**
* Whenever the webserver- / FCGID- or FPM-user gets updated
* we need to update ftp_groups accordingly
*/
public static function storeSettingWebserverFcgidFpmUser($fieldname, $fielddata, $newfieldvalue)
{
if (is_array($fielddata) && isset($fielddata['settinggroup']) && isset($fielddata['varname'])) {
$update_user = null;
// webserver
if ($fielddata['settinggroup'] == 'system' && $fielddata['varname'] == 'httpuser') {
$update_user = Settings::Get('system.httpuser');
}
// fcgid
if ($fielddata['settinggroup'] == 'system' && $fielddata['varname'] == 'mod_fcgid_httpuser') {
$update_user = Settings::Get('system.mod_fcgid_httpuser');
}
// webserver
if ($fielddata['settinggroup'] == 'phpfpm' && $fielddata['varname'] == 'vhost_httpuser') {
$update_user = Settings::Get('phpfpm.vhost_httpuser');
}
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false) {
/**
* only update if anything changed
*/
if ($update_user != null && $newfieldvalue != $update_user) {
$upd_stmt = Database::prepare("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members` = REPLACE(`members`, :olduser, :newuser)");
Database::pexecute($upd_stmt, [
'olduser' => $update_user,
'newuser' => $newfieldvalue
]);
}
}
}
return $returnvalue;
}
public static function storeSettingImage($fieldname, $fielddata)
{
if (isset($fielddata['settinggroup'], $fielddata['varname']) && is_array($fielddata) && $fielddata['settinggroup'] !== '' && $fielddata['varname'] !== '') {
$save_to = null;
$path = Froxlor::getInstallDir() . '/img/';
$path = FileDir::makeCorrectDir($path);
// New file?
if (isset($_FILES[$fieldname]) && $_FILES[$fieldname]['tmp_name']) {
// Make sure upload directory exists
if (!is_dir($path) && !mkdir($path, 0775)) {
throw new Exception("img directory does not exist and cannot be created");
}
// Make sure we can write to the upload directory
if (!is_writable($path)) {
if (!chmod($path, 0775)) {
throw new Exception("Cannot write to img directory");
}
}
// Make sure mime-type matches an image
$image_content = file_get_contents($_FILES[$fieldname]['tmp_name']);
$value = base64_encode($image_content);
if (Validate::validateBase64Image($value)) {
$img_filename = $_FILES[$fieldname]['name'];
$spl = explode('.', $img_filename);
$file_extension = strtolower(array_pop($spl));
unset($spl);
if (!in_array($file_extension, [
'jpeg',
'jpg',
'png',
'gif'
])) {
throw new Exception("Invalid file-extension, use one of: jpeg, jpg, png, gif");
}
$filename = bin2hex(random_bytes(16)) . '.' . $file_extension;
// Move file
if (!move_uploaded_file($_FILES[$fieldname]['tmp_name'], $path . $filename)) {
throw new Exception("Unable to save image to img folder");
}
$save_to = 'img/' . $filename . '?v=' . time();
}
}
// Delete file?
if ($fielddata['value'] !== "" && array_key_exists($fieldname . '_delete', $_POST) && Request::post($fieldname . '_delete')) {
@unlink(Froxlor::getInstallDir() . '/' . explode('?', $fielddata['value'], 2)[0]);
$save_to = '';
}
// Nothing changed
if ($save_to === null) {
return [
$fielddata['settinggroup'] . '.' . $fielddata['varname'] => $fielddata['value']
];
}
if (Settings::Set($fielddata['settinggroup'] . '.' . $fielddata['varname'], $save_to) === false) {
return false;
}
return [
$fielddata['settinggroup'] . '.' . $fielddata['varname'] => $save_to
];
}
return false;
}
private static function cleanMySQLAccessHost($value)
{
if (substr($value, 0, 1) == '[' && substr($value, -1) == ']') {
return substr($value, 1, -1);
}
return $value;
}
public static function storeSettingUpdateTrafficTool($fieldname, $fielddata, $newfieldvalue)
{
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'traffictool' && $newfieldvalue != $fielddata['value']) {
$oldpath = '/' . $fielddata['value'] . '/';
$newpath = '/' . $newfieldvalue . '/';
$sel_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_HTPASSWDS . "` WHERE `path` LIKE :oldpath");
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_HTPASSWDS . "` SET `path` = :newpath WHERE `id` = :id
");
Database::pexecute($sel_stmt, [
'oldpath' => '%' . $oldpath
]);
while ($entry = $sel_stmt->fetch(\PDO::FETCH_ASSOC)) {
$full_path = str_replace($oldpath, $newpath, $entry['path']);
$eid = (int)$entry['id'];
Database::pexecute($upd_stmt, [
'newpath' => $full_path,
'id' => $eid
]);
}
}
return $returnvalue;
}
}
================================================
FILE: lib/Froxlor/Settings/index.html
================================================
================================================
FILE: lib/Froxlor/Settings.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor;
use Exception;
use Froxlor\Database\Database;
use PDO;
use PDOStatement;
/**
* Class Settings
*
* Interaction with settings from the db
*/
class Settings
{
/**
* settings data
*
* @var array
*/
private static $data = null;
/**
* local config overrides
*
* @var array
*/
private static $conf = null;
/**
* changed and unsaved settings data
*
* @var array
*/
private static $updatedata = null;
/**
* prepared statement for updating the
* settings table
*
* @var PDOStatement
*/
private static $updstmt = null;
/**
* tests if a setting-value that i s a comma separated list contains an entry
*
* @param string $setting
* a group and a varname separated by a dot (group.varname)
* @param string $entry
* the entry that is expected to be in the list
*
* @return boolean true, if the list contains $entry
*/
public static function IsInList($setting = null, $entry = null)
{
self::init();
$svalue = self::Get($setting);
if ($svalue == null) {
return false;
}
$slist = explode(",", $svalue);
return in_array($entry, $slist);
}
/**
* private constructor, reads in all settings
*/
private static function init()
{
if (empty(self::$data)) {
self::readSettings();
self::readConfig();
self::$updatedata = [];
// prepare statement
self::$updstmt = Database::prepare("
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = :value
WHERE `settinggroup` = :group AND `varname` = :varname
");
}
}
/**
* Read in all settings from the database
* and set the internal $_data array
*/
private static function readSettings()
{
$result_stmt = Database::query("
SELECT `settingid`, `settinggroup`, `varname`, `value`
FROM `" . TABLE_PANEL_SETTINGS . "`
");
self::$data = [];
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
self::$data[$row['settinggroup']][$row['varname']] = $row['value'];
}
return true;
}
/**
* Read in all config overrides from
* config/config.inc.php
*/
private static function readConfig()
{
// set defaults
self::$conf = [
'enable_webupdate' => false,
'disable_otp_security_check' => false,
'display_php_errors' => false,
];
$configfile = Froxlor::getInstallDir() . '/lib/config.inc.php';
if (@file_exists($configfile) && is_readable($configfile)) {
self::$conf = array_merge(self::$conf, include $configfile);
}
return true;
}
/**
* return a setting-value by its group and varname
*
* @param string $setting
* a group and a varname separated by a dot (group.varname)
*
* @return mixed
*/
public static function Get($setting = null)
{
self::init();
$sstr = explode(".", $setting);
// no separator - do'h
if (!isset($sstr[1])) {
return null;
}
$result = null;
if (isset(self::$data[$sstr[0]][$sstr[1]])) {
$result = self::$data[$sstr[0]][$sstr[1]];
}
return $result;
}
/**
* update a setting / set a new value
*
* @param string $setting
* a group and a varname separated by a dot (group.varname)
* @param string $value
* @param boolean $instant_save
*
* @return bool
*/
public static function Set($setting = null, $value = null, $instant_save = true)
{
self::init();
// check whether the setting exists
if (self::Get($setting) !== null) {
// set new value in array
$sstr = explode(".", $setting);
if (!isset($sstr[1])) {
return false;
}
self::$data[$sstr[0]][$sstr[1]] = $value;
// should we store to db instantly?
if ($instant_save) {
self::storeSetting($sstr[0], $sstr[1], $value);
} else {
// set temporary data for usage
if (!isset(self::$data[$sstr[0]]) || !is_array(self::$data[$sstr[0]])) {
self::$data[$sstr[0]] = [];
}
self::$data[$sstr[0]][$sstr[1]] = $value;
// set update-data when invoking Flush()
if (!isset(self::$updatedata[$sstr[0]]) || !is_array(self::$updatedata[$sstr[0]])) {
self::$updatedata[$sstr[0]] = [];
}
self::$updatedata[$sstr[0]][$sstr[1]] = $value;
}
return true;
}
return false;
}
/**
* update a value in the database
*
* @param string $group
* @param string $varname
* @param string $value
*/
private static function storeSetting($group = null, $varname = null, $value = null)
{
$upd_data = [
'group' => $group,
'varname' => $varname,
'value' => $value
];
Database::pexecute(self::$updstmt, $upd_data);
}
/**
* add a new setting to the database (mainly used in updater)
*
* @param string $setting
* a group and a varname separated by a dot (group.varname)
* @param string $value
*
* @return boolean
*/
public static function AddNew($setting = null, $value = null)
{
self::init();
// first check if it doesn't exist
if (self::Get($setting) === null) {
// validate parameter
$sstr = explode(".", $setting);
if (!isset($sstr[1])) {
return false;
}
// prepare statement
$ins_stmt = Database::prepare("
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
`settinggroup` = :group,
`varname` = :varname,
`value` = :value
");
$ins_data = [
'group' => $sstr[0],
'varname' => $sstr[1],
'value' => $value
];
Database::pexecute($ins_stmt, $ins_data);
// also set new value to internal array and make it available
self::$data[$sstr[0]][$sstr[1]] = $value;
return true;
}
return false;
}
/**
* Store all un-saved changes to the database and
* re-read in all settings
*/
public static function Flush()
{
self::init();
if (is_array(self::$updatedata) && count(self::$updatedata) > 0) {
// save all un-saved changes to the settings
foreach (self::$updatedata as $group => $vargroup) {
foreach ($vargroup as $varname => $value) {
self::storeSetting($group, $varname, $value);
}
}
// now empty the array
self::$updatedata = [];
// re-read in all settings
return self::readSettings();
}
return false;
}
/**
* forget all un-saved changes to settings
*/
public static function Stash()
{
self::init();
// empty update array
self::$updatedata = [];
// re-read in all settings
return self::readSettings();
}
public static function loadSettingsInto(&$settings_data)
{
if (is_array($settings_data) && isset($settings_data['groups']) && is_array($settings_data['groups'])) {
// prepare for use in for-loop
$row_stmt = Database::prepare("
SELECT `settinggroup`, `varname`, `value`
FROM `" . TABLE_PANEL_SETTINGS . "`
WHERE `settinggroup` = :group AND `varname` = :varname
");
foreach ($settings_data['groups'] as $settings_part => $settings_part_details) {
if (is_array($settings_part_details) && isset($settings_part_details['fields']) && is_array($settings_part_details['fields'])) {
foreach ($settings_part_details['fields'] as $field_name => $field_details) {
if (isset($field_details['settinggroup']) && isset($field_details['varname']) && isset($field_details['default'])) {
// execute prepared statement
$row = Database::pexecute_first($row_stmt, [
'group' => $field_details['settinggroup'],
'varname' => $field_details['varname']
]);
if (!empty($row)) {
$varvalue = $row['value'];
} else {
$varvalue = $field_details['default'];
}
} else {
$varvalue = false;
}
$settings_data['groups'][$settings_part]['fields'][$field_name]['value'] = $varvalue;
}
}
}
}
}
public static function refreshState(): void
{
self::$data = null;
self::init();
}
public static function getAll(): array
{
self::init();
return self::$data;
}
/**
* get value from config by identifier
* @throws Exception
*/
public static function Config(string $config)
{
self::init();
$result = self::$conf[$config] ?? null;
if (is_null($result)) {
throw new Exception('Unknown local config name "' . $config . '"');
}
return $result;
}
}
================================================
FILE: lib/Froxlor/System/Cronjob.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\System;
use Exception;
use Froxlor\Cron\TaskId;
use Froxlor\Database\Database;
use Froxlor\FileDir;
use Froxlor\FroxlorLogger;
use Froxlor\Settings;
use PDO;
class Cronjob
{
/**
* Function checkLastGuid
*
* Checks if the system's last guid is not higher than the one saved
* in froxlor's database. If it's higher, froxlor needs to
* set its last guid to this one to avoid conflicts with libnss-users
*
* @return null
*/
public static function checkLastGuid()
{
$mylog = FroxlorLogger::getInstanceOf();
$group_lines = [];
$group_guids = [];
$update_to_guid = 0;
$froxlor_guid = 0;
$result_stmt = Database::query("SELECT MAX(`guid`) as `fguid` FROM `" . TABLE_PANEL_CUSTOMERS . "`");
$result = $result_stmt->fetch(PDO::FETCH_ASSOC);
$froxlor_guid = $result['fguid'];
// possibly no customers yet or f*cked up lastguid settings
if ($froxlor_guid < Settings::Get('system.lastguid')) {
$froxlor_guid = Settings::Get('system.lastguid');
}
$g_file = '/etc/group';
if (file_exists($g_file)) {
if (is_readable($g_file)) {
if (true == ($groups = file_get_contents($g_file))) {
$group_lines = explode("\n", $groups);
foreach ($group_lines as $group) {
$group_guids[] = explode(":", $group);
}
foreach ($group_guids as $group) {
/**
* nogroup | nobody have very high guids
* ignore them
*/
if ($group[0] == 'nogroup' || $group[0] == 'nobody') {
continue;
}
$guid = isset($group[2]) ? (int)$group[2] : 0;
if ($guid > $update_to_guid) {
$update_to_guid = $guid;
}
}
// if it's lower, then froxlor's highest guid is the last
if ($update_to_guid < $froxlor_guid) {
$update_to_guid = $froxlor_guid;
} elseif ($update_to_guid == $froxlor_guid) {
// if it's equal, that means we already have a collision
// to ensure it won't happen again, increase the guid by one
$update_to_guid = (int)$update_to_guid++;
}
// now check if it differs from our settings
if ($update_to_guid != Settings::Get('system.lastguid')) {
$mylog->logAction(FroxlorLogger::CRON_ACTION, LOG_NOTICE,
'Updating froxlor last guid to ' . $update_to_guid);
Settings::Set('system.lastguid', $update_to_guid);
}
} else {
$mylog->logAction(FroxlorLogger::CRON_ACTION, LOG_NOTICE,
'File /etc/group not readable; cannot check for latest guid');
}
} else {
$mylog->logAction(FroxlorLogger::CRON_ACTION, LOG_NOTICE,
'File /etc/group not readable; cannot check for latest guid');
}
} else {
$mylog->logAction(FroxlorLogger::CRON_ACTION, LOG_NOTICE,
'File /etc/group does not exist; cannot check for latest guid');
}
}
public static function checkCurrentDistro(bool $is_install = false): string
{
// set default os.
if ($is_install) {
$distro = "trixie";
} else {
$distro = Settings::Get('system.distribution');
}
// read os-release
if (@file_exists('/etc/os-release') && is_readable('/etc/os-release')) {
if (function_exists('parse_ini_file')) {
$os_dist = parse_ini_file('/etc/os-release', false);
} else {
$osrf = explode("\n", file_get_contents('/etc/os-release'));
foreach ($osrf as $line) {
$osrfline = explode("=", $line);
if ($osrfline[0] == 'VERSION_CODENAME') {
$os_dist['VERSION_CODENAME'] = $osrfline[1];
} elseif ($osrfline[0] == 'ID') {
$os_dist['ID'] = $osrfline[1];
}
}
}
$distro = strtolower($os_dist['VERSION_CODENAME'] ?? ($os_dist['ID'] ?? $distro));
}
if (!$is_install && $distro != Settings::Get('system.distribution') && Settings::Get('system.distro_mismatch') != '2') {
Settings::Set('system.distro_mismatch', '1');
}
return $distro;
}
/**
* @throws Exception
*/
public static function checkLocalUserGroupMembership(): bool
{
if ((int)Settings::Get('phpfpm.enabled') == 1) {
$username = Settings::Get('phpfpm.vhost_httpuser');
} elseif ((int)Settings::Get('system.mod_fcgid') == 1) {
$username = Settings::Get('system.mod_fcgid_httpuser');
} else {
$username = Settings::Get('system.httpuser');
}
$user = posix_getpwnam($username);
$group = posix_getgrnam(Settings::Get('system.httpgroup'));
$mylog = FroxlorLogger::getInstanceOf();
if (!$user || !$group) {
$mylog->logAction(
FroxlorLogger::CRON_ACTION,
LOG_NOTICE,
'Either local froxlor user or webserver-group could not be found/read. Please check settings.'
);
return false;
}
// primary group?
if ($user['gid'] === $group['gid']) {
return true;
}
// supplementary groups?
if (in_array($username, $group['members'])) {
return true;
}
// not yet in group, add it
$mylog->logAction(
FroxlorLogger::CRON_ACTION,
LOG_NOTICE,
'Local froxlor user not in webserver-group. Adding user "' . $username . '" to group "' . Settings::Get('system.httpgroup') . '"'
);
FileDir::safe_exec('usermod -aG ' . escapeshellarg(Settings::Get('system.httpgroup')) . ' ' . escapeshellarg($username));
return true;
}
/**
* Inserts a task into the PANEL_TASKS-Table
*
* @param int $type Type of task
* @param string $params Parameter (possible to pass multiple times)
*
* @throws Exception
* @author Froxlor team (2010-)
*/
public static function inserttask(int $type, ...$params)
{
// prepare the insert-statement
$ins_stmt = Database::prepare("
INSERT INTO `" . TABLE_PANEL_TASKS . "` SET `type` = :type, `data` = :data
");
if ($type == TaskId::REBUILD_VHOST || $type == TaskId::REBUILD_DNS || $type == TaskId::CREATE_FTP || $type == TaskId::REBUILD_RSPAMD || $type == TaskId::CREATE_QUOTA || $type == TaskId::REBUILD_CRON || $type == TaskId::UPDATE_LE_SERVICES || $type == TaskId::REBUILD_NSSUSERS) {
// 4 = bind -> if bind disabled -> no task
if ($type == TaskId::REBUILD_DNS && Settings::Get('system.bind_enable') == '0') {
return;
}
// 9 = rspamd -> if antispam disabled -> no task
if ($type == TaskId::REBUILD_RSPAMD && Settings::Get('antispam.activated') == '0') {
return;
}
// 10 = quota -> if quota disabled -> no task
if ($type == TaskId::CREATE_QUOTA && Settings::Get('system.diskquota_enabled') == '0') {
return;
}
// 13 = let's encrypt for services -> if services empty = no task
if ($type == TaskId::UPDATE_LE_SERVICES && (Settings::Get('system.le_froxlor_enabled') == '0' || Settings::Get('system.le_renew_services') == '')) {
return;
}
// delete previously inserted tasks if they are the same as we only need ONE
$del_stmt = Database::prepare("
DELETE FROM `" . TABLE_PANEL_TASKS . "` WHERE `type` = :type
");
Database::pexecute($del_stmt, [
'type' => $type
]);
// insert the new task
Database::pexecute($ins_stmt, [
'type' => $type,
'data' => ''
]);
} elseif ($type == TaskId::CREATE_HOME && count($params) == 4 && $params[0] != '' && $params[1] != '' && $params[2] != '' && ($params[3] == 0 || $params[3] == 1)) {
$data = [];
$data['loginname'] = $params[0];
$data['uid'] = $params[1];
$data['gid'] = $params[2];
$data['store_defaultindex'] = $params[3];
$data = json_encode($data);
Database::pexecute($ins_stmt, [
'type' => TaskId::CREATE_HOME,
'data' => $data
]);
} elseif ($type == TaskId::DELETE_CUSTOMER_FILES && isset($params[0]) && $params[0] != '') {
$data = [];
$data['loginname'] = $params[0];
$data = json_encode($data);
Database::pexecute($ins_stmt, [
'type' => TaskId::DELETE_CUSTOMER_FILES,
'data' => $data
]);
} elseif ($type == TaskId::DELETE_EMAIL_DATA && count($params) == 2 && $params[0] != '' && $params[1] != '') {
$data = [];
$data['loginname'] = $params[0];
$data['emailpath'] = $params[1];
$data = json_encode($data);
Database::pexecute($ins_stmt, [
'type' => TaskId::DELETE_EMAIL_DATA,
'data' => $data
]);
} elseif ($type == TaskId::DELETE_FTP_DATA && count($params) == 2 && $params[0] != '' && $params[1] != '') {
$data = [];
$data['loginname'] = $params[0];
$data['homedir'] = $params[1];
$data = json_encode($data);
Database::pexecute($ins_stmt, [
'type' => TaskId::DELETE_FTP_DATA,
'data' => $data
]);
} elseif ($type == TaskId::DELETE_DOMAIN_PDNS && isset($params[0]) && $params[0] != '' && Settings::Get('system.bind_enable') == '1' && Settings::Get('system.dns_server') == 'PowerDNS') {
// -> if bind disabled or dns-server not PowerDNS -> no task
$data = [];
$data['domain'] = $params[0];
$data = json_encode($data);
Database::pexecute($ins_stmt, [
'type' => TaskId::DELETE_DOMAIN_PDNS,
'data' => $data
]);
} elseif ($type == TaskId::DELETE_DOMAIN_SSL && isset($params[0]) && $params[0] != '') {
$data = [];
$data['domain'] = $params[0];
$data = json_encode($data);
Database::pexecute($ins_stmt, [
'type' => TaskId::DELETE_DOMAIN_SSL,
'data' => $data
]);
} elseif ($type == TaskId::CREATE_CUSTOMER_DATADUMP && isset($params[0]) && is_array($params[0])) {
$data = json_encode($params[0]);
Database::pexecute($ins_stmt, [
'type' => TaskId::CREATE_CUSTOMER_DATADUMP,
'data' => $data
]);
}
}
/**
* returns an array of all cronjobs and when they last were executed
*
* @return array
*/
public static function getCronjobsLastRun(): array
{
$query = "SELECT `lastrun`, `desc_lng_key` FROM `" . TABLE_PANEL_CRONRUNS . "` WHERE `isactive` = '1' ORDER BY `cronfile` ASC";
$result = Database::query($query);
$cronjobs_last_run = [];
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$cronjobs_last_run[] = [
'title' => lng('crondesc.' . $row['desc_lng_key']),
'lastrun' => $row['lastrun']
];
}
return $cronjobs_last_run;
}
/**
* @param string $module
* @param int $isactive
* @return void
* @throws Exception
*/
public static function toggleCronStatus(string $module, int $isactive = 0)
{
if ($isactive != 1) {
$isactive = 0;
}
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `isactive` = :active WHERE `module` = :module
");
Database::pexecute($upd_stmt, [
'active' => $isactive,
'module' => $module
]);
}
/**
* returns an array of tasks that are queued to be run by the cronjob
*
* @return array
*/
public static function getOutstandingTasks(): array
{
$query = "SELECT * FROM `" . TABLE_PANEL_TASKS . "` ORDER BY `type` ASC";
$result = Database::query($query);
$tasks = [];
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
if ($row['data'] != '') {
$row['data'] = json_decode($row['data'], true);
}
$task_id = $row['type'];
if (TaskId::isValid($task_id)) {
$task_constname = TaskId::convertToConstant($task_id);
$lngParams = [];
if (is_array($row['data'])) {
// task includes loginname
if (isset($row['data']['loginname'])) {
$lngParams = [$row['data']['loginname']];
}
// task includes domain data
if (isset($row['data']['domain'])) {
$lngParams = [$row['data']['domain']];
}
}
$task = [
'desc' => lng('tasks.' . $task_constname, $lngParams)
];
} else {
// unknown
$task = ['desc' => "ERROR: Unknown task type '" . $row['type'] . "'"];
}
$tasks[] = $task;
}
if (empty($tasks)) {
$tasks = [['desc' => lng('tasks.noneoutstanding')]];
}
return $tasks;
}
/**
* Send notification to system admin via email
*
* @param string $message
* @param string $subject
*
* @return void
*/
public static function notifyMailToAdmin(string $message, string $subject = "[froxlor] Important notice")
{
$mail = new Mailer(true);
$mailerror = false;
$mailerr_msg = "";
try {
$mail->Subject = $subject;
$mail->AltBody = $message;
$mail->MsgHTML(nl2br($message));
$mail->AddAddress(Settings::Get('panel.adminmail'), Settings::Get('panel.adminmail_defname'));
$mail->Send();
} catch (\PHPMailer\PHPMailer\Exception $e) {
$mailerr_msg = $e->errorMessage();
$mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$mailerror = true;
}
$mail->ClearAddresses();
if ($mailerror) {
echo 'Error sending mail: ' . $mailerr_msg . "\n";
}
}
/**
* @param string $cronname
* @return void
* @throws Exception
*/
public static function updateLastRunOfCron(string $cronname)
{
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `lastrun` = UNIX_TIMESTAMP() WHERE `cronfile` = :cron;
");
Database::pexecute($upd_stmt, [
'cron' => $cronname
]);
}
}
================================================
FILE: lib/Froxlor/System/Crypt.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\System;
use Froxlor\Database\Database;
use Froxlor\Froxlor;
use Froxlor\Settings;
use Froxlor\Validate\Validate;
class Crypt
{
/**
* Generates a random password
*
* @param int $length optional, will be read from settings if not given
* @param bool $isSalt optional, default false, do not include special characters
*
* @return string
*/
public static function generatePassword(int $length = 0, bool $isSalt = false): string
{
$alpha_lower = 'abcdefghijklmnopqrstuvwxyz';
$alpha_upper = strtoupper($alpha_lower);
$numeric = '0123456789';
$special = Settings::Get('panel.password_special_char');
if (empty($length)) {
$length = Settings::Get('panel.password_min_length') > 3 ? Settings::Get('panel.password_min_length') : 10;
}
$pw = self::specialShuffle($alpha_lower);
$n = floor(($length) / 4);
if (Settings::Get('panel.password_alpha_upper')) {
$pw .= mb_substr(self::specialShuffle($alpha_upper), 0, $n);
}
if (Settings::Get('panel.password_numeric')) {
$pw .= mb_substr(self::specialShuffle($numeric), 0, $n);
}
if (Settings::Get('panel.password_special_char_required') && !$isSalt) {
$pw .= mb_substr(self::specialShuffle($special), 0, $n);
}
$pw = mb_substr($pw, -$length);
return self::specialShuffle($pw);
}
/**
* multibyte-character safe shuffle function
*
* @param string $str
*
* @return string
*/
private static function specialShuffle(string $str): string
{
$len = mb_strlen($str);
$sploded = [];
while ($len-- > 0) {
$sploded[] = mb_substr($str, $len, 1);
}
shuffle($sploded);
return join('', $sploded);
}
/**
* return an array of available hashes
*
* @return array
*/
public static function getAvailablePasswordHashes(): array
{
// get available pwd-hases
$available_pwdhashes = [
PASSWORD_DEFAULT => lng('serversettings.systemdefault')
];
if (defined('PASSWORD_BCRYPT')) {
$available_pwdhashes[PASSWORD_BCRYPT] = 'Bcrypt/Blowfish' . (PASSWORD_DEFAULT == PASSWORD_BCRYPT ? ' (' . lng('serversettings.systemdefault') . ')' : '');
}
if (defined('PASSWORD_ARGON2I')) {
$available_pwdhashes[PASSWORD_ARGON2I] = 'Argon2i' . (PASSWORD_DEFAULT == PASSWORD_ARGON2I ? ' (' . lng('serversettings.systemdefault') . ')' : '');
}
if (defined('PASSWORD_ARGON2ID')) {
$available_pwdhashes[PASSWORD_ARGON2ID] = 'Argon2id' . (PASSWORD_DEFAULT == PASSWORD_ARGON2ID ? ' (' . lng('serversettings.systemdefault') . ')' : '');
}
return $available_pwdhashes;
}
/**
* Function validatePassword
*
* if password-min-length is set in settings
* we check against the length, if not matched
* an error message will be output and 'exit' is called
*
* @param string $password the password to validate
* @param bool $json_response
*
* @return string either the password or an errormessage+exit
*/
public static function validatePassword(string $password, bool $json_response = false): string
{
if (Settings::Get('panel.password_min_length') > 0) {
$password = Validate::validate($password, Settings::Get('panel.password_min_length'),
'/^.{' . (int)Settings::Get('panel.password_min_length') . ',}$/D', 'notrequiredpasswordlength', [],
$json_response);
}
if (Settings::Get('panel.password_regex') != '') {
$password = Validate::validate($password, Settings::Get('panel.password_regex'),
Settings::Get('panel.password_regex'), 'notrequiredpasswordcomplexity', [], $json_response);
} else {
if (Settings::Get('panel.password_alpha_lower')) {
$password = Validate::validate($password, '/.*[a-z]+.*/', '/.*[a-z]+.*/',
'notrequiredpasswordcomplexity', [], $json_response);
}
if (Settings::Get('panel.password_alpha_upper')) {
$password = Validate::validate($password, '/.*[A-Z]+.*/', '/.*[A-Z]+.*/',
'notrequiredpasswordcomplexity', [], $json_response);
}
if (Settings::Get('panel.password_numeric')) {
$password = Validate::validate($password, '/.*[0-9]+.*/', '/.*[0-9]+.*/',
'notrequiredpasswordcomplexity', [], $json_response);
}
if (Settings::Get('panel.password_special_char_required')) {
$password = Validate::validate($password,
'/.*[' . preg_quote(Settings::Get('panel.password_special_char'), '/') . ']+.*/',
'/.*[' . preg_quote(Settings::Get('panel.password_special_char'), '/') . ']+.*/',
'notrequiredpasswordcomplexity', [], $json_response);
}
}
return $password;
}
/**
* Function validatePasswordLogin
*
* compare user password-hash with given user-password
* and check if they are the same
* additionally it updates the hash if the system settings changed
* or if the very old md5() sum is used
*
* @param array $userinfo user-data from table
* @param string $password the password to validate
* @param string $table either panel_customers or panel_admins
* @param string $uid user-id-field in $table
*
* @return bool
* @throws \Exception
*/
public static function validatePasswordLogin(
array $userinfo,
string $password,
string $table = 'panel_customers',
string $uid = 'customerid'
): bool {
$algo = Settings::Get('system.passwordcryptfunc') !== null ? Settings::Get('system.passwordcryptfunc') : PASSWORD_DEFAULT;
if (is_numeric($algo)) {
// old setting format
$algo = PASSWORD_DEFAULT;
Settings::Set('system.passwordcryptfunc', $algo);
}
$pwd_hash = $userinfo['password'];
$update_hash = false;
$pwd_check = "";
// check for good'ole md5
if (strlen($pwd_hash) == 32 && ctype_xdigit($pwd_hash)) {
$pwd_check = md5($password);
$update_hash = true;
}
if ($pwd_hash === $pwd_check || password_verify($password, $pwd_hash)) {
// check for update of hash (only if our database is ready to handle the bigger string)
$is_ready = Froxlor::versionCompare2("0.9.33", Froxlor::getVersion()) <= 0;
if ((password_needs_rehash($pwd_hash, $algo) || $update_hash) && $is_ready) {
$upd_stmt = Database::prepare("
UPDATE " . $table . " SET `password` = :newpasswd WHERE `" . $uid . "` = :uid
");
$params = [
'newpasswd' => self::makeCryptPassword($password),
'uid' => $userinfo[$uid]
];
Database::pexecute($upd_stmt, $params);
}
return true;
}
return false;
}
/**
* Make encrypted password from clear text password
*
* @param string $password Password to be encrypted
* @param bool $htpasswd optional whether to generate a bcrypt password for directory protection
* @param bool $ftpd optional generates sha256 password strings for proftpd/pureftpd
*
* @return string encrypted password
*/
public static function makeCryptPassword(string $password, bool $htpasswd = false, bool $ftpd = false): string
{
if ($htpasswd || $ftpd) {
if ($ftpd) {
// sha256 compatible for proftpd and pure-ftpd
return crypt($password, '$5$' . self::generatePassword(16, true) . '$');
}
// bcrypt hash for dir-protection
return password_hash($password, PASSWORD_BCRYPT);
}
// crypt using the specified crypt-algorithm or system default
$algo = Settings::Get('system.passwordcryptfunc') !== null ? Settings::Get('system.passwordcryptfunc') : PASSWORD_DEFAULT;
return password_hash($password, $algo);
}
/**
* creates a self-signed ECC-certificate for the froxlor-vhost
* and sets the content to the corresponding files set in the
* settings for ssl-certificate-file and ssl-certificate-key
*
* @return void
*/
public static function createSelfSignedCertificate()
{
// validate that we have file names in the settings
$certFile = Settings::Get('system.ssl_cert_file');
$keyFile = Settings::Get('system.ssl_key_file');
if (empty($certFile)) {
$certFile = '/etc/ssl/froxlor_selfsigned.pem';
Settings::Set('system.ssl_cert_file', $certFile);
}
if (empty($keyFile)) {
$keyFile = '/etc/ssl/froxlor_selfsigned.key';
Settings::Set('system.ssl_key_file', $keyFile);
}
// certificate info
$dn = [
"countryName" => "DE",
"stateOrProvinceName" => "Hessen",
"localityName" => "Frankfurt am Main",
"organizationName" => "froxlor",
"organizationalUnitName" => "froxlor Server Management Panel",
"commonName" => Settings::Get('system.hostname'),
"emailAddress" => Settings::Get('panel.adminmail')
];
// create private key
$privkey = openssl_pkey_new([
"private_key_type" => OPENSSL_KEYTYPE_EC,
"curve_name" => 'prime256v1',
]);
// create signing request
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha384'));
// sign csr
$x509 = openssl_csr_sign($csr, null, $privkey, 365, array('digest_alg' => 'sha384'));
// export to files
openssl_x509_export_to_file($x509, $certFile);
openssl_pkey_export_to_file($privkey, $keyFile);
}
}
================================================
FILE: lib/Froxlor/System/IPTools.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\System;
class IPTools
{
/**
* Converts CIDR to a netmask address
*
* @thx to https://stackoverflow.com/a/5711080/3020926
* @param string $cidr
*
* @return string
*/
public static function cidr2NetmaskAddr(string $cidr): string
{
$ta = substr($cidr, strpos($cidr, '/') + 1) * 1;
$netmask = str_split(str_pad(str_pad('', $ta, '1'), 32, '0'), 8);
foreach ($netmask as &$element) {
$element = bindec($element);
}
return implode('.', $netmask);
}
/**
* Checks whether the given $ip is in range of given ip/cidr range
*
* @param array $ip_cidr 0 => ip, 1 => netmask in decimal, e.g. [0 => '123.123.123.123', 1 => 24]
* @param string $ip ip-address to check
*
* @return bool
*/
public static function ip_in_range(array $ip_cidr, string $ip): bool
{
$netip = $ip_cidr[0];
if (self::is_ipv6($netip)) {
return self::ipv6_in_range($ip_cidr, $ip);
}
$netmask = $ip_cidr[1];
$range_decimal = ip2long($netip);
$ip_decimal = ip2long($ip);
$wildcard_decimal = pow(2, (32 - $netmask)) - 1;
$netmask_decimal = ~$wildcard_decimal;
return (($ip_decimal & $netmask_decimal) == ($range_decimal & $netmask_decimal));
}
/**
* Checks if an $address (IP) is IPv6
*
* @param string $address
*
* @return string|bool ip address on success, false on failure
*/
public static function is_ipv6(string $address)
{
return filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
}
/**
* Checks whether the given ipv6 $ip is in range of given ip/cidr range
*
* @param array $ip_cidr 0 => ip, 1 => netmask in decimal, e.g. [0 => '123:123::1', 1 => 64]
* @param string $ip ip-address to check
*
* @return bool
*/
private static function ipv6_in_range(array $ip_cidr, string $ip): bool
{
$in_range = false;
$size = 128 - $ip_cidr[1];
if ($size == 0) {
return inet_ntop(inet_pton($ip_cidr[0])) == inet_ntop(inet_pton($ip));
}
$addr = gmp_init('0x' . str_replace(':', '', self::inet6_expand($ip_cidr[0])));
$mask = gmp_init('0x' . str_replace(':', '', self::inet6_expand(self::inet6_prefix_to_mask($ip_cidr[1]))));
$prefix = gmp_and($addr, $mask);
$start = gmp_strval(gmp_add($prefix, '0x1'), 16);
$end = '0b';
for ($i = 0; $i < $size; $i++) {
$end .= '1';
}
$end = gmp_strval(gmp_add($prefix, gmp_init($end)), 16);
$start_result = '';
for ($i = 0; $i < 8; $i++) {
$start_result .= substr($start, $i * 4, 4);
if ($i != 7) {
$start_result .= ':';
}
}
$end_result = '';
for ($i = 0; $i < 8; $i++) {
$end_result .= substr($end, $i * 4, 4);
if ($i != 7) {
$end_result .= ':';
}
}
$first = self::ip2long6($start_result);
$last = self::ip2long6($end_result);
$ip = self::ip2long6($ip);
$in_range = ($ip >= $first && $ip <= $last);
return $in_range;
}
/**
* @param string $addr
* @return false|string
*/
private static function inet6_expand(string $addr)
{
// Check if there are segments missing, insert if necessary
if (strpos($addr, '::') !== false) {
$part = explode('::', $addr);
$part[0] = explode(':', $part[0]);
$part[1] = explode(':', $part[1]);
$missing = [];
for ($i = 0; $i < (8 - (count($part[0]) + count($part[1]))); $i++) {
$missing[] = '0000';
}
$missing = array_merge($part[0], $missing);
$part = array_merge($missing, $part[1]);
} else {
$part = explode(":", $addr);
}
// Pad each segment until it has 4 digits
foreach ($part as &$p) {
while (strlen($p) < 4) {
$p = '0' . $p;
}
}
unset($p);
// Join segments
$result = implode(':', $part);
// Quick check to make sure the length is as expected
if (strlen($result) == 39) {
return $result;
} else {
return false;
}
}
/**
* @param int $prefix
* @return false|string
*/
private static function inet6_prefix_to_mask(int $prefix)
{
/* Make sure the prefix is a number between 1 and 127 (inclusive) */
if ($prefix < 0 || $prefix > 128) {
return false;
}
$mask = '0b';
$mask .= str_repeat('1', $prefix);
for ($i = strlen($mask) - 2; $i < 128; $i++) {
$mask .= '0';
}
$mask = gmp_strval(gmp_init($mask), 16);
$result = '';
for ($i = 0; $i < 8; $i++) {
$result .= substr($mask, $i * 4, 4);
if ($i != 7) {
$result .= ':';
}
} // for
return inet_ntop(inet_pton($result));
}
/**
* @param string $ip
* @return string
*/
private static function ip2long6(string $ip): string
{
$ip_n = inet_pton($ip);
$bits = 15; // 16 x 8 bit = 128bit
$ipv6long = '';
while ($bits >= 0) {
$bin = sprintf("%08b", (ord($ip_n[$bits])));
$ipv6long = $bin . $ipv6long;
$bits--;
}
return gmp_strval(gmp_init($ipv6long, 2), 10);
}
}
================================================
FILE: lib/Froxlor/System/Mailer.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\System;
use Froxlor\Settings;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;
class Mailer extends PHPMailer
{
/**
* class constructor
*
* @param bool $exceptions whether to throw exceptions or not
*
* @throws Exception
*/
public function __construct(bool $exceptions = false)
{
parent::__construct($exceptions);
$this->CharSet = "UTF-8";
if (Settings::Get('system.mail_use_smtp')) {
$this->isSMTP();
$this->Host = Settings::Get('system.mail_smtp_host');
$this->SMTPAuth = Settings::Get('system.mail_smtp_auth') == '1';
$this->Username = Settings::Get('system.mail_smtp_user');
$this->Password = Settings::Get('system.mail_smtp_passwd');
if (Settings::Get('system.mail_smtp_usetls')) {
$this->SMTPSecure = 'tls';
} else {
$this->SMTPAutoTLS = false;
}
$this->Port = Settings::Get('system.mail_smtp_port');
}
/**
* use froxlor's email-validation
*/
self::$validator = [
'\Froxlor\\Validate\\Validate',
'validateEmail'
];
if (self::ValidateAddress(Settings::Get('panel.adminmail')) !== false) {
// set return-to address and custom sender-name, see #76
$this->setFrom(Settings::Get('panel.adminmail'), Settings::Get('panel.adminmail_defname'));
if (Settings::Get('panel.adminmail_return') != '') {
$this->addReplyTo(Settings::Get('panel.adminmail_return'), Settings::Get('panel.adminmail_defname'));
}
}
}
}
================================================
FILE: lib/Froxlor/System/Markdown.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\System;
use League\CommonMark\Exception\CommonMarkException;
use League\CommonMark\GithubFlavoredMarkdownConverter;
class Markdown
{
private static $converter = null;
public static function converter(): ?GithubFlavoredMarkdownConverter
{
if (is_null(self::$converter)) {
self::$converter = new GithubFlavoredMarkdownConverter([
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
}
return self::$converter;
}
public static function cleanCustomNotes(string $note = ""): string
{
if (!empty($note)) {
try {
$note = self::converter()->convert($note)->getContent();
} catch (CommonMarkException $e) {
$note = "";
}
}
return $note;
}
}
================================================
FILE: lib/Froxlor/System/MysqlHandler.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\System;
use Froxlor\Database\Database;
use Monolog\Handler\AbstractProcessingHandler;
use Monolog\Logger;
class MysqlHandler extends AbstractProcessingHandler
{
protected static array $froxlorLevels = [
Logger::DEBUG => LOG_DEBUG,
Logger::INFO => LOG_INFO,
Logger::NOTICE => LOG_NOTICE,
Logger::WARNING => LOG_WARNING,
Logger::ERROR => LOG_ERR,
Logger::CRITICAL => LOG_ERR,
Logger::ALERT => LOG_ERR,
Logger::EMERGENCY => LOG_ERR
];
protected $pdoStatement = null;
/**
* Constructor
*
* @param bool|int $level Debug level which this handler should store
* @param bool $bubble
*/
public function __construct($level = Logger::DEBUG, bool $bubble = true)
{
parent::__construct($level, $bubble);
}
/**
* Writes the record down to the log
*
* @param array $record
* @return void
*/
protected function write(array $record)
{
$this->insert([
':message' => $record['message'],
':contextUser' => ($record['context']['user'] ?? 'unknown'),
':contextAction' => ($record['context']['action'] ?? '0'),
':level' => self::$froxlorLevels[$record['level']],
':datetime' => $record['datetime']->format('U')
]);
}
/**
* Insert the data to the logger table
*
* @param array $data
* @return bool
*/
protected function insert(array $data): bool
{
if ($this->pdoStatement === null) {
$sql = "INSERT INTO `panel_syslog` SET `text` = :message, `user` = :contextUser, `action` = :contextAction, `type` = :level, `date` = :datetime";
$this->pdoStatement = Database::prepare($sql);
}
return $this->pdoStatement->execute($data);
}
}
================================================
FILE: lib/Froxlor/System/index.html
================================================
================================================
FILE: lib/Froxlor/Traffic/Traffic.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\Traffic;
use Froxlor\Api\Commands\Customers;
use Froxlor\Api\Commands\Traffic as TrafficAPI;
use Froxlor\Database\Database;
use Froxlor\UI\Collection;
class Traffic
{
/**
* @param array $userinfo
* @param ?string $range
* @return array
* @throws \Exception
*/
public static function getCustomerStats(array $userinfo, string $range = null, bool $overview = false): array
{
$trafficCollectionObj = (new Collection(TrafficAPI::class, $userinfo,
self::getParamsByRange($range, ['customer_traffic' => true])));
if (($userinfo['adminsession'] ?? 0) == 1) {
$trafficCollectionObj->has('customer', Customers::class, 'customerid', 'customerid');
}
$trafficCollection = $trafficCollectionObj->get();
// build stats for each user
$users = [];
$years = [];
$months = [];
$days = [];
foreach ($trafficCollection['data']['list'] as $item) {
$http = $item['http'];
$ftp = ($item['ftp_up'] + $item['ftp_down']);
$mail = $item['mail'];
$total = $http + $ftp + $mail;
if (empty($users[$item['customerid']])) {
$users[$item['customerid']] = [
'total' => 0.00,
'http' => 0.00,
'ftp' => 0.00,
'mail' => 0.00,
];
}
// per user total
if (($userinfo['adminsession'] ?? 0) == 1) {
$users[$item['customerid']]['loginname'] = $item['customer']['loginname'];
}
$users[$item['customerid']]['total'] += $total;
$users[$item['customerid']]['http'] += $http;
$users[$item['customerid']]['ftp'] += $ftp;
$users[$item['customerid']]['mail'] += $mail;
if (!$overview) {
if (empty($years[$item['year']])) {
$years[$item['year']] = [
'total' => 0.00,
'http' => 0.00,
'ftp' => 0.00,
'mail' => 0.00,
];
}
if (empty($months[$item['month'] . '/' . $item['year']])) {
$months[$item['month'] . '/' . $item['year']] = [
'total' => 0.00,
'http' => 0.00,
'ftp' => 0.00,
'mail' => 0.00,
];
}
if (empty($days[$item['day'] . '.' . $item['month'] . '.' . $item['year']])) {
$days[$item['day'] . '.' . $item['month'] . '.' . $item['year']] = [
'total' => 0.00,
'http' => 0.00,
'ftp' => 0.00,
'mail' => 0.00,
];
}
// per year
$years[$item['year']]['total'] += $total;
$years[$item['year']]['http'] += $http;
$years[$item['year']]['ftp'] += $ftp;
$years[$item['year']]['mail'] += $mail;
// per month
$months[$item['month'] . '/' . $item['year']]['total'] += $total;
$months[$item['month'] . '/' . $item['year']]['http'] += $http;
$months[$item['month'] . '/' . $item['year']]['ftp'] += $ftp;
$months[$item['month'] . '/' . $item['year']]['mail'] += $mail;
// per day
$days[$item['day'] . '.' . $item['month'] . '.' . $item['year']]['total'] += $total;
$days[$item['day'] . '.' . $item['month'] . '.' . $item['year']]['http'] += $http;
$days[$item['day'] . '.' . $item['month'] . '.' . $item['year']]['ftp'] += $ftp;
$days[$item['day'] . '.' . $item['month'] . '.' . $item['year']]['mail'] += $mail;
}
}
// calculate overview for given range from users
$metrics = [
'total' => 0.00,
'http' => 0.00,
'ftp' => 0.00,
'mail' => 0.00,
];
foreach ($users as $user) {
$metrics['total'] += $user['total'];
$metrics['http'] += $user['http'];
$metrics['ftp'] += $user['ftp'];
$metrics['mail'] += $user['mail'];
}
$years_avail = [];
if (!$overview) {
// get all possible years for filter
$sel_stmt = Database::prepare("SELECT DISTINCT year FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE 1 ORDER BY `year` DESC");
Database::pexecute($sel_stmt);
$years_avail = $sel_stmt->fetchAll(\PDO::FETCH_ASSOC);
}
// sort users by total traffic
uasort($users, function ($user_a, $user_b) {
if ($user_a['total'] == $user_b['total']) {
return 0;
}
return ($user_a['total'] < $user_b['total']) ? 1 : -1;
});
return [
'metrics' => $metrics,
'users' => $users,
'years' => $years,
'months' => $months,
'days' => $days,
'range' => $range,
'years_avail' => $years_avail
];
}
/**
* @param ?string $range
* @param array $params
* @return array
* @throws \Exception
*/
private static function getParamsByRange(string $range = null, array $params = []): array
{
$dateParams = [];
if (preg_match("/year:([0-9]{4})/", $range, $matches)) {
$dateParams = ['year' => $matches[1]];
} elseif (preg_match("/months:([1-9]([0-9]+)?)/", $range, $matches)) {
$dt = (new \DateTime())->sub(new \DateInterval('P' . $matches[1] . 'M'))->format('U');
$dateParams = ['date_from' => $dt];
} elseif (preg_match("/days:([1-9]([0-9]+)?)/", $range, $matches)) {
$dt = (new \DateTime())->sub(new \DateInterval('P' . $matches[1] . 'D'))->format('U');
$dateParams = ['date_from' => $dt];
} elseif (preg_match("/hours:([1-9]([0-9]+)?)/", $range, $matches)) {
$dt = (new \DateTime())->sub(new \DateInterval('PT' . $matches[1] . 'H'))->format('U');
$dateParams = ['date_from' => $dt];
} elseif (preg_match("/currentmonth/", $range, $matches)) {
$dt = (new \DateTime("first day of this month"))->setTime(0, 0, 0, 1)->format('U');
$dateParams = ['date_from' => $dt];
} elseif (preg_match("/currentyear/", $range, $matches)) {
$dt = \DateTime::createFromFormat("d.m.Y", '01.01.' . date('Y'))->setTime(0, 0, 0, 1)->format('U');
$dateParams = ['date_from' => $dt];
}
return array_merge($dateParams, $params);
}
}
================================================
FILE: lib/Froxlor/Traffic/index.html
================================================
================================================
FILE: lib/Froxlor/UI/Callbacks/Admin.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\UI\Panel\UI;
class Admin
{
public static function canChangeServerSettings(array $attributes)
{
return (bool)UI::getCurrentUser()['change_serversettings'];
}
public static function isNotMe(array $attributes)
{
return (UI::getCurrentUser()['adminid'] != $attributes['fields']['adminid']);
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Customer.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\Settings;
use Froxlor\System\Markdown;
class Customer
{
public static function isLocked(array $attributes): bool
{
return $attributes['fields']['loginfail_count'] >= Settings::Get('login.maxloginattempts')
&& $attributes['fields']['lastlogin_fail'] > (time() - Settings::Get('login.deactivatetime'));
}
public static function hasNote(array $attributes): bool
{
$cleanNote = Markdown::cleanCustomNotes($attributes['fields']['custom_notes'] ?? "");
return !empty($cleanNote);
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Dns.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
class Dns
{
public static function prio(array $attributes): string
{
return ($attributes['fields']['prio'] <= 0
&& $attributes['fields']['type'] != 'MX'
&& $attributes['fields']['type'] != 'SRV') ? '' : $attributes['data'];
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Domain.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\CurrentUser;
use Froxlor\Database\Database;
use Froxlor\Domain\Domain as DDomain;
use Froxlor\FileDir;
use Froxlor\Settings;
use Froxlor\UI\Panel\UI;
class Domain
{
public static function domainEditLink(array $attributes): array
{
$linker = UI::getLinker();
return [
'macro' => 'link',
'data' => [
'text' => $attributes['data'],
'href' => $linker->getLink([
'section' => 'domains',
'page' => 'domains',
'action' => 'edit',
'id' => $attributes['fields']['id'],
]),
'target' => '_blank'
]
];
}
public static function domainWithCustomerLink(array $attributes): string
{
$linker = UI::getLinker();
$result = '' . $attributes['data'] . '';
if ((int)UI::getCurrentUser()['adminsession'] == 1 && $attributes['fields']['customerid']) {
$result .= ' (' . $attributes['fields']['loginname'] . ')';
}
return $result;
}
public static function domainTarget(array $attributes)
{
if (empty($attributes['fields']['aliasdomain'])) {
if ($attributes['fields']['deactivated']) {
return lng('admin.deactivated');
}
if ($attributes['fields']['email_only']) {
return lng('domains.email_only');
}
// path or redirect
if (preg_match('/^https?\:\/\//', $attributes['fields']['documentroot'])) {
return [
'macro' => 'link',
'data' => [
'text' => $attributes['fields']['documentroot'],
'href' => $attributes['fields']['documentroot'],
'target' => '_blank'
]
];
} else {
// show docroot nicely
if (strpos($attributes['fields']['documentroot'], UI::getCurrentUser()['documentroot']) === 0) {
$attributes['fields']['documentroot'] = FileDir::makeCorrectDir(str_replace(UI::getCurrentUser()['documentroot'], "/", $attributes['fields']['documentroot']));
}
return $attributes['fields']['documentroot'];
}
}
return lng('domains.aliasdomain') . ' ' . $attributes['fields']['aliasdomain'];
}
public static function domainExternalLinkInfo(array $attributes): string
{
$result = '';
if ($attributes['fields']['parentdomainid'] != 0) {
$result = '';
}
$result .= '' . $attributes['data'] . '';
// check for statistics if parentdomainid==0 to show stats-link for customers
if ((int)UI::getCurrentUser()['adminsession'] == 0
&& $attributes['fields']['parentdomainid'] == 0
&& $attributes['fields']['deactivated'] == 0
&& !$attributes['fields']['email_only']
&& preg_match('/^https?:\/\/(.*)/i', $attributes['fields']['documentroot']) == false
) {
$statsapp = Settings::Get('system.traffictool');
$result .= ' ';
}
if ($attributes['fields']['registration_date'] != '') {
$result .= ' ' . lng('domains.registration_date') . ': ' . $attributes['fields']['registration_date'] . '';
}
if ($attributes['fields']['termination_date'] != '') {
$result .= ' ' . lng('domains.termination_date_overview') . ': ' . $attributes['fields']['termination_date'] . '';
}
return $result;
}
public static function canEdit(array $attributes): bool
{
return $attributes['fields']['caneditdomain'] && !$attributes['fields']['deactivated'];
}
public static function canViewLogs(array $attributes): bool
{
if ((int)$attributes['fields']['email_only'] == 0 && !$attributes['fields']['deactivated']) {
if ((int)UI::getCurrentUser()['adminsession'] == 0 && (bool)UI::getCurrentUser()['logviewenabled']) {
return true;
} elseif ((int)UI::getCurrentUser()['adminsession'] == 1) {
return true;
}
}
return false;
}
public static function canDelete(array $attributes): bool
{
return $attributes['fields']['parentdomainid'] != '0'
&& empty($attributes['fields']['domainaliasid']);
}
public static function adminCanDelete(array $attributes): bool
{
return $attributes['fields']['id'] != Settings::Get('system.hostname_id')
&& empty($attributes['fields']['domainaliasid'])
&& $attributes['fields']['standardsubdomain'] != $attributes['fields']['id'];
}
public static function canEditDNS(array $attributes): bool
{
return $attributes['fields']['isbinddomain'] == '1'
&& UI::getCurrentUser()['dnsenabled'] == '1'
&& $attributes['fields']['caneditdomain'] == '1'
&& Settings::Get('system.bind_enable') == '1'
&& Settings::Get('system.dnsenabled') == '1'
&& !$attributes['fields']['deactivated'];
}
public static function adminCanEditDNS(array $attributes): bool
{
return $attributes['fields']['isbinddomain'] == '1'
&& Settings::Get('system.bind_enable') == '1'
&& Settings::Get('system.dnsenabled') == '1';
}
public static function hasLetsEncryptActivated(array $attributes): bool
{
return ((bool)$attributes['fields']['letsencrypt'] && (int)$attributes['fields']['email_only'] == 0);
}
/**
* @throws \Exception
*/
public static function canEditSSL(array $attributes): bool
{
if (Settings::Get('system.use_ssl') == '1'
&& DDomain::domainHasSslIpPort($attributes['fields']['id'])
&& (CurrentUser::isAdmin() || (!CurrentUser::isAdmin() && (int)$attributes['fields']['caneditdomain'] == 1))
&& (int)$attributes['fields']['letsencrypt'] == 0
&& !(int)$attributes['fields']['email_only']
&& !$attributes['fields']['deactivated']
) {
return true;
}
return false;
}
public static function canEditAlias(array $attributes): bool
{
return !empty($attributes['fields']['domainaliasid']);
}
public static function isAssigned(array $attributes): bool
{
return ($attributes['fields']['parentdomainid'] == 0 && empty($attributes['fields']['domainaliasid']));
}
public static function editSSLButtons(array $attributes): array
{
$result = [
'icon' => 'fa-solid fa-shield',
'title' => lng('panel.ssleditor'),
'href' => [
'section' => 'domains',
'page' => 'domainssleditor',
'action' => 'view',
'id' => ':id'
],
];
if ($attributes['fields']['domain_hascert'] == 1) {
// specified certificate for domain
$result['icon'] .= ' text-success';
} elseif ($attributes['fields']['domain_hascert'] == 2) {
// shared certificates (e.g. subdomain of domain where certificate is specified)
$result['icon'] .= ' text-warning';
$result['title'] .= "\n" . lng('panel.ssleditor_infoshared');
} elseif ($attributes['fields']['domain_hascert'] == 0) {
// no certificate specified, using global fallbacks (IPs and Ports or if empty SSL settings)
$result['icon'] .= ' text-danger';
$result['title'] .= "\n" . lng('panel.ssleditor_infoglobal');
}
$result['visible'] = [Domain::class, 'canEditSSL'];
return $result;
}
public static function listIPs(array $attributes): string
{
if (!empty($attributes['fields']['ipsandports'])) {
$iplist = "";
foreach ($attributes['fields']['ipsandports'] as $ipport) {
$iplist .= $ipport['ip'] . ':' . $ipport['port'] . ' ';
}
return $iplist;
}
return lng('panel.listing_empty');
}
/**
* @throws \Exception
*/
public static function getPhpConfigName(array $attributes): string
{
$sel_stmt = Database::prepare("SELECT `description` FROM `" . TABLE_PANEL_PHPCONFIGS . "` WHERE `id` = :id");
$phpconfig = Database::pexecute_first($sel_stmt, ['id' => $attributes['data']]);
if ((int)UI::getCurrentUser()['adminsession'] == 1) {
$linker = UI::getLinker();
$result = '' . $phpconfig['description'] . '';
} else {
$result = $phpconfig['description'];
}
return $result;
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Email.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\PhpHelper;
use Froxlor\Settings;
class Email
{
public static function account(array $attributes)
{
return [
'macro' => 'booleanWithInfo',
'data' => [
'checked' => $attributes['data'] != 0,
'info' => $attributes['data'] != 0 ? PhpHelper::sizeReadable($attributes['fields']['mboxsize'], 'GiB', 'bi', '%01.' . (int)Settings::Get('panel.decimal_places') . 'f %s') : ''
]
];
}
public static function forwarderList(array $attributes)
{
$forwarders = explode(" ", $attributes['data']);
if (($key = array_search($attributes['fields']['email_full'], $forwarders)) !== false) {
unset($forwarders[$key]);
}
if (count($forwarders) > 0) {
return implode(" ", $forwarders);
}
return "";
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Ftp.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\FileDir;
use Froxlor\UI\Panel\UI;
class Ftp
{
public static function pathRelative(array $attributes): string
{
if (strpos($attributes['data'], UI::getCurrentUser()['documentroot']) === 0) {
$attributes['data'] = str_replace(UI::getCurrentUser()['documentroot'], "/", $attributes['data']);
}
$attributes['data'] = FileDir::makeCorrectDir($attributes['data']);
return $attributes['data'];
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Impersonate.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\UI\Panel\UI;
class Impersonate
{
public static function apiAdminCustomerLink(array $attributes)
{
// my own key
$isMyKey = false;
if ($attributes['fields']['adminid'] == UI::getCurrentUser()['adminid']
&& ((AREA == 'admin' && $attributes['fields']['customerid'] == 0)
|| (AREA == 'customer' && $attributes['fields']['customerid'] == UI::getCurrentUser()['customerid'])
)
) {
// this is mine
$isMyKey = true;
}
$adminCustomerLink = "";
if (AREA == 'admin') {
if ($isMyKey) {
$adminCustomerLink = $attributes['fields']['adminname'];
} else {
if (empty($attributes['fields']['customerid'])) {
$adminCustomerLink = self::admin($attributes);
} else {
$attributes['data'] = $attributes['fields']['loginname'];
$adminCustomerLink = self::customer($attributes);
}
}
} else {
// customer do not need links
$adminCustomerLink = $attributes['fields']['loginname'];
}
return $adminCustomerLink;
}
public static function admin(array $attributes)
{
if (UI::getCurrentUser()['adminid'] != $attributes['fields']['adminid']) {
$linker = UI::getLinker();
return [
'macro' => 'link',
'data' => [
'text' => $attributes['data'],
'href' => $linker->getLink([
'section' => 'admins',
'page' => 'admins',
'action' => 'su',
'id' => $attributes['fields']['adminid'],
]),
]
];
}
return $attributes['data'];
}
public static function customer(array $attributes): array
{
$linker = UI::getLinker();
return [
'macro' => 'link',
'data' => [
'text' => $attributes['data'],
'href' => $linker->getLink([
'section' => 'customers',
'page' => 'customers',
'action' => 'su',
'sort' => $attributes['fields']['loginname'],
'id' => $attributes['fields']['customerid'],
]),
]
];
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Mysql.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\Database\Database;
class Mysql
{
public static function dbserver(array $attributes): string
{
// get sql-root access data
Database::needRoot(true, (int)$attributes['data'], false);
Database::needSqlData();
$sql_root = Database::getSqlData();
Database::needRoot(false);
return $sql_root['caption'] . ' ' . $sql_root['host'] . '';
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/PHPConf.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\Settings;
use Froxlor\Idna\IdnaWrapper;
use Froxlor\UI\Panel\UI;
class PHPConf
{
public static function domainList(array $attributes): string
{
$idna = new IdnaWrapper;
$domains = "";
$subdomains_count = count($attributes['fields']['subdomains']);
foreach ($attributes['fields']['domains'] as $configdomain) {
$domains .= $idna->decode($configdomain) . " ";
}
if ($subdomains_count == 0 && empty($domains)) {
$domains = lng('admin.phpsettings.notused');
} else {
if (Settings::Get('panel.phpconfigs_hidesubdomains') == '1') {
$domains .= !empty($subdomains_count) ? ((!empty($domains) ? '+ ' : '') . $subdomains_count . ' ' . lng('customer.subdomains')) : '';
} else {
foreach ($attributes['fields']['subdomains'] as $configdomain) {
$domains .= $idna->decode($configdomain) . " ";
}
}
}
return $domains;
}
public static function configsList(array $attributes)
{
$configs = "";
foreach ($attributes['fields']['configs'] as $configused) {
$configs .= $configused . " ";
}
return $configs;
}
public static function isNotDefault(array $attributes)
{
if (UI::getCurrentUser()['change_serversettings']) {
return $attributes['fields']['id'] != 1;
}
return false;
}
public static function fpmConfLink(array $attributes)
{
if (UI::getCurrentUser()['change_serversettings']) {
$linker = UI::getLinker();
return [
'macro' => 'link',
'data' => [
'text' => $attributes['data'],
'href' => $linker->getLink([
'section' => 'phpsettings',
'page' => 'fpmdaemons',
'searchfield' => 'id',
'searchtext' => $attributes['fields']['fpmsettingid'],
]),
]
];
}
return $attributes['data'];
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/ProgressBar.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Exception;
use Froxlor\Traffic\Traffic;
use Froxlor\PhpHelper;
use Froxlor\Settings;
use Froxlor\UI\Response;
class ProgressBar
{
/**
* get progressbar data for used diskspace
*
* @param array $attributes
* @return array
*/
public static function diskspace(array $attributes): array
{
$infotext = null;
if (isset($attributes['fields']['webspace_used']) && isset($attributes['fields']['mailspace_used']) && isset($attributes['fields']['dbspace_used'])) {
$infotext = lng('panel.used') . ':' . PHP_EOL;
$infotext .= 'web: ' . PhpHelper::sizeReadable($attributes['fields']['webspace_used'] * 1024, null, 'bi') . PHP_EOL;
$infotext .= 'mail: ' . PhpHelper::sizeReadable($attributes['fields']['mailspace_used'] * 1024, null, 'bi') . PHP_EOL;
$infotext .= 'mysql: ' . PhpHelper::sizeReadable($attributes['fields']['dbspace_used'] * 1024, null, 'bi');
}
return self::pbData('diskspace', $attributes['fields'], 1024, (int)Settings::Get('system.report_webmax'), $infotext);
}
/**
* do needed calculations
*/
private static function pbData(string $field, array $attributes, int $size_factor = 1024, int $report_max = 90, $infotext = null): array
{
$percent = 0;
$style = 'bg-primary';
$text = PhpHelper::sizeReadable($attributes[$field . '_used'] * $size_factor, null, 'bi') . ' / ' . lng('panel.unlimited');
if ((int)$attributes[$field] >= 0) {
if (($attributes[$field] / 100) * $report_max < $attributes[$field . '_used']) {
$style = 'bg-danger';
} elseif (($attributes[$field] / 100) * ($report_max - 15) < $attributes[$field . '_used']) {
$style = 'bg-warning';
}
$percent = round(($attributes[$field . '_used'] * 100) / ($attributes[$field] == 0 ? 1 : $attributes[$field]), 0);
if ($percent > 100) {
$percent = 100;
}
$text = PhpHelper::sizeReadable($attributes[$field . '_used'] * $size_factor, null, 'bi') . ' / ' . PhpHelper::sizeReadable($attributes[$field] * $size_factor, null, 'bi');
}
return [
'macro' => 'progressbar',
'data' => [
'percent' => $percent,
'style' => $style,
'text' => $text,
'infotext' => $infotext
]
];
}
/**
* get progressbar data for traffic
*
* @param array $attributes ['fields']
* @return array
*/
public static function traffic(array $attributes): array
{
$skip_customer_traffic = false;
try {
$attributes['fields']['deactivated'] = 0;
$result = Traffic::getCustomerStats($attributes['fields'], 'currentmonth', true);
} catch (Exception $e) {
if ($e->getCode() === 405) {
$skip_customer_traffic = true;
} else {
Response::dynamicError($e->getMessage());
}
}
$infotext = null;
if (isset($result['metrics']['http']) && !$skip_customer_traffic) {
$infotext = lng('panel.used') . ':' . PHP_EOL;
$infotext .= 'http: ' . PhpHelper::sizeReadable($result['metrics']['http'], null, 'bi') . PHP_EOL;
$infotext .= 'ftp: ' . PhpHelper::sizeReadable($result['metrics']['ftp'], null, 'bi') . PHP_EOL;
$infotext .= 'mail: ' . PhpHelper::sizeReadable($result['metrics']['mail'], null, 'bi');
}
return self::pbData('traffic', $attributes['fields'], 1024, (int)Settings::Get('system.report_trafficmax'), $infotext);
}
/**
* get progressbar data for traffic for the admin overview
* (key is to set 'adminsession' for the admin-users so the traffic-API selects
* the correct customer data for the corresponsing admin/reseller)
*
* @param array $attributes ['fields']
* @return array
*/
public static function traffic_admins(array $attributes): array
{
$attributes['fields']['adminsession'] = 1;
return self::traffic($attributes);
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/SSLCertificate.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
class SSLCertificate
{
public static function domainWithSan(array $attributes): array
{
return [
'macro' => 'domainWithSan',
'data' => [
'domain' => $attributes['data'],
'san' => implode(', ', $attributes['fields']['san'] ?? []),
]
];
}
public static function canEditSSL(array $attributes): bool
{
if ((int)$attributes['fields']['domainid'] > 0
&& (int)$attributes['fields']['letsencrypt'] == 0
) {
return true;
}
return false;
}
public static function isNotLetsEncrypt(array $attributes): bool
{
return (int)$attributes['fields']['letsencrypt'] == 0;
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Style.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\CurrentUser;
use Froxlor\Settings;
class Style
{
public static function deactivated(array $attributes): string
{
return $attributes['fields']['deactivated'] ? 'table-danger' : '';
}
public static function loginDisabled(array $attributes): string
{
return $attributes['fields']['login_enabled'] == 'N' ? 'table-danger' : '';
}
public static function resultIntegrityBad(array $attributes): string
{
return $attributes['fields']['result'] ? '' : 'table-warning';
}
public static function invalidApiKey(array $attributes): string
{
// check whether the api key is not valid anymore
$isValid = true;
if ($attributes['fields']['valid_until'] >= 0) {
if ($attributes['fields']['valid_until'] < time()) {
$isValid = false;
}
}
return $isValid ? '' : 'table-danger';
}
public static function resultDomainTerminatedOrDeactivated(array $attributes): string
{
$termination_date = str_replace("0000-00-00", "", $attributes['fields']['termination_date'] ?? '');
$termination_css = '';
if (!empty($termination_date)) {
$cdate = strtotime($termination_date . " 23:59:59");
$today = time();
$termination_css = 'table-warning';
if ($cdate < $today) {
$termination_css = 'table-danger';
}
}
$deactivated = $attributes['fields']['deactivated'] || (CurrentUser::isAdmin() && $attributes['fields']['customer_deactivated']);
return $deactivated ? 'table-info' : $termination_css;
}
public static function resultCustomerLockedOrDeactivated(array $attributes): string
{
$row_css = '';
if ((int)$attributes['fields']['deactivated'] == 1) {
$row_css = 'table-info';
} elseif ($attributes['fields']['loginfail_count'] >= Settings::Get('login.maxloginattempts')
&& $attributes['fields']['lastlogin_fail'] > (time() - Settings::Get('login.deactivatetime'))
) {
$row_css = 'table-warning';
}
return $row_css;
}
public static function diskspaceWarning(array $attributes): string
{
return self::getWarningStyle('diskspace', $attributes['fields'], (int)Settings::Get('system.report_webmax'));
}
private static function getWarningStyle(string $field, array $attributes, int $report_max = 90): string
{
$style = '';
if ((int)$attributes[$field] >= 0) {
if (($attributes[$field] / 100) * $report_max < $attributes[$field . '_used']) {
$style = 'table-danger';
} elseif (($attributes[$field] / 100) * ($report_max - 15) < $attributes[$field . '_used']) {
$style = 'table-warning';
}
}
return $style;
}
public static function trafficWarning(array $attributes): string
{
return self::getWarningStyle('traffic', $attributes['fields'], (int)Settings::Get('system.report_trafficmax'));
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/SysLog.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\FroxlorLogger;
class SysLog
{
public static function typeDescription(array $attributes): string
{
return FroxlorLogger::getInstanceOf()->getLogLevelDesc($attributes['data']);
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/Text.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI\Callbacks;
use Froxlor\CurrentUser;
use Froxlor\Database\Database;
use Froxlor\Froxlor;
use Froxlor\PhpHelper;
use Froxlor\System\Markdown;
use Froxlor\UI\Panel\UI;
use Froxlor\User;
use PDO;
class Text
{
public static function boolean(array $attributes): array
{
return [
'macro' => 'boolean',
'data' => (bool)$attributes['data']
];
}
public static function yesno(array $attributes): array
{
return [
'macro' => 'boolean',
'data' => $attributes['data'] == 'Y'
];
}
public static function type2fa(array $attributes): array
{
return [
'macro' => 'type2fa',
'data' => (int)$attributes['data']
];
}
public static function customerfullname(array $attributes): string
{
return User::getCorrectFullUserDetails($attributes['fields'], true);
}
public static function size(array $attributes): string
{
return PhpHelper::sizeReadable($attributes['data'], null, 'bi');
}
public static function timestamp(array $attributes): string
{
return (int)$attributes['data'] > 0 ? date('d.m.Y H:i', (int)$attributes['data']) : lng('panel.never');
}
public static function timestampUntil(array $attributes): string
{
return (int)$attributes['data'] > 0 ? date('d.m.Y H:i', (int)$attributes['data']) : lng('panel.unlimited');
}
public static function crondesc(array $attributes): string
{
return lng('crondesc.' . $attributes['data']);
}
public static function shorten(array $attributes): string
{
return substr($attributes['data'], 0, 20) . '...';
}
public static function wordwrap(array $attributes): string
{
return wordwrap($attributes['data'], 100, ' ', true);
}
public static function customerNoteDetailModal(array $attributes): array
{
$note = $attributes['fields']['custom_notes'] ?? '';
$key = $attributes['fields']['customerid'] ?? $attributes['fields']['adminid'];
return [
'entry' => $key,
'id' => 'cnModal' . $key,
'title' => lng('usersettings.custom_notes.title') . ': ' . ($attributes['fields']['loginname'] ?? $attributes['fields']['adminname']),
'body' => nl2br(Markdown::cleanCustomNotes($note))
];
}
public static function apikeyDetailModal(array $attributes): array
{
$linker = UI::getLinker();
$result = $attributes['fields'];
$apikey_data = include Froxlor::getInstallDir() . '/lib/formfields/formfield.api_key.php';
$body = UI::twig()->render(UI::validateThemeTemplate('/user/inline-form.html.twig'), [
'formaction' => $linker->getLink(['section' => 'index', 'page' => 'apikeys']),
'formdata' => $apikey_data['apikey'],
'editid' => $attributes['fields']['id']
]);
return [
'entry' => $attributes['fields']['id'],
'id' => 'akModal' . $attributes['fields']['id'],
'title' => 'API-key ' . ($attributes['fields']['loginname'] ?? $attributes['fields']['adminname']),
'action' => 'apikeys',
'body' => $body
];
}
public static function domainDuplicateModal(array $attributes): array
{
$linker = UI::getLinker();
$result = $attributes['fields'];
$customers = [
0 => lng('panel.please_choose')
];
$result_customers_stmt = Database::prepare("
SELECT `customerid`, `loginname`, `name`, `firstname`, `company`
FROM `" . TABLE_PANEL_CUSTOMERS . "` " . (CurrentUser::getField('customers_see_all') ? '' : " WHERE `adminid` = :adminid ") . "
ORDER BY COALESCE(NULLIF(`name`,''), `company`) ASC
");
$params = [];
if (CurrentUser::getField('customers_see_all') == '0') {
$params['adminid'] = CurrentUser::getField('adminid');
}
Database::pexecute($result_customers_stmt, $params);
while ($row_customer = $result_customers_stmt->fetch(PDO::FETCH_ASSOC)) {
$customers[$row_customer['customerid']] = User::getCorrectFullUserDetails($row_customer) . ' (' . $row_customer['loginname'] . ')';
}
$domdup_data = include Froxlor::getInstallDir() . '/lib/formfields/admin/domains/formfield.domains_duplicate.php';
$body = UI::twig()->render(UI::validateThemeTemplate('/user/inline-form.html.twig'), [
'formaction' => $linker->getLink(['section' => 'domains', 'page' => 'domains', 'action' => 'duplicate']),
'formdata' => $domdup_data['domain_duplicate'],
'editid' => $attributes['fields']['id'],
'nosubmit' => 0
]);
return [
'entry' => $attributes['fields']['id'],
'id' => 'ddModal' . $attributes['fields']['id'],
'title' => lng('admin.domain_duplicate_named', [$attributes['fields']['domain']]),
'action' => 'duplicate',
'body' => $body
];
}
}
================================================
FILE: lib/Froxlor/UI/Callbacks/index.html
================================================
================================================
FILE: lib/Froxlor/UI/Collection.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI;
use Froxlor\Settings;
class Collection
{
private string $class;
private array $has = [];
private array $params;
private array $userinfo;
private ?Pagination $pagination = null;
private bool $internal = false;
public function __construct(string $class, array $userInfo, array $params = [])
{
$this->class = $class;
$this->params = $params;
$this->userinfo = $userInfo;
}
public function getList(): array
{
return $this->getData()['list'];
}
public function getData(): array
{
return $this->get()['data'];
}
public function get(): array
{
$result = $this->getListing($this->class, $this->params);
// check if the api result contains any items (not the overall listingCount as we might be in a search-resultset)
if (count($result)) {
foreach ($this->has as $has) {
$attributes = $this->getListing($has['class'], $has['params']);
foreach ($result['data']['list'] as $key => $item) {
foreach ($attributes['data']['list'] as $list) {
if ($item[$has['parentKey']] == $list[$has['childKey']]) {
$result['data']['list'][$key][$has['column']] = $list;
}
}
}
}
}
// attach pagination if available
if ($this->pagination) {
$result = array_merge($result, $this->pagination->getApiResponseParams());
}
return $result;
}
private function getListing($class, $params): array
{
return json_decode($class::getLocal($this->userinfo, $params, $this->internal)->listing(), true);
}
public function getJson(): string
{
return json_encode($this->get());
}
public function has(string $column, string $class, string $parentKey = 'id', string $childKey = 'id', array $params = []): Collection
{
$this->has[] = [
'column' => $column,
'class' => $class,
'parentKey' => $parentKey,
'childKey' => $childKey,
'params' => $params
];
return $this;
}
public function addParam(array $keyval): Collection
{
$this->params = array_merge($this->params, $keyval);
return $this;
}
public function withPagination(array $columns, array $default_sorting = [], array $pagination_additional_params = []): Collection
{
// Get only searchable columns
$sortableColumns = [];
foreach ($columns as $key => $column) {
if (!isset($column['sortable']) || (isset($column['sortable']) && $column['sortable'])) {
$sortableColumns[$key] = $column;
}
}
// Prepare pagination
$this->pagination = new Pagination($sortableColumns, $this->count(), (int)Settings::Get('panel.paging'), $default_sorting, $pagination_additional_params);
$this->params = array_merge($this->params, $this->pagination->getApiCommandParams());
$this->pagination->setEntries($this->count(true));
return $this;
}
public function count(bool $with_pagination = false): int
{
if ($with_pagination) {
$this->params = array_merge($this->params, $this->pagination->getApiCommandParams());
}
return json_decode($this->class::getLocal($this->userinfo, $this->params, $this->internal)->listingCount(), true)['data'];
}
public function getPagination(): ?Pagination
{
return $this->pagination;
}
public function setInternal(bool $internal): Collection {
$this->internal = $internal;
return $this;
}
}
================================================
FILE: lib/Froxlor/UI/Data.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI;
class Data
{
public static function getFormFieldDataEmail($fieldname, $fielddata, $input)
{
return self::getFormFieldDataText($fieldname, $fielddata, $input);
}
public static function getFormFieldDataText($fieldname, $fielddata, $input)
{
if (isset($input[$fieldname])) {
$newfieldvalue = str_replace("\r\n", "\n", $input[$fieldname]);
} else {
$newfieldvalue = $fielddata['default'];
}
return $newfieldvalue;
}
public static function getFormFieldDataUrl($fieldname, $fielddata, $input)
{
return self::getFormFieldDataText($fieldname, $fielddata, $input);
}
public static function getFormFieldDataSelect($fieldname, $fielddata, $input)
{
if (isset($input[$fieldname])) {
$newfieldvalue = $input[$fieldname];
} else {
$newfieldvalue = $fielddata['default'];
}
if (is_array($newfieldvalue)) {
$newfieldvalue = implode(',', $newfieldvalue);
}
return $newfieldvalue;
}
public static function getFormFieldDataNumber($fieldname, $fielddata, $input)
{
if (isset($input[$fieldname])) {
$newfieldvalue = (int)$input[$fieldname];
} else {
$newfieldvalue = (int)$fielddata['default'];
}
return $newfieldvalue;
}
public static function getFormFieldDataCheckbox($fieldname, $fielddata, $input)
{
if (isset($input[$fieldname]) && ($input[$fieldname] === '1' || $input[$fieldname] === 1 || $input[$fieldname] === true || strtolower($input[$fieldname]) === 'yes' || strtolower($input[$fieldname]) === 'ja')) {
$newfieldvalue = '1';
} else {
$newfieldvalue = '0';
}
return $newfieldvalue;
}
public static function getFormFieldDataImage($fieldname, $fielddata, $input)
{
// We always make the system think we have new data to trigger the save function where we actually check everything
return time();
}
public static function manipulateFormFieldDataDate($fieldname, $fielddata, $newfieldvalue)
{
if (isset($fielddata['date_timestamp']) && $fielddata['date_timestamp'] === true) {
$newfieldvalue = strtotime($newfieldvalue);
}
return $newfieldvalue;
}
}
================================================
FILE: lib/Froxlor/UI/Form.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI;
use Froxlor\CurrentUser;
use Froxlor\FroxlorTwoFactorAuth;
use Froxlor\Settings;
use Froxlor\Validate\Check;
class Form
{
public static function buildForm(array $form, string $part = ''): array
{
$fields = [];
if (\Froxlor\Validate\Form::validateFormDefinition($form)) {
foreach ($form['groups'] as $groupname => $groupdetails) {
// check for advanced mode sections
if (isset($groupdetails['advanced_mode']) && $groupdetails['advanced_mode'] && (int)Settings::Get('panel.settings_mode') == 0) {
continue;
}
// show overview
if ($part == '' || $part == 'all') {
if (isset($groupdetails['title']) && $groupdetails['title'] != '') {
$fields[] = self::getFormOverviewGroupOutput($groupname, $groupdetails);
}
} elseif ($part != '' && $groupname == $part) {
// only show one section
/**
* this part checks for the 'websrv_avail' entry in the settings-array
* if found, we check if the current webserver is in the array.
* If this
* is not the case, we change the setting type to "hidden", #502
*/
$do_show = true;
if (isset($groupdetails['websrv_avail']) && is_array($groupdetails['websrv_avail'])) {
$websrv = Settings::Get('system.webserver');
if (!in_array($websrv, $groupdetails['websrv_avail'])) {
$do_show = false;
}
}
// visible = Settings::Get('phpfpm.enabled') for example would result in false if not enabled
// and therefore not shown as intended. Only check if do_show is still true as it might
// be false due to websrv_avail
if (isset($groupdetails['visible']) && $do_show) {
$do_show = $groupdetails['visible'];
}
$fields['_group'] = [
'title' => $groupdetails['title'] ?? 'unknown group',
'do_show' => $do_show
];
if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) {
// Collect form field output
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
// check for advanced mode sections
if (isset($fielddetails['advanced_mode']) && $fielddetails['advanced_mode'] && (int)Settings::Get('panel.settings_mode') == 0) {
continue;
}
$fields[$fieldname] = self::getFormFieldOutput($fieldname, $fielddetails);
$fields[$fieldname] = array_merge($fields[$fieldname], self::prefetchFormFieldData($fieldname, $fielddetails));
}
}
}
}
}
return $fields;
}
public static function getFormOverviewGroupOutput($groupname, $groupdetails)
{
$activated = true;
if (isset($groupdetails['fields'])) {
foreach ($groupdetails['fields'] as $fielddetails) {
if (isset($fielddetails['overview_option']) && $fielddetails['overview_option'] == true) {
if ($fielddetails['type'] != 'checkbox') {
// throw exception here as this is most likely an internal issue
// if we messed up the arrays
Response::standardError('overviewsettingoptionisnotavalidfield', '', true);
}
$activated = (int)Settings::Get($fielddetails['settinggroup'] . '.' . $fielddetails['varname']);
break;
}
}
}
$item = [
'title' => $groupdetails['title'],
'icon' => $groupdetails['icon'] ?? 'fa-solid fa-circle-question',
'part' => $groupname,
'activated' => $activated
];
/**
* this part checks for the 'websrv_avail' entry in the settings
* if found, we check if the current webserver is in the array.
* If this is not the case, we change the setting type to "hidden", #502
*/
if (isset($groupdetails['websrv_avail']) && is_array($groupdetails['websrv_avail'])) {
$websrv = Settings::Get('system.webserver');
if (!in_array($websrv, $groupdetails['websrv_avail'])) {
$item['info'] = lng('serversettings.option_unavailable_websrv', [implode(", ", $groupdetails['websrv_avail'])]);
$item['visible'] = false;
}
}
return $item;
}
public static function getFormFieldOutput($fieldname, $fielddata): array
{
$returnvalue = [];
if (is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] != '') {
if (!isset($fielddata['value'])) {
if (isset($fielddata['default'])) {
$fielddata['value'] = $fielddata['default'];
} else {
$fielddata['value'] = null;
}
}
// set value according to type
switch ($fielddata['type']) {
case 'select':
$fielddata['selected'] = $fielddata['value'];
unset($fielddata['value']);
if (isset($fielddata['select_mode']) && $fielddata['select_mode'] == 'multiple') {
$fielddata['selected'] = array_flip(explode(",", $fielddata['selected']));
}
break;
case 'checkbox':
$fielddata['checked'] = (bool)$fielddata['value'];
$fielddata['value'] = 1;
break;
}
/**
* this part checks for the 'websrv_avail' entry in the settings-array
* if found, we check if the current webserver is in the array.
* If this
* is not the case, we change the setting type to "hidden", #502
*/
$do_show = true;
if (isset($fielddata['websrv_avail']) && is_array($fielddata['websrv_avail'])) {
$websrv = Settings::Get('system.webserver');
if (!in_array($websrv, $fielddata['websrv_avail'])) {
$do_show = false;
$fielddata['note'] = lng('serversettings.option_unavailable_websrv', [implode(", ", $fielddata['websrv_avail'])]);
}
}
// visible = Settings::Get('phpfpm.enabled') for example would result in false if not enabled
// and therefore not shown as intended. Only check if do_show is still true as it might
// be false due to websrv_avail
if (isset($fielddata['visible']) && $do_show) {
$do_show = $fielddata['visible'];
if (!$do_show) {
$fielddata['note'] = lng('serversettings.option_unavailable');
}
}
// OTP security validation for sensitive settings
if (!Settings::Config('disable_otp_security_check') && isset($fielddata['required_otp']) && $do_show) {
$otp_enabled_system = (bool)Settings::Get('2fa.enabled');
$otp_enabled_user = (int)CurrentUser::getField('type_2fa') != 0;
$do_show = !$fielddata['required_otp'] || ($otp_enabled_system && $otp_enabled_user);
if (!$do_show) {
$fielddata['note'] = lng('serversettings.option_requires_otp');
if (!$otp_enabled_system) {
$fielddata['disabled'] = true;
$fielddata['note'] .= ' ' . lng('2fa.2fa_not_activated');
} elseif (!$otp_enabled_user) {
$fielddata['disabled'] = true;
$fielddata['note'] .= ' ' . lng('2fa.2fa_not_activated_for_user');
}
// show field in any case
$do_show = true;
}
}
if (!$do_show) {
$fielddata['visible'] = false;
}
$returnvalue = $fielddata;
}
return $returnvalue;
}
public static function prefetchFormFieldData($fieldname, $fielddata)
{
$returnvalue = [];
if (is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] == 'select') {
if ((empty($fielddata['select_var']) || !is_array($fielddata['select_var'])) && (isset($fielddata['option_options_method']))
) {
$returnvalue['select_var'] = call_user_func($fielddata['option_options_method']);
}
}
return $returnvalue;
}
public static function processForm(&$form, &$input, $url_params = [], $part = null, bool $settings_all = false, $settings_part = null, bool $only_enabledisable = false)
{
if (\Froxlor\Validate\Form::validateFormDefinition($form)) {
$submitted_fields = [];
$changed_fields = [];
$saved_fields = [];
foreach ($form['groups'] as $groupname => $groupdetails) {
if (($settings_part && $part == $groupname) || $settings_all || $only_enabledisable) {
if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) {
// Prefetch form fields
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
if (!$only_enabledisable || isset($fielddetails['overview_option'])) {
$groupdetails['fields'][$fieldname] = array_merge($fielddetails, self::prefetchFormFieldData($fieldname, $fielddetails));
$form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname];
}
}
}
}
}
foreach ($form['groups'] as $groupname => $groupdetails) {
if (($settings_part && $part == $groupname) || $settings_all || $only_enabledisable) {
if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) {
// Validate fields
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
if (((isset($fielddetails['visible']) && $fielddetails['visible']) || !isset($fielddetails['visible'])) && (!$only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option'])))) {
$newfieldvalue = self::getFormFieldData($fieldname, $fielddetails, $input);
if ($newfieldvalue != $fielddetails['value']) {
if (($error = \Froxlor\Validate\Form::validateFormField($fieldname, $fielddetails, $newfieldvalue)) !== true) {
Response::standardError($error, $fieldname);
} else {
$changed_fields[$fieldname] = $newfieldvalue;
}
}
$submitted_fields[$fieldname] = $newfieldvalue;
}
}
}
}
}
foreach ($form['groups'] as $groupname => $groupdetails) {
if (($settings_part && $part == $groupname) || $settings_all || $only_enabledisable) {
if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) {
// Check fields for plausibility
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
if (!isset($submitted_fields[$fieldname])) {
// skip unset fields due to unavailability for this system/settings-set
continue;
}
if (!$only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) {
if (($plausibility_check = self::checkPlausibilityFormField($fieldname, $fielddetails, $submitted_fields[$fieldname], $submitted_fields)) !== false) {
if (is_array($plausibility_check) && isset($plausibility_check[0])) {
if ($plausibility_check[0] == Check::FORMFIELDS_PLAUSIBILITY_CHECK_OK) {
// Nothing to do here, everything's okay
} elseif ($plausibility_check[0] == Check::FORMFIELDS_PLAUSIBILITY_CHECK_ERROR) {
unset($plausibility_check[0]);
$error = $plausibility_check[1];
unset($plausibility_check[1]);
$targetname = implode(' ', $plausibility_check);
Response::standardError($error, $targetname);
} elseif ($plausibility_check[0] == Check::FORMFIELDS_PLAUSIBILITY_CHECK_QUESTION) {
unset($plausibility_check[0]);
$question = $plausibility_check[1];
unset($plausibility_check[1]);
$targetname = implode(' ', $plausibility_check);
if (!isset($input[$question])) {
if (is_array($url_params) && isset($url_params['filename'])) {
$filename = $url_params['filename'];
unset($url_params['filename']);
} else {
$filename = '';
}
HTML::askYesNo($question, $filename, array_merge($url_params, $submitted_fields, [
$question => $question
]), $targetname);
}
} else {
Response::standardError('plausibilitychecknotunderstood');
}
}
}
if (!Settings::Config('disable_otp_security_check') && isset($fielddetails['required_otp']) && isset($changed_fields[$fieldname])) {
$otp_enabled_system = (bool)Settings::Get('2fa.enabled');
$otp_enabled_user = (int)CurrentUser::getField('type_2fa') != 0;
$do_update = !$fielddetails['required_otp'] || ($otp_enabled_system && $otp_enabled_user);
if ($do_update) {
// setting that requires OTP verification
if (empty($input['otp_verification'])) {
// in case email 2fa is enabled, send it now
CurrentUser::sendOtpEmail();
// build up form
if (is_array($url_params) && isset($url_params['filename'])) {
$filename = $url_params['filename'];
unset($url_params['filename']);
} else {
$filename = '';
}
HTML::askOTP('please_enter_otp', $filename, array_merge($url_params, $submitted_fields));
} else {
// validate given OTP code
$code = trim($input['otp_verification']);
$tfa = new FroxlorTwoFactorAuth('Froxlor ' . Settings::Get('system.hostname'));
$result = $tfa->verifyCode(CurrentUser::getField('data_2fa'), $code, 3);
if (!$result) {
Response::standardError('otpnotvalidated');
}
}
} else {
// do not update this setting
unset($changed_fields[$fieldname]);
}
}
}
}
}
}
}
foreach ($form['groups'] as $groupname => $groupdetails) {
if (($settings_part && $part == $groupname) || $settings_all || $only_enabledisable) {
if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) {
// Save fields
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
if (!$only_enabledisable || (isset($fielddetails['overview_option']))) {
if (isset($changed_fields[$fieldname])) {
if (($saved_field = self::saveFormField($fieldname, $fielddetails, self::manipulateFormFieldData($fieldname, $fielddetails, $changed_fields[$fieldname]))) !== false) {
$saved_fields = array_merge($saved_fields, $saved_field);
} else {
Response::standardError('errorwhensaving', $fieldname);
}
}
}
}
}
}
}
// Save form
return self::saveForm($form, $saved_fields);
}
return false;
}
public static function getFormFieldData($fieldname, $fielddata, &$input)
{
if (is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] != '' && method_exists('\\Froxlor\\UI\\Data', 'getFormFieldData' . ucfirst($fielddata['type']))) {
$newfieldvalue = call_user_func([
'\\Froxlor\\UI\\Data',
'getFormFieldData' . ucfirst($fielddata['type'])
], $fieldname, $fielddata, $input);
} else {
if (isset($input[$fieldname])) {
$newfieldvalue = $input[$fieldname];
} elseif (isset($fielddata['default'])) {
$newfieldvalue = $fielddata['default'];
} else {
$newfieldvalue = false;
}
}
return trim($newfieldvalue);
}
public static function checkPlausibilityFormField($fieldname, $fielddata, $newfieldvalue, $allnewfieldvalues)
{
$returnvalue = '';
if (is_array($fielddata) && isset($fielddata['plausibility_check_method']) && $fielddata['plausibility_check_method'] != '' && method_exists($fielddata['plausibility_check_method'][0], $fielddata['plausibility_check_method'][1])) {
$returnvalue = call_user_func($fielddata['plausibility_check_method'], $fieldname, $fielddata, $newfieldvalue, $allnewfieldvalues);
} else {
$returnvalue = false;
}
return $returnvalue;
}
public static function saveFormField($fieldname, $fielddata, $newfieldvalue)
{
$returnvalue = '';
if (is_array($fielddata) && isset($fielddata['save_method']) && $fielddata['save_method'] != '') {
$returnvalue = call_user_func([
'\\Froxlor\\Settings\\Store',
$fielddata['save_method']
], $fieldname, $fielddata, $newfieldvalue);
} elseif (is_array($fielddata) && !isset($fielddata['save_method'])) {
$returnvalue = [];
} else {
$returnvalue = false;
}
return $returnvalue;
}
public static function manipulateFormFieldData($fieldname, $fielddata, $newfieldvalue)
{
if (is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] != '' && method_exists('\\Froxlor\\UI\\Data', 'manipulateFormFieldData' . ucfirst($fielddata['type']))) {
$newfieldvalue = call_user_func([
'\\Froxlor\\UI\\Data',
'manipulateFormFieldData' . ucfirst($fielddata['type'])
], $fieldname, $fielddata, $newfieldvalue);
}
return $newfieldvalue;
}
public static function saveForm($fielddata, $newfieldvalue)
{
$returnvalue = '';
if (is_array($fielddata) && isset($fielddata['save_method']) && $fielddata['save_method'] != '') {
$returnvalue = call_user_func([
'\\Froxlor\\Settings\\Store',
$fielddata['save_method']
], $fielddata, $newfieldvalue);
} elseif (is_array($fielddata) && !isset($fielddata['save_method'])) {
$returnvalue = true;
} else {
$returnvalue = false;
}
return $returnvalue;
}
}
================================================
FILE: lib/Froxlor/UI/HTML.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\UI;
use Froxlor\Settings;
class HTML
{
/**
* Build Navigation Sidebar
*
* @param array $navigation data
* @param array $userinfo the userinfo of the user
*
* @return array the content of the navigation bar according to user-permissions
*/
public static function buildNavigation(array $navigation, array $userinfo)
{
$returnvalue = [];
// sanitize user-given input (url-manipulation)
$req_page = Request::get('page');
if (!empty($req_page) && is_array($req_page)) {
$req_page = (string)array_shift($req_page);
}
// need to preserve this
$_GET['page'] = $req_page;
$req_action = Request::get('action');
if (!empty($req_action) && is_array($req_action)) {
$req_action = (string)array_shift($req_action);
}
// need to preserve this
$_GET['action'] = $req_action;
foreach ($navigation as $box) {
if ((!isset($box['show_element']) || $box['show_element'] === true) && (!isset($box['required_resources']) || $box['required_resources'] == '' || (isset($userinfo[$box['required_resources']]) && ((int)$userinfo[$box['required_resources']] > 0 || $userinfo[$box['required_resources']] == '-1')))) {
$navigation_links = [];
$box_active = false;
if (isset($box['url']) && $box['url'] == basename($_SERVER["SCRIPT_FILENAME"])) {
$box_active = true;
}
foreach ($box['elements'] as $element) {
if ((!isset($element['show_element']) || $element['show_element'] === true) && (!isset($element['required_resources']) || $element['required_resources'] == '' || (isset($userinfo[$element['required_resources']]) && ((int)$userinfo[$element['required_resources']] > 0 || $userinfo[$element['required_resources']] == '-1')))) {
$target = '';
$active = false;
$navurl = '#';
if (isset($element['url']) && trim($element['url']) != '') {
if (isset($element['new_window']) && $element['new_window'] == true) {
$target = ' target="_blank"';
}
if (
((empty($req_page) && substr_count($element['url'], "page=") == 0) || (!empty($req_page) && substr_count($element['url'], "page=" . $req_page) > 0))
&& substr_count($element['url'], basename($_SERVER["SCRIPT_FILENAME"])) > 0
) {
$active = true;
$box_active = true;
}
$navurl = htmlspecialchars($element['url']);
$navlabel = $element['label'];
$icon = $element['icon'] ?? null;
} else {
$navlabel = $element['label'];
$icon = $element['icon'] ?? null;
}
$navigation_links[] = [
'url' => $navurl,
'target' => $target,
'active' => $active,
'label' => $navlabel,
'icon' => $icon,
'add_shortlink' => $element['add_shortlink'] ?? null,
'is_external' => $element['is_external'] ?? false,
];
}
}
if (!empty($navigation_links)) {
$target = '';
if (isset($box['url']) && trim($box['url']) != '') {
if (isset($box['new_window']) && $box['new_window'] == true) {
$target = ' target="_blank"';
}
$navurl = htmlspecialchars($box['url']);
$navlabel = $box['label'];
$icon = $box['icon'] ?? null;
} else {
$navurl = "#";
$navlabel = $box['label'];
$icon = $box['icon'] ?? null;
}
$returnvalue[] = [
'url' => $navurl,
'target' => $target,
'label' => $navlabel,
'icon' => $icon,
'items' => $navigation_links,
'active' => ((int)Settings::Get('panel.menu_collapsed') == 0 ? 1 : $box_active)
];
}
}
}
return $returnvalue;
}
/**
* Return HTML Code for an option within a
]]>
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
{{settings.system.leenabled}}
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
//service[@type='http']/general/commands{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
> /etc/bind/named.conf.local]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=bind
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
named.conf
# How often to check for zone changes. See 'Operation' section.
bind-check-interval=180
# Uncomment to enable Huffman compression on zone data.
# Currently saves around 20% of memory actually used, but slows down operation.
# bind-enable-huffman
]]>
{{settings.system.vmail_gid}}
{{settings.system.vmail_uid}}
password =
dbname =
hosts =
query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND v.email = '%s' AND trim(v.destination) <> ''
]]>
password =
dbname =
hosts =
query = SELECT domain FROM panel_domains WHERE domain = '%s' AND isemaildomain = '1' AND deactivated = 0
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT CONCAT(homedir,maildir) FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
hosts =
query = SELECT GROUP_CONCAT(DISTINCT mu.username SEPARATOR ' ') AS sasl_users FROM mail_users mu WHERE mu.username = '%s' OR mu.email IN ((SELECT mail_virtual.email_full FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_virtual.destination FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = CONCAT('@', SUBSTRING_INDEX('%s','@',-1))));
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT uid FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT gid FROM mail_users WHERE email = '%s'
]]>
]]>
//service[@type='smtp']/general/commands[@index=1]
//service[@type='smtp']/general/installs[@index=1]
//service[@type='smtp']/general/commands[@index=2]
# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites. If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# user@that.users.mailhost.
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
# Debian GNU/Linux specific: Specifying a file name will cause the
# first line of that file to be used as the name. The Debian default
# is /etc/mailname.
#
#myorigin = /etc/mailname
#myorigin = $myhostname
#myorigin = $mydomain
# RECEIVING MAIL
# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
# The proxy_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on by way of a
# proxy or network address translation unit. This setting extends
# the address list specified with the inet_interfaces parameter.
#
# You must specify your proxy/NAT addresses when your system is a
# backup MX host for other domains, otherwise mail delivery loops
# will happen when the primary MX host is down.
#
#proxy_interfaces =
#proxy_interfaces = 1.2.3.4
# The mydestination parameter specifies the list of domains that this
# machine considers itself the final destination for.
#
# These domains are routed to the delivery agent specified with the
# local_transport parameter setting. By default, that is the UNIX
# compatible delivery agent that lookups all recipients in /etc/passwd
# and /etc/aliases or their equivalent.
#
# The default is $myhostname + localhost.$mydomain. On a mail domain
# gateway, you should also include $mydomain.
#
# Do not specify the names of virtual domains - those domains are
# specified elsewhere (see VIRTUAL_README).
#
# Do not specify the names of domains that this machine is backup MX
# host for. Specify those names via the relay_domains settings for
# the SMTP server, or use permit_mx_backup if you are lazy (see
# STANDARD_CONFIGURATION_README).
#
# The local machine is always the final destination for mail addressed
# to user@[the.net.work.address] of an interface that the mail system
# receives mail on (see the inet_interfaces parameter).
#
# Specify a list of host or domain names, /file/name or type:table
# patterns, separated by commas and/or whitespace. A /file/name
# pattern is replaced by its contents; a type:table is matched when
# a name matches a lookup key (the right-hand side is ignored).
# Continue long lines by starting the next line with whitespace.
#
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
#
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
#
# The local_recipient_maps parameter specifies optional lookup tables
# with all names or addresses of users that are local with respect
# to $mydestination, $inet_interfaces or $proxy_interfaces.
#
# If this parameter is defined, then the SMTP server will reject
# mail for unknown local users. This parameter is defined by default.
#
# To turn off local recipient checking in the SMTP server, specify
# local_recipient_maps = (i.e. empty).
#
# The default setting assumes that you use the default Postfix local
# delivery agent for local delivery. You need to update the
# local_recipient_maps setting if:
#
# - You define $mydestination domain recipients in files other than
# /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
# For example, you define $mydestination domain recipients in
# the $virtual_mailbox_maps files.
#
# - You redefine the local delivery agent in master.cf.
#
# - You redefine the "local_transport" setting in main.cf.
#
# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
# feature of the Postfix local delivery agent (see local(8)).
#
# Details are described in the LOCAL_RECIPIENT_README file.
#
# Beware: if the Postfix SMTP server runs chrooted, you probably have
# to access the passwd file via the proxymap service, in order to
# overcome chroot restrictions. The alternative, having a copy of
# the system passwd file in the chroot jail is just not practical.
#
# The right-hand side of the lookup tables is conveniently ignored.
# In the left-hand side, specify a bare username, an @domain.tld
# wild-card, or specify a user@domain.tld address.
#
#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
# The unknown_local_recipient_reject_code specifies the SMTP server
# response code when a recipient domain matches $mydestination or
# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
# and the recipient address or address local-part is not found.
#
# The default setting is 550 (reject mail) but it is safer to start
# with 450 (try again later) until you are certain that your
# local_recipient_maps settings are OK.
#
unknown_local_recipient_reject_code = 550
# TRUST AND RELAY CONTROL
# The mynetworks parameter specifies the list of "trusted" SMTP
# clients that have more privileges than "strangers".
#
# In particular, "trusted" SMTP clients are allowed to relay mail
# through Postfix. See the smtpd_recipient_restrictions parameter
# in postconf(5).
#
# You can specify the list of "trusted" network addresses by hand
# or you can let Postfix do it for you (which is the default).
#
# By default (mynetworks_style = subnet), Postfix "trusts" SMTP
# clients in the same IP subnetworks as the local machine.
# On Linux, this does works correctly only with interfaces specified
# with the "ifconfig" command.
#
# Specify "mynetworks_style = class" when Postfix should "trust" SMTP
# clients in the same IP class A/B/C networks as the local machine.
# Don't do this with a dialup site - it would cause Postfix to "trust"
# your entire provider's network. Instead, specify an explicit
# mynetworks list by hand, as described below.
#
# Specify "mynetworks_style = host" when Postfix should "trust"
# only the local machine.
#
#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
# Alternatively, you can specify the mynetworks list by hand, in
# which case Postfix ignores the mynetworks_style setting.
#
# Specify an explicit list of network/netmask patterns, where the
# mask specifies the number of bits in the network part of a host
# address.
#
# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 127.0.0.0/8
# The relay_domains parameter restricts what destinations this system will
# relay mail to. See the smtpd_recipient_restrictions description in
# postconf(5) for detailed information.
#
# By default, Postfix relays mail
# - from "trusted" clients (IP address matches $mynetworks) to any destination,
# - from "untrusted" clients to destinations that match $relay_domains or
# subdomains thereof, except addresses with sender-specified routing.
# The default relay_domains value is $mydestination.
#
# In addition to the above, the Postfix SMTP server by default accepts mail
# that Postfix is final destination for:
# - destinations that match $inet_interfaces or $proxy_interfaces,
# - destinations that match $mydestination
# - destinations that match $virtual_alias_domains,
# - destinations that match $virtual_mailbox_domains.
# These destinations do not need to be listed in $relay_domains.
#
# Specify a list of hosts or domains, /file/name patterns or type:name
# lookup tables, separated by commas and/or whitespace. Continue
# long lines by starting the next line with whitespace. A file name
# is replaced by its contents; a type:name table is matched when a
# (parent) domain appears as lookup key.
#
# NOTE: Postfix will not automatically forward mail for domains that
# list this system as their primary or backup MX host. See the
# permit_mx_backup restriction description in postconf(5).
#
#relay_domains = $mydestination
# INTERNET OR INTRANET
# The relayhost parameter specifies the default host to send mail to
# when no entry is matched in the optional transport(5) table. When
# no relayhost is given, mail is routed directly to the destination.
#
# On an intranet, specify the organizational domain name. If your
# internal DNS uses no MX records, specify the name of the intranet
# gateway host instead.
#
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
# [address] or [address]:port; the form [host] turns off MX lookups.
#
# If you're connected via UUCP, see also the default_transport parameter.
#
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
# REJECTING UNKNOWN RELAY USERS
#
# The relay_recipient_maps parameter specifies optional lookup tables
# with all addresses in the domains that match $relay_domains.
#
# If this parameter is defined, then the SMTP server will reject
# mail for unknown relay users. This feature is off by default.
#
# The right-hand side of the lookup tables is conveniently ignored.
# In the left-hand side, specify an @domain.tld wild-card, or specify
# a user@domain.tld address.
#
#relay_recipient_maps = hash:/etc/postfix/relay_recipients
# INPUT RATE CONTROL
#
# The in_flow_delay configuration parameter implements mail input
# flow control. This feature is turned on by default, although it
# still needs further development (it's disabled on SCO UNIX due
# to an SCO bug).
#
# A Postfix process will pause for $in_flow_delay seconds before
# accepting a new message, when the message arrival rate exceeds the
# message delivery rate. With the default 100 SMTP server process
# limit, this limits the mail inflow to 100 messages a second more
# than the number of messages delivered per second.
#
# Specify 0 to disable the feature. Valid delays are 0..10.
#
#in_flow_delay = 1s
# ADDRESS REWRITING
#
# The ADDRESS_REWRITING_README document gives information about
# address masquerading or other forms of address rewriting including
# username->Firstname.Lastname mapping.
# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
#
# The VIRTUAL_README document gives information about the many forms
# of domain hosting that Postfix supports.
# "USER HAS MOVED" BOUNCE MESSAGES
#
# See the discussion in the ADDRESS_REWRITING_README document.
# TRANSPORT MAP
#
# See the discussion in the ADDRESS_REWRITING_README document.
# ALIAS DATABASE
#
# The alias_maps parameter specifies the list of alias databases used
# by the local delivery agent. The default list is system dependent.
#
# On systems with NIS, the default is to search the local alias
# database, then the NIS alias database. See aliases(5) for syntax
# details.
#
# If you change the alias database, run "postalias /etc/aliases" (or
# wherever your system stores the mail alias file), or simply run
# "newaliases" to build the necessary DBM or DB file.
#
# It will take a minute or so before changes become visible. Use
# "postfix reload" to eliminate the delay.
#
#alias_maps = dbm:/etc/aliases
#alias_maps = hash:/etc/aliases
#alias_maps = hash:/etc/aliases, nis:mail.aliases
#alias_maps = netinfo:/aliases
# The alias_database parameter specifies the alias database(s) that
# are built with "newaliases" or "sendmail -bi". This is a separate
# configuration parameter, because alias_maps (see above) may specify
# tables that are not necessarily all under control by Postfix.
#
#alias_database = dbm:/etc/aliases
#alias_database = dbm:/etc/mail/aliases
#alias_database = hash:/etc/aliases
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
# ADDRESS EXTENSIONS (e.g., user+foo)
#
# The recipient_delimiter parameter specifies the separator between
# user names and address extensions (user+foo). See canonical(5),
# local(8), relocated(5) and virtual(5) for the effects this has on
# aliases, canonical, virtual, relocated and .forward file lookups.
# Basically, the software tries user+foo and .forward+foo before
# trying user and .forward.
#
#recipient_delimiter = +
# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user. Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
# The mail_spool_directory parameter specifies the directory where
# UNIX-style mailboxes are kept. The default setting depends on the
# system type.
#
#mail_spool_directory = /var/mail
#mail_spool_directory = /var/spool/mail
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).
#
# Unlike other Postfix configuration parameters, the mailbox_command
# parameter is not subjected to $parameter substitutions. This is to
# make it easier to specify shell syntax (see example below).
#
# Avoid shell meta characters because they will force Postfix to run
# an expensive shell process. Procmail alone is expensive enough.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
mailbox_command = /usr/lib/dovecot/deliver
#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
# The mailbox_transport specifies the optional transport in master.cf
# to use after processing aliases and .forward files. This parameter
# has precedence over the mailbox_command, fallback_transport and
# luser_relay parameters.
#
# Specify a string of the form transport:nexthop, where transport is
# the name of a mail delivery transport defined in master.cf. The
# :nexthop part is optional. For more details see the sample transport
# configuration file.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must update the "local_recipient_maps" setting in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
# Cyrus IMAP over LMTP. Specify ``lmtpunix cmd="lmtpd"
# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
#mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
#
# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
# subsequent line in master.cf.
#mailbox_transport = cyrus
# The fallback_transport specifies the optional transport in master.cf
# to use for recipients that are not found in the UNIX passwd database.
# This parameter has precedence over the luser_relay parameter.
#
# Specify a string of the form transport:nexthop, where transport is
# the name of a mail delivery transport defined in master.cf. The
# :nexthop part is optional. For more details see the sample transport
# configuration file.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must update the "local_recipient_maps" setting in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
#fallback_transport = lmtp:unix:/file/name
#fallback_transport = cyrus
#fallback_transport =
# The luser_relay parameter specifies an optional destination address
# for unknown recipients. By default, mail for unknown@$mydestination,
# unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
# as undeliverable.
#
# The following expansions are done on luser_relay: $user (recipient
# username), $shell (recipient shell), $home (recipient home directory),
# $recipient (full recipient address), $extension (recipient address
# extension), $domain (recipient domain), $local (entire recipient
# localpart), $recipient_delimiter. Specify ${name?value} or
# ${name:value} to expand value only when $name does (does not) exist.
#
# luser_relay works only for the default Postfix local delivery agent.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must specify "local_recipient_maps =" (i.e. empty) in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
#luser_relay = $user@other.host
#luser_relay = $local@other.host
#luser_relay = admin+$local
# JUNK MAIL CONTROLS
#
# The controls listed here are only a very small subset. The file
# SMTPD_ACCESS_README provides an overview.
# The header_checks parameter specifies an optional table with patterns
# that each logical message header is matched against, including
# headers that span multiple physical lines.
#
# By default, these patterns also apply to MIME headers and to the
# headers of attached messages. With older Postfix versions, MIME and
# attached message headers were treated as body text.
#
# For details, see "man header_checks".
#
#header_checks = regexp:/etc/postfix/header_checks
# FAST ETRN SERVICE
#
# Postfix maintains per-destination logfiles with information about
# deferred mail, so that mail can be flushed quickly with the SMTP
# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
# See the ETRN_README document for a detailed description.
#
# The fast_flush_domains parameter controls what destinations are
# eligible for this service. By default, they are all domains that
# this server is willing to relay mail to.
#
#fast_flush_domains = $relay_domains
# SHOW SOFTWARE VERSION OR NOT
#
# The smtpd_banner parameter specifies the text that follows the 220
# code in the SMTP server's greeting banner. Some people like to see
# the mail version advertised. By default, Postfix shows no version.
#
# You MUST specify $myhostname at the start of the text. That is an
# RFC requirement. Postfix itself does not care.
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
# PARALLEL DELIVERY TO THE SAME DESTINATION
#
# How many parallel deliveries to the same user or domain? With local
# delivery, it does not make sense to do massively parallel delivery
# to the same user, because mailbox updates must happen sequentially,
# and expensive pipelines in .forward files can cause disasters when
# too many are run at the same time. With SMTP deliveries, 10
# simultaneous connections to the same domain could be sufficient to
# raise eyebrows.
#
# Each message delivery transport has its XXX_destination_concurrency_limit
# parameter. The default is $default_destination_concurrency_limit for
# most delivery transports. For the local delivery agent the default is 2.
#local_destination_concurrency_limit = 2
#default_destination_concurrency_limit = 20
# DEBUGGING CONTROL
#
# The debug_peer_level parameter specifies the increment in verbose
# logging level when an SMTP client or server host name or address
# matches a pattern in the debug_peer_list parameter.
#
#debug_peer_level = 2
# The debug_peer_list parameter specifies an optional list of domain
# or network patterns, /file/name patterns or type:name tables. When
# an SMTP client or server host name or address matches a pattern,
# increase the verbose logging level by the amount specified in the
# debug_peer_level parameter.
#
#debug_peer_list = 127.0.0.1
#debug_peer_list = some.domain
# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
# If you can't use X, use this to capture the call stack when a
# daemon crashes. The result is in a file in the configuration
# directory, and is named after the process name and the process ID.
#
# debugger_command =
# PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
# echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
# >$config_directory/$process_name.$process_id.log & sleep 5
#
# Another possibility is to run gdb under a detached screen session.
# To attach to the screen session, su root and run "screen -r
# " where uniquely matches one of the detached
# sessions (from "screen -list").
#
# debugger_command =
# PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
# -dmS $process_name gdb $daemon_directory/$process_name
# $process_id & sleep 1
# INSTALL-TIME CONFIGURATION INFORMATION
#
# The following parameters are used when installing a new Postfix version.
#
# sendmail_path: The full pathname of the Postfix sendmail command.
# This is the Sendmail-compatible mail posting interface.
#
sendmail_path = /usr/sbin/sendmail
# newaliases_path: The full pathname of the Postfix newaliases command.
# This is the Sendmail-compatible command to build alias databases.
#
newaliases_path = /usr/bin/newaliases
# mailq_path: The full pathname of the Postfix mailq command. This
# is the Sendmail-compatible mail queue listing command.
#
mailq_path = /usr/bin/mailq
# setgid_group: The group for mail submission and queue management
# commands. This must be a group name with a numerical group ID that
# is not shared with other accounts, not even with the Postfix account.
#
setgid_group = postdrop
# html_directory: The location of the Postfix HTML documentation.
#
html_directory = no
# manpage_directory: The location of the Postfix on-line manual pages.
#
manpage_directory = /usr/share/man
# sample_directory: The location of the Postfix sample configuration files.
# This parameter is obsolete as of Postfix 2.1.
#
sample_directory = /usr/share/doc/postfix
# readme_directory: The location of the Postfix README files.
#
readme_directory = /usr/share/doc/postfix
inet_protocols = ipv4
append_dot_mydomain = no
biff = no
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unknown_helo_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client_hostname
# Postfix 2.10 requires this option. Postfix < 2.10 ignores this.
# The option is intentionally left empty.
smtpd_relay_restrictions =
# Maximum size of Message in bytes (50MB)
message_size_limit = 52428800
## SASL Auth Settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport
smtpd_sasl_type = dovecot
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_path = private/auth
# Virtual delivery settings
virtual_mailbox_base = /
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:
virtual_gid_maps = static:
# Local delivery settings
local_transport = local
alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
###
## TLS for outgoing mails from the server to another server
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
## TLS for incoming connections (clients or other mail servers)
smtpd_tls_security_level = may
smtpd_tls_cert_file =
smtpd_tls_key_file =
#smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_session_cache_timeout = 3600s
]]>
//service[@type='smtp']/general/files[@index=0]//service[@type='smtp']/general/commands[@index=3]
dbname= user= password="
#default_pass_scheme = CRYPT
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('*:storage=', quota, 'M') as quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u')
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('*:storage=', quota, 'M') as userdb_quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR ((postfix = 'Y' AND '%Ls' = 'smtp') OR (postfix = 'Y' AND '%Ls' = 'sieve')))
iterate_query = "SELECT username AS user FROM mail_users WHERE (imap = 1 OR pop3 = 1)"
]]>
ssl_key = <
ssl_dh =
protocol imap {
mail_plugins = $mail_plugins quota imap_quota
}
pop3_logout_format = in=%i out=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
plugin {
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_dir = ~/sieve
}
plugin {
quota = maildir:User quota
}
]]>
//service[@type='mail']/general/installs[@index=1]
//service[@type='mail']/general/files[@index=1]
//service[@type='mail']/general/commands[@index=1]
/dev/null]]> /etc/apt/sources.list.d/rspamd.list]]>> /etc/apt/sources.list.d/rspamd.list]]>//service[@type='antispam']/general/commands[@index=1]
//service[@type='antispam']/general/installs[@index=1]
//service[@type='antispam']/general/commands[@index=2]
//service[@type='antispam']/general/files[@index=1]
//service[@type='antispam']/general/commands[@index=3]
"
[ -f /etc/ssl/certs/proftpd_ec.crt ] || openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp521r1) -keyout /etc/ssl/private/proftpd_ec.key -out /etc/ssl/certs/proftpd_ec.crt -days 3650 -subj "/C=US/ST=Some-State/O=Internet Widgits Pty Ltd/CN="
chmod 0600 /etc/ssl/private/proftpd.key /etc/ssl/private/proftpd_ec.key
]]>
IdentLookups off
ServerName " FTP Server"
ServerType standalone
DeferWelcome off
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# If your host was NATted, this option is useful in order to
# allow passive transfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
# DynMasqRefresh 28800
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwritable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or ), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
QuotaEngine on
Ratios off
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
# A basic anonymous configuration, no upload directories.
#
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
#
#
# DenyAll
#
#
#
# # Uncomment this if you're brave.
# #
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# #
# # DenyAll
# #
# #
# # AllowAll
# #
# #
#
#
# Include other custom configuration files
Include /etc/proftpd/conf.d/
]]>
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
SQLBackend mysql
#
SQLEngine on
SQLAuthenticate on
#
# Use both an encrypted or plaintext password
SQLAuthTypes Crypt OpenSSL
SQLAuthenticate users* groups*
#
# Connection
SQLConnectInfo @
#
# Describes both users/groups tables
#
SQLUserInfo ftp_users username password uid gid homedir shell
SQLGroupInfo ftp_groups groupname gid members
#
SQLUserWhereClause "login_enabled = 'y'"
SQLLog PASS login
SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users
SQLLog RETR download
SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users
SQLLog STOR upload
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
QuotaEngine on
QuotaShowQuotas on
QuotaDisplayUnits Mb
QuotaLock /var/lock/ftpd.quotatab.lock
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
]]>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSECCertificateFile /etc/ssl/certs/proftpd_ec.crt
TLSECCertificateKeyFile /etc/ssl/private/proftpd_ec.key
# TLSCACertificateFile
TLSOptions NoSessionReuseRequired
TLSVerifyClient off
# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotiations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
#
#TLSRenegotiate required off
]]>
From 127.0.0.1
MaxLoginAttempts 3
BanEngine off
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root
BanEngine off
DelayEngine off
]]>
"
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 3072
chmod 0600 /etc/ssl/private/pure-ftpd.pem /etc/ssl/private/pure-ftpd-dhparams.pem
]]>
# Mandatory : user password. You must have a password.
MYSQLPassword
# Mandatory : database to open.
MYSQLDatabase
# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "sha1", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "sha1", "md5" *and* "password"
MYSQLCrypt any
# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.
# Query to execute in order to fetch the password
MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Query to execute in order to fetch the system user name or uid
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default UID - if set this overrides MYSQLGetUID
#MYSQLDefaultUID 1000
# Query to execute in order to fetch the system user group or gid
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default GID - if set this overrides MYSQLGetGID
#MYSQLDefaultGID 1000
# Query to execute in order to fetch the home directory
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.
# MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User='\L'
# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTASZ SELECT CASE WHEN panel_customers.diskspace = 0 THEN -1 WHEN panel_customers.diskspace <= -1 THEN 0 ELSE panel_customers.diskspace/1024 END AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
# Optional : ratios. The server has to be compiled with ratio support.
# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .
# MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'
# MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.
# MySQLForceTildeExpansion 1
# If you're using a transactionnal storage engine, you can enable SQL
# transactions to avoid races. Leave this commented if you are using the
# traditional MyIsam engine.
# MySQLTransactions On
]]>
*.log {
missingok
daily
rotate 7
compress
delaycompress
notifempty
create
sharedscripts
postrotate
> /dev/null 2>&1 || true
endscript
}
]]>
{{settings.system.mod_fcgid_ownvhost}}
{{settings.system.webserver}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.phpfpm.vhost_httpuser}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.system.webserver}}
bin/froxlor-cli /usr/local/bin/froxlor-cli]]>bin/froxlor-cli froxlor:cron --run-task 99]]>
================================================
FILE: lib/configfiles/bullseye.xml
================================================
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.deactivateddocroot}}
//service[@type='http']/general/commands{{settings.system.use_ssl}}
{{settings.phpfpm.enabled}}
{{settings.system.leenabled}}
Require all granted
]]>
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
{{settings.system.leenabled}}
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
//service[@type='http']/general/commands{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
> /etc/bind/named.conf.local]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=bind
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
named.conf
# How often to check for zone changes. See 'Operation' section.
bind-check-interval=180
# Uncomment to enable Huffman compression on zone data.
# Currently saves around 20% of memory actually used, but slows down operation.
# bind-enable-huffman
]]>
{{settings.system.vmail_gid}}
{{settings.system.vmail_uid}}
password =
dbname =
hosts =
query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND v.email = '%s' AND trim(v.destination) <> ''
]]>
password =
dbname =
hosts =
query = SELECT domain FROM panel_domains WHERE domain = '%s' AND isemaildomain = '1' AND deactivated = 0
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT CONCAT(homedir,maildir) FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
hosts =
query = SELECT GROUP_CONCAT(DISTINCT mu.username SEPARATOR ' ') AS sasl_users FROM mail_users mu WHERE mu.username = '%s' OR mu.email IN ((SELECT mail_virtual.email_full FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_virtual.destination FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = CONCAT('@', SUBSTRING_INDEX('%s','@',-1))));
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT uid FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT gid FROM mail_users WHERE email = '%s'
]]>
]]>
//service[@type='smtp']/general/commands[@index=1]
//service[@type='smtp']/general/installs[@index=1]
//service[@type='smtp']/general/commands[@index=2]
# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites. If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# user@that.users.mailhost.
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
# Debian GNU/Linux specific: Specifying a file name will cause the
# first line of that file to be used as the name. The Debian default
# is /etc/mailname.
#
#myorigin = /etc/mailname
#myorigin = $myhostname
#myorigin = $mydomain
# RECEIVING MAIL
# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
# The proxy_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on by way of a
# proxy or network address translation unit. This setting extends
# the address list specified with the inet_interfaces parameter.
#
# You must specify your proxy/NAT addresses when your system is a
# backup MX host for other domains, otherwise mail delivery loops
# will happen when the primary MX host is down.
#
#proxy_interfaces =
#proxy_interfaces = 1.2.3.4
# The mydestination parameter specifies the list of domains that this
# machine considers itself the final destination for.
#
# These domains are routed to the delivery agent specified with the
# local_transport parameter setting. By default, that is the UNIX
# compatible delivery agent that lookups all recipients in /etc/passwd
# and /etc/aliases or their equivalent.
#
# The default is $myhostname + localhost.$mydomain. On a mail domain
# gateway, you should also include $mydomain.
#
# Do not specify the names of virtual domains - those domains are
# specified elsewhere (see VIRTUAL_README).
#
# Do not specify the names of domains that this machine is backup MX
# host for. Specify those names via the relay_domains settings for
# the SMTP server, or use permit_mx_backup if you are lazy (see
# STANDARD_CONFIGURATION_README).
#
# The local machine is always the final destination for mail addressed
# to user@[the.net.work.address] of an interface that the mail system
# receives mail on (see the inet_interfaces parameter).
#
# Specify a list of host or domain names, /file/name or type:table
# patterns, separated by commas and/or whitespace. A /file/name
# pattern is replaced by its contents; a type:table is matched when
# a name matches a lookup key (the right-hand side is ignored).
# Continue long lines by starting the next line with whitespace.
#
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
#
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
#
# The local_recipient_maps parameter specifies optional lookup tables
# with all names or addresses of users that are local with respect
# to $mydestination, $inet_interfaces or $proxy_interfaces.
#
# If this parameter is defined, then the SMTP server will reject
# mail for unknown local users. This parameter is defined by default.
#
# To turn off local recipient checking in the SMTP server, specify
# local_recipient_maps = (i.e. empty).
#
# The default setting assumes that you use the default Postfix local
# delivery agent for local delivery. You need to update the
# local_recipient_maps setting if:
#
# - You define $mydestination domain recipients in files other than
# /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
# For example, you define $mydestination domain recipients in
# the $virtual_mailbox_maps files.
#
# - You redefine the local delivery agent in master.cf.
#
# - You redefine the "local_transport" setting in main.cf.
#
# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
# feature of the Postfix local delivery agent (see local(8)).
#
# Details are described in the LOCAL_RECIPIENT_README file.
#
# Beware: if the Postfix SMTP server runs chrooted, you probably have
# to access the passwd file via the proxymap service, in order to
# overcome chroot restrictions. The alternative, having a copy of
# the system passwd file in the chroot jail is just not practical.
#
# The right-hand side of the lookup tables is conveniently ignored.
# In the left-hand side, specify a bare username, an @domain.tld
# wild-card, or specify a user@domain.tld address.
#
#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
# The unknown_local_recipient_reject_code specifies the SMTP server
# response code when a recipient domain matches $mydestination or
# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
# and the recipient address or address local-part is not found.
#
# The default setting is 550 (reject mail) but it is safer to start
# with 450 (try again later) until you are certain that your
# local_recipient_maps settings are OK.
#
unknown_local_recipient_reject_code = 550
# TRUST AND RELAY CONTROL
# The mynetworks parameter specifies the list of "trusted" SMTP
# clients that have more privileges than "strangers".
#
# In particular, "trusted" SMTP clients are allowed to relay mail
# through Postfix. See the smtpd_recipient_restrictions parameter
# in postconf(5).
#
# You can specify the list of "trusted" network addresses by hand
# or you can let Postfix do it for you (which is the default).
#
# By default (mynetworks_style = subnet), Postfix "trusts" SMTP
# clients in the same IP subnetworks as the local machine.
# On Linux, this does works correctly only with interfaces specified
# with the "ifconfig" command.
#
# Specify "mynetworks_style = class" when Postfix should "trust" SMTP
# clients in the same IP class A/B/C networks as the local machine.
# Don't do this with a dialup site - it would cause Postfix to "trust"
# your entire provider's network. Instead, specify an explicit
# mynetworks list by hand, as described below.
#
# Specify "mynetworks_style = host" when Postfix should "trust"
# only the local machine.
#
#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
# Alternatively, you can specify the mynetworks list by hand, in
# which case Postfix ignores the mynetworks_style setting.
#
# Specify an explicit list of network/netmask patterns, where the
# mask specifies the number of bits in the network part of a host
# address.
#
# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 127.0.0.0/8
# The relay_domains parameter restricts what destinations this system will
# relay mail to. See the smtpd_recipient_restrictions description in
# postconf(5) for detailed information.
#
# By default, Postfix relays mail
# - from "trusted" clients (IP address matches $mynetworks) to any destination,
# - from "untrusted" clients to destinations that match $relay_domains or
# subdomains thereof, except addresses with sender-specified routing.
# The default relay_domains value is $mydestination.
#
# In addition to the above, the Postfix SMTP server by default accepts mail
# that Postfix is final destination for:
# - destinations that match $inet_interfaces or $proxy_interfaces,
# - destinations that match $mydestination
# - destinations that match $virtual_alias_domains,
# - destinations that match $virtual_mailbox_domains.
# These destinations do not need to be listed in $relay_domains.
#
# Specify a list of hosts or domains, /file/name patterns or type:name
# lookup tables, separated by commas and/or whitespace. Continue
# long lines by starting the next line with whitespace. A file name
# is replaced by its contents; a type:name table is matched when a
# (parent) domain appears as lookup key.
#
# NOTE: Postfix will not automatically forward mail for domains that
# list this system as their primary or backup MX host. See the
# permit_mx_backup restriction description in postconf(5).
#
#relay_domains = $mydestination
# INTERNET OR INTRANET
# The relayhost parameter specifies the default host to send mail to
# when no entry is matched in the optional transport(5) table. When
# no relayhost is given, mail is routed directly to the destination.
#
# On an intranet, specify the organizational domain name. If your
# internal DNS uses no MX records, specify the name of the intranet
# gateway host instead.
#
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
# [address] or [address]:port; the form [host] turns off MX lookups.
#
# If you're connected via UUCP, see also the default_transport parameter.
#
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
# REJECTING UNKNOWN RELAY USERS
#
# The relay_recipient_maps parameter specifies optional lookup tables
# with all addresses in the domains that match $relay_domains.
#
# If this parameter is defined, then the SMTP server will reject
# mail for unknown relay users. This feature is off by default.
#
# The right-hand side of the lookup tables is conveniently ignored.
# In the left-hand side, specify an @domain.tld wild-card, or specify
# a user@domain.tld address.
#
#relay_recipient_maps = hash:/etc/postfix/relay_recipients
# INPUT RATE CONTROL
#
# The in_flow_delay configuration parameter implements mail input
# flow control. This feature is turned on by default, although it
# still needs further development (it's disabled on SCO UNIX due
# to an SCO bug).
#
# A Postfix process will pause for $in_flow_delay seconds before
# accepting a new message, when the message arrival rate exceeds the
# message delivery rate. With the default 100 SMTP server process
# limit, this limits the mail inflow to 100 messages a second more
# than the number of messages delivered per second.
#
# Specify 0 to disable the feature. Valid delays are 0..10.
#
#in_flow_delay = 1s
# ADDRESS REWRITING
#
# The ADDRESS_REWRITING_README document gives information about
# address masquerading or other forms of address rewriting including
# username->Firstname.Lastname mapping.
# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
#
# The VIRTUAL_README document gives information about the many forms
# of domain hosting that Postfix supports.
# "USER HAS MOVED" BOUNCE MESSAGES
#
# See the discussion in the ADDRESS_REWRITING_README document.
# TRANSPORT MAP
#
# See the discussion in the ADDRESS_REWRITING_README document.
# ALIAS DATABASE
#
# The alias_maps parameter specifies the list of alias databases used
# by the local delivery agent. The default list is system dependent.
#
# On systems with NIS, the default is to search the local alias
# database, then the NIS alias database. See aliases(5) for syntax
# details.
#
# If you change the alias database, run "postalias /etc/aliases" (or
# wherever your system stores the mail alias file), or simply run
# "newaliases" to build the necessary DBM or DB file.
#
# It will take a minute or so before changes become visible. Use
# "postfix reload" to eliminate the delay.
#
#alias_maps = dbm:/etc/aliases
#alias_maps = hash:/etc/aliases
#alias_maps = hash:/etc/aliases, nis:mail.aliases
#alias_maps = netinfo:/aliases
# The alias_database parameter specifies the alias database(s) that
# are built with "newaliases" or "sendmail -bi". This is a separate
# configuration parameter, because alias_maps (see above) may specify
# tables that are not necessarily all under control by Postfix.
#
#alias_database = dbm:/etc/aliases
#alias_database = dbm:/etc/mail/aliases
#alias_database = hash:/etc/aliases
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
# ADDRESS EXTENSIONS (e.g., user+foo)
#
# The recipient_delimiter parameter specifies the separator between
# user names and address extensions (user+foo). See canonical(5),
# local(8), relocated(5) and virtual(5) for the effects this has on
# aliases, canonical, virtual, relocated and .forward file lookups.
# Basically, the software tries user+foo and .forward+foo before
# trying user and .forward.
#
#recipient_delimiter = +
# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user. Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
# The mail_spool_directory parameter specifies the directory where
# UNIX-style mailboxes are kept. The default setting depends on the
# system type.
#
#mail_spool_directory = /var/mail
#mail_spool_directory = /var/spool/mail
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).
#
# Unlike other Postfix configuration parameters, the mailbox_command
# parameter is not subjected to $parameter substitutions. This is to
# make it easier to specify shell syntax (see example below).
#
# Avoid shell meta characters because they will force Postfix to run
# an expensive shell process. Procmail alone is expensive enough.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
mailbox_command = /usr/lib/dovecot/deliver
#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
# The mailbox_transport specifies the optional transport in master.cf
# to use after processing aliases and .forward files. This parameter
# has precedence over the mailbox_command, fallback_transport and
# luser_relay parameters.
#
# Specify a string of the form transport:nexthop, where transport is
# the name of a mail delivery transport defined in master.cf. The
# :nexthop part is optional. For more details see the sample transport
# configuration file.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must update the "local_recipient_maps" setting in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
# Cyrus IMAP over LMTP. Specify ``lmtpunix cmd="lmtpd"
# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
#mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
#
# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
# subsequent line in master.cf.
#mailbox_transport = cyrus
# The fallback_transport specifies the optional transport in master.cf
# to use for recipients that are not found in the UNIX passwd database.
# This parameter has precedence over the luser_relay parameter.
#
# Specify a string of the form transport:nexthop, where transport is
# the name of a mail delivery transport defined in master.cf. The
# :nexthop part is optional. For more details see the sample transport
# configuration file.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must update the "local_recipient_maps" setting in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
#fallback_transport = lmtp:unix:/file/name
#fallback_transport = cyrus
#fallback_transport =
# The luser_relay parameter specifies an optional destination address
# for unknown recipients. By default, mail for unknown@$mydestination,
# unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
# as undeliverable.
#
# The following expansions are done on luser_relay: $user (recipient
# username), $shell (recipient shell), $home (recipient home directory),
# $recipient (full recipient address), $extension (recipient address
# extension), $domain (recipient domain), $local (entire recipient
# localpart), $recipient_delimiter. Specify ${name?value} or
# ${name:value} to expand value only when $name does (does not) exist.
#
# luser_relay works only for the default Postfix local delivery agent.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must specify "local_recipient_maps =" (i.e. empty) in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
#luser_relay = $user@other.host
#luser_relay = $local@other.host
#luser_relay = admin+$local
# JUNK MAIL CONTROLS
#
# The controls listed here are only a very small subset. The file
# SMTPD_ACCESS_README provides an overview.
# The header_checks parameter specifies an optional table with patterns
# that each logical message header is matched against, including
# headers that span multiple physical lines.
#
# By default, these patterns also apply to MIME headers and to the
# headers of attached messages. With older Postfix versions, MIME and
# attached message headers were treated as body text.
#
# For details, see "man header_checks".
#
#header_checks = regexp:/etc/postfix/header_checks
# FAST ETRN SERVICE
#
# Postfix maintains per-destination logfiles with information about
# deferred mail, so that mail can be flushed quickly with the SMTP
# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
# See the ETRN_README document for a detailed description.
#
# The fast_flush_domains parameter controls what destinations are
# eligible for this service. By default, they are all domains that
# this server is willing to relay mail to.
#
#fast_flush_domains = $relay_domains
# SHOW SOFTWARE VERSION OR NOT
#
# The smtpd_banner parameter specifies the text that follows the 220
# code in the SMTP server's greeting banner. Some people like to see
# the mail version advertised. By default, Postfix shows no version.
#
# You MUST specify $myhostname at the start of the text. That is an
# RFC requirement. Postfix itself does not care.
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
# PARALLEL DELIVERY TO THE SAME DESTINATION
#
# How many parallel deliveries to the same user or domain? With local
# delivery, it does not make sense to do massively parallel delivery
# to the same user, because mailbox updates must happen sequentially,
# and expensive pipelines in .forward files can cause disasters when
# too many are run at the same time. With SMTP deliveries, 10
# simultaneous connections to the same domain could be sufficient to
# raise eyebrows.
#
# Each message delivery transport has its XXX_destination_concurrency_limit
# parameter. The default is $default_destination_concurrency_limit for
# most delivery transports. For the local delivery agent the default is 2.
#local_destination_concurrency_limit = 2
#default_destination_concurrency_limit = 20
# DEBUGGING CONTROL
#
# The debug_peer_level parameter specifies the increment in verbose
# logging level when an SMTP client or server host name or address
# matches a pattern in the debug_peer_list parameter.
#
#debug_peer_level = 2
# The debug_peer_list parameter specifies an optional list of domain
# or network patterns, /file/name patterns or type:name tables. When
# an SMTP client or server host name or address matches a pattern,
# increase the verbose logging level by the amount specified in the
# debug_peer_level parameter.
#
#debug_peer_list = 127.0.0.1
#debug_peer_list = some.domain
# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
# If you can't use X, use this to capture the call stack when a
# daemon crashes. The result is in a file in the configuration
# directory, and is named after the process name and the process ID.
#
# debugger_command =
# PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
# echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
# >$config_directory/$process_name.$process_id.log & sleep 5
#
# Another possibility is to run gdb under a detached screen session.
# To attach to the screen session, su root and run "screen -r
# " where uniquely matches one of the detached
# sessions (from "screen -list").
#
# debugger_command =
# PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
# -dmS $process_name gdb $daemon_directory/$process_name
# $process_id & sleep 1
# INSTALL-TIME CONFIGURATION INFORMATION
#
# The following parameters are used when installing a new Postfix version.
#
# sendmail_path: The full pathname of the Postfix sendmail command.
# This is the Sendmail-compatible mail posting interface.
#
sendmail_path = /usr/sbin/sendmail
# newaliases_path: The full pathname of the Postfix newaliases command.
# This is the Sendmail-compatible command to build alias databases.
#
newaliases_path = /usr/bin/newaliases
# mailq_path: The full pathname of the Postfix mailq command. This
# is the Sendmail-compatible mail queue listing command.
#
mailq_path = /usr/bin/mailq
# setgid_group: The group for mail submission and queue management
# commands. This must be a group name with a numerical group ID that
# is not shared with other accounts, not even with the Postfix account.
#
setgid_group = postdrop
# html_directory: The location of the Postfix HTML documentation.
#
html_directory = no
# manpage_directory: The location of the Postfix on-line manual pages.
#
manpage_directory = /usr/share/man
# sample_directory: The location of the Postfix sample configuration files.
# This parameter is obsolete as of Postfix 2.1.
#
sample_directory = /usr/share/doc/postfix
# readme_directory: The location of the Postfix README files.
#
readme_directory = /usr/share/doc/postfix
inet_protocols = ipv4
append_dot_mydomain = no
biff = no
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unknown_helo_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client_hostname
# Postfix 2.10 requires this option. Postfix < 2.10 ignores this.
# The option is intentionally left empty.
smtpd_relay_restrictions =
# Maximum size of Message in bytes (50MB)
message_size_limit = 52428800
## SASL Auth Settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport
smtpd_sasl_type = dovecot
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_path = private/auth
# Virtual delivery settings
virtual_mailbox_base = /
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:
virtual_gid_maps = static:
# Local delivery settings
local_transport = local
alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
###
## TLS for outgoing mails from the server to another server
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
## TLS for incoming connections (clients or other mail servers)
smtpd_tls_security_level = may
smtpd_tls_cert_file =
smtpd_tls_key_file =
#smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_session_cache_timeout = 3600s
]]>
//service[@type='smtp']/general/files[@index=0]//service[@type='smtp']/general/commands[@index=3]
to select which instance is used (an alternative
# to -c ). The instance name is also added to Dovecot processes
# in ps output.
#instance_name = dovecot
# Greeting message for clients.
#login_greeting = Dovecot ready.
# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =
# Space separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets =
# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
# proxying. This isn't necessary normally, but may be useful if the destination
# IP is e.g. a load balancer's IP.
#auth_proxy_self =
# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no
# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes
# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server
# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ
##
## Dictionary server settings
##
# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::".
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf
# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf
]]>
dbname= user= password="
# Default password scheme.
#
# List of supported schemes is in
# http://wiki2.dovecot.org/Authentication/PasswordSchemes
#
#default_pass_scheme = CRYPT
# passdb query to retrieve the password. It can return fields:
# password - The user's password. This field must be returned.
# user - user@domain from the database. Needed with case-insensitive lookups.
# username and domain - An alternative way to represent the "user" field.
#
# The "user" field is often necessary with case-insensitive lookups to avoid
# e.g. "name" and "nAme" logins creating two different mail directories. If
# your user and domain names are in separate fields, you can return "username"
# and "domain" fields instead of "user".
#
# The query can also return other fields which have a special meaning, see
# http://wiki2.dovecot.org/PasswordDatabase/ExtraFields
#
# Commonly used available substitutions (see http://wiki2.dovecot.org/Variables
# for full list):
# %u = entire user@domain
# %n = user part of user@domain
# %d = domain part of user@domain
#
# Note that these can be used only as input to SQL query. If the query outputs
# any of these substitutions, they're not touched. Otherwise it would be
# difficult to have eg. usernames containing '%' characters.
#
# Example:
# password_query = SELECT userid AS user, pw AS password \
# FROM users WHERE userid = '%u' AND active = 'Y'
#
#password_query = \
# SELECT username, domain, password \
# FROM users WHERE username = '%n' AND domain = '%d'
# userdb query to retrieve the user information. It can return fields:
# uid - System UID (overrides mail_uid setting)
# gid - System GID (overrides mail_gid setting)
# home - Home directory
# mail - Mail location (overrides mail_location setting)
#
# None of these are strictly required. If you use a single UID and GID, and
# home or mail directory fits to a template string, you could use userdb static
# instead. For a list of all fields that can be returned, see
# http://wiki2.dovecot.org/UserDatabase/ExtraFields
#
# Examples:
# user_query = SELECT home, uid, gid FROM users WHERE userid = '%u'
# user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u'
# user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u'
#
#user_query = \
# SELECT home, uid, gid \
# FROM users WHERE username = '%n' AND domain = '%d'
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('*:storage=', quota, 'M') as quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u')
# If you wish to avoid two SQL lookups (passdb + userdb), you can use
# userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll
# also have to return userdb fields in password_query prefixed with "userdb_"
# string. For example:
#password_query = \
# SELECT userid AS user, password, \
# home AS userdb_home, uid AS userdb_uid, gid AS userdb_gid \
# FROM users WHERE userid = '%u'
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('*:storage=', quota, 'M') as userdb_quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR ((postfix = 'Y' AND '%Ls' = 'smtp') OR (postfix = 'Y' AND '%Ls' = 'sieve')))
# Query to get a list of all usernames.
iterate_query = "SELECT username AS user FROM mail_users WHERE (imap = 1 OR pop3 = 1)"
]]>
to characters. For example "#@/@" means
# that '#' and '/' characters are translated to '@'.
#auth_username_translation =
# Username formatting before it's looked up from databases. You can use
# the standard variables here, eg. %Lu would lowercase the username, %n would
# drop away the domain if it was given, or "%n-AT-%d" would change the '@' into
# "-AT-". This translation is done after auth_username_translation changes.
#auth_username_format = %Lu
# If you want to allow master users to log in by specifying the master
# username within the normal username string (ie. not using SASL mechanism's
# support for it), you can specify the separator character here. The format
# is then . UW-IMAP uses "*" as the
# separator, so that could be a good choice.
#auth_master_user_separator =
# Username to use for users logging in with ANONYMOUS SASL mechanism
#auth_anonymous_username = anonymous
# Maximum number of dovecot-auth worker processes. They're used to execute
# blocking passdb and userdb queries (eg. MySQL and PAM). They're
# automatically created and destroyed as needed.
#auth_worker_max_count = 30
# Host name to use in GSSAPI principal names. The default is to use the
# name returned by gethostname(). Use "$ALL" (with quotes) to allow all keytab
# entries.
#auth_gssapi_hostname =
# Kerberos keytab to use for the GSSAPI mechanism. Will use the system
# default (usually /etc/krb5.keytab) if not specified. You may need to change
# the auth service to run as root to be able to read this file.
#auth_krb5_keytab =
# Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and
# ntlm_auth helper.
#auth_use_winbind = no
# Path for Samba's ntlm_auth helper binary.
#auth_winbind_helper_path = /usr/bin/ntlm_auth
# Time to delay before replying to failed authentications.
#auth_failure_delay = 2 secs
# Require a valid SSL client certificate or the authentication fails.
#auth_ssl_require_client_cert = no
# Take the username from client's SSL certificate, using
# X509_NAME_get_text_by_NID() which returns the subject's DN's
# CommonName.
#auth_ssl_username_from_cert = no
# Space separated list of wanted authentication mechanisms:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp
# gss-spnego
# NOTE: See also disable_plaintext_auth setting.
auth_mechanisms = plain login
##
## Password and user databases
##
#
# Password database is used to verify user's password (and nothing more).
# You can have multiple passdbs and userdbs. This is useful if you want to
# allow both system users (/etc/passwd) and virtual users to login without
# duplicating the system users into virtual database.
#
#
#
# User database specifies where mails are located and what user/group IDs
# own them. For single-UID configuration use "static" userdb.
#
#
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
#!include auth-system.conf.ext
!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-static.conf.ext
]]>
#
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# If you need to set multiple mailbox locations or want to change default
# namespace settings, you can do it by defining namespace sections.
#
# You can have private, shared and public namespaces. Private namespaces
# are for user's personal mails. Shared namespaces are for accessing other
# users' mailboxes that have been shared. Public namespaces are for shared
# mailboxes that are managed by sysadmin. If you create any shared or public
# namespaces you'll typically want to enable ACL plugin also, otherwise all
# users can access all the shared mailboxes, assuming they have permissions
# on filesystem level to do so.
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
#location =
# There can be only one INBOX, and this setting defines which namespace
# has it.
inbox = yes
# If namespace is hidden, it's not advertised to clients via NAMESPACE
# extension. You'll most likely also want to set list=no. This is mostly
# useful when converting from another server with different namespaces which
# you want to deprecate but still keep working. For example you can create
# hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
#hidden = no
# Show the mailboxes under this namespace with LIST command. This makes the
# namespace visible for clients that don't support NAMESPACE extension.
# "children" value lists child mailboxes, but hides the namespace prefix.
#list = yes
# Namespace handles its own subscriptions. If set to "no", the parent
# namespace handles them (empty prefix should always have this as "yes")
#subscriptions = yes
# See 15-mailboxes.conf for definitions of special mailboxes.
}
# Example shared namespace configuration
#namespace {
#type = shared
#separator = /
# Mailboxes are visible under "shared/user@domain/"
# %%n, %%d and %%u are expanded to the destination user.
#prefix = shared/%%u/
# Mail location for other users' mailboxes. Note that %variables and ~/
# expands to the logged in user's data. %%n, %%d, %%u and %%h expand to the
# destination user's data.
#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
# Use the default namespace for saving subscriptions.
#subscriptions = no
# List the shared/ namespace only if there are visible shared mailboxes.
#list = children
#}
# Should shared INBOX be visible as "shared/user" or "shared/user/INBOX"?
#mail_shared_explicit_inbox = no
# System user and group used to access mails. If you use multiple, userdb
# can override these by returning uid or gid fields. You can use either numbers
# or names.
#mail_uid =
#mail_gid =
# Group to enable temporarily for privileged operations. Currently this is
# used only with INBOX when either its initial creation or dotlocking fails.
# Typically this is set to "mail" to give access to /var/mail.
mail_privileged_group = mail
# Grant access to these supplementary groups for mail processes. Typically
# these are used to set up access to shared mailboxes. Note that it may be
# dangerous to set these if users can create symlinks (e.g. if "mail" group is
# set here, ln -s /var/mail ~/mail/var could allow a user to delete others'
# mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).
#mail_access_groups =
# Allow full filesystem access to clients. There's no access checks other than
# what the operating system does for the active UID/GID. It works with both
# maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/
# or ~user/.
#mail_full_filesystem_access = no
# Dictionary for key=value mailbox attributes. This is used for example by
# URLAUTH and METADATA extensions.
#mail_attribute_dict =
# A comment or note that is associated with the server. This value is
# accessible for authenticated users through the IMAP METADATA server
# entry "/shared/comment".
#mail_server_comment = ""
# Indicates a method for contacting the server administrator. According to
# RFC 5464, this value MUST be a URI (e.g., a mailto: or tel: URL), but that
# is currently not enforced. Use for example mailto:admin@example.com. This
# value is accessible for authenticated users through the IMAP METADATA server
# entry "/shared/admin".
#mail_server_admin =
##
## Mail processes
##
# Don't use mmap() at all. This is required if you store indexes to shared
# filesystems (NFS or clustered filesystem).
#mmap_disable = no
# Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL
# since version 3, so this should be safe to use nowadays by default.
#dotlock_use_excl = yes
# When to use fsync() or fdatasync() calls:
# optimized (default): Whenever necessary to avoid losing important data
# always: Useful with e.g. NFS when write()s are delayed
# never: Never use it (best performance, but crashes can lose data)
#mail_fsync = optimized
# Locking method for index files. Alternatives are fcntl, flock and dotlock.
# Dotlocking uses some tricks which may create more disk I/O than other locking
# methods. NFS users: flock doesn't work, remember to change mmap_disable.
#lock_method = fcntl
# Directory where mails can be temporarily stored. Usually it's used only for
# mails larger than >= 128 kB. It's used by various parts of Dovecot, for
# example LDA/LMTP while delivering large mails or zlib plugin for keeping
# uncompressed mails.
#mail_temp_dir = /tmp
# Valid UID range for users, defaults to 500 and above. This is mostly
# to make sure that users can't log in as daemons or other system users.
# Note that denying root logins is hardcoded to dovecot binary and can't
# be done even if first_valid_uid is set to 0.
#first_valid_uid = 500
#last_valid_uid = 0
# Valid GID range for users, defaults to non-root/wheel. Users having
# non-valid GID as primary group ID aren't allowed to log in. If user
# belongs to supplementary groups with non-valid GIDs, those groups are
# not set.
#first_valid_gid = 1
#last_valid_gid = 0
# Maximum allowed length for mail keyword name. It's only forced when trying
# to create new keywords.
#mail_max_keyword_length = 50
# ':' separated list of directories under which chrooting is allowed for mail
# processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too).
# This setting doesn't affect login_chroot, mail_chroot or auth chroot
# settings. If this setting is empty, "/./" in home dirs are ignored.
# WARNING: Never add directories here which local users can modify, that
# may lead to root exploit. Usually this should be done only if you don't
# allow shell access for users.
#valid_chroot_dirs =
# Default chroot directory for mail processes. This can be overridden for
# specific users in user database by giving /./ in user's home directory
# (eg. /home/./user chroots into /home). Note that usually there is no real
# need to do chrooting, Dovecot doesn't allow users to access files outside
# their mail directory anyway. If your home directories are prefixed with
# the chroot directory, append "/." to mail_chroot.
#mail_chroot =
# UNIX socket path to master authentication server to find users.
# This is used by imap (for shared users) and lda.
#auth_socket_path = /var/run/dovecot/auth-userdb
# Directory where to look up mail plugins.
#mail_plugin_dir = /usr/lib/dovecot/modules
# Space separated list of plugins to load for all services. Plugins specific to
# IMAP, LDA, etc. are added to this list in their own .conf files.
#mail_plugins =
##
## Mailbox handling optimizations
##
# Mailbox list indexes can be used to optimize IMAP STATUS commands. They are
# also required for IMAP NOTIFY extension to be enabled.
#mailbox_list_index = yes
# Trust mailbox list index to be up-to-date. This reduces disk I/O at the cost
# of potentially returning out-of-date results after e.g. server crashes.
# The results will be automatically fixed once the folders are opened.
#mailbox_list_index_very_dirty_syncs = yes
# Should INBOX be kept up-to-date in the mailbox list index? By default it's
# not, because most of the mailbox accesses will open INBOX anyway.
#mailbox_list_index_include_inbox = no
# The minimum number of mails in a mailbox before updates are done to cache
# file. This allows optimizing Dovecot's behavior to do less disk writes at
# the cost of more disk reads.
#mail_cache_min_mail_count = 0
# When IDLE command is running, mailbox is checked once in a while to see if
# there are any new mails or other changes. This setting defines the minimum
# time to wait between those checks. Dovecot can also use inotify and
# kqueue to find out immediately when changes occur.
#mailbox_idle_check_interval = 30 secs
# Save mails with CR+LF instead of plain LF. This makes sending those mails
# take less CPU, especially with sendfile() syscall with Linux and FreeBSD.
# But it also creates a bit more disk I/O which may just make it slower.
# Also note that if other software reads the mboxes/maildirs, they may handle
# the extra CRs wrong and cause problems.
#mail_save_crlf = no
# Max number of mails to keep open and prefetch to memory. This only works with
# some mailbox formats and/or operating systems.
#mail_prefetch_count = 0
# How often to scan for stale temporary files and delete them (0 = never).
# These should exist only after Dovecot dies in the middle of saving mails.
#mail_temp_scan_interval = 1w
# How many slow mail accesses sorting can perform before it returns failure.
# With IMAP the reply is: NO [LIMIT] Requested sort would have taken too long.
# The untagged SORT reply is still returned, but it's likely not correct.
#mail_sort_max_read_count = 0
protocol !indexer-worker {
# If folder vsize calculation requires opening more than this many mails from
# disk (i.e. mail sizes aren't in cache already), return failure and finish
# the calculation via indexer process. Disabled by default. This setting must
# be 0 for indexer-worker processes.
#mail_vsize_bg_after_count = 0
}
##
## Maildir-specific settings
##
# By default LIST command returns all entries in maildir beginning with a dot.
# Enabling this option makes Dovecot return only entries which are directories.
# This is done by stat()ing each entry, so it causes more disk I/O.
# (For systems setting struct dirent->d_type, this check is free and it's
# done always regardless of this setting)
#maildir_stat_dirs = no
# When copying a message, do it with hard links whenever possible. This makes
# the performance much better, and it's unlikely to have any side effects.
#maildir_copy_with_hardlinks = yes
# Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only
# when its mtime changes unexpectedly or when we can't find the mail otherwise.
#maildir_very_dirty_syncs = no
# If enabled, Dovecot doesn't use the S= in the Maildir filenames for
# getting the mail's physical size, except when recalculating Maildir++ quota.
# This can be useful in systems where a lot of the Maildir filenames have a
# broken size. The performance hit for enabling this is very small.
#maildir_broken_filename_sizes = no
# Always move mails from new/ directory to cur/, even when the \Recent flags
# aren't being reset.
#maildir_empty_new = no
##
## mbox-specific settings
##
# Which locking methods to use for locking mbox. There are four available:
# dotlock: Create .lock file. This is the oldest and most NFS-safe
# solution. If you want to use /var/mail/ like directory, the users
# will need write access to that directory.
# dotlock_try: Same as dotlock, but if it fails because of permissions or
# because there isn't enough disk space, just skip it.
# fcntl : Use this if possible. Works with NFS too if lockd is used.
# flock : May not exist in all systems. Doesn't work with NFS.
# lockf : May not exist in all systems. Doesn't work with NFS.
#
# You can use multiple locking methods; if you do the order they're declared
# in is important to avoid deadlocks if other MTAs/MUAs are using multiple
# locking methods as well. Some operating systems don't allow using some of
# them simultaneously.
#
# The Debian value for mbox_write_locks differs from upstream Dovecot. It is
# changed to be compliant with Debian Policy (section 11.6) for NFS safety.
# Dovecot: mbox_write_locks = dotlock fcntl
# Debian: mbox_write_locks = fcntl dotlock
#
#mbox_read_locks = fcntl
#mbox_write_locks = fcntl dotlock
# Maximum time to wait for lock (all of them) before aborting.
#mbox_lock_timeout = 5 mins
# If dotlock exists but the mailbox isn't modified in any way, override the
# lock file after this much time.
#mbox_dotlock_change_timeout = 2 mins
# When mbox changes unexpectedly we have to fully read it to find out what
# changed. If the mbox is large this can take a long time. Since the change
# is usually just a newly appended mail, it'd be faster to simply read the
# new mails. If this setting is enabled, Dovecot does this but still safely
# fallbacks to re-reading the whole mbox file whenever something in mbox isn't
# how it's expected to be. The only real downside to this setting is that if
# some other MUA changes message flags, Dovecot doesn't notice it immediately.
# Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK
# commands.
#mbox_dirty_syncs = yes
# Like mbox_dirty_syncs, but don't do full syncs even with SELECT, EXAMINE,
# EXPUNGE or CHECK commands. If this is set, mbox_dirty_syncs is ignored.
#mbox_very_dirty_syncs = no
# Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK
# commands and when closing the mailbox). This is especially useful for POP3
# where clients often delete all mails. The downside is that our changes
# aren't immediately visible to other MUAs.
#mbox_lazy_writes = yes
# If mbox size is smaller than this (e.g. 100k), don't write index files.
# If an index file already exists it's still read, just not updated.
#mbox_min_index_size = 0
# Mail header selection algorithm to use for MD5 POP3 UIDLs when
# pop3_uidl_format=%m. For backwards compatibility we use apop3d inspired
# algorithm, but it fails if the first Received: header isn't unique in all
# mails. An alternative algorithm is "all" that selects all headers.
#mbox_md5 = apop3d
##
## mdbox-specific settings
##
# Maximum dbox file size until it's rotated.
#mdbox_rotate_size = 10M
# Maximum dbox file age until it's rotated. Typically in days. Day begins
# from midnight, so 1d = today, 2d = yesterday, etc. 0 = check disabled.
#mdbox_rotate_interval = 0
# When creating new mdbox files, immediately preallocate their size to
# mdbox_rotate_size. This setting currently works only in Linux with some
# filesystems (ext4, xfs).
#mdbox_preallocate_space = no
##
## Mail attachments
##
# sdbox and mdbox support saving mail attachments to external files, which
# also allows single instance storage for them. Other backends don't support
# this for now.
# Directory root where to store mail attachments. Disabled, if empty.
#mail_attachment_dir =
# Attachments smaller than this aren't saved externally. It's also possible to
# write a plugin to disable saving specific attachments externally.
#mail_attachment_min_size = 128k
# Filesystem backend to use for saving attachments:
# posix : No SiS done by Dovecot (but this might help FS's own deduplication)
# sis posix : SiS with immediate byte-by-byte comparison during saving
# sis-queue posix : SiS with delayed comparison and deduplication
#mail_attachment_fs = sis posix
# Hash format to use in attachment filenames. You can add any text and
# variables: %{md4}, %{md5}, %{sha1}, %{sha256}, %{sha512}, %{size}.
# Variables can be truncated, e.g. %{sha256:80} returns only first 80 bits
#mail_attachment_hash = %{sha1}
# Settings to control adding $HasAttachment or $HasNoAttachment keywords.
# By default, all MIME parts with Content-Disposition=attachment, or inlines
# with filename parameter are consired attachments.
# add-flags - Add the keywords when saving new mails or when fetching can
# do it efficiently.
# content-type=type or !type - Include/exclude content type. Excluding will
# never consider the matched MIME part as attachment. Including will only
# negate an exclusion (e.g. content-type=!foo/* content-type=foo/bar).
# exclude-inlined - Exclude any Content-Disposition=inline MIME part.
#mail_attachment_detection_options =
]]>
#service_count = 1
# Number of processes to always keep waiting for more connections.
#process_min_avail = 0
# If you set service_count=0, you probably need to grow this.
#vsz_limit = $default_vsz_limit
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
#port = 995
#ssl = yes
}
}
service submission-login {
inet_listener submission {
#port = 587
}
}
service lmtp {
unix_listener lmtp {
#mode = 0666
}
# Create inet listener only if you can't use the above UNIX socket
#inet_listener lmtp {
# Avoid making LMTP visible for the entire internet
#address =
#port =
#}
}
service imap {
# Most of the memory goes to mmap()ing files. You may need to increase this
# limit if you have huge mailboxes.
#vsz_limit = $default_vsz_limit
# Max. number of IMAP processes (connections)
#process_limit = 1024
}
service pop3 {
# Max. number of POP3 processes (connections)
#process_limit = 1024
}
service submission {
# Max. number of SMTP Submission processes (connections)
#process_limit = 1024
}
service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
# full permissions to this socket are able to get a list of all usernames and
# get the results of everyone's userdb lookups.
#
# The default 0666 mode allows anyone to connect to the socket, but the
# userdb lookups will succeed only if the userdb returns an "uid" field that
# matches the caller process's UID. Also if caller's uid or gid matches the
# socket's uid or gid the lookup succeeds. Anything else causes a failure.
#
# To give the caller full permissions to lookup all users, set the mode to
# something else than 0666 and Dovecot lets the kernel enforce the
# permissions (e.g. 0777 allows everyone full permissions).
unix_listener auth-userdb {
#mode = 0666
#user =
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Exim4 smtp-auth
unix_listener auth-client {
mode = 0660
user = mail
#group = Debian-exim
}
# Auth process is run as this user.
#user = $default_internal_user
}
service auth-worker {
# Auth worker process is run as root by default, so that it can access
# /etc/shadow. If this isn't necessary, the user should be changed to
# $default_internal_user.
#user = root
}
service dict {
# If dict proxy is used, mail processes should have access to its socket.
# For example: mode=0660, group=vmail and global mail_access_groups=vmail
unix_listener dict {
#mode = 0600
#user =
#group =
}
}
service stats {
unix_listener stats-reader {
group = vmail
mode = 0666
}
unix_listener stats-writer {
group = vmail
mode = 0666
}
}
]]>
ssl = yes
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = <
ssl_key = <
# If key file is password protected, give the password here. Alternatively
# give it when starting dovecot with -p parameter. Since this file is often
# world-readable, you may want to place this setting instead to a different
# root owned 0600 file by using ssl_key_password =
# Hostname to use in various parts of sent mails (e.g. in Message-Id) and
# in LMTP replies. Default is the system's real hostname@domain.
#hostname =
# If user is over quota, return with temporary failure instead of
# bouncing the mail.
#quota_full_tempfail = no
# Binary to use for sending mails.
#sendmail_path = /usr/sbin/sendmail
# If non-empty, send mails via this SMTP host[:port] instead of sendmail.
#submission_host =
# Subject: header to use for rejection mails. You can use the same variables
# as for rejection_reason below.
#rejection_subject = Rejected: %s
# Human readable error message for rejection mails. You can use variables:
# %n = CRLF, %r = reason, %s = original subject, %t = recipient
#rejection_reason = Your message to <%t> was automatically rejected:%n%r
# Delimiter character between local-part and detail in email address.
#recipient_delimiter = +
# Header where the original recipient address (SMTP's RCPT TO: address) is taken
# from if not available elsewhere. With dovecot-lda -a parameter overrides this.
# A commonly used header for this is X-Original-To.
#lda_original_recipient_header =
# Should saving a mail to a nonexistent mailbox automatically create it?
#lda_mailbox_autocreate = no
# Should automatically created mailboxes be also automatically subscribed?
#lda_mailbox_autosubscribe = no
protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins quota sieve
}
]]>
#service_count = 1
# Number of processes to always keep waiting for more connections.
#process_min_avail = 0
# If you set service_count=0, you probably need to grow this.
#vsz_limit = 64M
#}
#service managesieve {
# Max. number of ManageSieve processes (connections)
#process_limit = 1024
#}
# Service configuration
protocol sieve {
# Maximum ManageSieve command line length in bytes. ManageSieve usually does
# not involve overly long command lines, so this setting will not normally
# need adjustment
#managesieve_max_line_length = 65536
# Maximum number of ManageSieve connections allowed for a user from each IP
# address.
# NOTE: The username is compared case-sensitively.
#mail_max_userip_connections = 10
# Space separated list of plugins to load (none known to be useful so far).
# Do NOT try to load IMAP plugins here.
#mail_plugins =
# MANAGESIEVE logout format string:
# %i - total number of bytes read from client
# %o - total number of bytes sent to client
# %{put_bytes} - Number of bytes saved using PUTSCRIPT command
# %{put_count} - Number of scripts saved using PUTSCRIPT command
# %{get_bytes} - Number of bytes read using GETCRIPT command
# %{get_count} - Number of scripts read using GETSCRIPT command
# %{get_bytes} - Number of bytes processed using CHECKSCRIPT command
# %{get_count} - Number of scripts checked using CHECKSCRIPT command
# %{deleted_count} - Number of scripts deleted using DELETESCRIPT command
# %{renamed_count} - Number of scripts renamed using RENAMESCRIPT command
#managesieve_logout_format = bytes=%i/%o
# To fool ManageSieve clients that are focused on CMU's timesieved you can
# specify the IMPLEMENTATION capability that Dovecot reports to clients.
# For example: 'Cyrus timsieved v2.2.13'
#managesieve_implementation_string = Dovecot Pigeonhole
# Explicitly specify the SIEVE and NOTIFY capability reported by the server
# before login. If left unassigned these will be reported dynamically
# according to what the Sieve interpreter supports by default (after login
# this may differ depending on the user).
#managesieve_sieve_capability =
#managesieve_notify_capability =
# The maximum number of compile errors that are returned to the client upon
# script upload or script verification.
#managesieve_max_compile_errors = 5
# Refer to 90-sieve.conf for script quota configuration and configuration of
# Sieve execution limits.
}
]]>
= 2.1.4) : %v.%u
# Dovecot v0.99.x : %v.%u
# tpop3d : %Mf
#
# Note that Outlook 2003 seems to have problems with %v.%u format which was
# Dovecot's default, so if you're building a new server it would be a good
# idea to change this. %08Xu%08Xv should be pretty fail-safe.
#
#pop3_uidl_format = %08Xu%08Xv
# Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes
# won't change those UIDLs. Currently this works only with Maildir.
#pop3_save_uidl = no
# What to do about duplicate UIDLs if they exist?
# allow: Show duplicates to clients.
# rename: Append a temporary -2, -3, etc. counter after the UIDL.
#pop3_uidl_duplicates = allow
# This option changes POP3 behavior so that it's not possible to actually
# delete mails via POP3, only hide them from future POP3 sessions. The mails
# will still be counted towards user's quota until actually deleted via IMAP.
# Use e.g. "$POP3Deleted" as the value (it will be visible as IMAP keyword).
# Make sure you can legally archive mails before enabling this setting.
#pop3_deleted_flag =
# POP3 logout format string:
# %i - total number of bytes read from client
# %o - total number of bytes sent to client
# %t - number of TOP commands
# %p - number of bytes sent to client as a result of TOP command
# %r - number of RETR commands
# %b - number of bytes sent to client as a result of RETR command
# %d - number of deleted messages
# %{deleted_bytes} - number of bytes in deleted messages
# %m - number of messages (before deletion)
# %s - mailbox size in bytes (before deletion)
# %u - old/new UIDL hash. may help finding out if UIDLs changed unexpectedly
pop3_logout_format = in=%i out=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
# Workarounds for various client bugs:
# outlook-no-nuls:
# Outlook and Outlook Express hang if mails contain NUL characters.
# This setting replaces them with 0x80 character.
# oe-ns-eoh:
# Outlook Express and Netscape Mail breaks if end of headers-line is
# missing. This option simply sends it if it's missing.
# The list is space-separated.
#pop3_client_workarounds =
protocol pop3 {
# Space separated list of plugins to load (default is global mail_plugins).
#mail_plugins = $mail_plugins
# Maximum number of POP3 connections allowed for a user from each IP address.
# NOTE: The username is compared case-sensitively.
#mail_max_userip_connections = 10
}
]]>
:]path[;//service[@type='mail']/general/installs[@index=1]
//service[@type='mail']/general/files[@index=1]
//service[@type='mail']/general/commands[@index=1]
/dev/null]]> /etc/apt/sources.list.d/rspamd.list]]>> /etc/apt/sources.list.d/rspamd.list]]>//service[@type='antispam']/general/commands[@index=1]
//service[@type='antispam']/general/installs[@index=1]
//service[@type='antispam']/general/commands[@index=2]
//service[@type='antispam']/general/files[@index=1]
//service[@type='antispam']/general/commands[@index=3]
"
[ -f /etc/ssl/certs/proftpd_ec.crt ] || openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp521r1) -keyout /etc/ssl/private/proftpd_ec.key -out /etc/ssl/certs/proftpd_ec.crt -days 3650 -subj "/C=US/ST=Some-State/O=Internet Widgits Pty Ltd/CN="
chmod 0600 /etc/ssl/private/proftpd.key /etc/ssl/private/proftpd_ec.key
]]>
IdentLookups off
ServerName " FTP Server"
ServerType standalone
DeferWelcome off
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# If your host was NATted, this option is useful in order to
# allow passive transfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
# DynMasqRefresh 28800
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwritable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or ), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
QuotaEngine on
Ratios off
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
# A basic anonymous configuration, no upload directories.
#
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
#
#
# DenyAll
#
#
#
# # Uncomment this if you're brave.
# #
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# #
# # DenyAll
# #
# #
# # AllowAll
# #
# #
#
#
# Include other custom configuration files
Include /etc/proftpd/conf.d/
]]>
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
SQLBackend mysql
#
SQLEngine on
SQLAuthenticate on
#
# Use both an encrypted or plaintext password
SQLAuthTypes Crypt OpenSSL
SQLAuthenticate users* groups*
#
# Connection
SQLConnectInfo @
#
# Describes both users/groups tables
#
SQLUserInfo ftp_users username password uid gid homedir shell
SQLGroupInfo ftp_groups groupname gid members
#
SQLUserWhereClause "login_enabled = 'y'"
SQLLog PASS login
SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users
SQLLog RETR download
SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users
SQLLog STOR upload
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
QuotaEngine on
QuotaShowQuotas on
QuotaDisplayUnits Mb
QuotaLock /var/lock/ftpd.quotatab.lock
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
]]>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSECCertificateFile /etc/ssl/certs/proftpd_ec.crt
TLSECCertificateKeyFile /etc/ssl/private/proftpd_ec.key
# TLSCACertificateFile
TLSOptions NoSessionReuseRequired
TLSVerifyClient off
# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotiations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
#
#TLSRenegotiate required off
]]>
From 127.0.0.1
MaxLoginAttempts 3
BanEngine off
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root
BanEngine off
DelayEngine off
]]>
"
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 3072
chmod 0600 /etc/ssl/private/pure-ftpd.pem /etc/ssl/private/pure-ftpd-dhparams.pem
]]>
# Mandatory : user password. You must have a password.
MYSQLPassword
# Mandatory : database to open.
MYSQLDatabase
# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "sha1", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "sha1", "md5" *and* "password"
MYSQLCrypt any
# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.
# Query to execute in order to fetch the password
MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Query to execute in order to fetch the system user name or uid
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default UID - if set this overrides MYSQLGetUID
#MYSQLDefaultUID 1000
# Query to execute in order to fetch the system user group or gid
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default GID - if set this overrides MYSQLGetGID
#MYSQLDefaultGID 1000
# Query to execute in order to fetch the home directory
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.
# MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User='\L'
# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTASZ SELECT CASE WHEN panel_customers.diskspace = 0 THEN -1 WHEN panel_customers.diskspace <= -1 THEN 0 ELSE panel_customers.diskspace/1024 END AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
# Optional : ratios. The server has to be compiled with ratio support.
# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .
# MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'
# MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.
# MySQLForceTildeExpansion 1
# If you're using a transactionnal storage engine, you can enable SQL
# transactions to avoid races. Leave this commented if you are using the
# traditional MyIsam engine.
# MySQLTransactions On
]]>
*.log {
missingok
daily
rotate 7
compress
delaycompress
notifempty
create
sharedscripts
postrotate
> /dev/null 2>&1 || true
endscript
}
]]>
{{settings.system.mod_fcgid_ownvhost}}
{{settings.system.webserver}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.phpfpm.vhost_httpuser}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
bin/froxlor-cli /usr/local/bin/froxlor-cli]]>bin/froxlor-cli froxlor:cron --run-task 99]]>
================================================
FILE: lib/configfiles/focal.xml
================================================
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.deactivateddocroot}}
//service[@type='http']/general/commands{{settings.system.use_ssl}}
{{settings.phpfpm.enabled}}
{{settings.system.leenabled}}
Require all granted
]]>
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
{{settings.system.leenabled}}
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
//service[@type='http']/general/commands{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
> /etc/bind/named.conf.local]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# allow-recursion List of subnets that are allowed to recurse
#
allow-recursion=127.0.0.1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# recursive-cache-ttl Seconds to store packets for recursive queries in the PacketCache
#
# recursive-cache-ttl=10
#################################
# recursor If recursion is desired, IP address of a recursing nameserver
#
# recursor=no
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# allow-recursion List of subnets that are allowed to recurse
#
allow-recursion=127.0.0.1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=bind
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# recursive-cache-ttl Seconds to store packets for recursive queries in the PacketCache
#
# recursive-cache-ttl=10
#################################
# recursor If recursion is desired, IP address of a recursing nameserver
#
# recursor=no
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
named.conf
# How often to check for zone changes. See 'Operation' section.
bind-check-interval=180
# Uncomment to enable Huffman compression on zone data.
# Currently saves around 20% of memory actually used, but slows down operation.
# bind-enable-huffman
]]>
{{settings.system.vmail_gid}}
{{settings.system.vmail_uid}}
password =
dbname =
hosts =
query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND v.email = '%s' AND trim(v.destination) <> ''
]]>
password =
dbname =
hosts =
query = SELECT domain FROM panel_domains WHERE domain = '%s' AND isemaildomain = '1' AND deactivated = 0
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT CONCAT(homedir,maildir) FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
hosts =
query = SELECT GROUP_CONCAT(DISTINCT mu.username SEPARATOR ' ') AS sasl_users FROM mail_users mu WHERE mu.username = '%s' OR mu.email IN ((SELECT mail_virtual.email_full FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_virtual.destination FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = CONCAT('@', SUBSTRING_INDEX('%s','@',-1))));
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT uid FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT gid FROM mail_users WHERE email = '%s'
]]>
]]>
//service[@type='smtp']/general/commands[@index=1]
//service[@type='smtp']/general/installs[@index=1]
//service[@type='smtp']/general/commands[@index=2]
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
# The default setting is 550 (reject mail) but it is safer to start
# with 450 (try again later) until you are certain that your
# local_recipient_maps settings are OK.
#
unknown_local_recipient_reject_code = 550
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).
#
# Unlike other Postfix configuration parameters, the mailbox_command
# parameter is not subjected to $parameter substitutions. This is to
# make it easier to specify shell syntax (see example below).
#
# Avoid shell meta characters because they will force Postfix to run
# an expensive shell process. Procmail alone is expensive enough.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
mailbox_command = /usr/lib/dovecot/deliver
#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
inet_protocols = ipv4
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unknown_helo_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client_hostname
# Postfix 2.10 requires this option. Postfix < 2.10 ignores this.
# The option is intentionally left empty.
smtpd_relay_restrictions =
# Maximum size of Message in bytes (50MB)
message_size_limit = 52428800
## SASL Auth Settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport
smtpd_sasl_type = dovecot
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_path = private/auth
# Virtual delivery settings
virtual_mailbox_base = /
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:
virtual_gid_maps = static:
# Local delivery settings
local_transport = local
alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
###
## TLS for outgoing mails from the server to another server
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
## TLS for incoming connections (clients or other mail servers)
smtpd_tls_security_level = may
smtpd_tls_cert_file =
smtpd_tls_key_file =
#smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_session_cache_timeout = 3600s
]]>
//service[@type='smtp']/general/files[@index=0]//service[@type='smtp']/general/commands[@index=3]
to select which instance is used (an alternative
# to -c ). The instance name is also added to Dovecot processes
# in ps output.
#instance_name = dovecot
# Greeting message for clients.
#login_greeting = Dovecot ready.
# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =
# Space separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets =
# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
# proxying. This isn't necessary normally, but may be useful if the destination
# IP is e.g. a load balancer's IP.
#auth_proxy_self =
# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no
# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes
# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server
# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ
##
## Dictionary server settings
##
# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::".
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf
# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf
]]>
dbname= user= password="
# Default password scheme.
#
# List of supported schemes is in
# http://wiki2.dovecot.org/Authentication/PasswordSchemes
#
#default_pass_scheme = CRYPT
# passdb query to retrieve the password. It can return fields:
# password - The user's password. This field must be returned.
# user - user@domain from the database. Needed with case-insensitive lookups.
# username and domain - An alternative way to represent the "user" field.
#
# The "user" field is often necessary with case-insensitive lookups to avoid
# e.g. "name" and "nAme" logins creating two different mail directories. If
# your user and domain names are in separate fields, you can return "username"
# and "domain" fields instead of "user".
#
# The query can also return other fields which have a special meaning, see
# http://wiki2.dovecot.org/PasswordDatabase/ExtraFields
#
# Commonly used available substitutions (see http://wiki2.dovecot.org/Variables
# for full list):
# %u = entire user@domain
# %n = user part of user@domain
# %d = domain part of user@domain
#
# Note that these can be used only as input to SQL query. If the query outputs
# any of these substitutions, they're not touched. Otherwise it would be
# difficult to have eg. usernames containing '%' characters.
#
# Example:
# password_query = SELECT userid AS user, pw AS password \
# FROM users WHERE userid = '%u' AND active = 'Y'
#
#password_query = \
# SELECT username, domain, password \
# FROM users WHERE username = '%n' AND domain = '%d'
# userdb query to retrieve the user information. It can return fields:
# uid - System UID (overrides mail_uid setting)
# gid - System GID (overrides mail_gid setting)
# home - Home directory
# mail - Mail location (overrides mail_location setting)
#
# None of these are strictly required. If you use a single UID and GID, and
# home or mail directory fits to a template string, you could use userdb static
# instead. For a list of all fields that can be returned, see
# http://wiki2.dovecot.org/UserDatabase/ExtraFields
#
# Examples:
# user_query = SELECT home, uid, gid FROM users WHERE userid = '%u'
# user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u'
# user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u'
#
#user_query = \
# SELECT home, uid, gid \
# FROM users WHERE username = '%n' AND domain = '%d'
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('*:storage=', quota, 'M') as quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u')
# If you wish to avoid two SQL lookups (passdb + userdb), you can use
# userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll
# also have to return userdb fields in password_query prefixed with "userdb_"
# string. For example:
#password_query = \
# SELECT userid AS user, password, \
# home AS userdb_home, uid AS userdb_uid, gid AS userdb_gid \
# FROM users WHERE userid = '%u'
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('*:storage=', quota, 'M') as userdb_quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR ((postfix = 'Y' AND '%Ls' = 'smtp') OR (postfix = 'Y' AND '%Ls' = 'sieve')))
# Query to get a list of all usernames.
iterate_query = "SELECT username AS user FROM mail_users WHERE (imap = 1 OR pop3 = 1)"
]]>
to characters. For example "#@/@" means
# that '#' and '/' characters are translated to '@'.
#auth_username_translation =
# Username formatting before it's looked up from databases. You can use
# the standard variables here, eg. %Lu would lowercase the username, %n would
# drop away the domain if it was given, or "%n-AT-%d" would change the '@' into
# "-AT-". This translation is done after auth_username_translation changes.
#auth_username_format = %Lu
# If you want to allow master users to log in by specifying the master
# username within the normal username string (ie. not using SASL mechanism's
# support for it), you can specify the separator character here. The format
# is then . UW-IMAP uses "*" as the
# separator, so that could be a good choice.
#auth_master_user_separator =
# Username to use for users logging in with ANONYMOUS SASL mechanism
#auth_anonymous_username = anonymous
# Maximum number of dovecot-auth worker processes. They're used to execute
# blocking passdb and userdb queries (eg. MySQL and PAM). They're
# automatically created and destroyed as needed.
#auth_worker_max_count = 30
# Host name to use in GSSAPI principal names. The default is to use the
# name returned by gethostname(). Use "$ALL" (with quotes) to allow all keytab
# entries.
#auth_gssapi_hostname =
# Kerberos keytab to use for the GSSAPI mechanism. Will use the system
# default (usually /etc/krb5.keytab) if not specified. You may need to change
# the auth service to run as root to be able to read this file.
#auth_krb5_keytab =
# Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and
# ntlm_auth helper.
#auth_use_winbind = no
# Path for Samba's ntlm_auth helper binary.
#auth_winbind_helper_path = /usr/bin/ntlm_auth
# Time to delay before replying to failed authentications.
#auth_failure_delay = 2 secs
# Require a valid SSL client certificate or the authentication fails.
#auth_ssl_require_client_cert = no
# Take the username from client's SSL certificate, using
# X509_NAME_get_text_by_NID() which returns the subject's DN's
# CommonName.
#auth_ssl_username_from_cert = no
# Space separated list of wanted authentication mechanisms:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
# gss-spnego
# NOTE: See also disable_plaintext_auth setting.
auth_mechanisms = plain login
##
## Password and user databases
##
#
# Password database is used to verify user's password (and nothing more).
# You can have multiple passdbs and userdbs. This is useful if you want to
# allow both system users (/etc/passwd) and virtual users to login without
# duplicating the system users into virtual database.
#
#
#
# User database specifies where mails are located and what user/group IDs
# own them. For single-UID configuration use "static" userdb.
#
#
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
#!include auth-system.conf.ext
!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
]]>
#
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# If you need to set multiple mailbox locations or want to change default
# namespace settings, you can do it by defining namespace sections.
#
# You can have private, shared and public namespaces. Private namespaces
# are for user's personal mails. Shared namespaces are for accessing other
# users' mailboxes that have been shared. Public namespaces are for shared
# mailboxes that are managed by sysadmin. If you create any shared or public
# namespaces you'll typically want to enable ACL plugin also, otherwise all
# users can access all the shared mailboxes, assuming they have permissions
# on filesystem level to do so.
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
#location =
# There can be only one INBOX, and this setting defines which namespace
# has it.
inbox = yes
# If namespace is hidden, it's not advertised to clients via NAMESPACE
# extension. You'll most likely also want to set list=no. This is mostly
# useful when converting from another server with different namespaces which
# you want to deprecate but still keep working. For example you can create
# hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
#hidden = no
# Show the mailboxes under this namespace with LIST command. This makes the
# namespace visible for clients that don't support NAMESPACE extension.
# "children" value lists child mailboxes, but hides the namespace prefix.
#list = yes
# Namespace handles its own subscriptions. If set to "no", the parent
# namespace handles them (empty prefix should always have this as "yes")
#subscriptions = yes
}
# Example shared namespace configuration
#namespace {
#type = shared
#separator = /
# Mailboxes are visible under "shared/user@domain/"
# %%n, %%d and %%u are expanded to the destination user.
#prefix = shared/%%u/
# Mail location for other users' mailboxes. Note that %variables and ~/
# expands to the logged in user's data. %%n, %%d, %%u and %%h expand to the
# destination user's data.
#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
# Use the default namespace for saving subscriptions.
#subscriptions = no
# List the shared/ namespace only if there are visible shared mailboxes.
#list = children
#}
# Should shared INBOX be visible as "shared/user" or "shared/user/INBOX"?
#mail_shared_explicit_inbox = no
# System user and group used to access mails. If you use multiple, userdb
# can override these by returning uid or gid fields. You can use either numbers
# or names.
#mail_uid =
#mail_gid =
# Group to enable temporarily for privileged operations. Currently this is
# used only with INBOX when either its initial creation or dotlocking fails.
# Typically this is set to "mail" to give access to /var/mail.
#mail_privileged_group =
# Grant access to these supplementary groups for mail processes. Typically
# these are used to set up access to shared mailboxes. Note that it may be
# dangerous to set these if users can create symlinks (e.g. if "mail" group is
# set here, ln -s /var/mail ~/mail/var could allow a user to delete others'
# mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).
mail_access_groups = vmail
# Allow full filesystem access to clients. There's no access checks other than
# what the operating system does for the active UID/GID. It works with both
# maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/
# or ~user/.
#mail_full_filesystem_access = no
# Dictionary for key=value mailbox attributes. Currently used by URLAUTH, but
# soon intended to be used by METADATA as well.
#mail_attribute_dict =
##
## Mail processes
##
# Don't use mmap() at all. This is required if you store indexes to shared
# filesystems (NFS or clustered filesystem).
#mmap_disable = no
# Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL
# since version 3, so this should be safe to use nowadays by default.
#dotlock_use_excl = yes
# When to use fsync() or fdatasync() calls:
# optimized (default): Whenever necessary to avoid losing important data
# always: Useful with e.g. NFS when write()s are delayed
# never: Never use it (best performance, but crashes can lose data)
#mail_fsync = optimized
# Locking method for index files. Alternatives are fcntl, flock and dotlock.
# Dotlocking uses some tricks which may create more disk I/O than other locking
# methods. NFS users: flock doesn't work, remember to change mmap_disable.
#lock_method = fcntl
# Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.
#mail_temp_dir = /tmp
# Valid UID range for users, defaults to 500 and above. This is mostly
# to make sure that users can't log in as daemons or other system users.
# Note that denying root logins is hardcoded to dovecot binary and can't
# be done even if first_valid_uid is set to 0.
#first_valid_uid = 500
#last_valid_uid = 0
# Valid GID range for users, defaults to non-root/wheel. Users having
# non-valid GID as primary group ID aren't allowed to log in. If user
# belongs to supplementary groups with non-valid GIDs, those groups are
# not set.
#first_valid_gid = 1
#last_valid_gid = 0
# Maximum allowed length for mail keyword name. It's only forced when trying
# to create new keywords.
#mail_max_keyword_length = 50
# ':' separated list of directories under which chrooting is allowed for mail
# processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too).
# This setting doesn't affect login_chroot, mail_chroot or auth chroot
# settings. If this setting is empty, "/./" in home dirs are ignored.
# WARNING: Never add directories here which local users can modify, that
# may lead to root exploit. Usually this should be done only if you don't
# allow shell access for users.
#valid_chroot_dirs =
# Default chroot directory for mail processes. This can be overridden for
# specific users in user database by giving /./ in user's home directory
# (eg. /home/./user chroots into /home). Note that usually there is no real
# need to do chrooting, Dovecot doesn't allow users to access files outside
# their mail directory anyway. If your home directories are prefixed with
# the chroot directory, append "/." to mail_chroot.
#mail_chroot =
# UNIX socket path to master authentication server to find users.
# This is used by imap (for shared users) and lda.
#auth_socket_path = /var/run/dovecot/auth-userdb
# Directory where to look up mail plugins.
#mail_plugin_dir = /usr/lib/dovecot/modules
# Space separated list of plugins to load for all services. Plugins specific to
# IMAP, LDA, etc. are added to this list in their own .conf files.
#mail_plugins =
##
## Mailbox handling optimizations
##
# Mailbox list indexes can be used to optimize IMAP STATUS commands. They are
# also required for IMAP NOTIFY extension to be enabled.
#mailbox_list_index = no
# The minimum number of mails in a mailbox before updates are done to cache
# file. This allows optimizing Dovecot's behavior to do less disk writes at
# the cost of more disk reads.
#mail_cache_min_mail_count = 0
# When IDLE command is running, mailbox is checked once in a while to see if
# there are any new mails or other changes. This setting defines the minimum
# time to wait between those checks. Dovecot can also use dnotify, inotify and
# kqueue to find out immediately when changes occur.
#mailbox_idle_check_interval = 30 secs
# Save mails with CR+LF instead of plain LF. This makes sending those mails
# take less CPU, especially with sendfile() syscall with Linux and FreeBSD.
# But it also creates a bit more disk I/O which may just make it slower.
# Also note that if other software reads the mboxes/maildirs, they may handle
# the extra CRs wrong and cause problems.
#mail_save_crlf = no
# Max number of mails to keep open and prefetch to memory. This only works with
# some mailbox formats and/or operating systems.
#mail_prefetch_count = 0
# How often to scan for stale temporary files and delete them (0 = never).
# These should exist only after Dovecot dies in the middle of saving mails.
#mail_temp_scan_interval = 1w
##
## Maildir-specific settings
##
# By default LIST command returns all entries in maildir beginning with a dot.
# Enabling this option makes Dovecot return only entries which are directories.
# This is done by stat()ing each entry, so it causes more disk I/O.
# (For systems setting struct dirent->d_type, this check is free and it's
# done always regardless of this setting)
#maildir_stat_dirs = no
# When copying a message, do it with hard links whenever possible. This makes
# the performance much better, and it's unlikely to have any side effects.
#maildir_copy_with_hardlinks = yes
# Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only
# when its mtime changes unexpectedly or when we can't find the mail otherwise.
#maildir_very_dirty_syncs = no
# If enabled, Dovecot doesn't use the S= in the Maildir filenames for
# getting the mail's physical size, except when recalculating Maildir++ quota.
# This can be useful in systems where a lot of the Maildir filenames have a
# broken size. The performance hit for enabling this is very small.
#maildir_broken_filename_sizes = no
# Always move mails from new/ directory to cur/, even when the \Recent flags
# aren't being reset.
#maildir_empty_new = no
##
## mbox-specific settings
##
# Which locking methods to use for locking mbox. There are four available:
# dotlock: Create .lock file. This is the oldest and most NFS-safe
# solution. If you want to use /var/mail/ like directory, the users
# will need write access to that directory.
# dotlock_try: Same as dotlock, but if it fails because of permissions or
# because there isn't enough disk space, just skip it.
# fcntl : Use this if possible. Works with NFS too if lockd is used.
# flock : May not exist in all systems. Doesn't work with NFS.
# lockf : May not exist in all systems. Doesn't work with NFS.
#
# You can use multiple locking methods; if you do the order they're declared
# in is important to avoid deadlocks if other MTAs/MUAs are using multiple
# locking methods as well. Some operating systems don't allow using some of
# them simultaneously.
#
# The Debian value for mbox_write_locks differs from upstream Dovecot. It is
# changed to be compliant with Debian Policy (section 11.6) for NFS safety.
# Dovecot: mbox_write_locks = dotlock fcntl
# Debian: mbox_write_locks = fcntl dotlock
#
#mbox_read_locks = fcntl
#mbox_write_locks = fcntl dotlock
# Maximum time to wait for lock (all of them) before aborting.
#mbox_lock_timeout = 5 mins
# If dotlock exists but the mailbox isn't modified in any way, override the
# lock file after this much time.
#mbox_dotlock_change_timeout = 2 mins
# When mbox changes unexpectedly we have to fully read it to find out what
# changed. If the mbox is large this can take a long time. Since the change
# is usually just a newly appended mail, it'd be faster to simply read the
# new mails. If this setting is enabled, Dovecot does this but still safely
# fallbacks to re-reading the whole mbox file whenever something in mbox isn't
# how it's expected to be. The only real downside to this setting is that if
# some other MUA changes message flags, Dovecot doesn't notice it immediately.
# Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK
# commands.
#mbox_dirty_syncs = yes
# Like mbox_dirty_syncs, but don't do full syncs even with SELECT, EXAMINE,
# EXPUNGE or CHECK commands. If this is set, mbox_dirty_syncs is ignored.
#mbox_very_dirty_syncs = no
# Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK
# commands and when closing the mailbox). This is especially useful for POP3
# where clients often delete all mails. The downside is that our changes
# aren't immediately visible to other MUAs.
#mbox_lazy_writes = yes
# If mbox size is smaller than this (e.g. 100k), don't write index files.
# If an index file already exists it's still read, just not updated.
#mbox_min_index_size = 0
# Mail header selection algorithm to use for MD5 POP3 UIDLs when
# pop3_uidl_format=%m. For backwards compatibility we use apop3d inspired
# algorithm, but it fails if the first Received: header isn't unique in all
# mails. An alternative algorithm is "all" that selects all headers.
#mbox_md5 = apop3d
##
## mdbox-specific settings
##
# Maximum dbox file size until it's rotated.
#mdbox_rotate_size = 2M
# Maximum dbox file age until it's rotated. Typically in days. Day begins
# from midnight, so 1d = today, 2d = yesterday, etc. 0 = check disabled.
#mdbox_rotate_interval = 0
# When creating new mdbox files, immediately preallocate their size to
# mdbox_rotate_size. This setting currently works only in Linux with some
# filesystems (ext4, xfs).
#mdbox_preallocate_space = no
##
## Mail attachments
##
# sdbox and mdbox support saving mail attachments to external files, which
# also allows single instance storage for them. Other backends don't support
# this for now.
# Directory root where to store mail attachments. Disabled, if empty.
#mail_attachment_dir =
# Attachments smaller than this aren't saved externally. It's also possible to
# write a plugin to disable saving specific attachments externally.
#mail_attachment_min_size = 128k
# Filesystem backend to use for saving attachments:
# posix : No SiS done by Dovecot (but this might help FS's own deduplication)
# sis posix : SiS with immediate byte-by-byte comparison during saving
# sis-queue posix : SiS with delayed comparison and deduplication
#mail_attachment_fs = sis posix
# Hash format to use in attachment filenames. You can add any text and
# variables: %{md4}, %{md5}, %{sha1}, %{sha256}, %{sha512}, %{size}.
# Variables can be truncated, e.g. %{sha256:80} returns only first 80 bits
#mail_attachment_hash = %{sha1}
]]>
#service_count = 1
# Number of processes to always keep waiting for more connections.
#process_min_avail = 0
# If you set service_count=0, you probably need to grow this.
#vsz_limit = $default_vsz_limit
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
#port = 995
#ssl = yes
}
}
service lmtp {
unix_listener lmtp {
#mode = 0666
}
# Create inet listener only if you can't use the above UNIX socket
#inet_listener lmtp {
# Avoid making LMTP visible for the entire internet
#address =
#port =
#}
}
service imap {
# Most of the memory goes to mmap()ing files. You may need to increase this
# limit if you have huge mailboxes.
#vsz_limit = $default_vsz_limit
# Max. number of IMAP processes (connections)
#process_limit = 1024
}
service pop3 {
# Max. number of POP3 processes (connections)
#process_limit = 1024
}
service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
# full permissions to this socket are able to get a list of all usernames and
# get the results of everyone's userdb lookups.
#
# The default 0666 mode allows anyone to connect to the socket, but the
# userdb lookups will succeed only if the userdb returns an "uid" field that
# matches the caller process's UID. Also if caller's uid or gid matches the
# socket's uid or gid the lookup succeeds. Anything else causes a failure.
#
# To give the caller full permissions to lookup all users, set the mode to
# something else than 0666 and Dovecot lets the kernel enforce the
# permissions (e.g. 0777 allows everyone full permissions).
unix_listener auth-userdb {
#mode = 0666
#user =
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Exim4 smtp-auth
unix_listener auth-client {
mode = 0660
user = mail
# group = Debian-exim
}
# Auth process is run as this user.
#user = $default_internal_user
}
service auth-worker {
# Auth worker process is run as root by default, so that it can access
# /etc/shadow. If this isn't necessary, the user should be changed to
# $default_internal_user.
#user = root
}
service dict {
# If dict proxy is used, mail processes should have access to its socket.
# For example: mode=0660, group=vmail and global mail_access_groups=vmail
unix_listener dict {
#mode = 0600
#user =
#group =
}
}
service stats {
unix_listener stats-reader {
group = vmail
mode = 0666
}
unix_listener stats-writer {
group = vmail
mode = 0666
}
}
]]>
ssl = yes
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = <
ssl_key = <
# If key file is password protected, give the password here. Alternatively
# give it when starting dovecot with -p parameter. Since this file is often
# world-readable, you may want to place this setting instead to a different
# root owned 0600 file by using ssl_key_password = . %d expands to recipient domain.
postmaster_address = postmaster@
# Hostname to use in various parts of sent mails (e.g. in Message-Id) and
# in LMTP replies. Default is the system's real hostname@domain.
#hostname =
# If user is over quota, return with temporary failure instead of
# bouncing the mail.
#quota_full_tempfail = no
# Binary to use for sending mails.
#sendmail_path = /usr/sbin/sendmail
# If non-empty, send mails via this SMTP host[:port] instead of sendmail.
#submission_host =
# Subject: header to use for rejection mails. You can use the same variables
# as for rejection_reason below.
#rejection_subject = Rejected: %s
# Human readable error message for rejection mails. You can use variables:
# %n = CRLF, %r = reason, %s = original subject, %t = recipient
#rejection_reason = Your message to <%t> was automatically rejected:%n%r
# Delimiter character between local-part and detail in email address.
#recipient_delimiter = +
# Header where the original recipient address (SMTP's RCPT TO: address) is taken
# from if not available elsewhere. With dovecot-lda -a parameter overrides this.
# A commonly used header for this is X-Original-To.
#lda_original_recipient_header =
# Should saving a mail to a nonexistent mailbox automatically create it?
#lda_mailbox_autocreate = no
# Should automatically created mailboxes be also automatically subscribed?
#lda_mailbox_autosubscribe = no
protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins quota sieve
}
]]>
#service_count = 1
# Number of processes to always keep waiting for more connections.
#process_min_avail = 0
# If you set service_count=0, you probably need to grow this.
#vsz_limit = 64M
#}
#service managesieve {
# Max. number of ManageSieve processes (connections)
#process_limit = 1024
#}
# Service configuration
protocol sieve {
# Maximum ManageSieve command line length in bytes. ManageSieve usually does
# not involve overly long command lines, so this setting will not normally
# need adjustment
#managesieve_max_line_length = 65536
# Maximum number of ManageSieve connections allowed for a user from each IP
# address.
# NOTE: The username is compared case-sensitively.
#mail_max_userip_connections = 10
# Space separated list of plugins to load (none known to be useful so far).
# Do NOT try to load IMAP plugins here.
#mail_plugins =
# MANAGESIEVE logout format string:
# %i - total number of bytes read from client
# %o - total number of bytes sent to client
#managesieve_logout_format = bytes=%i/%o
# To fool ManageSieve clients that are focused on CMU's timesieved you can
# specify the IMPLEMENTATION capability that Dovecot reports to clients.
# For example: 'Cyrus timsieved v2.2.13'
#managesieve_implementation_string = Dovecot Pigeonhole
# Explicitly specify the SIEVE and NOTIFY capability reported by the server
# before login. If left unassigned these will be reported dynamically
# according to what the Sieve interpreter supports by default (after login
# this may differ depending on the user).
#managesieve_sieve_capability =
#managesieve_notify_capability =
# The maximum number of compile errors that are returned to the client upon
# script upload or script verification.
#managesieve_max_compile_errors = 5
# Refer to 90-sieve.conf for script quota configuration and configuration of
# Sieve execution limits.
}
]]>
= 2.1.4) : %v.%u
# Dovecot v0.99.x : %v.%u
# tpop3d : %Mf
#
# Note that Outlook 2003 seems to have problems with %v.%u format which was
# Dovecot's default, so if you're building a new server it would be a good
# idea to change this. %08Xu%08Xv should be pretty fail-safe.
#
#pop3_uidl_format = %08Xu%08Xv
# Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes
# won't change those UIDLs. Currently this works only with Maildir.
#pop3_save_uidl = no
# What to do about duplicate UIDLs if they exist?
# allow: Show duplicates to clients.
# rename: Append a temporary -2, -3, etc. counter after the UIDL.
#pop3_uidl_duplicates = allow
# This option changes POP3 behavior so that it's not possible to actually
# delete mails via POP3, only hide them from future POP3 sessions. The mails
# will still be counted towards user's quota until actually deleted via IMAP.
# Use e.g. "$POP3Deleted" as the value (it will be visible as IMAP keyword).
# Make sure you can legally archive mails before enabling this setting.
#pop3_deleted_flag =
# POP3 logout format string:
# %i - total number of bytes read from client
# %o - total number of bytes sent to client
# %t - number of TOP commands
# %p - number of bytes sent to client as a result of TOP command
# %r - number of RETR commands
# %b - number of bytes sent to client as a result of RETR command
# %d - number of deleted messages
# %m - number of messages (before deletion)
# %s - mailbox size in bytes (before deletion)
# %u - old/new UIDL hash. may help finding out if UIDLs changed unexpectedly
pop3_logout_format = in=%i out=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
# Workarounds for various client bugs:
# outlook-no-nuls:
# Outlook and Outlook Express hang if mails contain NUL characters.
# This setting replaces them with 0x80 character.
# oe-ns-eoh:
# Outlook Express and Netscape Mail breaks if end of headers-line is
# missing. This option simply sends it if it's missing.
# The list is space-separated.
#pop3_client_workarounds =
protocol pop3 {
# Space separated list of plugins to load (default is global mail_plugins).
#mail_plugins = $mail_plugins
# Maximum number of POP3 connections allowed for a user from each IP address.
# NOTE: The username is compared case-sensitively.
#mail_max_userip_connections = 10
}
]]>
See sieve_before fore executing scripts before the user's personal
# script.
#sieve_default = /var/lib/dovecot/sieve/default.sieve
# Directory for :personal include scripts for the include extension. This
# is also where the ManageSieve service stores the user's scripts.
sieve_dir = ~/sieve
# Directory for :global include scripts for the include extension.
#sieve_global_dir =
# Path to a script file or a directory containing script files that need to be
# executed before the user's script. If the path points to a directory, all
# the Sieve scripts contained therein (with the proper .sieve extension) are
# executed. The order of execution within a directory is determined by the
# file names, using a normal 8bit per-character comparison. Multiple script
# file or directory paths can be specified by appending an increasing number.
#sieve_before =
#sieve_before2 =
#sieve_before3 = (etc...)
# Identical to sieve_before, only the specified scripts are executed after the
# user's script (only when keep is still in effect!). Multiple script file or
# directory paths can be specified by appending an increasing number.
#sieve_after =
#sieve_after2 =
#sieve_after2 = (etc...)
# Which Sieve language extensions are available to users. By default, all
# supported extensions are available, except for deprecated extensions or
# those that are still under development. Some system administrators may want
# to disable certain Sieve extensions or enable those that are not available
# by default. This setting can use '+' and '-' to specify differences relative
# to the default. For example `sieve_extensions = +imapflags' will enable the
# deprecated imapflags extension in addition to all extensions were already
# enabled by default.
#sieve_extensions = +notify +imapflags
# Which Sieve language extensions are ONLY available in global scripts. This
# can be used to restrict the use of certain Sieve extensions to administrator
# control, for instance when these extensions can cause security concerns.
# This setting has higher precedence than the `sieve_extensions' setting
# (above), meaning that the extensions enabled with this setting are never
# available to the user's personal script no matter what is specified for the
# `sieve_extensions' setting. The syntax of this setting is similar to the
# `sieve_extensions' setting, with the difference that extensions are
# enabled or disabled for exclusive use in global scripts. Currently, no
# extensions are marked as such by default.
#sieve_global_extensions =
# The Pigeonhole Sieve interpreter can have plugins of its own. Using this
# setting, the used plugins can be specified. Check the Dovecot wiki
# (wiki2.dovecot.org) or the pigeonhole website
# (http://pigeonhole.dovecot.org) for available plugins.
# The sieve_extprograms plugin is included in this release.
#sieve_plugins =
# The separator that is expected between the :user and :detail
# address parts introduced by the subaddress extension. This may
# also be a sequence of characters (e.g. '--'). The current
# implementation looks for the separator from the left of the
# localpart and uses the first one encountered. The :user part is
# left of the separator and the :detail part is right. This setting
# is also used by Dovecot's LMTP service.
#recipient_delimiter = +
# The maximum size of a Sieve script. The compiler will refuse to compile any
# script larger than this limit. If set to 0, no limit on the script size is
# enforced.
#sieve_max_script_size = 1M
# The maximum number of actions that can be performed during a single script
# execution. If set to 0, no limit on the total number of actions is enforced.
#sieve_max_actions = 32
# The maximum number of redirect actions that can be performed during a single
# script execution. If set to 0, no redirect actions are allowed.
#sieve_max_redirects = 4
# The maximum number of personal Sieve scripts a single user can have. If set
# to 0, no limit on the number of scripts is enforced.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_scripts = 0
# The maximum amount of disk storage a single user's scripts may occupy. If
# set to 0, no limit on the used amount of disk storage is enforced.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_storage = 0
}
]]>
//service[@type='mail']/general/installs[@index=1]
//service[@type='mail']/general/files[@index=1]
//service[@type='mail']/general/commands[@index=1]
/dev/null]]> /etc/apt/sources.list.d/rspamd.list]]>> /etc/apt/sources.list.d/rspamd.list]]>//service[@type='antispam']/general/commands[@index=1]
//service[@type='antispam']/general/installs[@index=1]
//service[@type='antispam']/general/commands[@index=2]
//service[@type='antispam']/general/files[@index=1]
//service[@type='antispam']/general/commands[@index=3]
"
[ -f /etc/ssl/certs/proftpd_ec.crt ] || openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp521r1) -keyout /etc/ssl/private/proftpd_ec.key -out /etc/ssl/certs/proftpd_ec.crt -days 3650 -subj "/C=US/ST=Some-State/O=Internet Widgits Pty Ltd/CN="
chmod 0600 /etc/ssl/private/proftpd.key /etc/ssl/private/proftpd_ec.key
]]>
FTP Server"
ServerType standalone
DeferWelcome off
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# If your host was NATted, this option is useful in order to
# allow passive transfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
# DynMasqRefresh 28800
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwritable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or ), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
QuotaEngine on
Ratios off
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
# A basic anonymous configuration, no upload directories.
#
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
#
#
# DenyAll
#
#
#
# # Uncomment this if you're brave.
# #
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# #
# # DenyAll
# #
# #
# # AllowAll
# #
# #
#
#
# Include other custom configuration files
Include /etc/proftpd/conf.d/
]]>
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
SQLBackend mysql
#
SQLEngine on
SQLAuthenticate on
#
# Use both an encrypted or plaintext password
SQLAuthTypes Crypt OpenSSL
SQLAuthenticate users* groups*
#
# Connection
SQLConnectInfo @
#
# Describes both users/groups tables
#
SQLUserInfo ftp_users username password uid gid homedir shell
SQLGroupInfo ftp_groups groupname gid members
#
SQLUserWhereClause "login_enabled = 'y'"
SQLLog PASS login
SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users
SQLLog RETR download
SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users
SQLLog STOR upload
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
QuotaEngine on
QuotaShowQuotas on
QuotaDisplayUnits Mb
QuotaLock /var/lock/ftpd.quotatab.lock
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
]]>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSECCertificateFile /etc/ssl/certs/proftpd_ec.crt
TLSECCertificateKeyFile /etc/ssl/private/proftpd_ec.key
# TLSCACertificateFile
TLSOptions NoSessionReuseRequired
TLSVerifyClient off
# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotiations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
#
#TLSRenegotiate required off
]]>
From 127.0.0.1
MaxLoginAttempts 3
BanEngine off
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root
BanEngine off
DelayEngine off
]]>
"
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 3072
chmod 0600 /etc/ssl/private/pure-ftpd.pem /etc/ssl/private/pure-ftpd-dhparams.pem
]]>
# Mandatory : user password. You must have a password.
MYSQLPassword
# Mandatory : database to open.
MYSQLDatabase
# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "sha1", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "sha1", "md5" *and* "password"
MYSQLCrypt any
# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.
# Query to execute in order to fetch the password
MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Query to execute in order to fetch the system user name or uid
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default UID - if set this overrides MYSQLGetUID
#MYSQLDefaultUID 1000
# Query to execute in order to fetch the system user group or gid
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default GID - if set this overrides MYSQLGetGID
#MYSQLDefaultGID 1000
# Query to execute in order to fetch the home directory
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.
# MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User='\L'
# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTASZ SELECT CASE WHEN panel_customers.diskspace = 0 THEN -1 WHEN panel_customers.diskspace <= -1 THEN 0 ELSE panel_customers.diskspace/1024 END AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
# Optional : ratios. The server has to be compiled with ratio support.
# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .
# MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'
# MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.
# MySQLForceTildeExpansion 1
# If you're using a transactionnal storage engine, you can enable SQL
# transactions to avoid races. Leave this commented if you are using the
# traditional MyIsam engine.
# MySQLTransactions On
]]>
//service[@type='smtp']/general/commands[@index=3]
*.log {
missingok
daily
rotate 7
compress
delaycompress
notifempty
create
sharedscripts
postrotate
> /dev/null 2>&1 || true
endscript
}
]]>
{{settings.system.mod_fcgid_ownvhost}}
{{settings.system.webserver}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.phpfpm.vhost_httpuser}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
bin/froxlor-cli /usr/local/bin/froxlor-cli]]>bin/froxlor-cli froxlor:cron --run-task 99]]>
================================================
FILE: lib/configfiles/index.html
================================================
================================================
FILE: lib/configfiles/jammy.xml
================================================
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.deactivateddocroot}}
//service[@type='http']/general/commands{{settings.system.use_ssl}}
{{settings.phpfpm.enabled}}
{{settings.system.leenabled}}
Require all granted
]]>
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
{{settings.system.leenabled}}
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
//service[@type='http']/general/commands{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
> /etc/bind/named.conf.local]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# allow-recursion List of subnets that are allowed to recurse
#
allow-recursion=127.0.0.1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# recursive-cache-ttl Seconds to store packets for recursive queries in the PacketCache
#
# recursive-cache-ttl=10
#################################
# recursor If recursion is desired, IP address of a recursing nameserver
#
# recursor=no
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# allow-recursion List of subnets that are allowed to recurse
#
allow-recursion=127.0.0.1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=bind
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# recursive-cache-ttl Seconds to store packets for recursive queries in the PacketCache
#
# recursive-cache-ttl=10
#################################
# recursor If recursion is desired, IP address of a recursing nameserver
#
# recursor=no
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
named.conf
# How often to check for zone changes. See 'Operation' section.
bind-check-interval=180
# Uncomment to enable Huffman compression on zone data.
# Currently saves around 20% of memory actually used, but slows down operation.
# bind-enable-huffman
]]>
{{settings.system.vmail_gid}}
{{settings.system.vmail_uid}}
password =
dbname =
hosts =
query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND v.email = '%s' AND trim(v.destination) <> ''
]]>
password =
dbname =
hosts =
query = SELECT domain FROM panel_domains WHERE domain = '%s' AND isemaildomain = '1' AND deactivated = 0
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT CONCAT(homedir,maildir) FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
hosts =
query = SELECT GROUP_CONCAT(DISTINCT mu.username SEPARATOR ' ') AS sasl_users FROM mail_users mu WHERE mu.username = '%s' OR mu.email IN ((SELECT mail_virtual.email_full FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_virtual.destination FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = CONCAT('@', SUBSTRING_INDEX('%s','@',-1))));
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT uid FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT gid FROM mail_users WHERE email = '%s'
]]>
]]>
//service[@type='smtp']/general/commands[@index=1]
//service[@type='smtp']/general/installs[@index=1]
//service[@type='smtp']/general/commands[@index=2]
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
# The default setting is 550 (reject mail) but it is safer to start
# with 450 (try again later) until you are certain that your
# local_recipient_maps settings are OK.
#
unknown_local_recipient_reject_code = 550
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).
#
# Unlike other Postfix configuration parameters, the mailbox_command
# parameter is not subjected to $parameter substitutions. This is to
# make it easier to specify shell syntax (see example below).
#
# Avoid shell meta characters because they will force Postfix to run
# an expensive shell process. Procmail alone is expensive enough.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
mailbox_command = /usr/lib/dovecot/deliver
#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
inet_protocols = ipv4
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unknown_helo_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client_hostname
# Postfix 2.10 requires this option. Postfix < 2.10 ignores this.
# The option is intentionally left empty.
smtpd_relay_restrictions =
# Maximum size of Message in bytes (50MB)
message_size_limit = 52428800
## SASL Auth Settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport
smtpd_sasl_type = dovecot
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_path = private/auth
# Virtual delivery settings
virtual_mailbox_base = /
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:
virtual_gid_maps = static:
# Local delivery settings
local_transport = local
alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
###
## TLS for outgoing mails from the server to another server
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
## TLS for incoming connections (clients or other mail servers)
smtpd_tls_security_level = may
smtpd_tls_cert_file =
smtpd_tls_key_file =
#smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_session_cache_timeout = 3600s
]]>
//service[@type='smtp']/general/files[@index=0]//service[@type='smtp']/general/commands[@index=3]
to select which instance is used (an alternative
# to -c ). The instance name is also added to Dovecot processes
# in ps output.
#instance_name = dovecot
# Greeting message for clients.
#login_greeting = Dovecot ready.
# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =
# Space separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets =
# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
# proxying. This isn't necessary normally, but may be useful if the destination
# IP is e.g. a load balancer's IP.
#auth_proxy_self =
# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no
# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes
# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server
# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ
##
## Dictionary server settings
##
# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::".
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf
# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf
]]>
dbname= user= password="
# Default password scheme.
#
# List of supported schemes is in
# http://wiki2.dovecot.org/Authentication/PasswordSchemes
#
#default_pass_scheme = CRYPT
# passdb query to retrieve the password. It can return fields:
# password - The user's password. This field must be returned.
# user - user@domain from the database. Needed with case-insensitive lookups.
# username and domain - An alternative way to represent the "user" field.
#
# The "user" field is often necessary with case-insensitive lookups to avoid
# e.g. "name" and "nAme" logins creating two different mail directories. If
# your user and domain names are in separate fields, you can return "username"
# and "domain" fields instead of "user".
#
# The query can also return other fields which have a special meaning, see
# http://wiki2.dovecot.org/PasswordDatabase/ExtraFields
#
# Commonly used available substitutions (see http://wiki2.dovecot.org/Variables
# for full list):
# %u = entire user@domain
# %n = user part of user@domain
# %d = domain part of user@domain
#
# Note that these can be used only as input to SQL query. If the query outputs
# any of these substitutions, they're not touched. Otherwise it would be
# difficult to have eg. usernames containing '%' characters.
#
# Example:
# password_query = SELECT userid AS user, pw AS password \
# FROM users WHERE userid = '%u' AND active = 'Y'
#
#password_query = \
# SELECT username, domain, password \
# FROM users WHERE username = '%n' AND domain = '%d'
# userdb query to retrieve the user information. It can return fields:
# uid - System UID (overrides mail_uid setting)
# gid - System GID (overrides mail_gid setting)
# home - Home directory
# mail - Mail location (overrides mail_location setting)
#
# None of these are strictly required. If you use a single UID and GID, and
# home or mail directory fits to a template string, you could use userdb static
# instead. For a list of all fields that can be returned, see
# http://wiki2.dovecot.org/UserDatabase/ExtraFields
#
# Examples:
# user_query = SELECT home, uid, gid FROM users WHERE userid = '%u'
# user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u'
# user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u'
#
#user_query = \
# SELECT home, uid, gid \
# FROM users WHERE username = '%n' AND domain = '%d'
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('*:storage=', quota, 'M') as quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u')
# If you wish to avoid two SQL lookups (passdb + userdb), you can use
# userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll
# also have to return userdb fields in password_query prefixed with "userdb_"
# string. For example:
#password_query = \
# SELECT userid AS user, password, \
# home AS userdb_home, uid AS userdb_uid, gid AS userdb_gid \
# FROM users WHERE userid = '%u'
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('*:storage=', quota, 'M') as userdb_quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR ((postfix = 'Y' AND '%Ls' = 'smtp') OR (postfix = 'Y' AND '%Ls' = 'sieve')))
# Query to get a list of all usernames.
iterate_query = "SELECT username AS user FROM mail_users WHERE (imap = 1 OR pop3 = 1)"
]]>
to characters. For example "#@/@" means
# that '#' and '/' characters are translated to '@'.
#auth_username_translation =
# Username formatting before it's looked up from databases. You can use
# the standard variables here, eg. %Lu would lowercase the username, %n would
# drop away the domain if it was given, or "%n-AT-%d" would change the '@' into
# "-AT-". This translation is done after auth_username_translation changes.
#auth_username_format = %Lu
# If you want to allow master users to log in by specifying the master
# username within the normal username string (ie. not using SASL mechanism's
# support for it), you can specify the separator character here. The format
# is then . UW-IMAP uses "*" as the
# separator, so that could be a good choice.
#auth_master_user_separator =
# Username to use for users logging in with ANONYMOUS SASL mechanism
#auth_anonymous_username = anonymous
# Maximum number of dovecot-auth worker processes. They're used to execute
# blocking passdb and userdb queries (eg. MySQL and PAM). They're
# automatically created and destroyed as needed.
#auth_worker_max_count = 30
# Host name to use in GSSAPI principal names. The default is to use the
# name returned by gethostname(). Use "$ALL" (with quotes) to allow all keytab
# entries.
#auth_gssapi_hostname =
# Kerberos keytab to use for the GSSAPI mechanism. Will use the system
# default (usually /etc/krb5.keytab) if not specified. You may need to change
# the auth service to run as root to be able to read this file.
#auth_krb5_keytab =
# Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and
# ntlm_auth helper.
#auth_use_winbind = no
# Path for Samba's ntlm_auth helper binary.
#auth_winbind_helper_path = /usr/bin/ntlm_auth
# Time to delay before replying to failed authentications.
#auth_failure_delay = 2 secs
# Require a valid SSL client certificate or the authentication fails.
#auth_ssl_require_client_cert = no
# Take the username from client's SSL certificate, using
# X509_NAME_get_text_by_NID() which returns the subject's DN's
# CommonName.
#auth_ssl_username_from_cert = no
# Space separated list of wanted authentication mechanisms:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
# gss-spnego
# NOTE: See also disable_plaintext_auth setting.
auth_mechanisms = plain login
##
## Password and user databases
##
#
# Password database is used to verify user's password (and nothing more).
# You can have multiple passdbs and userdbs. This is useful if you want to
# allow both system users (/etc/passwd) and virtual users to login without
# duplicating the system users into virtual database.
#
#
#
# User database specifies where mails are located and what user/group IDs
# own them. For single-UID configuration use "static" userdb.
#
#
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
#!include auth-system.conf.ext
!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
]]>
#
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# If you need to set multiple mailbox locations or want to change default
# namespace settings, you can do it by defining namespace sections.
#
# You can have private, shared and public namespaces. Private namespaces
# are for user's personal mails. Shared namespaces are for accessing other
# users' mailboxes that have been shared. Public namespaces are for shared
# mailboxes that are managed by sysadmin. If you create any shared or public
# namespaces you'll typically want to enable ACL plugin also, otherwise all
# users can access all the shared mailboxes, assuming they have permissions
# on filesystem level to do so.
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
#location =
# There can be only one INBOX, and this setting defines which namespace
# has it.
inbox = yes
# If namespace is hidden, it's not advertised to clients via NAMESPACE
# extension. You'll most likely also want to set list=no. This is mostly
# useful when converting from another server with different namespaces which
# you want to deprecate but still keep working. For example you can create
# hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
#hidden = no
# Show the mailboxes under this namespace with LIST command. This makes the
# namespace visible for clients that don't support NAMESPACE extension.
# "children" value lists child mailboxes, but hides the namespace prefix.
#list = yes
# Namespace handles its own subscriptions. If set to "no", the parent
# namespace handles them (empty prefix should always have this as "yes")
#subscriptions = yes
}
# Example shared namespace configuration
#namespace {
#type = shared
#separator = /
# Mailboxes are visible under "shared/user@domain/"
# %%n, %%d and %%u are expanded to the destination user.
#prefix = shared/%%u/
# Mail location for other users' mailboxes. Note that %variables and ~/
# expands to the logged in user's data. %%n, %%d, %%u and %%h expand to the
# destination user's data.
#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
# Use the default namespace for saving subscriptions.
#subscriptions = no
# List the shared/ namespace only if there are visible shared mailboxes.
#list = children
#}
# Should shared INBOX be visible as "shared/user" or "shared/user/INBOX"?
#mail_shared_explicit_inbox = no
# System user and group used to access mails. If you use multiple, userdb
# can override these by returning uid or gid fields. You can use either numbers
# or names.
#mail_uid =
#mail_gid =
# Group to enable temporarily for privileged operations. Currently this is
# used only with INBOX when either its initial creation or dotlocking fails.
# Typically this is set to "mail" to give access to /var/mail.
#mail_privileged_group =
# Grant access to these supplementary groups for mail processes. Typically
# these are used to set up access to shared mailboxes. Note that it may be
# dangerous to set these if users can create symlinks (e.g. if "mail" group is
# set here, ln -s /var/mail ~/mail/var could allow a user to delete others'
# mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).
mail_access_groups = vmail
# Allow full filesystem access to clients. There's no access checks other than
# what the operating system does for the active UID/GID. It works with both
# maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/
# or ~user/.
#mail_full_filesystem_access = no
# Dictionary for key=value mailbox attributes. Currently used by URLAUTH, but
# soon intended to be used by METADATA as well.
#mail_attribute_dict =
##
## Mail processes
##
# Don't use mmap() at all. This is required if you store indexes to shared
# filesystems (NFS or clustered filesystem).
#mmap_disable = no
# Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL
# since version 3, so this should be safe to use nowadays by default.
#dotlock_use_excl = yes
# When to use fsync() or fdatasync() calls:
# optimized (default): Whenever necessary to avoid losing important data
# always: Useful with e.g. NFS when write()s are delayed
# never: Never use it (best performance, but crashes can lose data)
#mail_fsync = optimized
# Locking method for index files. Alternatives are fcntl, flock and dotlock.
# Dotlocking uses some tricks which may create more disk I/O than other locking
# methods. NFS users: flock doesn't work, remember to change mmap_disable.
#lock_method = fcntl
# Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.
#mail_temp_dir = /tmp
# Valid UID range for users, defaults to 500 and above. This is mostly
# to make sure that users can't log in as daemons or other system users.
# Note that denying root logins is hardcoded to dovecot binary and can't
# be done even if first_valid_uid is set to 0.
#first_valid_uid = 500
#last_valid_uid = 0
# Valid GID range for users, defaults to non-root/wheel. Users having
# non-valid GID as primary group ID aren't allowed to log in. If user
# belongs to supplementary groups with non-valid GIDs, those groups are
# not set.
#first_valid_gid = 1
#last_valid_gid = 0
# Maximum allowed length for mail keyword name. It's only forced when trying
# to create new keywords.
#mail_max_keyword_length = 50
# ':' separated list of directories under which chrooting is allowed for mail
# processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too).
# This setting doesn't affect login_chroot, mail_chroot or auth chroot
# settings. If this setting is empty, "/./" in home dirs are ignored.
# WARNING: Never add directories here which local users can modify, that
# may lead to root exploit. Usually this should be done only if you don't
# allow shell access for users.
#valid_chroot_dirs =
# Default chroot directory for mail processes. This can be overridden for
# specific users in user database by giving /./ in user's home directory
# (eg. /home/./user chroots into /home). Note that usually there is no real
# need to do chrooting, Dovecot doesn't allow users to access files outside
# their mail directory anyway. If your home directories are prefixed with
# the chroot directory, append "/." to mail_chroot.
#mail_chroot =
# UNIX socket path to master authentication server to find users.
# This is used by imap (for shared users) and lda.
#auth_socket_path = /var/run/dovecot/auth-userdb
# Directory where to look up mail plugins.
#mail_plugin_dir = /usr/lib/dovecot/modules
# Space separated list of plugins to load for all services. Plugins specific to
# IMAP, LDA, etc. are added to this list in their own .conf files.
#mail_plugins =
##
## Mailbox handling optimizations
##
# Mailbox list indexes can be used to optimize IMAP STATUS commands. They are
# also required for IMAP NOTIFY extension to be enabled.
#mailbox_list_index = no
# The minimum number of mails in a mailbox before updates are done to cache
# file. This allows optimizing Dovecot's behavior to do less disk writes at
# the cost of more disk reads.
#mail_cache_min_mail_count = 0
# When IDLE command is running, mailbox is checked once in a while to see if
# there are any new mails or other changes. This setting defines the minimum
# time to wait between those checks. Dovecot can also use dnotify, inotify and
# kqueue to find out immediately when changes occur.
#mailbox_idle_check_interval = 30 secs
# Save mails with CR+LF instead of plain LF. This makes sending those mails
# take less CPU, especially with sendfile() syscall with Linux and FreeBSD.
# But it also creates a bit more disk I/O which may just make it slower.
# Also note that if other software reads the mboxes/maildirs, they may handle
# the extra CRs wrong and cause problems.
#mail_save_crlf = no
# Max number of mails to keep open and prefetch to memory. This only works with
# some mailbox formats and/or operating systems.
#mail_prefetch_count = 0
# How often to scan for stale temporary files and delete them (0 = never).
# These should exist only after Dovecot dies in the middle of saving mails.
#mail_temp_scan_interval = 1w
##
## Maildir-specific settings
##
# By default LIST command returns all entries in maildir beginning with a dot.
# Enabling this option makes Dovecot return only entries which are directories.
# This is done by stat()ing each entry, so it causes more disk I/O.
# (For systems setting struct dirent->d_type, this check is free and it's
# done always regardless of this setting)
#maildir_stat_dirs = no
# When copying a message, do it with hard links whenever possible. This makes
# the performance much better, and it's unlikely to have any side effects.
#maildir_copy_with_hardlinks = yes
# Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only
# when its mtime changes unexpectedly or when we can't find the mail otherwise.
#maildir_very_dirty_syncs = no
# If enabled, Dovecot doesn't use the S= in the Maildir filenames for
# getting the mail's physical size, except when recalculating Maildir++ quota.
# This can be useful in systems where a lot of the Maildir filenames have a
# broken size. The performance hit for enabling this is very small.
#maildir_broken_filename_sizes = no
# Always move mails from new/ directory to cur/, even when the \Recent flags
# aren't being reset.
#maildir_empty_new = no
##
## mbox-specific settings
##
# Which locking methods to use for locking mbox. There are four available:
# dotlock: Create .lock file. This is the oldest and most NFS-safe
# solution. If you want to use /var/mail/ like directory, the users
# will need write access to that directory.
# dotlock_try: Same as dotlock, but if it fails because of permissions or
# because there isn't enough disk space, just skip it.
# fcntl : Use this if possible. Works with NFS too if lockd is used.
# flock : May not exist in all systems. Doesn't work with NFS.
# lockf : May not exist in all systems. Doesn't work with NFS.
#
# You can use multiple locking methods; if you do the order they're declared
# in is important to avoid deadlocks if other MTAs/MUAs are using multiple
# locking methods as well. Some operating systems don't allow using some of
# them simultaneously.
#
# The Debian value for mbox_write_locks differs from upstream Dovecot. It is
# changed to be compliant with Debian Policy (section 11.6) for NFS safety.
# Dovecot: mbox_write_locks = dotlock fcntl
# Debian: mbox_write_locks = fcntl dotlock
#
#mbox_read_locks = fcntl
#mbox_write_locks = fcntl dotlock
# Maximum time to wait for lock (all of them) before aborting.
#mbox_lock_timeout = 5 mins
# If dotlock exists but the mailbox isn't modified in any way, override the
# lock file after this much time.
#mbox_dotlock_change_timeout = 2 mins
# When mbox changes unexpectedly we have to fully read it to find out what
# changed. If the mbox is large this can take a long time. Since the change
# is usually just a newly appended mail, it'd be faster to simply read the
# new mails. If this setting is enabled, Dovecot does this but still safely
# fallbacks to re-reading the whole mbox file whenever something in mbox isn't
# how it's expected to be. The only real downside to this setting is that if
# some other MUA changes message flags, Dovecot doesn't notice it immediately.
# Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK
# commands.
#mbox_dirty_syncs = yes
# Like mbox_dirty_syncs, but don't do full syncs even with SELECT, EXAMINE,
# EXPUNGE or CHECK commands. If this is set, mbox_dirty_syncs is ignored.
#mbox_very_dirty_syncs = no
# Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK
# commands and when closing the mailbox). This is especially useful for POP3
# where clients often delete all mails. The downside is that our changes
# aren't immediately visible to other MUAs.
#mbox_lazy_writes = yes
# If mbox size is smaller than this (e.g. 100k), don't write index files.
# If an index file already exists it's still read, just not updated.
#mbox_min_index_size = 0
# Mail header selection algorithm to use for MD5 POP3 UIDLs when
# pop3_uidl_format=%m. For backwards compatibility we use apop3d inspired
# algorithm, but it fails if the first Received: header isn't unique in all
# mails. An alternative algorithm is "all" that selects all headers.
#mbox_md5 = apop3d
##
## mdbox-specific settings
##
# Maximum dbox file size until it's rotated.
#mdbox_rotate_size = 2M
# Maximum dbox file age until it's rotated. Typically in days. Day begins
# from midnight, so 1d = today, 2d = yesterday, etc. 0 = check disabled.
#mdbox_rotate_interval = 0
# When creating new mdbox files, immediately preallocate their size to
# mdbox_rotate_size. This setting currently works only in Linux with some
# filesystems (ext4, xfs).
#mdbox_preallocate_space = no
##
## Mail attachments
##
# sdbox and mdbox support saving mail attachments to external files, which
# also allows single instance storage for them. Other backends don't support
# this for now.
# Directory root where to store mail attachments. Disabled, if empty.
#mail_attachment_dir =
# Attachments smaller than this aren't saved externally. It's also possible to
# write a plugin to disable saving specific attachments externally.
#mail_attachment_min_size = 128k
# Filesystem backend to use for saving attachments:
# posix : No SiS done by Dovecot (but this might help FS's own deduplication)
# sis posix : SiS with immediate byte-by-byte comparison during saving
# sis-queue posix : SiS with delayed comparison and deduplication
#mail_attachment_fs = sis posix
# Hash format to use in attachment filenames. You can add any text and
# variables: %{md4}, %{md5}, %{sha1}, %{sha256}, %{sha512}, %{size}.
# Variables can be truncated, e.g. %{sha256:80} returns only first 80 bits
#mail_attachment_hash = %{sha1}
]]>
#service_count = 1
# Number of processes to always keep waiting for more connections.
#process_min_avail = 0
# If you set service_count=0, you probably need to grow this.
#vsz_limit = $default_vsz_limit
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
#port = 995
#ssl = yes
}
}
service lmtp {
unix_listener lmtp {
#mode = 0666
}
# Create inet listener only if you can't use the above UNIX socket
#inet_listener lmtp {
# Avoid making LMTP visible for the entire internet
#address =
#port =
#}
}
service imap {
# Most of the memory goes to mmap()ing files. You may need to increase this
# limit if you have huge mailboxes.
#vsz_limit = $default_vsz_limit
# Max. number of IMAP processes (connections)
#process_limit = 1024
}
service pop3 {
# Max. number of POP3 processes (connections)
#process_limit = 1024
}
service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
# full permissions to this socket are able to get a list of all usernames and
# get the results of everyone's userdb lookups.
#
# The default 0666 mode allows anyone to connect to the socket, but the
# userdb lookups will succeed only if the userdb returns an "uid" field that
# matches the caller process's UID. Also if caller's uid or gid matches the
# socket's uid or gid the lookup succeeds. Anything else causes a failure.
#
# To give the caller full permissions to lookup all users, set the mode to
# something else than 0666 and Dovecot lets the kernel enforce the
# permissions (e.g. 0777 allows everyone full permissions).
unix_listener auth-userdb {
#mode = 0666
#user =
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Exim4 smtp-auth
unix_listener auth-client {
mode = 0660
user = mail
# group = Debian-exim
}
# Auth process is run as this user.
#user = $default_internal_user
}
service auth-worker {
# Auth worker process is run as root by default, so that it can access
# /etc/shadow. If this isn't necessary, the user should be changed to
# $default_internal_user.
#user = root
}
service dict {
# If dict proxy is used, mail processes should have access to its socket.
# For example: mode=0660, group=vmail and global mail_access_groups=vmail
unix_listener dict {
#mode = 0600
#user =
#group =
}
}
]]>
ssl = yes
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = <
ssl_key = <
# If key file is password protected, give the password here. Alternatively
# give it when starting dovecot with -p parameter. Since this file is often
# world-readable, you may want to place this setting instead to a different
# root owned 0600 file by using ssl_key_password = . %d expands to recipient domain.
postmaster_address = postmaster@
# Hostname to use in various parts of sent mails (e.g. in Message-Id) and
# in LMTP replies. Default is the system's real hostname@domain.
#hostname =
# If user is over quota, return with temporary failure instead of
# bouncing the mail.
#quota_full_tempfail = no
# Binary to use for sending mails.
#sendmail_path = /usr/sbin/sendmail
# If non-empty, send mails via this SMTP host[:port] instead of sendmail.
#submission_host =
# Subject: header to use for rejection mails. You can use the same variables
# as for rejection_reason below.
#rejection_subject = Rejected: %s
# Human readable error message for rejection mails. You can use variables:
# %n = CRLF, %r = reason, %s = original subject, %t = recipient
#rejection_reason = Your message to <%t> was automatically rejected:%n%r
# Delimiter character between local-part and detail in email address.
#recipient_delimiter = +
# Header where the original recipient address (SMTP's RCPT TO: address) is taken
# from if not available elsewhere. With dovecot-lda -a parameter overrides this.
# A commonly used header for this is X-Original-To.
#lda_original_recipient_header =
# Should saving a mail to a nonexistent mailbox automatically create it?
#lda_mailbox_autocreate = no
# Should automatically created mailboxes be also automatically subscribed?
#lda_mailbox_autosubscribe = no
protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins quota sieve
}
]]>
#service_count = 1
# Number of processes to always keep waiting for more connections.
#process_min_avail = 0
# If you set service_count=0, you probably need to grow this.
#vsz_limit = 64M
#}
#service managesieve {
# Max. number of ManageSieve processes (connections)
#process_limit = 1024
#}
# Service configuration
protocol sieve {
# Maximum ManageSieve command line length in bytes. ManageSieve usually does
# not involve overly long command lines, so this setting will not normally
# need adjustment
#managesieve_max_line_length = 65536
# Maximum number of ManageSieve connections allowed for a user from each IP
# address.
# NOTE: The username is compared case-sensitively.
#mail_max_userip_connections = 10
# Space separated list of plugins to load (none known to be useful so far).
# Do NOT try to load IMAP plugins here.
#mail_plugins =
# MANAGESIEVE logout format string:
# %i - total number of bytes read from client
# %o - total number of bytes sent to client
#managesieve_logout_format = bytes=%i/%o
# To fool ManageSieve clients that are focused on CMU's timesieved you can
# specify the IMPLEMENTATION capability that Dovecot reports to clients.
# For example: 'Cyrus timsieved v2.2.13'
#managesieve_implementation_string = Dovecot Pigeonhole
# Explicitly specify the SIEVE and NOTIFY capability reported by the server
# before login. If left unassigned these will be reported dynamically
# according to what the Sieve interpreter supports by default (after login
# this may differ depending on the user).
#managesieve_sieve_capability =
#managesieve_notify_capability =
# The maximum number of compile errors that are returned to the client upon
# script upload or script verification.
#managesieve_max_compile_errors = 5
# Refer to 90-sieve.conf for script quota configuration and configuration of
# Sieve execution limits.
}
]]>
= 2.1.4) : %v.%u
# Dovecot v0.99.x : %v.%u
# tpop3d : %Mf
#
# Note that Outlook 2003 seems to have problems with %v.%u format which was
# Dovecot's default, so if you're building a new server it would be a good
# idea to change this. %08Xu%08Xv should be pretty fail-safe.
#
#pop3_uidl_format = %08Xu%08Xv
# Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes
# won't change those UIDLs. Currently this works only with Maildir.
#pop3_save_uidl = no
# What to do about duplicate UIDLs if they exist?
# allow: Show duplicates to clients.
# rename: Append a temporary -2, -3, etc. counter after the UIDL.
#pop3_uidl_duplicates = allow
# This option changes POP3 behavior so that it's not possible to actually
# delete mails via POP3, only hide them from future POP3 sessions. The mails
# will still be counted towards user's quota until actually deleted via IMAP.
# Use e.g. "$POP3Deleted" as the value (it will be visible as IMAP keyword).
# Make sure you can legally archive mails before enabling this setting.
#pop3_deleted_flag =
# POP3 logout format string:
# %i - total number of bytes read from client
# %o - total number of bytes sent to client
# %t - number of TOP commands
# %p - number of bytes sent to client as a result of TOP command
# %r - number of RETR commands
# %b - number of bytes sent to client as a result of RETR command
# %d - number of deleted messages
# %m - number of messages (before deletion)
# %s - mailbox size in bytes (before deletion)
# %u - old/new UIDL hash. may help finding out if UIDLs changed unexpectedly
pop3_logout_format = in=%i out=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
# Workarounds for various client bugs:
# outlook-no-nuls:
# Outlook and Outlook Express hang if mails contain NUL characters.
# This setting replaces them with 0x80 character.
# oe-ns-eoh:
# Outlook Express and Netscape Mail breaks if end of headers-line is
# missing. This option simply sends it if it's missing.
# The list is space-separated.
#pop3_client_workarounds =
protocol pop3 {
# Space separated list of plugins to load (default is global mail_plugins).
#mail_plugins = $mail_plugins
# Maximum number of POP3 connections allowed for a user from each IP address.
# NOTE: The username is compared case-sensitively.
#mail_max_userip_connections = 10
}
]]>
See sieve_before fore executing scripts before the user's personal
# script.
#sieve_default = /var/lib/dovecot/sieve/default.sieve
# Directory for :personal include scripts for the include extension. This
# is also where the ManageSieve service stores the user's scripts.
sieve_dir = ~/sieve
# Directory for :global include scripts for the include extension.
#sieve_global_dir =
# Path to a script file or a directory containing script files that need to be
# executed before the user's script. If the path points to a directory, all
# the Sieve scripts contained therein (with the proper .sieve extension) are
# executed. The order of execution within a directory is determined by the
# file names, using a normal 8bit per-character comparison. Multiple script
# file or directory paths can be specified by appending an increasing number.
#sieve_before =
#sieve_before2 =
#sieve_before3 = (etc...)
# Identical to sieve_before, only the specified scripts are executed after the
# user's script (only when keep is still in effect!). Multiple script file or
# directory paths can be specified by appending an increasing number.
#sieve_after =
#sieve_after2 =
#sieve_after2 = (etc...)
# Which Sieve language extensions are available to users. By default, all
# supported extensions are available, except for deprecated extensions or
# those that are still under development. Some system administrators may want
# to disable certain Sieve extensions or enable those that are not available
# by default. This setting can use '+' and '-' to specify differences relative
# to the default. For example `sieve_extensions = +imapflags' will enable the
# deprecated imapflags extension in addition to all extensions were already
# enabled by default.
#sieve_extensions = +notify +imapflags
# Which Sieve language extensions are ONLY available in global scripts. This
# can be used to restrict the use of certain Sieve extensions to administrator
# control, for instance when these extensions can cause security concerns.
# This setting has higher precedence than the `sieve_extensions' setting
# (above), meaning that the extensions enabled with this setting are never
# available to the user's personal script no matter what is specified for the
# `sieve_extensions' setting. The syntax of this setting is similar to the
# `sieve_extensions' setting, with the difference that extensions are
# enabled or disabled for exclusive use in global scripts. Currently, no
# extensions are marked as such by default.
#sieve_global_extensions =
# The Pigeonhole Sieve interpreter can have plugins of its own. Using this
# setting, the used plugins can be specified. Check the Dovecot wiki
# (wiki2.dovecot.org) or the pigeonhole website
# (http://pigeonhole.dovecot.org) for available plugins.
# The sieve_extprograms plugin is included in this release.
#sieve_plugins =
# The separator that is expected between the :user and :detail
# address parts introduced by the subaddress extension. This may
# also be a sequence of characters (e.g. '--'). The current
# implementation looks for the separator from the left of the
# localpart and uses the first one encountered. The :user part is
# left of the separator and the :detail part is right. This setting
# is also used by Dovecot's LMTP service.
#recipient_delimiter = +
# The maximum size of a Sieve script. The compiler will refuse to compile any
# script larger than this limit. If set to 0, no limit on the script size is
# enforced.
#sieve_max_script_size = 1M
# The maximum number of actions that can be performed during a single script
# execution. If set to 0, no limit on the total number of actions is enforced.
#sieve_max_actions = 32
# The maximum number of redirect actions that can be performed during a single
# script execution. If set to 0, no redirect actions are allowed.
#sieve_max_redirects = 4
# The maximum number of personal Sieve scripts a single user can have. If set
# to 0, no limit on the number of scripts is enforced.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_scripts = 0
# The maximum amount of disk storage a single user's scripts may occupy. If
# set to 0, no limit on the used amount of disk storage is enforced.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_storage = 0
}
]]>
//service[@type='mail']/general/installs[@index=1]
//service[@type='mail']/general/files[@index=1]
//service[@type='mail']/general/commands[@index=1]
/dev/null]]> /etc/apt/sources.list.d/rspamd.list]]>> /etc/apt/sources.list.d/rspamd.list]]>//service[@type='antispam']/general/commands[@index=1]
//service[@type='antispam']/general/installs[@index=1]
//service[@type='antispam']/general/commands[@index=2]
//service[@type='antispam']/general/files[@index=1]
//service[@type='antispam']/general/commands[@index=3]
"
[ -f /etc/ssl/certs/proftpd_ec.crt ] || openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp521r1) -keyout /etc/ssl/private/proftpd_ec.key -out /etc/ssl/certs/proftpd_ec.crt -days 3650 -subj "/C=US/ST=Some-State/O=Internet Widgits Pty Ltd/CN="
chmod 0600 /etc/ssl/private/proftpd.key /etc/ssl/private/proftpd_ec.key
]]>
IdentLookups off
ServerName " FTP Server"
ServerType standalone
DeferWelcome off
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# If your host was NATted, this option is useful in order to
# allow passive transfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
# DynMasqRefresh 28800
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwritable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or ), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
QuotaEngine on
Ratios off
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
# A basic anonymous configuration, no upload directories.
#
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
#
#
# DenyAll
#
#
#
# # Uncomment this if you're brave.
# #
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# #
# # DenyAll
# #
# #
# # AllowAll
# #
# #
#
#
# Include other custom configuration files
Include /etc/proftpd/conf.d/
]]>
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
SQLBackend mysql
#
SQLEngine on
SQLAuthenticate on
#
# Use both an encrypted or plaintext password
SQLAuthTypes Crypt OpenSSL
SQLAuthenticate users* groups*
#
# Connection
SQLConnectInfo @
#
# Describes both users/groups tables
#
SQLUserInfo ftp_users username password uid gid homedir shell
SQLGroupInfo ftp_groups groupname gid members
#
SQLUserWhereClause "login_enabled = 'y'"
SQLLog PASS login
SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users
SQLLog RETR download
SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users
SQLLog STOR upload
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
QuotaEngine on
QuotaShowQuotas on
QuotaDisplayUnits Mb
QuotaLock /var/lock/ftpd.quotatab.lock
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
]]>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSECCertificateFile /etc/ssl/certs/proftpd_ec.crt
TLSECCertificateKeyFile /etc/ssl/private/proftpd_ec.key
# TLSCACertificateFile
TLSOptions NoSessionReuseRequired
TLSVerifyClient off
# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotiations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
#
#TLSRenegotiate required off
]]>
From 127.0.0.1
MaxLoginAttempts 3
BanEngine off
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root
BanEngine off
DelayEngine off
]]>
"
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 3072
chmod 0600 /etc/ssl/private/pure-ftpd.pem /etc/ssl/private/pure-ftpd-dhparams.pem
]]>
# Mandatory : user password. You must have a password.
MYSQLPassword
# Mandatory : database to open.
MYSQLDatabase
# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "sha1", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "sha1", "md5" *and* "password"
MYSQLCrypt any
# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.
# Query to execute in order to fetch the password
MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Query to execute in order to fetch the system user name or uid
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default UID - if set this overrides MYSQLGetUID
#MYSQLDefaultUID 1000
# Query to execute in order to fetch the system user group or gid
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default GID - if set this overrides MYSQLGetGID
#MYSQLDefaultGID 1000
# Query to execute in order to fetch the home directory
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.
# MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User='\L'
# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTASZ SELECT CASE WHEN panel_customers.diskspace = 0 THEN -1 WHEN panel_customers.diskspace <= -1 THEN 0 ELSE panel_customers.diskspace/1024 END AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
# Optional : ratios. The server has to be compiled with ratio support.
# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .
# MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'
# MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.
# MySQLForceTildeExpansion 1
# If you're using a transactionnal storage engine, you can enable SQL
# transactions to avoid races. Leave this commented if you are using the
# traditional MyIsam engine.
# MySQLTransactions On
]]>
//service[@type='smtp']/general/commands[@index=3]
*.log {
missingok
daily
rotate 7
compress
delaycompress
notifempty
create
sharedscripts
postrotate
> /dev/null 2>&1 || true
endscript
}
]]>
{{settings.system.mod_fcgid_ownvhost}}
{{settings.system.webserver}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.phpfpm.vhost_httpuser}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.system.webserver}}
bin/froxlor-cli /usr/local/bin/froxlor-cli]]>bin/froxlor-cli froxlor:cron --run-task 99]]>
================================================
FILE: lib/configfiles/noble.xml
================================================
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.deactivateddocroot}}
//service[@type='http']/general/commands{{settings.system.use_ssl}}
{{settings.phpfpm.enabled}}
{{settings.system.leenabled}}
Require all granted
]]>
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
{{settings.system.leenabled}}
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
//service[@type='http']/general/commands{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
> /etc/bind/named.conf.local]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# allow-recursion List of subnets that are allowed to recurse
#
allow-recursion=127.0.0.1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# recursive-cache-ttl Seconds to store packets for recursive queries in the PacketCache
#
# recursive-cache-ttl=10
#################################
# recursor If recursion is desired, IP address of a recursing nameserver
#
# recursor=no
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# allow-recursion List of subnets that are allowed to recurse
#
allow-recursion=127.0.0.1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=bind
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# recursive-cache-ttl Seconds to store packets for recursive queries in the PacketCache
#
# recursive-cache-ttl=10
#################################
# recursor If recursion is desired, IP address of a recursing nameserver
#
# recursor=no
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
named.conf
# How often to check for zone changes. See 'Operation' section.
bind-check-interval=180
# Uncomment to enable Huffman compression on zone data.
# Currently saves around 20% of memory actually used, but slows down operation.
# bind-enable-huffman
]]>
{{settings.system.vmail_gid}}
{{settings.system.vmail_uid}}
password =
dbname =
hosts =
query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND v.email = '%s' AND trim(v.destination) <> ''
]]>
password =
dbname =
hosts =
query = SELECT domain FROM panel_domains WHERE domain = '%s' AND isemaildomain = '1' AND deactivated = 0
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT CONCAT(homedir,maildir) FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
hosts =
query = SELECT GROUP_CONCAT(DISTINCT mu.username SEPARATOR ' ') AS sasl_users FROM mail_users mu WHERE mu.username = '%s' OR mu.email IN ((SELECT mail_virtual.email_full FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_virtual.destination FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = CONCAT('@', SUBSTRING_INDEX('%s','@',-1))));
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT uid FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT gid FROM mail_users WHERE email = '%s'
]]>
]]>
//service[@type='smtp']/general/commands[@index=1]
//service[@type='smtp']/general/installs[@index=1]
//service[@type='smtp']/general/commands[@index=2]
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
# The default setting is 550 (reject mail) but it is safer to start
# with 450 (try again later) until you are certain that your
# local_recipient_maps settings are OK.
#
unknown_local_recipient_reject_code = 550
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).
#
# Unlike other Postfix configuration parameters, the mailbox_command
# parameter is not subjected to $parameter substitutions. This is to
# make it easier to specify shell syntax (see example below).
#
# Avoid shell meta characters because they will force Postfix to run
# an expensive shell process. Procmail alone is expensive enough.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
mailbox_command = /usr/lib/dovecot/deliver
#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
inet_protocols = ipv4
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unknown_helo_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client_hostname
# Postfix 2.10 requires this option. Postfix < 2.10 ignores this.
# The option is intentionally left empty.
smtpd_relay_restrictions =
# Maximum size of Message in bytes (50MB)
message_size_limit = 52428800
## SASL Auth Settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport
smtpd_sasl_type = dovecot
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_path = private/auth
# Virtual delivery settings
virtual_mailbox_base = /
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:
virtual_gid_maps = static:
# Local delivery settings
local_transport = local
alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
###
## TLS for outgoing mails from the server to another server
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
## TLS for incoming connections (clients or other mail servers)
smtpd_tls_security_level = may
smtpd_tls_cert_file =
smtpd_tls_key_file =
#smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_session_cache_timeout = 3600s
]]>
//service[@type='smtp']/general/files[@index=0]//service[@type='smtp']/general/commands[@index=3]
dbname= user= password="
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('*:storage=', quota, 'M') as quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u')
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('*:storage=', quota, 'M') as userdb_quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR ((postfix = 'Y' AND '%Ls' = 'smtp') OR (postfix = 'Y' AND '%Ls' = 'sieve')))
iterate_query = "SELECT username AS user FROM mail_users WHERE (imap = 1 OR pop3 = 1)"
]]>
ssl_key = <
ssl_dh =
protocol imap {
mail_plugins = $mail_plugins quota imap_quota
}
pop3_logout_format = in=%i out=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
plugin {
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_dir = ~/sieve
}
plugin {
quota = maildir:User quota
}
]]>
//service[@type='mail']/general/installs[@index=1]
//service[@type='mail']/general/files[@index=1]
//service[@type='mail']/general/commands[@index=1]
/dev/null]]> /etc/apt/sources.list.d/rspamd.list]]>> /etc/apt/sources.list.d/rspamd.list]]>//service[@type='antispam']/general/commands[@index=1]
//service[@type='antispam']/general/installs[@index=1]
//service[@type='antispam']/general/commands[@index=2]
//service[@type='antispam']/general/files[@index=1]
//service[@type='antispam']/general/commands[@index=3]
"
[ -f /etc/ssl/certs/proftpd_ec.crt ] || openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp521r1) -keyout /etc/ssl/private/proftpd_ec.key -out /etc/ssl/certs/proftpd_ec.crt -days 3650 -subj "/C=US/ST=Some-State/O=Internet Widgits Pty Ltd/CN="
chmod 0600 /etc/ssl/private/proftpd.key /etc/ssl/private/proftpd_ec.key
]]>
IdentLookups off
ServerName " FTP Server"
ServerType standalone
DeferWelcome off
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# If your host was NATted, this option is useful in order to
# allow passive transfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
# DynMasqRefresh 28800
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwritable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or ), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
QuotaEngine on
Ratios off
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
# A basic anonymous configuration, no upload directories.
#
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
#
#
# DenyAll
#
#
#
# # Uncomment this if you're brave.
# #
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# #
# # DenyAll
# #
# #
# # AllowAll
# #
# #
#
#
# Include other custom configuration files
Include /etc/proftpd/conf.d/
]]>
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
SQLBackend mysql
#
SQLEngine on
SQLAuthenticate on
#
# Use both an encrypted or plaintext password
SQLAuthTypes Crypt OpenSSL
SQLAuthenticate users* groups*
#
# Connection
SQLConnectInfo @
#
# Describes both users/groups tables
#
SQLUserInfo ftp_users username password uid gid homedir shell
SQLGroupInfo ftp_groups groupname gid members
#
SQLUserWhereClause "login_enabled = 'y'"
SQLLog PASS login
SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users
SQLLog RETR download
SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users
SQLLog STOR upload
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
QuotaEngine on
QuotaShowQuotas on
QuotaDisplayUnits Mb
QuotaLock /var/lock/ftpd.quotatab.lock
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
]]>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSECCertificateFile /etc/ssl/certs/proftpd_ec.crt
TLSECCertificateKeyFile /etc/ssl/private/proftpd_ec.key
# TLSCACertificateFile
TLSOptions NoSessionReuseRequired
TLSVerifyClient off
# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotiations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
#
#TLSRenegotiate required off
]]>
From 127.0.0.1
MaxLoginAttempts 3
BanEngine off
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root
BanEngine off
DelayEngine off
]]>
"
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 3072
chmod 0600 /etc/ssl/private/pure-ftpd.pem /etc/ssl/private/pure-ftpd-dhparams.pem
]]>
# Mandatory : user password. You must have a password.
MYSQLPassword
# Mandatory : database to open.
MYSQLDatabase
# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "sha1", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "sha1", "md5" *and* "password"
MYSQLCrypt any
# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.
# Query to execute in order to fetch the password
MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Query to execute in order to fetch the system user name or uid
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default UID - if set this overrides MYSQLGetUID
#MYSQLDefaultUID 1000
# Query to execute in order to fetch the system user group or gid
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : default GID - if set this overrides MYSQLGetGID
#MYSQLDefaultGID 1000
# Query to execute in order to fetch the home directory
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.
# MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User='\L'
# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTASZ SELECT CASE WHEN panel_customers.diskspace = 0 THEN -1 WHEN panel_customers.diskspace <= -1 THEN 0 ELSE panel_customers.diskspace/1024 END AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
# Optional : ratios. The server has to be compiled with ratio support.
# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .
# MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'
# MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.
# MySQLForceTildeExpansion 1
# If you're using a transactionnal storage engine, you can enable SQL
# transactions to avoid races. Leave this commented if you are using the
# traditional MyIsam engine.
# MySQLTransactions On
]]>
//service[@type='smtp']/general/commands[@index=3]
*.log {
missingok
daily
rotate 7
compress
delaycompress
notifempty
create
sharedscripts
postrotate
> /dev/null 2>&1 || true
endscript
}
]]>
{{settings.system.mod_fcgid_ownvhost}}
{{settings.system.webserver}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.phpfpm.vhost_httpuser}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.system.webserver}}
bin/froxlor-cli /usr/local/bin/froxlor-cli]]>bin/froxlor-cli froxlor:cron --run-task 99]]>
================================================
FILE: lib/configfiles/trixie.xml
================================================
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_vhost}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.apacheconf_diroptions}}
{{settings.system.deactivateddocroot}}
//service[@type='http']/general/commands{{settings.system.use_ssl}}
{{settings.phpfpm.enabled}}
{{settings.system.leenabled}}
Require all granted
]]>
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
{{settings.system.leenabled}}
{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
//service[@type='http']/general/commands{{settings.phpfpm.enabled}}
{{settings.system.mod_fcgid}}
> /etc/bind/named.conf.local]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
#################################
# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
#
# allow-dnsupdate-from=127.0.0.0/8,::1
#################################
# also-notify When notifying a domain, also notify these nameservers
#
# also-notify=
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#
# any-to-tcp=no
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
# cache-ttl=20
#################################
# carbon-interval Number of seconds between carbon (graphite) updates
#
# carbon-interval=30
#################################
# carbon-ourname If set, overrides our reported hostname for carbon stats
#
# carbon-ourname=
#################################
# carbon-server If set, send metrics in carbon (graphite) format to this server
#
# carbon-server=
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/etc/powerdns
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-ksk-algorithms Default KSK algorithms
#
# default-ksk-algorithms=rsasha256
#################################
# default-ksk-size Default KSK size (0 means default)
#
# default-ksk-size=0
#################################
# default-soa-mail mail address to insert in the SOA record if none set in the backend
#
# default-soa-mail=
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# default-ttl Seconds a result is valid if not set otherwise
#
# default-ttl=3600
#################################
# default-zsk-algorithms Default ZSK algorithms
#
# default-zsk-algorithms=rsasha256
#################################
# default-zsk-size Default ZSK size (0 means default)
#
# default-zsk-size=0
#################################
# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis
#
# direct-dnskey=no
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
#
# disable-axfr-rectify=no
#################################
# disable-tcp Do not listen to TCP queries
#
# disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# do-ipv6-additional-processing Do AAAA additional processing
#
# do-ipv6-additional-processing=yes
#################################
# edns-subnet-processing If we should act on EDNS Subnet options
#
# edns-subnet-processing=no
#################################
# entropy-source If set, read entropy from this file
#
# entropy-source=/dev/urandom
#################################
# experimental-api-key REST API Static authentication key (required for API use)
#
# experimental-api-key=
#################################
# experimental-api-readonly If the JSON API should disallow data modification
#
# experimental-api-readonly=no
#################################
# experimental-dname-processing If we should support DNAME records
#
# experimental-dname-processing=no
#################################
# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no.
#
# experimental-dnsupdate=no
#################################
# experimental-json-interface If the webserver should serve JSON data
#
# experimental-json-interface=no
#################################
# experimental-logfile Filename of the log file for JSON parser
#
# experimental-logfile=/var/log/pdns.log
#################################
# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
#
# forward-dnsupdate=yes
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# include-dir Include *.conf files from this directory
#
# include-dir=
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=bind
#################################
# load-modules Load this module - supply absolute or relative path
#
# load-modules=
#################################
# local-address Local IP addresses to which we bind
#
local-address=,127.0.0.1
#################################
# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server
#
# local-address-nonexist-fail=yes
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server
#
# local-ipv6-nonexist-fail=yes
#################################
# local-port The port on which we listen
#
# local-port=53
#################################
# log-dns-details If PDNS should log DNS non-erroneous details
#
# log-dns-details=no
#################################
# log-dns-queries If PDNS should log all incoming DNS queries
#
# log-dns-queries=no
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
# loglevel=4
#################################
# lua-prequery-script Lua script with prequery handler
#
# lua-prequery-script=
#################################
# master Act as a master
#
master=yes
#################################
# max-cache-entries Maximum number of cache entries
#
# max-cache-entries=1000000
#################################
# max-ent-entries Maximum number of empty non-terminals in a zone
#
# max-ent-entries=100000
#################################
# max-nsec3-iterations Limit the number of NSEC3 hash iterations
#
# max-nsec3-iterations=500
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-signature-cache-entries Maximum number of signatures cache entries
#
# max-signature-cache-entries=
#################################
# max-tcp-connections Maximum number of TCP connections
#
# max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/lib/TRIPLET/pdns
#################################
# negquery-cache-ttl Seconds to store negative query results in the QueryCache
#
# negquery-cache-ttl=60
#################################
# no-shuffle Set this to prevent random shuffling of answers - for regression testing
#
# no-shuffle=off
#################################
# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks
#
# only-notify=0.0.0.0/0,::/0
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=yes
#################################
# overload-queue-length Maximum queuelength moving to packetcache only
#
# overload-queue-length=0
#################################
# pipebackend-abi-version Version of the pipe backend ABI
#
# pipebackend-abi-version=1
#################################
# prevent-self-notification Don't send notifications to what we think is ourself
#
# prevent-self-notification=yes
#################################
# query-cache-ttl Seconds to store query results in the QueryCache
#
# query-cache-ttl=20
#################################
# query-local-address Source IP address for sending queries
#
# query-local-address=0.0.0.0
#################################
# query-local-address6 Source IPv6 address for sending queries
#
# query-local-address6=::
#################################
# query-logging Hint backends that queries should be logged
#
# query-logging=no
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
# queue-limit=1500
#################################
# receiver-threads Default number of receiver threads to start
#
# receiver-threads=1
#################################
# retrieval-threads Number of AXFR-retrieval threads for slave operation
#
# retrieval-threads=2
#################################
# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
#
# reuseport=no
#################################
# security-poll-suffix Domain name from which to query security update notifications
#
# security-poll-suffix=secpoll.powerdns.com.
#################################
# send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority
#
# send-root-referral=no
#################################
# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
#
# server-id=
#################################
# setgid If set, change group id to this gid for more security
#
setgid=pdns
#################################
# setuid If set, change user id to this uid for more security
#
setuid=pdns
#################################
# signing-threads Default number of signer threads to start
#
# signing-threads=3
#################################
# slave Act as a slave
#
# slave=no
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
# slave-cycle-interval=60
#################################
# slave-renotify If we should send out notifications for slaved updates
#
# slave-renotify=no
#################################
# soa-expire-default Default SOA expire
#
# soa-expire-default=604800
#################################
# soa-minimum-ttl Default SOA minimum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-refresh-default Default SOA refresh
#
# soa-refresh-default=10800
#################################
# soa-retry-default Default SOA retry
#
# soa-retry-default=3600
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
#################################
# tcp-control-port If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-port=53000
#################################
# tcp-control-range If set, remote control of PowerDNS is possible over these networks only
#
# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
#################################
# tcp-control-secret If set, PowerDNS can be controlled over TCP after passing this secret
#
# tcp-control-secret=
#################################
# traceback-handler Enable the traceback handler (Linux only)
#
# traceback-handler=yes
#################################
# trusted-notification-proxy IP address of incoming notification proxy
#
# trusted-notification-proxy=
#################################
# udp-truncation-threshold Maximum UDP response size before we truncate
#
# udp-truncation-threshold=1680
#################################
# version-string PowerDNS version in packets - full, anonymous, powerdns or custom
#
version-string=powerdns
#################################
# webserver Start a webserver for monitoring
#
# webserver=no
#################################
# webserver-address IP Address of webserver to listen on
#
# webserver-address=127.0.0.1
#################################
# webserver-allow-from Webserver access is only allowed from these subnets
#
# webserver-allow-from=0.0.0.0/0,::/0
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
# webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
# webserver-print-arguments=no
# include froxlor-bind-specific config
include-dir=/etc/powerdns/froxlor/
]]>
named.conf
# How often to check for zone changes. See 'Operation' section.
bind-check-interval=180
# Uncomment to enable Huffman compression on zone data.
# Currently saves around 20% of memory actually used, but slows down operation.
# bind-enable-huffman
]]>
{{settings.system.vmail_gid}}
{{settings.system.vmail_uid}}
password =
dbname =
hosts =
query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND v.email = '%s' AND trim(v.destination) <> ''
]]>
password =
dbname =
hosts =
query = SELECT domain FROM panel_domains WHERE domain = '%s' AND isemaildomain = '1' AND deactivated = 0
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT CONCAT(homedir,maildir) FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
hosts =
query = SELECT GROUP_CONCAT(DISTINCT mu.username SEPARATOR ' ') AS sasl_users FROM mail_users mu WHERE mu.username = '%s' OR mu.email IN ((SELECT mail_virtual.email_full FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_virtual.destination FROM mail_virtual WHERE mail_virtual.email = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = '%s') UNION (SELECT mail_sender_aliases.email FROM mail_sender_aliases WHERE mail_sender_aliases.allowed_sender = CONCAT('@', SUBSTRING_INDEX('%s','@',-1))));
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT uid FROM mail_users WHERE email = '%s'
]]>
password =
dbname =
expansion_limit = 1
hosts =
query = SELECT gid FROM mail_users WHERE email = '%s'
]]>
]]>
//service[@type='smtp']/general/commands[@index=1]
//service[@type='smtp']/general/installs[@index=1]
//service[@type='smtp']/general/commands[@index=2]
myhostname = $mydomain
inet_interfaces = all
# See http://www.postfix.org/COMPATIBILITY_README.html
compatibility_level = 3.9
# Which domain that locally-originated mail appears to come from.
# Debian policy suggests to read this value from /etc/mailname.
#XX needs a review in postinst&config
#myorigin = /etc/mailname
#myorigin = $mydomain
myorigin = $myhostname
# Text that follows the 220 code in the SMTP server's greeting banner.
# You MUST specify $myhostname at the start due to an RFC requirement.
smtpd_banner = $myhostname ESMTP $mail_name (Debian)
# IP protocols to use: ipv4, ipv6, or all
# (set this explicitly so `post-install upgrade-configuration' won't complain)
inet_protocols = all
# List of "trusted" SMTP clients (maptype:mapname allowed) that have more
# privileges than "strangers". If mynetworks is not specified (the default),
# mynetworks_style is used to compute its value.
#mynetworks_style = class
#mynetworks_style = subnet
mynetworks_style = host
#
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
# List of domains (maptype:mapname allowed) that this machine considers
# itself the final destination for.
mydestination = $myhostname, localhost.$mydomain, localhost
# Optional external command to use instead of mailbox delivery. If set,
# you must set up an alias to forward root mail to a real user.
#mailbox_command = /usr/bin/procmail
#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
mailbox_command = /usr/lib/dovecot/deliver
# List of alias maps to use to lookup local addresses.
# Per Debian Policy it should be /etc/aliases.
alias_maps = hash:/etc/aliases
# List of alias maps to make indexes on, when running newaliases.
alias_database = hash:/etc/aliases
# Notify (or not) local biff service when new mail arrives.
# Rarely used these days.
biff = no
# Separator between user name and address extension (user+foo@domain)
#recipient_delimiter = +
recipient_delimiter = +
# A host to send "other" mail to
#relayhost = $mydomain
#relayhost = [gateway.example.com]
#relayhost = [ip.add.re.ss]:port
#relayhost = uucphost
relayhost =
# Where to look for Cyrus SASL configuration files. Upstream default is unset
# (use compiled-in SASL library default), Debian Policy says it should be
# /etc/postfix/sasl.
cyrus_sasl_config_path = /etc/postfix/sasl
# SMTP Client TLS session cache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
append_dot_mydomain = no
biff = no
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
reject_unknown_helo_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client_hostname
# Maximum size of Message in bytes (50MB)
message_size_limit = 52428800
## SASL Auth Settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport
smtpd_sasl_type = dovecot
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_path = private/auth
# Virtual delivery settings
virtual_mailbox_base = /
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:
virtual_gid_maps = static:
# Local delivery settings
local_transport = local
# Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
###
## TLS for outgoing mails from the server to another server
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
## TLS for incoming connections (clients or other mail servers)
smtpd_tls_security_level = may
smtpd_tls_cert_file =
smtpd_tls_key_file =
#smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
]]>
//service[@type='smtp']/general/files[@index=0]//service[@type='smtp']/general/commands[@index=3]
{
user =
password =
dbname =
}
passdb sql {
query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, "maildir" as userdb_mail_driver, CONCAT(homedir, maildir) AS userdb_mail_path, CONCAT(quota, 'M') as userdb_quota_storage_size FROM mail_users WHERE (username = '%{user}' OR email = '%{user}') AND ((imap = 1 AND '%{protocol | lower}' = 'imap') OR (pop3 = 1 AND '%{protocol | lower}' = 'pop3') OR ((postfix = 'Y' AND '%{protocol | lower}' = 'smtp') OR (postfix = 'Y' AND '%{protocol | lower}' = 'sieve')))
}
userdb sql {
query = SELECT CONCAT(homedir, maildir) AS home, "maildir" as mail_driver, CONCAT(homedir, maildir) AS mail_path, uid, gid, CONCAT(quota, 'M') as quota_storage_size FROM mail_users WHERE (username = '%{user}' OR email = '%{user}')
}
namespace inbox {
inbox = yes
}
mail_privileged_group = mail
mail_inbox_path = ~/
service auth {
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Exim4 smtp-auth
unix_listener auth-client {
mode = 0660
user = mail
#group = Debian-exim
}
}
service stats {
unix_listener stats-reader {
group = vmail
mode = 0666
}
unix_listener stats-writer {
group = vmail
mode = 0666
}
}
ssl = yes
ssl_server_cert_file =
ssl_server_key_file =
ssl_server_dh_file = /usr/share/dovecot/dh.pem
postmaster_address = postmaster@
protocol imap {
mail_plugins {
imap_quota = yes
}
}
pop3_logout_format = "in=%{input} out=%{output} top=%{top_count}/%{top_bytes}, retr=%{retr_count}/%{retr_bytes}, del=%{deleted_count}/%{deleted_bytes}, size=%{message_bytes}"
protocol lda {
mail_plugins {
sieve = yes
}
}
sieve_script personal {
driver = file
path = ~/sieve
active_path = ~/.dovecot.sieve
}
mail_plugins {
quota = yes
}
]]>
//service[@type='mail']/general/installs[@index=1]
//service[@type='mail']/general/files[@index=1]
//service[@type='mail']/general/commands[@index=1]
//service[@type='antispam']/general/installs[@index=1]
//service[@type='antispam']/general/commands[@index=1]
//service[@type='antispam']/general/files[@index=1]
//service[@type='antispam']/general/commands[@index=2]
"
[ -f /etc/ssl/certs/proftpd_ec.crt ] || openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp521r1) -keyout /etc/ssl/private/proftpd_ec.key -out /etc/ssl/certs/proftpd_ec.crt -days 3650 -subj "/C=US/ST=Some-State/O=Internet Widgits Pty Ltd/CN="
chmod 0600 /etc/ssl/private/proftpd.key /etc/ssl/private/proftpd_ec.key
]]>
IdentLookups off
ServerName " FTP Server"
# Set to inetd only if you would run proftpd by inetd/xinetd/socket.
# Read README.Debian for more information on proper configuration.
ServerType standalone
DeferWelcome off
# Disable MultilineRFC2228 per https://github.com/proftpd/proftpd/issues/1085
# MultilineRFC2228on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
# DynMasqRefresh 28800
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or ), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
QuotaEngine on
Ratios off
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
#
# This is used for SFTP connections
#
#Include /etc/proftpd/sftp.conf
#
# This is used for other add-on modules
#
#Include /etc/proftpd/dnsbl.conf
#Include /etc/proftpd/geoip.conf
#Include /etc/proftpd/snmp.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
# Include other custom configuration files
# !! Please note, that this statement will read /all/ file from this subdir,
# i.e. backup files created by your editor, too !!!
# Eventually create file patterns like this: /etc/proftpd/conf.d/*.conf
#
Include /etc/proftpd/conf.d/
]]>
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
SQLBackend mysql
#
SQLEngine on
#
# Use both an encrypted or plaintext password
SQLAuthTypes Crypt OpenSSL
# Do user and (fast) group lookups
SQLAuthenticate users groups groupsetfast
#
# Connection
SQLConnectInfo @
#
# Describes both users/groups tables
#
SQLUserInfo ftp_users username password uid gid homedir shell
SQLGroupInfo ftp_groups groupname gid members
#
SQLUserWhereClause "login_enabled = 'y'"
SQLLog PASS login
SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users
SQLLog RETR download
SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users
SQLLog STOR upload
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
QuotaEngine on
QuotaShowQuotas on
QuotaDisplayUnits Mb
QuotaLock /var/lock/ftpd.quotatab.lock
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
]]>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSECCertificateFile /etc/ssl/certs/proftpd_ec.crt
TLSECCertificateKeyFile /etc/ssl/private/proftpd_ec.key
# TLSCACertificateFile
TLSOptions NoSessionReuseRequired
TLSVerifyClient off
# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotiations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
#
#TLSRenegotiate required off
]]>
From 127.0.0.1
MaxLoginAttempts 3
BanEngine off
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root
BanEngine off
DelayEngine off
]]>
*.log {
missingok
daily
rotate 7
compress
delaycompress
notifempty
create
sharedscripts
postrotate
> /dev/null 2>&1 || true
endscript
}
]]>
{{settings.system.mod_fcgid_ownvhost}}
{{settings.system.webserver}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.phpfpm.vhost_httpuser}}
{{settings.system.webserver}}
{{settings.phpfpm.enabled_ownvhost}}
{{settings.system.webserver}}
bin/froxlor-cli /usr/local/bin/froxlor-cli]]>bin/froxlor-cli froxlor:cron --run-task 99]]>
================================================
FILE: lib/formfields/admin/admin/formfield.admin_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Language;
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'admin_add' => [
'title' => lng('admin.admin_add'),
'image' => 'fa-solid fa-user-plus',
'self_overview' => ['section' => 'admins', 'page' => 'admins'],
'sections' => [
'section_a' => [
'title' => lng('admin.accountdata'),
'fields' => [
'new_loginname' => [
'label' => lng('login.username'),
'type' => 'text',
'mandatory' => true
],
'admin_password' => [
'label' => lng('login.password'),
'type' => 'password',
'mandatory' => true,
'autocomplete' => 'new-password',
'next_to' => [
'admin_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'def_language' => [
'label' => lng('login.language'),
'type' => 'select',
'select_var' => Language::getLanguages(),
'selected' => $userinfo['language']
],
'gui_access' => [
'label' => lng('usersettings.gui_access.title'),
'desc' => lng('usersettings.gui_access.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => 1,
],
'api_allowed' => [
'label' => lng('usersettings.api_allowed.title'),
'desc' => lng('usersettings.api_allowed.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => Settings::Get('api.enabled') == '1',
'visible' => Settings::Get('api.enabled') == '1'
],
]
],
'section_b' => [
'title' => lng('admin.contactdata'),
'fields' => [
'name' => [
'label' => lng('customer.name'),
'type' => 'text',
'mandatory' => true
],
'email' => [
'label' => lng('customer.email'),
'type' => 'text',
'mandatory' => true
],
'custom_notes' => [
'label' => lng('usersettings.custom_notes.title'),
'desc' => lng('usersettings.custom_notes.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'custom_notes_show' => [
'label' => lng('usersettings.custom_notes.show'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
],
'section_c' => [
'title' => lng('admin.servicedata'),
'fields' => [
'ipaddress' => [
'label' => lng('serversettings.ipaddress.title'),
'type' => 'select',
'select_var' => $ipaddress
],
'change_serversettings' => [
'label' => lng('admin.change_serversettings'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'customers' => [
'label' => lng('admin.customers'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'customers_see_all' => [
'label' => lng('admin.customers_see_all'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'domains' => [
'label' => lng('admin.domains'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'caneditphpsettings' => [
'label' => lng('admin.caneditphpsettings'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'diskspace' => [
'label' => lng('customer.diskspace') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 6,
'mandatory' => true
],
'traffic' => [
'label' => lng('customer.traffic') . ' (' . lng('customer.gib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 4,
'mandatory' => true
],
'subdomains' => [
'label' => lng('customer.subdomains'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'emails' => [
'label' => lng('customer.emails'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'email_accounts' => [
'label' => lng('customer.accounts'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'email_forwarders' => [
'label' => lng('customer.forwarders'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'email_quota' => [
'label' => lng('customer.email_quota') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'visible' => Settings::Get('system.mail_quota_enabled') == '1',
'mandatory' => true
],
'ftps' => [
'label' => lng('customer.ftps'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9
],
'mysqls' => [
'label' => lng('customer.mysqls'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/admin/formfield.admin_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Language;
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'admin_edit' => [
'title' => lng('admin.admin_edit'),
'image' => 'fa-solid fa-user-pen',
'self_overview' => ['section' => 'admins', 'page' => 'admins'],
'sections' => [
'section_a' => [
'title' => lng('admin.accountdata'),
'fields' => [
'loginname' => [
'label' => lng('login.username'),
'type' => 'label',
'value' => $result['loginname']
],
'deactivated' => [
'label' => lng('admin.deactivated_user'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['deactivated'],
'visible' => $result['adminid'] != $userinfo['userid']
],
'admin_password' => [
'label' => lng('login.password') . ' (' . lng('panel.emptyfornochanges') . ')',
'type' => 'password',
'autocomplete' => 'new-password',
'visible' => $result['adminid'] != $userinfo['userid'],
'next_to' => [
'admin_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == '' && !($result['adminid'] == $userinfo['userid'])),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'def_language' => [
'label' => lng('login.language'),
'type' => 'select',
'select_var' => Language::getLanguages(),
'selected' => $result['def_language'],
'visible' => $result['adminid'] != $userinfo['userid']
],
'gui_access' => [
'label' => lng('usersettings.gui_access.title'),
'desc' => lng('usersettings.gui_access.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['gui_access'],
'visible' => $result['adminid'] != $userinfo['userid']
],
'api_allowed' => [
'label' => lng('usersettings.api_allowed.title'),
'desc' => lng('usersettings.api_allowed.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['api_allowed'],
'visible' => Settings::Get('api.enabled') == '1'
],
]
],
'section_b' => [
'title' => lng('admin.contactdata'),
'fields' => [
'name' => [
'label' => lng('customer.name'),
'type' => 'text',
'mandatory' => true,
'value' => $result['name']
],
'email' => [
'label' => lng('customer.email'),
'type' => 'text',
'mandatory' => true,
'value' => $result['email']
],
'custom_notes' => [
'label' => lng('usersettings.custom_notes.title'),
'desc' => lng('usersettings.custom_notes.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['custom_notes']
],
'custom_notes_show' => [
'label' => lng('usersettings.custom_notes.show'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['custom_notes_show']
]
]
],
'section_c' => [
'title' => lng('admin.servicedata'),
'visible' => $result['adminid'] != $userinfo['userid'],
'fields' => [
'ipaddress' => [
'label' => lng('serversettings.ipaddress.title'),
'type' => 'select',
'select_var' => $ipaddress,
'selected' => $result['ip']
],
'change_serversettings' => [
'label' => lng('admin.change_serversettings'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['change_serversettings']
],
'customers' => [
'label' => lng('admin.customers'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['customers']) ? '0' : $result['customers'],
'maxlength' => 9,
'mandatory' => true
],
'customers_see_all' => [
'label' => lng('admin.customers_see_all'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['customers_see_all']
],
'domains' => [
'label' => lng('admin.domains'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['domains']) ? '0' : $result['domains'],
'maxlength' => 9,
'mandatory' => true
],
'caneditphpsettings' => [
'label' => lng('admin.caneditphpsettings'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['caneditphpsettings']
],
'diskspace' => [
'label' => lng('customer.diskspace') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['diskspace']) ? '0' : $result['diskspace'],
'maxlength' => 6,
'mandatory' => true
],
'traffic' => [
'label' => lng('customer.traffic') . ' (' . lng('customer.gib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['traffic']) ? '0' : $result['traffic'],
'maxlength' => 4,
'mandatory' => true
],
'subdomains' => [
'label' => lng('customer.subdomains'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['subdomains']) ? '0' : $result['subdomains'],
'maxlength' => 9,
'mandatory' => true
],
'emails' => [
'label' => lng('customer.emails'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['emails']) ? '0' : $result['emails'],
'maxlength' => 9,
'mandatory' => true
],
'email_accounts' => [
'label' => lng('customer.accounts'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['email_accounts']) ? '0' : $result['email_accounts'],
'maxlength' => 9,
'mandatory' => true
],
'email_forwarders' => [
'label' => lng('customer.forwarders'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['email_forwarders']) ? '0' : $result['email_forwarders'],
'maxlength' => 9,
'mandatory' => true
],
'email_quota' => [
'label' => lng('customer.email_quota') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['email_quota']) ? '0' : $result['email_quota'],
'maxlength' => 9,
'visible' => Settings::Get('system.mail_quota_enabled') == '1',
'mandatory' => true
],
'ftps' => [
'label' => lng('customer.ftps'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['ftps']) ? '0' : $result['ftps'],
'maxlength' => 9
],
'mysqls' => [
'label' => lng('customer.mysqls'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['mysqls']) ? '0' : $result['mysqls'],
'maxlength' => 9,
'mandatory' => true
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/admin/index.html
================================================
================================================
FILE: lib/formfields/admin/cronjobs/formfield.cronjobs_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'cronjobs_edit' => [
'title' => lng('admin.cronjob_edit'),
'image' => 'fa-solid fa-clock-rotate-left',
'self_overview' => ['section' => 'cronjobs', 'page' => 'overview'],
'sections' => [
'section_a' => [
'title' => lng('cronjob.cronjobsettings'),
'fields' => [
'cronfile' => [
'label' => 'Cronjob',
'type' => (substr($result['module'], 0, strpos($result['module'], '/')) != 'froxlor' ? 'text' : 'label'),
'value' => $result['cronfile']
],
'isactive' => [
'label' => lng('admin.activated'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['isactive']
],
'interval_value' => [
'label' => lng('cronjob.cronjobintervalv'),
'type' => 'text',
'value' => explode(' ', $result['interval'] ?? "5 MINUTE")[0] ?? ""
],
'interval_interval' => [
'label' => lng('cronjob.cronjobinterval'),
'type' => 'select',
'select_var' => [
'MINUTE' => lng('cronmgmt.minutes'),
'HOUR' => lng('cronmgmt.hours'),
'DAY' => lng('cronmgmt.days'),
'WEEK' => lng('cronmgmt.weeks'),
'MONTH' => lng('cronmgmt.months')
],
'selected' => explode(' ', $result['interval'] ?? "5 MINUTE")[1] ?? null
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/cronjobs/index.html
================================================
================================================
FILE: lib/formfields/admin/customer/formfield.customer_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Language;
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'customer_add' => [
'title' => lng('admin.customer_add'),
'image' => 'fa-solid fa-user-plus',
'self_overview' => ['section' => 'customers', 'page' => 'customers'],
'id' => 'customer_add',
'sections' => [
'section_a' => [
'title' => lng('admin.accountdata'),
'fields' => [
'new_loginname' => [
'label' => lng('login.username'),
'type' => 'text',
'placeholder' => lng('admin.username_default_msg')
],
'createstdsubdomain' => [
'label' => lng('admin.stdsubdomain_add') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => Settings::Get('system.createstdsubdom_default')
],
'store_defaultindex' => [
'label' => lng('admin.store_defaultindex') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'new_customer_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'placeholder' => lng('admin.password_default_msg'),
'next_to' => [
'new_customer_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'sendpassword' => [
'label' => lng('admin.sendpassword'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'def_language' => [
'label' => lng('login.language'),
'type' => 'select',
'select_var' => Language::getLanguages(),
'selected' => Settings::Get('panel.standardlanguage')
],
'gui_access' => [
'label' => lng('usersettings.gui_access.title'),
'desc' => lng('usersettings.gui_access.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => 1
],
'api_allowed' => [
'label' => lng('usersettings.api_allowed.title'),
'desc' => lng('usersettings.api_allowed.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => Settings::Get('api.enabled') == '1' && Settings::Get('api.customer_default'),
'visible' => Settings::Get('api.enabled') == '1'
],
'shell_allowed' => [
'label' => lng('usersettings.shell_allowed.title'),
'desc' => lng('usersettings.shell_allowed.description'),
'type' => 'checkbox',
'value' => '1',
'visible' => Settings::Get('system.allow_customer_shell') == '1',
],
]
],
'section_b' => [
'title' => lng('admin.contactdata'),
'fields' => [
'gender' => [
'label' => lng('gender.title'),
'type' => 'select',
'select_var' => [
0 => lng('gender.undef'),
1 => lng('gender.male'),
2 => lng('gender.female')
]
],
'firstname' => [
'label' => lng('customer.firstname'),
'desc' => lng('customer.nameorcompany_desc'),
'type' => 'text',
'mandatory' => true
],
'name' => [
'label' => lng('customer.lastname'),
'desc' => lng('customer.nameorcompany_desc'),
'type' => 'text',
'mandatory' => true
],
'company' => [
'label' => lng('customer.company'),
'desc' => lng('customer.nameorcompany_desc'),
'type' => 'text',
'mandatory' => true
],
'street' => [
'label' => lng('customer.street'),
'type' => 'text'
],
'zipcode' => [
'label' => lng('customer.zipcode') . ' / ' . lng('customer.city'),
'type' => 'text',
'next_to' => [
'city' => [
'next_to_prefix' => ' / ',
'type' => 'text'
]
]
],
'phone' => [
'label' => lng('customer.phone'),
'type' => 'text'
],
'fax' => [
'label' => lng('customer.fax'),
'type' => 'text'
],
'email' => [
'label' => lng('customer.email'),
'type' => 'text',
'mandatory' => true
],
'customernumber' => [
'label' => lng('customer.customernumber'),
'type' => 'text'
],
'custom_notes' => [
'label' => lng('usersettings.custom_notes.title'),
'desc' => lng('usersettings.custom_notes.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'custom_notes_show' => [
'label' => lng('usersettings.custom_notes.show'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
],
'section_cpre' => [
'visible' => !empty($hosting_plans),
'title' => lng('admin.plans.use_plan'),
'fields' => [
'use_plan' => [
'label' => lng('admin.plans.use_plan'),
'type' => 'select',
'select_var' => $hosting_plans
]
]
],
'section_c' => [
'title' => lng('admin.servicedata'),
'fields' => [
'diskspace' => [
'label' => lng('customer.diskspace') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 16,
'mandatory' => true
],
'traffic' => [
'label' => lng('customer.traffic') . ' (' . lng('customer.gib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 14,
'mandatory' => true
],
'subdomains' => [
'label' => lng('customer.subdomains'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'emails' => [
'label' => lng('customer.emails'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'email_accounts' => [
'label' => lng('customer.accounts'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'email_forwarders' => [
'label' => lng('customer.forwarders'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'email_quota' => [
'label' => lng('customer.email_quota') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'visible' => Settings::Get('system.mail_quota_enabled') == '1',
'mandatory' => true
],
'email_imap' => [
'label' => lng('customer.email_imap'),
'type' => 'checkbox',
'value' => '1',
'checked' => true,
'mandatory' => true
],
'email_pop3' => [
'label' => lng('customer.email_pop3'),
'type' => 'checkbox',
'value' => '1',
'checked' => true,
'mandatory' => true
],
'ftps' => [
'label' => lng('customer.ftps'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9
],
'mysqls' => [
'label' => lng('customer.mysqls'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => 0,
'maxlength' => 9,
'mandatory' => true
],
'allowed_mysqlserver' => [
'visible' => count($mysql_servers) > 1,
'label' => lng('customer.mysqlserver'),
'type' => 'checkbox',
'values' => $mysql_servers,
'value' => [0],
'is_array' => 1
],
'phpenabled' => [
'label' => lng('admin.phpenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'allowed_phpconfigs' => [
'visible' => (((int)Settings::Get('system.mod_fcgid') == 1 || (int)Settings::Get('phpfpm.enabled') == 1)),
'label' => lng('admin.phpsettings.title'),
'type' => 'checkbox',
'values' => $phpconfigs,
'value' => ((int)Settings::Get('system.mod_fcgid') == 1 ?
[Settings::Get('system.mod_fcgid_defaultini')]
: ((int)Settings::Get('phpfpm.enabled') == 1 ?
[Settings::Get('phpfpm.defaultini')]
: null)),
'is_array' => 1
],
'perlenabled' => [
'label' => lng('admin.perlenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'dnsenabled' => [
'label' => lng('admin.dnsenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => Settings::Get('system.dnsenabled') == '1',
'visible' => Settings::Get('system.dnsenabled') == '1'
],
'logviewenabled' => [
'label' => lng('admin.logviewenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
]
]
]
]
];
================================================
FILE: lib/formfields/admin/customer/formfield.customer_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Language;
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'customer_edit' => [
'title' => lng('admin.customer_edit'),
'image' => 'fa-solid fa-user-pen',
'self_overview' => ['section' => 'customers', 'page' => 'customers'],
'id' => 'customer_edit',
'sections' => [
'section_a' => [
'title' => lng('admin.accountdata'),
'fields' => [
'loginname' => [
'label' => lng('login.username'),
'type' => 'label',
'value' => $result['loginname']
],
'documentroot' => [
'label' => lng('customer.documentroot'),
'type' => 'label',
'value' => $result['documentroot']
],
'createstdsubdomain' => [
'label' => lng('admin.stdsubdomain_add') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => (bool)$result['standardsubdomain']
],
'deactivated' => [
'label' => lng('admin.deactivated_user'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['deactivated']
],
'new_customer_password' => [
'label' => lng('login.password') . ' (' . lng('panel.emptyfornochanges') . ')',
'type' => 'password',
'autocomplete' => 'new-password',
'next_to' => [
'new_customer_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'def_language' => [
'label' => lng('login.language'),
'type' => 'select',
'select_var' => Language::getLanguages(),
'selected' => $result['def_language']
],
'gui_access' => [
'label' => lng('usersettings.gui_access.title'),
'desc' => lng('usersettings.gui_access.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['gui_access'],
],
'api_allowed' => [
'label' => lng('usersettings.api_allowed.title'),
'desc' => lng('usersettings.api_allowed.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['api_allowed'],
'visible' => Settings::Get('api.enabled') == '1'
],
'shell_allowed' => [
'label' => lng('usersettings.shell_allowed.title'),
'desc' => lng('usersettings.shell_allowed.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['shell_allowed'],
'visible' => Settings::Get('system.allow_customer_shell') == '1',
],
]
],
'section_b' => [
'title' => lng('admin.contactdata'),
'fields' => [
'gender' => [
'label' => lng('gender.title'),
'type' => 'select',
'select_var' => [
0 => lng('gender.undef'),
1 => lng('gender.male'),
2 => lng('gender.female')
],
'selected' => $result['gender']
],
'firstname' => [
'label' => lng('customer.firstname'),
'desc' => lng('customer.nameorcompany_desc'),
'type' => 'text',
'mandatory' => true,
'value' => $result['firstname']
],
'name' => [
'label' => lng('customer.lastname'),
'desc' => lng('customer.nameorcompany_desc'),
'type' => 'text',
'mandatory' => true,
'value' => $result['name']
],
'company' => [
'label' => lng('customer.company'),
'desc' => lng('customer.nameorcompany_desc'),
'type' => 'text',
'mandatory' => true,
'value' => $result['company']
],
'street' => [
'label' => lng('customer.street'),
'type' => 'text',
'value' => $result['street']
],
'zipcode' => [
'label' => lng('customer.zipcode') . ' / ' . lng('customer.city'),
'type' => 'text',
'value' => $result['zipcode'],
'next_to' => [
'city' => [
'next_to_prefix' => ' / ',
'type' => 'text',
'value' => $result['city']
]
]
],
'phone' => [
'label' => lng('customer.phone'),
'type' => 'text',
'value' => $result['phone']
],
'fax' => [
'label' => lng('customer.fax'),
'type' => 'text',
'value' => $result['fax']
],
'email' => [
'label' => lng('customer.email'),
'type' => 'text',
'mandatory' => true,
'value' => $result['email']
],
'customernumber' => [
'label' => lng('customer.customernumber'),
'type' => 'text',
'value' => $result['customernumber']
],
'custom_notes' => [
'style' => 'align-top',
'label' => lng('usersettings.custom_notes.title'),
'desc' => lng('usersettings.custom_notes.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['custom_notes']
],
'custom_notes_show' => [
'label' => lng('usersettings.custom_notes.show'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['custom_notes_show']
]
]
],
'section_cpre' => [
'visible' => !empty($hosting_plans),
'title' => lng('admin.plans.use_plan'),
'fields' => [
'use_plan' => [
'label' => lng('admin.plans.use_plan'),
'type' => 'select',
'select_var' => $hosting_plans
]
]
],
'section_c' => [
'title' => lng('admin.servicedata'),
'fields' => [
'diskspace' => [
'label' => lng('customer.diskspace') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['diskspace']) ? '0' : $result['diskspace'],
'maxlength' => 16,
'mandatory' => true
],
'traffic' => [
'label' => lng('customer.traffic') . ' (' . lng('customer.gib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['traffic']) ? '0' : $result['traffic'],
'maxlength' => 14,
'mandatory' => true
],
'subdomains' => [
'label' => lng('customer.subdomains'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['subdomains']) ? '0' : $result['subdomains'],
'maxlength' => 9,
'mandatory' => true
],
'emails' => [
'label' => lng('customer.emails'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['emails']) ? '0' : $result['emails'],
'maxlength' => 9,
'mandatory' => true
],
'email_accounts' => [
'label' => lng('customer.accounts'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['email_accounts']) ? '0' : $result['email_accounts'],
'maxlength' => 9,
'mandatory' => true
],
'email_forwarders' => [
'label' => lng('customer.forwarders'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['email_forwarders']) ? '0' : $result['email_forwarders'],
'maxlength' => 9,
'mandatory' => true
],
'email_quota' => [
'label' => lng('customer.email_quota') . ' (' . lng('customer.mib') . ')',
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['email_quota']) ? '0' : $result['email_quota'],
'maxlength' => 9,
'visible' => Settings::Get('system.mail_quota_enabled') == '1',
'mandatory' => true
],
'email_imap' => [
'label' => lng('customer.email_imap'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['imap'],
'mandatory' => true
],
'email_pop3' => [
'label' => lng('customer.email_pop3'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['pop3'],
'mandatory' => true
],
'ftps' => [
'label' => lng('customer.ftps'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['ftps']) ? '0' : $result['ftps'],
'maxlength' => 9,
'mandatory' => true
],
'mysqls' => [
'label' => lng('customer.mysqls'),
'desc' => lng('panel.use_checkbox_for_unlimited'),
'type' => 'textul',
'value' => empty($result['mysqls']) ? '0' : $result['mysqls'],
'maxlength' => 9,
'mandatory' => true
],
'allowed_mysqlserver' => [
'visible' => count($mysql_servers) > 1,
'label' => lng('customer.mysqlserver'),
'type' => 'checkbox',
'values' => $mysql_servers,
'value' => isset($result['allowed_mysqlserver']) && !empty($result['allowed_mysqlserver']) ? json_decode($result['allowed_mysqlserver'], JSON_OBJECT_AS_ARRAY) : [],
'is_array' => 1
],
'phpenabled' => [
'label' => lng('admin.phpenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => $result['phpenabled']
],
'allowed_phpconfigs' => [
'visible' => (((int)Settings::Get('system.mod_fcgid') == 1 || (int)Settings::Get('phpfpm.enabled') == 1)),
'label' => lng('admin.phpsettings.title'),
'type' => 'checkbox',
'values' => $phpconfigs,
'value' => isset($result['allowed_phpconfigs']) && !empty($result['allowed_phpconfigs']) ? json_decode($result['allowed_phpconfigs'], JSON_OBJECT_AS_ARRAY) : [],
'is_array' => 1
],
'perlenabled' => [
'label' => lng('admin.perlenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => $result['perlenabled']
],
'dnsenabled' => [
'label' => lng('admin.dnsenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => $result['dnsenabled'],
'visible' => Settings::Get('system.dnsenabled') == '1'
],
'logviewenabled' => [
'label' => lng('admin.logviewenabled') . '?',
'type' => 'checkbox',
'value' => '1',
'checked' => $result['logviewenabled']
],
]
],
'section_d' => [
'title' => lng('admin.movetoadmin'),
'visible' => count($admin_select) > 0,
'fields' => [
'move_to_admin' => [
'label' => lng('admin.movecustomertoadmin'),
'type' => 'select',
'select_var' => $admin_select
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/customer/index.html
================================================
================================================
FILE: lib/formfields/admin/domains/formfield.domains_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'domain_add' => [
'title' => lng('admin.domain_add'),
'image' => 'fa-solid fa-globe',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'id' => 'domain_add',
'sections' => [
'section_a' => [
'title' => lng('domains.domainsettings'),
'fields' => [
'domain' => [
'label' => 'Domain',
'type' => 'text',
'mandatory' => true
],
'customerid' => [
'label' => lng('admin.customer'),
'type' => 'select',
'select_var' => $customers,
'mandatory' => true
],
'adminid' => [
'visible' => $userinfo['customers_see_all'] == '1',
'label' => lng('admin.admin'),
'type' => 'select',
'select_var' => $admins,
'selected' => $userinfo['adminid'],
'mandatory' => true
],
'alias' => [
'label' => lng('domains.aliasdomain'),
'type' => 'select',
'select_var' => $domains
],
'caneditdomain' => [
'label' => lng('admin.domain_editable.title'),
'desc' => lng('admin.domain_editable.desc'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'add_date' => [
'label' => lng('domains.add_date'),
'desc' => lng('panel.dateformat'),
'type' => 'date',
'readonly' => true,
'value' => date('Y-m-d')
],
'registration_date' => [
'label' => lng('domains.registration_date'),
'desc' => lng('panel.dateformat'),
'type' => 'date',
'size' => 10
],
'termination_date' => [
'label' => lng('domains.termination_date'),
'desc' => lng('panel.dateformat'),
'type' => 'date',
'size' => 10
]
]
],
'section_e' => [
'title' => lng('admin.mailserversettings'),
'fields' => [
'isemaildomain' => [
'label' => lng('admin.emaildomain'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'email_only' => [
'label' => lng('admin.email_only'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'subcanemaildomain' => [
'label' => lng('admin.subdomainforemail'),
'type' => 'select',
'select_var' => $subcanemaildomain,
'selected' => 0
],
'dkim' => [
'visible' => Settings::Get('antispam.activated') == '1',
'label' => 'DomainKeys',
'type' => 'checkbox',
'value' => '1',
'checked' => true
]
]
],
'section_b' => [
'title' => lng('admin.webserversettings'),
'fields' => [
'documentroot' => [
'label' => 'DocumentRoot',
'desc' => lng('panel.emptyfordefault'),
'type' => 'text'
],
'ipandport' => [
'label' => lng('domains.ipandport_multi.title'),
'desc' => lng('domains.ipandport_multi.description'),
'type' => 'checkbox',
'values' => $ipsandports,
'value' => explode(',', Settings::Get('system.defaultip')),
'is_array' => 1,
'mandatory' => true
],
'selectserveralias' => [
'label' => lng('admin.selectserveralias'),
'desc' => lng('admin.selectserveralias_desc'),
'type' => 'select',
'select_var' => $serveraliasoptions,
'selected' => Settings::Get('system.domaindefaultalias')
],
'specialsettings' => [
'visible' => $userinfo['change_serversettings'] == '1',
'label' => lng('admin.ownvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'notryfiles' => [
'visible' => (Settings::Get('system.webserver') == 'nginx' && $userinfo['change_serversettings'] == '1'),
'label' => lng('admin.notryfiles.title'),
'desc' => lng('admin.notryfiles.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'writeaccesslog' => [
'label' => lng('admin.writeaccesslog.title'),
'desc' => lng('admin.writeaccesslog.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'writeerrorlog' => [
'label' => lng('admin.writeerrorlog.title'),
'desc' => lng('admin.writeerrorlog.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'speciallogfile' => [
'label' => lng('admin.speciallogfile.title'),
'desc' => lng('admin.speciallogfile.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
]
],
'section_bssl' => [
'title' => lng('admin.webserversettings_ssl'),
'visible' => Settings::Get('system.use_ssl') == '1',
'fields' => [
'sslenabled' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_sslenabled'),
'type' => 'checkbox',
'value' => '1',
'checked' => !empty(Settings::Get('system.defaultsslip'))
],
'no_ssl_available_info' => [
'visible' => empty($ssl_ipsandports),
'label' => 'SSL',
'type' => 'label',
'value' => lng('panel.nosslipsavailable')
],
'ssl_ipandport' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('domains.ipandport_ssl_multi.title'),
'desc' => lng('domains.ipandport_multi.description'),
'type' => 'checkbox',
'values' => $ssl_ipsandports,
'value' => explode(',', Settings::Get('system.defaultsslip')),
'is_array' => 1
],
'ssl_redirect' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('domains.ssl_redirect.title'),
'desc' => lng('domains.ssl_redirect.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'letsencrypt' => [
'visible' => (Settings::Get('system.leenabled') == '1' && !empty($ssl_ipsandports)),
'label' => lng('admin.letsencrypt.title'),
'desc' => lng('admin.letsencrypt.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'http2' => [
'visible' => !empty($ssl_ipsandports) && Settings::Get('system.http2_support') == '1',
'label' => lng('admin.domain_http2.title'),
'desc' => lng('admin.domain_http2.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'http3' => [
'visible' => !empty($ssl_ipsandports) && Settings::Get('system.webserver') == 'nginx' && Settings::Get('system.http3_support') == '1',
'label' => lng('admin.domain_http3.title'),
'desc' => lng('admin.domain_http3.description') . lng('admin.domain_http3.nginx_version_warning'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'override_tls' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('admin.domain_override_tls'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'ssl_protocols' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('serversettings.ssl.ssl_protocols.title'),
'desc' => lng('serversettings.ssl.ssl_protocols.description').lng('admin.domain_override_tls_addinfo'),
'type' => 'checkbox',
'value' => explode(",", Settings::Get('system.ssl_protocols') ?? 'TLSv1.2'),
'values' => [
[
'value' => 'TLSv1',
'label' => 'TLSv1'
],
[
'value' => 'TLSv1.1',
'label' => 'TLSv1.1'
],
[
'value' => 'TLSv1.2',
'label' => 'TLSv1.2'
],
[
'value' => 'TLSv1.3',
'label' => 'TLSv1.3'
]
],
'is_array' => 1
],
'ssl_cipher_list' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('serversettings.ssl.ssl_cipher_list.title'),
'desc' => lng('serversettings.ssl.ssl_cipher_list.description').lng('admin.domain_override_tls_addinfo'),
'type' => 'text',
'value' => Settings::Get('system.ssl_cipher_list')
],
'tlsv13_cipher_list' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1' && Settings::Get('system.webserver') == "apache2" && Settings::Get('system.apache24') == 1,
'label' => lng('serversettings.ssl.tlsv13_cipher_list.title'),
'desc' => lng('serversettings.ssl.tlsv13_cipher_list.description').lng('admin.domain_override_tls_addinfo'),
'type' => 'text',
'value' => Settings::Get('system.tlsv13_cipher_list')
],
'ssl_specialsettings' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('admin.ownsslvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'include_specialsettings' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('serversettings.includedefault_sslvhostconf'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'hsts_maxage' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_hsts_maxage.title'),
'desc' => lng('admin.domain_hsts_maxage.description'),
'type' => 'number',
'min' => 0,
'max' => 94608000, // 3-years
'value' => 0
],
'hsts_sub' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_hsts_incsub.title'),
'desc' => lng('admin.domain_hsts_incsub.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'hsts_preload' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_hsts_preload.title'),
'desc' => lng('admin.domain_hsts_preload.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'ocsp_stapling' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_ocsp_stapling.title'),
'desc' => lng('admin.domain_ocsp_stapling.description') . (Settings::Get('system.webserver') == 'nginx' ? lng('admin.domain_ocsp_stapling.nginx_version_warning') : ""),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'honorcipherorder' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_honorcipherorder'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'sessiontickets' => [
'visible' => !empty($ssl_ipsandports) && Settings::Get('system.sessionticketsenabled' != '1'),
'label' => lng('admin.domain_sessiontickets'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
]
]
],
'section_c' => [
'title' => lng('admin.phpserversettings'),
'visible' => $userinfo['change_serversettings'] == '1' || $userinfo['caneditphpsettings'] == '1',
'fields' => [
'openbasedir' => [
'label' => 'OpenBasedir',
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'openbasedir_path' => [
'label' => lng('domain.openbasedirpath'),
'type' => 'select',
'select_var' => $openbasedir,
'selected' => 0
],
'phpenabled' => [
'label' => lng('admin.phpenabled'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'phpsettingid' => [
'visible' => (int)Settings::Get('system.mod_fcgid') == 1 || (int)Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.title'),
'type' => 'select',
'select_var' => $phpconfigs,
'selected' => (int)Settings::Get('phpfpm.enabled') == 1 ? Settings::Get('phpfpm.defaultini') : Settings::Get('system.mod_fcgid_defaultini')
],
'mod_fcgid_starter' => [
'visible' => (int)Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_starter.title'),
'type' => 'number'
],
'mod_fcgid_maxrequests' => [
'visible' => (int)Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_maxrequests.title'),
'type' => 'number'
]
]
],
'section_d' => [
'title' => lng('admin.nameserversettings'),
'visible' => Settings::Get('system.bind_enable') == '1' && $userinfo['change_serversettings'] == '1',
'fields' => [
'isbinddomain' => [
'label' => lng('admin.createzonefile'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'zonefile' => [
'label' => lng('admin.custombindzone'),
'desc' => lng('admin.bindzonewarning'),
'type' => 'text'
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/domains/formfield.domains_duplicate.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'domain_duplicate' => [
'title' => lng('admin.domain_duplicate'),
'image' => 'fa-solid fa-globe',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'id' => 'domain_add',
'sections' => [
'section_a' => [
'title' => lng('domains.domainsettings'),
'fields' => [
'domain' => [
'label' => 'Domain',
'type' => 'text',
'mandatory' => true
],
'customerid' => [
'label' => lng('admin.customer'),
'type' => 'select',
'select_var' => $customers,
'selected' => $result['customerid'],
'mandatory' => true
],
]
]
],
'buttons' => [
[
'label' => lng('admin.domain_duplicate')
]
]
]
];
================================================
FILE: lib/formfields/admin/domains/formfield.domains_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'domain_edit' => [
'title' => lng('admin.domain_edit'),
'image' => 'fa-solid fa-globe',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'id' => 'domain_edit',
'sections' => [
'section_a' => [
'title' => lng('domains.domainsettings'),
'fields' => [
'domain' => [
'label' => 'Domain',
'type' => 'label',
'value' => $result['domain_ace']
],
'customerid' => [
'label' => lng('admin.customer'),
'type' => (Settings::Get('panel.allow_domain_change_customer') == '1' ? 'select' : 'infotext'),
'select_var' => (isset($customers) ? $customers : null),
'selected' => $result['customerid'],
'value' => (isset($result['customername']) ? $result['customername'] : null),
'mandatory' => true
],
'adminid' => [
'visible' => $userinfo['customers_see_all'] == '1',
'label' => lng('admin.admin'),
'type' => (Settings::Get('panel.allow_domain_change_admin') == '1' ? 'select' : 'infotext'),
'select_var' => (!empty($admins) ? $admins : null),
'selected' => (isset($result['adminid']) ? $result['adminid'] : $userinfo['adminid']),
'value' => (isset($result['adminname']) ? $result['adminname'] : null),
'mandatory' => true
],
'alias' => [
'visible' => $alias_check == '0',
'label' => lng('domains.aliasdomain'),
'type' => 'select',
'select_var' => $domains,
'selected' => $result['aliasdomain']
],
'associated_info' => [
'label' => lng('domains.associated_with_domain'),
'type' => 'label',
'value' => $subdomains . ' ' . lng('customer.subdomains') . ', ' . $alias_check . ' ' . lng('domains.aliasdomains') . ', ' . $emails . ' ' . lng('customer.emails') . ', ' . $email_accounts . ' ' . lng('customer.accounts') . ', ' . $email_forwarders . ' ' . lng('customer.forwarders')
],
'caneditdomain' => [
'label' => lng('admin.domain_editable.title'),
'desc' => lng('admin.domain_editable.desc'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['caneditdomain']
],
'add_date' => [
'label' => lng('domains.add_date'),
'desc' => lng('panel.dateformat'),
'type' => 'date',
'readonly' => true,
'value' => date('Y-m-d', (int)$result['add_date'])
],
'registration_date' => [
'label' => lng('domains.registration_date'),
'desc' => lng('panel.dateformat'),
'type' => 'date',
'value' => $result['registration_date'],
'size' => 10
],
'termination_date' => [
'label' => lng('domains.termination_date'),
'desc' => lng('panel.dateformat'),
'type' => 'date',
'value' => $result['termination_date'],
'size' => 10
],
'deactivated' => [
'label' => lng('admin.deactivated'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['deactivated']
],
]
],
'section_e' => [
'title' => lng('admin.mailserversettings'),
'fields' => [
'isemaildomain' => [
'label' => lng('admin.emaildomain'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['isemaildomain']
],
'email_only' => [
'label' => lng('admin.email_only'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['email_only']
],
'subcanemaildomain' => [
'label' => lng('admin.subdomainforemail'),
'type' => 'select',
'select_var' => $subcanemaildomain,
'selected' => $result['subcanemaildomain']
],
'dkim' => [
'visible' => Settings::Get('antispam.activated') == '1',
'label' => 'DomainKeys',
'type' => 'checkbox',
'value' => '1',
'checked' => $result['dkim']
]
]
],
'section_b' => [
'title' => lng('admin.webserversettings'),
'fields' => [
'documentroot' => [
'label' => 'DocumentRoot',
'desc' => lng('panel.emptyfordefault'),
'type' => 'text',
'value' => $result['documentroot']
],
'ipandport' => [
'label' => lng('domains.ipandport_multi.title'),
'desc' => lng('domains.ipandport_multi.description'),
'type' => 'checkbox',
'values' => $ipsandports,
'value' => $usedips,
'is_array' => 1,
'mandatory' => true
],
'selectserveralias' => [
'label' => lng('admin.selectserveralias'),
'desc' => lng('admin.selectserveralias_desc'),
'type' => 'select',
'select_var' => $serveraliasoptions,
'selected' => $result['iswildcarddomain'] == '1' ? 0 : ($result['wwwserveralias'] == '1' ? 1 : 2)
],
'specialsettings' => [
'visible' => $userinfo['change_serversettings'] == '1',
'label' => lng('admin.ownvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'value' => $result['specialsettings'],
'cols' => 60,
'rows' => 12
],
'specialsettingsforsubdomains' => [
'visible' => $userinfo['change_serversettings'] == '1',
'label' => lng('admin.specialsettingsforsubdomains'),
'desc' => lng('serversettings.specialsettingsforsubdomains.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => Settings::Get('system.apply_specialsettings_default') == 1 ? '1' : '0'
],
'notryfiles' => [
'visible' => (Settings::Get('system.webserver') == 'nginx' && $userinfo['change_serversettings'] == '1'),
'label' => lng('admin.notryfiles.title'),
'desc' => lng('admin.notryfiles.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['notryfiles']
],
'writeaccesslog' => [
'label' => lng('admin.writeaccesslog.title'),
'desc' => lng('admin.writeaccesslog.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['writeaccesslog']
],
'writeerrorlog' => [
'label' => lng('admin.writeerrorlog.title'),
'desc' => lng('admin.writeerrorlog.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['writeerrorlog']
],
'speciallogfile' => [
'label' => lng('admin.speciallogfile.title'),
'desc' => lng('admin.speciallogfile.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['speciallogfile']
],
'speciallogverified' => [
'type' => 'hidden',
'value' => '0'
],
'emaildomainverified' => [
'type' => 'hidden',
'value' => '0'
],
]
],
'section_bssl' => [
'title' => lng('admin.webserversettings_ssl'),
'visible' => Settings::Get('system.use_ssl') == '1',
'fields' => [
'sslenabled' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_sslenabled'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl_enabled']
],
'no_ssl_available_info' => [
'visible' => empty($ssl_ipsandports),
'label' => 'SSL',
'type' => 'label',
'value' => lng('panel.nosslipsavailable')
],
'ssl_ipandport' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('domains.ipandport_ssl_multi.title'),
'desc' => lng('domains.ipandport_multi.description'),
'type' => 'checkbox',
'values' => $ssl_ipsandports,
'value' => $usedips,
'is_array' => 1
],
'ssl_redirect' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('domains.ssl_redirect.title'),
'desc' => lng('domains.ssl_redirect.description') . ($result['temporary_ssl_redirect'] > 1 ? lng('domains.ssl_redirect_temporarilydisabled') : ''),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl_redirect']
],
'letsencrypt' => [
'visible' => (Settings::Get('system.leenabled') == '1' && !empty($ssl_ipsandports)),
'label' => lng('admin.letsencrypt.title'),
'desc' => lng('admin.letsencrypt.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['letsencrypt']
],
'http2' => [
'visible' => !empty($ssl_ipsandports) && Settings::Get('system.http2_support') == '1',
'label' => lng('admin.domain_http2.title'),
'desc' => lng('admin.domain_http2.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['http2']
],
'http3' => [
'visible' => !empty($ssl_ipsandports) && Settings::Get('system.webserver') == 'nginx' && Settings::Get('system.http3_support') == '1',
'label' => lng('admin.domain_http3.title'),
'desc' => lng('admin.domain_http3.description') . lng('admin.domain_http3.nginx_version_warning'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['http3']
],
'override_tls' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('admin.domain_override_tls'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['override_tls']
],
'ssl_protocols' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('serversettings.ssl.ssl_protocols.title'),
'desc' => lng('serversettings.ssl.ssl_protocols.description').lng('admin.domain_override_tls_addinfo'),
'type' => 'checkbox',
'value' => !empty($result['ssl_protocols']) ? explode(",", $result['ssl_protocols']) : explode(",", Settings::Get('system.ssl_protocols')),
'values' => [
[
'value' => 'TLSv1',
'label' => 'TLSv1'
],
[
'value' => 'TLSv1.1',
'label' => 'TLSv1.1'
],
[
'value' => 'TLSv1.2',
'label' => 'TLSv1.2'
],
[
'value' => 'TLSv1.3',
'label' => 'TLSv1.3'
]
],
'is_array' => 1
],
'ssl_cipher_list' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('serversettings.ssl.ssl_cipher_list.title'),
'desc' => lng('serversettings.ssl.ssl_cipher_list.description').lng('admin.domain_override_tls_addinfo'),
'type' => 'text',
'value' => !empty($result['ssl_cipher_list']) ? $result['ssl_cipher_list'] : Settings::Get('system.ssl_cipher_list')
],
'tlsv13_cipher_list' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1' && Settings::Get('system.webserver') == "apache2" && Settings::Get('system.apache24') == 1,
'label' => lng('serversettings.ssl.tlsv13_cipher_list.title'),
'desc' => lng('serversettings.ssl.tlsv13_cipher_list.description').lng('admin.domain_override_tls_addinfo'),
'type' => 'text',
'value' => !empty($result['tlsv13_cipher_list']) ? $result['tlsv13_cipher_list'] : Settings::Get('system.tlsv13_cipher_list')
],
'ssl_specialsettings' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('admin.ownsslvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['ssl_specialsettings']
],
'include_specialsettings' => [
'visible' => !empty($ssl_ipsandports) && $userinfo['change_serversettings'] == '1',
'label' => lng('serversettings.includedefault_sslvhostconf'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['include_specialsettings']
],
'hsts_maxage' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_hsts_maxage.title'),
'desc' => lng('admin.domain_hsts_maxage.description'),
'type' => 'number',
'min' => 0,
'max' => 94608000, // 3-years
'value' => $result['hsts']
],
'hsts_sub' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_hsts_incsub.title'),
'desc' => lng('admin.domain_hsts_incsub.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['hsts_sub']
],
'hsts_preload' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_hsts_preload.title'),
'desc' => lng('admin.domain_hsts_preload.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['hsts_preload']
],
'ocsp_stapling' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_ocsp_stapling.title'),
'desc' => lng('admin.domain_ocsp_stapling.description') . (Settings::Get('system.webserver') == 'nginx' ? lng('admin.domain_ocsp_stapling.nginx_version_warning') : ""),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ocsp_stapling']
],
'honorcipherorder' => [
'visible' => !empty($ssl_ipsandports),
'label' => lng('admin.domain_honorcipherorder'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl_honorcipherorder']
],
'sessiontickets' => [
'visible' => !empty($ssl_ipsandports) && Settings::Get('system.sessionticketsenabled' != '1'),
'label' => lng('admin.domain_sessiontickets'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl_sessiontickets']
]
]
],
'section_c' => [
'title' => lng('admin.phpserversettings'),
'visible' => $userinfo['change_serversettings'] == '1' || $userinfo['caneditphpsettings'] == '1',
'fields' => [
'openbasedir' => [
'label' => 'OpenBasedir',
'type' => 'checkbox',
'value' => '1',
'checked' => $result['openbasedir']
],
'openbasedir_path' => [
'label' => lng('domain.openbasedirpath'),
'type' => 'select',
'select_var' => $openbasedir,
'selected' => $result['openbasedir_path']
],
'phpenabled' => [
'label' => lng('admin.phpenabled'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['phpenabled']
],
'phpsettingid' => [
'visible' => (((int)Settings::Get('system.mod_fcgid') == 1 || (int)Settings::Get('phpfpm.enabled') == 1)),
'label' => lng('admin.phpsettings.title'),
'type' => 'select',
'select_var' => $phpconfigs,
'selected' => $result['phpsettingid']
],
'phpsettingsforsubdomains' => [
'visible' => $userinfo['change_serversettings'] == '1',
'label' => lng('admin.phpsettingsforsubdomains'),
'desc' => lng('serversettings.phpsettingsforsubdomains.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => Settings::Get('system.apply_phpconfigs_default') == 1 ? '1' : '0'
],
'mod_fcgid_starter' => [
'visible' => (int)Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_starter.title'),
'type' => 'number',
'value' => ((int)$result['mod_fcgid_starter'] != -1 ? $result['mod_fcgid_starter'] : '')
],
'mod_fcgid_maxrequests' => [
'visible' => (int)Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_maxrequests.title'),
'type' => 'number',
'value' => ((int)$result['mod_fcgid_maxrequests'] != -1 ? $result['mod_fcgid_maxrequests'] : '')
]
]
],
'section_d' => [
'title' => lng('admin.nameserversettings'),
'visible' => ($userinfo['change_serversettings'] == '1' && Settings::Get('system.bind_enable') == '1') || ($result['isemaildomain'] == '1' && (Settings::Get('spf.use_spf') == '1' || Settings::Get('dmarc.use_dmarc') == '1') || Settings::Get('antispam.activated') == '1' && $result['dkim'] == '1' && $result['dkim_pubkey'] != ''),
'fields' => [
'isbinddomain' => [
'visible' => $userinfo['change_serversettings'] == '1' && Settings::Get('system.bind_enable') == '1',
'label' => lng('admin.createzonefile'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['isbinddomain']
],
'zonefile' => [
'visible' => $userinfo['change_serversettings'] == '1' && Settings::Get('system.bind_enable') == '1',
'label' => lng('admin.custombindzone'),
'desc' => lng('admin.bindzonewarning'),
'type' => 'text',
'value' => $result['zonefile']
],
'spf_entry' => [
'visible' => (Settings::Get('spf.use_spf') == '1' && $result['isemaildomain'] == '1'),
'label' => lng('antispam.required_spf_dns'),
'type' => 'longtext',
'value' => (string)(new \Froxlor\Dns\DnsEntry('@', 'TXT', \Froxlor\Dns\Dns::encloseTXTContent(Settings::Get('spf.spf_entry'))))
],
'dmarc_entry' => [
'visible' => (Settings::Get('dmarc.use_dmarc') == '1' && $result['isemaildomain'] == '1'),
'label' => lng('antispam.required_dmarc_dns'),
'type' => 'longtext',
'value' => (string)(new \Froxlor\Dns\DnsEntry('_dmarc', 'TXT', \Froxlor\Dns\Dns::encloseTXTContent(Settings::Get('dmarc.dmarc_entry'))))
],
'dkim_entry' => [
'visible' => (Settings::Get('antispam.activated') == '1' && $result['dkim'] == '1' && $result['dkim_pubkey'] != ''),
'label' => lng('antispam.required_dkim_dns'),
'type' => 'longtext',
'value' => (string)(new \Froxlor\Dns\DnsEntry('dkim' . $result['dkim_id'] . '._domainkey', 'TXT', \Froxlor\Dns\Dns::encloseTXTContent('v=DKIM1; k=rsa; p='.trim($result['dkim_pubkey']))))
],
]
]
]
]
];
================================================
FILE: lib/formfields/admin/domains/formfield.domains_import.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'domain_import' => [
'title' => lng('domains.domain_import'),
'image' => 'fa-solid fa-file-import',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'sections' => [
'section_a' => [
'title' => lng('domains.domain_import'),
'fields' => [
'separator' => [
'label' => lng('domains.import_separator'),
'type' => 'text',
'mandatory' => true,
'size' => 5,
'value' => ';'
],
'offset' => [
'label' => lng('domains.import_offset'),
'type' => 'number',
'mandatory' => true,
'size' => 10,
'min' => 0,
'value' => '0'
],
'file' => [
'label' => lng('domains.import_file'),
'type' => 'file',
'mandatory' => true
]
]
]
],
'buttons' => [
[
'label' => lng('domains.domain_import')
]
]
]
];
================================================
FILE: lib/formfields/admin/domains/index.html
================================================
================================================
FILE: lib/formfields/admin/index.html
================================================
================================================
FILE: lib/formfields/admin/ipsandports/formfield.ipsandports_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'ipsandports_add' => [
'title' => lng('admin.ipsandports.add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'ipsandports', 'page' => 'ipsandports'],
'sections' => [
'section_a' => [
'title' => lng('admin.ipsandports.ipandport'),
'fields' => [
'ip' => [
'label' => lng('admin.ipsandports.ip'),
'type' => 'text',
'mandatory' => true
],
'port' => [
'label' => lng('admin.ipsandports.port'),
'type' => 'number',
'min' => 1,
'max' => 65535,
'value' => 80,
'mandatory' => true
]
]
],
'section_b' => [
'title' => lng('admin.ipsandports.webserverdefaultconfig'),
'fields' => [
'listen_statement' => [
'visible' => Settings::Get('system.webserver') != 'nginx',
'label' => lng('admin.ipsandports.create_listen_statement'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'namevirtualhost_statement' => [
'visible' => Settings::Get('system.webserver') == 'apache2' && (int)Settings::Get('system.apache24') == 0,
'label' => lng('admin.ipsandports.create_namevirtualhost_statement'),
'type' => 'checkbox',
'value' => '1',
'checked' => Settings::Get('system.webserver') == 'apache2' && (int)Settings::Get('system.apache24') == 0
],
'vhostcontainer' => [
'label' => lng('admin.ipsandports.create_vhostcontainer'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'docroot' => [
'label' => lng('admin.ipsandports.docroot.title'),
'desc' => lng('admin.ipsandports.docroot.description'),
'type' => 'text'
],
'specialsettings' => [
'label' => lng('admin.ownvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'vhostcontainer_servername_statement' => [
'visible' => Settings::Get('system.webserver') == 'apache2',
'label' => lng('admin.ipsandports.create_vhostcontainer_servername_statement'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
]
]
],
'section_c' => [
'title' => lng('admin.ipsandports.webserverdomainconfig'),
'fields' => [
'default_vhostconf_domain' => [
'label' => lng('admin.ipsandports.default_vhostconf_domain'),
'desc' => lng('serversettings.default_vhostconf_domain.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'ssl_default_vhostconf_domain' => [
'visible' => Settings::Get('system.use_ssl') == 1,
'label' => lng('admin.ipsandports.ssl_default_vhostconf_domain'),
'desc' => lng('serversettings.default_vhostconf_domain.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'include_default_vhostconf_domain' => [
'label' => lng('serversettings.includedefault_sslvhostconf'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
],
'section_d' => [
'title' => lng('admin.ipsandports.webserverssldomainconfig'),
'visible' => Settings::Get('system.use_ssl') == 1,
'fields' => [
'ssl' => [
'label' => lng('admin.ipsandports.enable_ssl'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'ssl_cert_file' => [
'label' => lng('admin.ipsandports.ssl_cert_file'),
'type' => 'text'
],
'ssl_key_file' => [
'label' => lng('admin.ipsandports.ssl_key_file'),
'type' => 'text'
],
'ssl_ca_file' => [
'label' => lng('admin.ipsandports.ssl_ca_file'),
'type' => 'text'
],
'ssl_cert_chainfile' => [
'label' => lng('admin.ipsandports.ssl_cert_chainfile.title'),
'desc' => lng('admin.ipsandports.ssl_cert_chainfile.description'),
'type' => 'text'
],
'ssl_specialsettings' => [
'label' => lng('admin.ownsslvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
],
'include_specialsettings' => [
'label' => lng('serversettings.includedefault_sslvhostconf'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/ipsandports/formfield.ipsandports_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'ipsandports_edit' => [
'title' => lng('admin.ipsandports.edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'ipsandports', 'page' => 'ipsandports'],
'sections' => [
'section_a' => [
'title' => lng('admin.ipsandports.ipandport'),
'fields' => [
'ip' => [
'label' => lng('admin.ipsandports.ip'),
'type' => 'text',
'value' => $result['ip'],
'mandatory' => true
],
'port' => [
'label' => lng('admin.ipsandports.port'),
'type' => 'number',
'value' => $result['port'],
'min' => 1,
'max' => 65535,
'mandatory' => true
]
]
],
'section_b' => [
'title' => lng('admin.ipsandports.webserverdefaultconfig'),
'fields' => [
'listen_statement' => [
'visible' => Settings::Get('system.webserver') != 'nginx',
'label' => lng('admin.ipsandports.create_listen_statement'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['listen_statement']
],
'namevirtualhost_statement' => [
'visible' => Settings::Get('system.webserver') == 'apache2' && (int)Settings::Get('system.apache24') == 0,
'label' => lng('admin.ipsandports.create_namevirtualhost_statement'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['namevirtualhost_statement']
],
'vhostcontainer' => [
'label' => lng('admin.ipsandports.create_vhostcontainer'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['vhostcontainer']
],
'docroot' => [
'label' => lng('admin.ipsandports.docroot.title'),
'desc' => lng('admin.ipsandports.docroot.description'),
'type' => 'text',
'value' => $result['docroot']
],
'specialsettings' => [
'label' => lng('admin.ownvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['specialsettings']
],
'vhostcontainer_servername_statement' => [
'visible' => Settings::Get('system.webserver') == 'apache2',
'label' => lng('admin.ipsandports.create_vhostcontainer_servername_statement'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['vhostcontainer_servername_statement']
]
]
],
'section_c' => [
'title' => lng('admin.ipsandports.webserverdomainconfig'),
'fields' => [
'default_vhostconf_domain' => [
'label' => lng('admin.ipsandports.default_vhostconf_domain'),
'desc' => lng('serversettings.default_vhostconf_domain.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['default_vhostconf_domain']
],
'ssl_default_vhostconf_domain' => [
'visible' => Settings::Get('system.use_ssl') == 1,
'label' => lng('admin.ipsandports.ssl_default_vhostconf_domain'),
'desc' => lng('serversettings.default_vhostconf_domain.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['ssl_default_vhostconf_domain']
],
'include_default_vhostconf_domain' => [
'label' => lng('serversettings.includedefault_sslvhostconf'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['include_default_vhostconf_domain']
]
]
],
'section_d' => [
'title' => lng('admin.ipsandports.webserverssldomainconfig'),
'visible' => Settings::Get('system.use_ssl') == 1,
'fields' => [
'ssl' => [
'label' => lng('admin.ipsandports.enable_ssl'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl']
],
'ssl_cert_file' => [
'label' => lng('admin.ipsandports.ssl_cert_file'),
'type' => 'text',
'value' => $result['ssl_cert_file']
],
'ssl_key_file' => [
'label' => lng('admin.ipsandports.ssl_key_file'),
'type' => 'text',
'value' => $result['ssl_key_file']
],
'ssl_ca_file' => [
'label' => lng('admin.ipsandports.ssl_ca_file'),
'type' => 'text',
'value' => $result['ssl_ca_file']
],
'ssl_cert_chainfile' => [
'label' => lng('admin.ipsandports.ssl_cert_chainfile.title'),
'desc' => lng('admin.ipsandports.ssl_cert_chainfile.description'),
'type' => 'text',
'value' => $result['ssl_cert_chainfile']
],
'ssl_specialsettings' => [
'label' => lng('admin.ownsslvhostsettings'),
'desc' => lng('serversettings.default_vhostconf.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['ssl_specialsettings']
],
'include_specialsettings' => [
'label' => lng('serversettings.includedefault_sslvhostconf'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['include_specialsettings']
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/ipsandports/index.html
================================================
================================================
FILE: lib/formfields/admin/messages/formfield.messages_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'messages_add' => [
'title' => lng('admin.message'),
'image' => 'fa-solid fa-paper-plane',
'sections' => [
'section_a' => [
'fields' => [
'recipient' => [
'label' => lng('admin.recipient'),
'type' => 'select',
'select_var' => $recipients,
'selected' => 1
],
'subject' => [
'label' => lng('admin.subject'),
'type' => 'text',
'value' => lng('admin.nosubject'),
'mandatory' => true
],
'message' => [
'label' => lng('admin.text'),
'type' => 'textarea',
'mandatory' => true
]
]
]
],
'buttons' => [
[
'label' => lng('admin.message')
]
]
]
];
================================================
FILE: lib/formfields/admin/messages/index.html
================================================
================================================
FILE: lib/formfields/admin/mysqlserver/formfield.mysqlserver_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'mysqlserver_add' => [
'title' => lng('admin.mysqlserver.add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'mysqlserver', 'page' => 'mysqlserver'],
'sections' => [
'section_a' => [
'title' => lng('admin.mysqlserver.mysqlserver'),
'fields' => [
'mysql_host' => [
'label' => lng('admin.mysqlserver.host'),
'type' => 'text',
'mandatory' => true
],
'mysql_port' => [
'label' => lng('admin.mysqlserver.port'),
'type' => 'number',
'min' => 1,
'max' => 65535,
'value' => 3306,
'mandatory' => true
],
'description' => [
'label' => lng('admin.mysqlserver.caption'),
'type' => 'text',
],
'privileged_user' => [
'label' => lng('admin.mysqlserver.user'),
'type' => 'text',
'mandatory' => true
],
'privileged_password' => [
'label' => lng('admin.mysqlserver.password'),
'type' => 'password',
'mandatory' => true
],
'allow_all_customers' => [
'label' => lng('admin.mysqlserver.allowall'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'test_connection' => [
'label' => lng('admin.mysqlserver.testconn'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
]
]
],
'section_b' => [
'title' => lng('admin.mysqlserver.ssl'),
'fields' => [
'mysql_ca' => [
'label' => lng('admin.mysqlserver.ssl_cert_file'),
'type' => 'text'
],
'mysql_verifycert' => [
'label' => lng('admin.mysqlserver.verify_ca'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/mysqlserver/formfield.mysqlserver_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'mysqlserver_edit' => [
'title' => lng('admin.mysqlserver.edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'mysqlserver', 'page' => 'mysqlserver'],
'sections' => [
'section_a' => [
'title' => lng('admin.mysqlserver.mysqlserver'),
'fields' => [
'mysql_host' => [
'label' => lng('admin.mysqlserver.host'),
'type' => empty($result['id']) ? 'label' : 'text',
'value' => $result['host'],
'mandatory' => true,
],
'mysql_port' => [
'label' => lng('admin.mysqlserver.port'),
'type' => 'number',
'min' => 1,
'max' => 65535,
'value' => $result['port'],
'mandatory' => true
],
'description' => [
'label' => lng('admin.mysqlserver.caption'),
'type' => 'text',
'value' => $result['caption'],
],
'privileged_user' => [
'label' => lng('admin.mysqlserver.user'),
'type' => 'text',
'value' => $result['user'],
'mandatory' => true
],
'privileged_password' => [
'label' => lng('admin.mysqlserver.password_emptynochange'),
'type' => 'password'
],
'allow_all_customers' => [
'label' => lng('admin.mysqlserver.allowall'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'test_connection' => [
'label' => lng('admin.mysqlserver.testconn'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
]
]
],
'section_b' => [
'title' => lng('admin.mysqlserver.ssl'),
'fields' => [
'mysql_ca' => [
'label' => lng('admin.mysqlserver.ssl_cert_file'),
'type' => 'text',
'value' => $result['ssl']['caFile'] ?? "",
],
'mysql_verifycert' => [
'label' => lng('admin.mysqlserver.verify_ca'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl']['verifyServerCertificate'] ?? false,
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/mysqlserver/index.html
================================================
================================================
FILE: lib/formfields/admin/phpconfig/formfield.fpmconfig_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'fpmconfig_add' => [
'title' => lng('admin.fpmsettings.addnew'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'phpsettings', 'page' => 'fpmdaemons'],
'sections' => [
'section_a' => [
'title' => lng('admin.fpmsettings.addnew'),
'fields' => [
'description' => [
'label' => lng('admin.phpsettings.description'),
'type' => 'text',
'maxlength' => 50,
'mandatory' => true
],
'reload_cmd' => [
'label' => lng('serversettings.phpfpm_settings.reload'),
'type' => 'text',
'maxlength' => 255,
'value' => 'service php7.4-fpm restart',
'mandatory' => true,
'required_otp' => true
],
'config_dir' => [
'label' => lng('serversettings.phpfpm_settings.configdir'),
'type' => 'text',
'maxlength' => 255,
'value' => '/etc/php/7.4/fpm/pool.d/',
'mandatory' => true
],
'pm' => [
'label' => lng('serversettings.phpfpm_settings.pm'),
'type' => 'select',
'select_var' => [
'static' => 'static',
'dynamic' => 'dynamic',
'ondemand' => 'ondemand'
]
],
'max_children' => [
'label' => lng('serversettings.phpfpm_settings.max_children.title'),
'desc' => lng('serversettings.phpfpm_settings.max_children.description'),
'type' => 'number',
'value' => 5,
'min' => 1
],
'start_servers' => [
'label' => lng('serversettings.phpfpm_settings.start_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.start_servers.description'),
'type' => 'number',
'value' => 2,
'min' => 1
],
'min_spare_servers' => [
'label' => lng('serversettings.phpfpm_settings.min_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.min_spare_servers.description'),
'type' => 'number',
'value' => 1
],
'max_spare_servers' => [
'label' => lng('serversettings.phpfpm_settings.max_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.max_spare_servers.description'),
'type' => 'number',
'value' => 3
],
'max_requests' => [
'label' => lng('serversettings.phpfpm_settings.max_requests.title'),
'desc' => lng('serversettings.phpfpm_settings.max_requests.description'),
'type' => 'number',
'value' => 0
],
'idle_timeout' => [
'label' => lng('serversettings.phpfpm_settings.idle_timeout.title'),
'desc' => lng('serversettings.phpfpm_settings.idle_timeout.description'),
'type' => 'number',
'value' => 10
],
'limit_extensions' => [
'label' => lng('serversettings.phpfpm_settings.limit_extensions.title'),
'desc' => lng('serversettings.phpfpm_settings.limit_extensions.description'),
'type' => 'text',
'value' => '.php'
],
'custom_config' => [
'label' => lng('serversettings.phpfpm_settings.custom_config.title'),
'desc' => lng('serversettings.phpfpm_settings.custom_config.description'),
'type' => 'textarea',
'cols' => 50,
'rows' => 7
]
]
]
]
],
'fpmconfig_replacers' => [
'replacers' => [
[
'var' => 'PEAR_DIR',
'description' => lng('admin.phpconfig.pear_dir')
],
[
'var' => 'OPEN_BASEDIR_C',
'description' => lng('admin.phpconfig.open_basedir_c')
],
[
'var' => 'OPEN_BASEDIR',
'description' => lng('admin.phpconfig.open_basedir')
],
[
'var' => 'OPEN_BASEDIR_GLOBAL',
'description' => lng('admin.phpconfig.open_basedir_global')
],
[
'var' => 'TMP_DIR',
'description' => lng('admin.phpconfig.tmp_dir')
],
[
'var' => 'CUSTOMER_EMAIL',
'description' => lng('admin.phpconfig.customer_email')
],
[
'var' => 'ADMIN_EMAIL',
'description' => lng('admin.phpconfig.admin_email')
],
[
'var' => 'DOMAIN',
'description' => lng('admin.phpconfig.domain')
],
[
'var' => 'CUSTOMER',
'description' => lng('admin.phpconfig.customer')
],
[
'var' => 'ADMIN',
'description' => lng('admin.phpconfig.admin')
],
[
'var' => 'DOCUMENT_ROOT',
'description' => lng('admin.phpconfig.docroot')
],
[
'var' => 'CUSTOMER_HOMEDIR',
'description' => lng('admin.phpconfig.homedir')
]
]
]
];
================================================
FILE: lib/formfields/admin/phpconfig/formfield.fpmconfig_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'fpmconfig_edit' => [
'title' => lng('admin.fpmsettings.edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'phpsettings', 'page' => 'fpmdaemons'],
'sections' => [
'section_a' => [
'title' => lng('admin.fpmsettings.edit'),
'fields' => [
'description' => [
'label' => lng('admin.phpsettings.description'),
'type' => 'text',
'maxlength' => 50,
'value' => $result['description'],
'mandatory' => true
],
'reload_cmd' => [
'label' => lng('serversettings.phpfpm_settings.reload'),
'type' => 'text',
'maxlength' => 255,
'value' => $result['reload_cmd'],
'mandatory' => true,
'required_otp' => true
],
'config_dir' => [
'label' => lng('serversettings.phpfpm_settings.configdir'),
'type' => 'text',
'maxlength' => 255,
'value' => $result['config_dir'],
'mandatory' => true
],
'pm' => [
'label' => lng('serversettings.phpfpm_settings.pm'),
'type' => 'select',
'select_var' => [
'static' => 'static',
'dynamic' => 'dynamic',
'ondemand' => 'ondemand'
],
'selected' => $result['pm']
],
'max_children' => [
'label' => lng('serversettings.phpfpm_settings.max_children.title'),
'desc' => lng('serversettings.phpfpm_settings.max_children.description'),
'type' => 'number',
'value' => $result['max_children'],
'min' => 1
],
'start_servers' => [
'label' => lng('serversettings.phpfpm_settings.start_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.start_servers.description'),
'type' => 'number',
'value' => $result['start_servers'],
'min' => 1
],
'min_spare_servers' => [
'label' => lng('serversettings.phpfpm_settings.min_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.min_spare_servers.description'),
'type' => 'number',
'value' => $result['min_spare_servers']
],
'max_spare_servers' => [
'label' => lng('serversettings.phpfpm_settings.max_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.max_spare_servers.description'),
'type' => 'number',
'value' => $result['max_spare_servers']
],
'max_requests' => [
'label' => lng('serversettings.phpfpm_settings.max_requests.title'),
'desc' => lng('serversettings.phpfpm_settings.max_requests.description'),
'type' => 'number',
'value' => $result['max_requests']
],
'idle_timeout' => [
'label' => lng('serversettings.phpfpm_settings.idle_timeout.title'),
'desc' => lng('serversettings.phpfpm_settings.idle_timeout.description'),
'type' => 'number',
'value' => $result['idle_timeout']
],
'limit_extensions' => [
'label' => lng('serversettings.phpfpm_settings.limit_extensions.title'),
'desc' => lng('serversettings.phpfpm_settings.limit_extensions.description'),
'type' => 'text',
'value' => $result['limit_extensions']
],
'custom_config' => [
'label' => lng('serversettings.phpfpm_settings.custom_config.title'),
'desc' => lng('serversettings.phpfpm_settings.custom_config.description'),
'type' => 'textarea',
'cols' => 50,
'rows' => 7,
'value' => $result['custom_config']
]
]
]
]
],
'fpmconfig_replacers' => [
'replacers' => [
[
'var' => 'PEAR_DIR',
'description' => lng('admin.phpconfig.pear_dir')
],
[
'var' => 'OPEN_BASEDIR_C',
'description' => lng('admin.phpconfig.open_basedir_c')
],
[
'var' => 'OPEN_BASEDIR',
'description' => lng('admin.phpconfig.open_basedir')
],
[
'var' => 'OPEN_BASEDIR_GLOBAL',
'description' => lng('admin.phpconfig.open_basedir_global')
],
[
'var' => 'TMP_DIR',
'description' => lng('admin.phpconfig.tmp_dir')
],
[
'var' => 'CUSTOMER_EMAIL',
'description' => lng('admin.phpconfig.customer_email')
],
[
'var' => 'ADMIN_EMAIL',
'description' => lng('admin.phpconfig.admin_email')
],
[
'var' => 'DOMAIN',
'description' => lng('admin.phpconfig.domain')
],
[
'var' => 'CUSTOMER',
'description' => lng('admin.phpconfig.customer')
],
[
'var' => 'ADMIN',
'description' => lng('admin.phpconfig.admin')
],
[
'var' => 'DOCUMENT_ROOT',
'description' => lng('admin.phpconfig.docroot')
],
[
'var' => 'CUSTOMER_HOMEDIR',
'description' => lng('admin.phpconfig.homedir')
]
]
]
];
================================================
FILE: lib/formfields/admin/phpconfig/formfield.phpconfig_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'phpconfig_add' => [
'title' => lng('admin.phpsettings.addsettings'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'phpsettings', 'page' => 'overview'],
'sections' => [
'section_a' => [
'title' => lng('admin.phpsettings.addsettings'),
'fields' => [
'description' => [
'label' => lng('admin.phpsettings.description'),
'type' => 'text',
'maxlength' => 50,
'mandatory' => true
],
'binary' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.phpsettings.binary'),
'type' => 'text',
'maxlength' => 255,
'value' => '/usr/bin/php-cgi',
'required_otp' => true
],
'fpmconfig' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.fpmdesc'),
'type' => 'select',
'select_var' => $fpmconfigs,
'selected' => 1
],
'file_extensions' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.phpsettings.file_extensions'),
'desc' => lng('admin.phpsettings.file_extensions_note'),
'type' => 'text',
'maxlength' => 255,
'value' => 'php',
'required_otp' => true
],
'mod_fcgid_starter' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_starter.title'),
'type' => 'number'
],
'mod_fcgid_maxrequests' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_maxrequests.title'),
'type' => 'number'
],
'mod_fcgid_umask' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_umask.title'),
'type' => 'text',
'maxlength' => 3,
'value' => '022'
],
'phpfpm_enable_slowlog' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.enable_slowlog'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'phpfpm_reqtermtimeout' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.request_terminate_timeout'),
'type' => 'text',
'maxlength' => 10,
'value' => '60s'
],
'phpfpm_reqslowtimeout' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.request_slowlog_timeout'),
'type' => 'text',
'maxlength' => 10,
'value' => '5s'
],
'pass_authorizationheader' => [
'visible' => Settings::Get('system.webserver') == "apache2",
'label' => lng('admin.phpsettings.pass_authorizationheader'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'override_fpmconfig' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.override_fpmconfig'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'pm' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.pm'),
'desc' => lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'select',
'select_var' => [
'static' => 'static',
'dynamic' => 'dynamic',
'ondemand' => 'ondemand'
]
],
'max_children' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.max_children.title'),
'desc' => lng('serversettings.phpfpm_settings.max_children.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => 1
],
'start_servers' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.start_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.start_servers.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => 20
],
'min_spare_servers' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.min_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.min_spare_servers.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => 5
],
'max_spare_servers' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.max_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.max_spare_servers.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => 35
],
'max_requests' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.max_requests.title'),
'desc' => lng('serversettings.phpfpm_settings.max_requests.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => 0
],
'idle_timeout' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.idle_timeout.title'),
'desc' => lng('serversettings.phpfpm_settings.idle_timeout.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => 10
],
'limit_extensions' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.limit_extensions.title'),
'desc' => lng('serversettings.phpfpm_settings.limit_extensions.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'text',
'value' => '.php'
],
'phpsettings' => [
'label' => lng('admin.phpsettings.phpinisettings'),
'type' => 'textarea',
'cols' => 80,
'rows' => 20,
'value' => $result['phpsettings'],
'mandatory' => true,
'required_otp' => true
],
'allow_all_customers' => [
'label' => lng('serversettings.phpfpm_settings.allow_all_customers.title'),
'desc' => lng('serversettings.phpfpm_settings.allow_all_customers.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
],
'phpconfig_replacers' => [
'replacers' => [
[
'var' => 'PEAR_DIR',
'description' => lng('admin.phpconfig.pear_dir')
],
[
'var' => 'OPEN_BASEDIR_C',
'description' => lng('admin.phpconfig.open_basedir_c')
],
[
'var' => 'OPEN_BASEDIR',
'description' => lng('admin.phpconfig.open_basedir')
],
[
'var' => 'OPEN_BASEDIR_GLOBAL',
'description' => lng('admin.phpconfig.open_basedir_global')
],
[
'var' => 'TMP_DIR',
'description' => lng('admin.phpconfig.tmp_dir')
],
[
'var' => 'CUSTOMER_EMAIL',
'description' => lng('admin.phpconfig.customer_email')
],
[
'var' => 'ADMIN_EMAIL',
'description' => lng('admin.phpconfig.admin_email')
],
[
'var' => 'DOMAIN',
'description' => lng('admin.phpconfig.domain')
],
[
'var' => 'CUSTOMER',
'description' => lng('admin.phpconfig.customer')
],
[
'var' => 'ADMIN',
'description' => lng('admin.phpconfig.admin')
],
[
'var' => 'DOCUMENT_ROOT',
'description' => lng('admin.phpconfig.docroot')
],
[
'var' => 'CUSTOMER_HOMEDIR',
'description' => lng('admin.phpconfig.homedir')
]
]
]
];
================================================
FILE: lib/formfields/admin/phpconfig/formfield.phpconfig_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'phpconfig_edit' => [
'title' => lng('admin.phpsettings.editsettings'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'phpsettings', 'page' => 'overview'],
'sections' => [
'section_a' => [
'title' => lng('admin.phpsettings.editsettings'),
'fields' => [
'description' => [
'label' => lng('admin.phpsettings.description'),
'type' => 'text',
'maxlength' => 50,
'value' => $result['description'],
'mandatory' => true
],
'binary' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.phpsettings.binary'),
'type' => 'text',
'maxlength' => 255,
'value' => $result['binary'],
'required_otp' => true
],
'fpmconfig' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.fpmdesc'),
'type' => 'select',
'select_var' => $fpmconfigs,
'selected' => $result['fpmsettingid']
],
'file_extensions' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.phpsettings.file_extensions'),
'desc' => lng('admin.phpsettings.file_extensions_note'),
'type' => 'text',
'maxlength' => 255,
'value' => $result['file_extensions'],
'required_otp' => true
],
'mod_fcgid_starter' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_starter.title'),
'type' => 'number',
'value' => ((int)$result['mod_fcgid_starter'] != -1 ? $result['mod_fcgid_starter'] : '')
],
'mod_fcgid_maxrequests' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_maxrequests.title'),
'type' => 'number',
'value' => ((int)$result['mod_fcgid_maxrequests'] != -1 ? $result['mod_fcgid_maxrequests'] : '')
],
'mod_fcgid_umask' => [
'visible' => Settings::Get('system.mod_fcgid') == 1,
'label' => lng('admin.mod_fcgid_umask.title'),
'type' => 'text',
'maxlength' => 3,
'value' => $result['mod_fcgid_umask']
],
'phpfpm_enable_slowlog' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.enable_slowlog'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['fpm_slowlog']
],
'phpfpm_reqtermtimeout' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.request_terminate_timeout'),
'type' => 'text',
'maxlength' => 10,
'value' => $result['fpm_reqterm']
],
'phpfpm_reqslowtimeout' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('admin.phpsettings.request_slowlog_timeout'),
'type' => 'text',
'maxlength' => 10,
'value' => $result['fpm_reqslow']
],
'pass_authorizationheader' => [
'visible' => Settings::Get('system.webserver') == "apache2",
'label' => lng('admin.phpsettings.pass_authorizationheader'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['pass_authorizationheader']
],
'override_fpmconfig' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.override_fpmconfig'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['override_fpmconfig']
],
'pm' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.pm'),
'desc' => lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'select',
'select_var' => [
'static' => 'static',
'dynamic' => 'dynamic',
'ondemand' => 'ondemand'
],
'selected' => $result['pm']
],
'max_children' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.max_children.title'),
'desc' => lng('serversettings.phpfpm_settings.max_children.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => $result['max_children']
],
'start_servers' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.start_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.start_servers.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => $result['start_servers']
],
'min_spare_servers' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.min_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.min_spare_servers.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => $result['min_spare_servers']
],
'max_spare_servers' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.max_spare_servers.title'),
'desc' => lng('serversettings.phpfpm_settings.max_spare_servers.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => $result['max_spare_servers']
],
'max_requests' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.max_requests.title'),
'desc' => lng('serversettings.phpfpm_settings.max_requests.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => $result['max_requests']
],
'idle_timeout' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.idle_timeout.title'),
'desc' => lng('serversettings.phpfpm_settings.idle_timeout.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'number',
'value' => $result['idle_timeout']
],
'limit_extensions' => [
'visible' => Settings::Get('phpfpm.enabled') == 1,
'label' => lng('serversettings.phpfpm_settings.limit_extensions.title'),
'desc' => lng('serversettings.phpfpm_settings.limit_extensions.description') . lng('serversettings.phpfpm_settings.override_fpmconfig_addinfo'),
'type' => 'text',
'value' => $result['limit_extensions']
],
'phpsettings' => [
'label' => lng('admin.phpsettings.phpinisettings'),
'type' => 'textarea',
'cols' => 80,
'rows' => 20,
'value' => $result['phpsettings'],
'mandatory' => true,
'required_otp' => true
],
'allow_all_customers' => [
'label' => lng('serversettings.phpfpm_settings.allow_all_customers.title'),
'desc' => lng('serversettings.phpfpm_settings.allow_all_customers.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
],
'phpconfig_replacers' => [
'replacers' => [
[
'var' => 'PEAR_DIR',
'description' => lng('admin.phpconfig.pear_dir')
],
[
'var' => 'OPEN_BASEDIR_C',
'description' => lng('admin.phpconfig.open_basedir_c')
],
[
'var' => 'OPEN_BASEDIR',
'description' => lng('admin.phpconfig.open_basedir')
],
[
'var' => 'OPEN_BASEDIR_GLOBAL',
'description' => lng('admin.phpconfig.open_basedir_global')
],
[
'var' => 'TMP_DIR',
'description' => lng('admin.phpconfig.tmp_dir')
],
[
'var' => 'CUSTOMER_EMAIL',
'description' => lng('admin.phpconfig.customer_email')
],
[
'var' => 'ADMIN_EMAIL',
'description' => lng('admin.phpconfig.admin_email')
],
[
'var' => 'DOMAIN',
'description' => lng('admin.phpconfig.domain')
],
[
'var' => 'CUSTOMER',
'description' => lng('admin.phpconfig.customer')
],
[
'var' => 'ADMIN',
'description' => lng('admin.phpconfig.admin')
],
[
'var' => 'DOCUMENT_ROOT',
'description' => lng('admin.phpconfig.docroot')
],
[
'var' => 'CUSTOMER_HOMEDIR',
'description' => lng('admin.phpconfig.homedir')
]
]
]
];
================================================
FILE: lib/formfields/admin/phpconfig/index.html
================================================
================================================
FILE: lib/formfields/admin/plans/formfield.plans_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'plans_add' => [
'title' => lng('admin.plans.add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'plans', 'page' => 'overview'],
'sections' => [
'section_a' => [
'title' => lng('admin.plans.plan_details'),
'fields' => [
'name' => [
'label' => lng('admin.plans.name'),
'type' => 'text',
'mandatory' => true
],
'description' => [
'label' => lng('admin.plans.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/plans/formfield.plans_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'plans_edit' => [
'title' => lng('admin.plans.edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'plans', 'page' => 'overview'],
'sections' => [
'section_a' => [
'title' => lng('admin.plans.plan_details'),
'fields' => [
'name' => [
'label' => lng('admin.plans.name'),
'type' => 'text',
'value' => $result['name'],
'mandatory' => true
],
'description' => [
'label' => lng('admin.plans.description'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $result['description']
]
]
]
]
]
];
================================================
FILE: lib/formfields/admin/plans/index.html
================================================
================================================
FILE: lib/formfields/admin/settings/formfield.settings_import.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'settings_import' => [
'title' => lng('admin.configfiles.importexport'),
'image' => 'fa-solid fa-file-import',
'sections' => [
'section_a' => [
'fields' => [
'import_file' => [
'label' => lng('admin.settings_importfile'),
'type' => 'file',
'mandatory' => true
]
]
]
],
'buttons' => [
[
'label' => lng('panel.upload_import')
]
]
]
];
================================================
FILE: lib/formfields/admin/settings/formfield.settings_mailtest.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'mailtest' => [
'title' => lng('admin.testmail'),
'image' => 'fa-solid fa-paper-plane',
'sections' => [
'section_a' => [
'fields' => [
'smtp_user' => [
'label' => lng('serversettings.mail_smtp_user'),
'type' => 'label',
'value' => (empty(Settings::Get('system.mail_smtp_user')) ? lng('panel.unspecified') : Settings::Get('system.mail_smtp_user'))
],
'smtp_host' => [
'label' => lng('serversettings.mail_smtp_host'),
'type' => 'label',
'value' => (empty(Settings::Get('system.mail_smtp_host')) ? lng('panel.unspecified') : Settings::Get('system.mail_smtp_host'))
],
'smtp_port' => [
'label' => lng('serversettings.mail_smtp_port'),
'type' => 'label',
'value' => (empty(Settings::Get('system.mail_smtp_port')) ? lng('panel.unspecified') : Settings::Get('system.mail_smtp_port'))
],
'smtp_auth' => [
'label' => lng('serversettings.mail_smtp_auth'),
'type' => 'checkbox',
'value' => 1,
'checked' => (bool)Settings::Get('system.mail_use_smtp'),
'disabled' => true
],
'smtp_tls' => [
'label' => lng('serversettings.mail_smtp_usetls'),
'type' => 'checkbox',
'value' => 1,
'checked' => (bool)Settings::Get('system.mail_smtp_usetls'),
'disabled' => true
],
'test_addr' => [
'label' => lng('admin.smtptestaddr'),
'type' => 'email',
'mandatory' => true
]
]
]
],
'buttons' => [
[
'label' => lng('admin.smtptestsend')
]
]
]
];
================================================
FILE: lib/formfields/admin/settings/index.html
================================================
================================================
FILE: lib/formfields/admin/templates/formfield.filetemplate_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'filetemplate_add' => [
'title' => lng('admin.templates.template_add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'templates', 'page' => 'email'],
'sections' => [
'section_a' => [
'title' => lng('admin.templates.template_add'),
'fields' => [
'template' => [
'label' => lng('admin.templates.action'),
'type' => 'select',
'select_var' => $free_templates
],
'file_extension' => [
'label' => lng('admin.templates.file_extension'),
'type' => 'text',
'string_regexp' => '/^[a-zA-Z0-9]{1,6}$/',
'default' => 'html',
'value' => 'html',
'mandatory' => true
],
'filecontent' => [
'label' => lng('admin.templates.filecontent'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'mandatory' => true
],
'filesend' => [
'type' => 'hidden',
'value' => 'filesend'
]
]
]
]
],
'filetemplate_replacers' => [
'replacers' => [
[
'var' => 'SERVERNAME',
'description' => lng('admin.templates.SERVERNAME')
],
[
'var' => 'CUSTOMER',
'description' => lng('admin.templates.CUSTOMER')
],
[
'var' => 'ADMIN',
'description' => lng('admin.templates.ADMIN')
],
[
'var' => 'CUSTOMER_EMAIL',
'description' => lng('admin.templates.CUSTOMER_EMAIL')
],
[
'var' => 'ADMIN_EMAIL',
'description' => lng('admin.templates.ADMIN_EMAIL')
]
]
]
];
================================================
FILE: lib/formfields/admin/templates/formfield.filetemplate_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'filetemplate_edit' => [
'title' => lng('admin.templates.template_edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'templates', 'page' => 'email'],
'sections' => [
'section_a' => [
'title' => lng('admin.templates.template_edit'),
'fields' => [
'template' => [
'label' => lng('admin.templates.action'),
'type' => 'hidden',
'value' => lng('admin.templates.' . $row['varname']),
'display' => lng('admin.templates.' . $row['varname'])
],
'file_extension' => [
'label' => lng('admin.templates.file_extension'),
'type' => 'text',
'string_regexp' => '/^[a-zA-Z0-9]{1,6}$/',
'value' => $row['file_extension'],
'default' => 'html',
'mandatory' => true
],
'filecontent' => [
'label' => lng('admin.templates.filecontent'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $row['value'],
'mandatory' => true
],
'filesend' => [
'type' => 'hidden',
'value' => 'filesend'
]
]
]
]
],
'filetemplate_replacers' => [
'replacers' => [
[
'var' => 'SERVERNAME',
'description' => lng('admin.templates.SERVERNAME')
],
[
'var' => 'CUSTOMER',
'description' => lng('admin.templates.CUSTOMER')
],
[
'var' => 'ADMIN',
'description' => lng('admin.templates.ADMIN')
],
[
'var' => 'CUSTOMER_EMAIL',
'description' => lng('admin.templates.CUSTOMER_EMAIL')
],
[
'var' => 'ADMIN_EMAIL',
'description' => lng('admin.templates.ADMIN_EMAIL')
]
]
]
];
================================================
FILE: lib/formfields/admin/templates/formfield.template_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'template_add' => [
'title' => lng('admin.templates.template_add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'templates', 'page' => 'email', 'action' => 'add'],
'sections' => [
'section_a' => [
'title' => lng('admin.templates.template_add'),
'fields' => [
'language' => [
'label' => lng('login.language'),
'type' => 'hidden',
'value' => $language,
'display' => $language
],
'template' => [
'label' => lng('admin.templates.action'),
'type' => 'hidden',
'value' => $template,
'display' => lng('admin.templates.' . $template)
],
'subject' => [
'label' => lng('admin.templates.subject'),
'type' => 'text',
'value' => $subject
],
'mailbody' => [
'label' => lng('admin.templates.mailbody'),
'type' => 'textarea',
'value' => $body,
'cols' => 60,
'rows' => 12
]
]
]
]
],
'template_replacers' => include __DIR__ . '/template.replacers.php'
];
================================================
FILE: lib/formfields/admin/templates/formfield.template_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'template_edit' => [
'title' => lng('admin.templates.template_edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'templates', 'page' => 'email'],
'sections' => [
'section_a' => [
'title' => lng('admin.templates.template_edit'),
'fields' => [
'language' => [
'label' => lng('login.language'),
'type' => 'hidden',
'value' => $language,
'display' => $language
],
'template' => [
'label' => lng('admin.templates.action'),
'type' => 'hidden',
'value' => $template_name,
'display' => $template_name
],
'subject' => [
'label' => lng('admin.templates.subject'),
'type' => 'text',
'value' => $subject
],
'mailbody' => [
'label' => lng('admin.templates.mailbody'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'value' => $mailbody
],
'subjectid' => [
'type' => 'hidden',
'value' => $subjectid
],
'mailbodyid' => [
'type' => 'hidden',
'value' => $mailbodyid
]
]
]
]
],
'template_replacers' => include __DIR__ . '/template.replacers.php'
];
================================================
FILE: lib/formfields/admin/templates/index.html
================================================
================================================
FILE: lib/formfields/admin/templates/template.replacers.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'replacers' => [
[
'var' => 'SALUTATION',
'description' => lng('admin.templates.SALUTATION')
],
[
'var' => 'FIRSTNAME',
'description' => lng('admin.templates.FIRSTNAME')
],
[
'var' => 'NAME',
'description' => lng('admin.templates.NAME')
],
[
'var' => 'COMPANY',
'description' => lng('admin.templates.COMPANY')
],
[
'var' => 'CUSTOMER_NO',
'description' => lng('admin.templates.CUSTOMER_NO')
],
[
'var' => 'USERNAME',
'description' => lng('admin.templates.USERNAME')
],
[
'var' => 'PASSWORD',
'description' => lng('admin.templates.PASSWORD'),
'visible' => $template == 'createcustomer'
],
[
'var' => 'EMAIL',
'description' => lng('admin.templates.EMAIL'),
'visible' => $template == 'pop_success'
],
[
'var' => 'PASSWORD',
'description' => lng('admin.templates.EMAIL_PASSWORD'),
'visible' => $template == 'pop_success'
],
[
'var' => 'LINK',
'description' => lng('admin.templates.LINK'),
'visible' => $template == 'password_reset'
],
[
'var' => 'TRAFFIC',
'description' => lng('admin.templates.TRAFFIC'),
'visible' => $template == 'trafficmaxpercent'
],
[
'var' => 'TRAFFICUSED',
'description' => lng('admin.templates.TRAFFICUSED'),
'visible' => $template == 'trafficmaxpercent'
],
[
'var' => 'DISKAVAILABLE',
'description' => lng('admin.templates.DISKAVAILABLE'),
'visible' => $template == 'diskmaxpercent'
],
[
'var' => 'DISKUSED',
'description' => lng('admin.templates.DISKUSED'),
'visible' => $template == 'diskmaxpercent'
],
[
'var' => 'MAX_PERCENT',
'description' => lng('admin.templates.MAX_PERCENT'),
'visible' => $template == 'trafficmaxpercent' || $template == 'diskmaxpercent'
],
[
'var' => 'USAGE_PERCENT',
'description' => lng('admin.templates.USAGE_PERCENT'),
'visible' => $template == 'trafficmaxpercent' || $template == 'diskmaxpercent'
],
[
'var' => 'DB_NAME',
'description' => lng('admin.templates.DB_NAME'),
'visible' => $template == 'new_database_by_customer'
],
[
'var' => 'DB_PASS',
'description' => lng('admin.templates.DB_PASS'),
'visible' => $template == 'new_database_by_customer'
],
[
'var' => 'DB_DESC',
'description' => lng('admin.templates.DB_DESC'),
'visible' => $template == 'new_database_by_customer'
],
[
'var' => 'DB_SRV',
'description' => lng('admin.templates.DB_SRV'),
'visible' => $template == 'new_database_by_customer'
],
[
'var' => 'PMA_URI',
'description' => lng('admin.templates.PMA_URI'),
'visible' => $template == 'new_database_by_customer'
],
[
'var' => 'USR_NAME',
'description' => lng('admin.templates.USR_NAME'),
'visible' => $template == 'new_ftpaccount_by_customer'
],
[
'var' => 'USR_PASS',
'description' => lng('admin.templates.USR_PASS'),
'visible' => $template == 'new_ftpaccount_by_customer'
],
[
'var' => 'USR_PATH',
'description' => lng('admin.templates.USR_PATH'),
'visible' => $template == 'new_ftpaccount_by_customer'
]
]
];
================================================
FILE: lib/formfields/customer/domains/formfield.domains_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'domain_add' => [
'title' => lng('domains.subdomain_add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'sections' => [
'section_a' => [
'title' => lng('domains.subdomain_add'),
'fields' => [
'subdomain' => [
'label' => lng('domains.domainname'),
'type' => 'text',
'next_to' => [
'domain' => [
'next_to_prefix' => '.',
'type' => 'select',
'select_var' => $domains
]
]
],
'alias' => [
'label' => lng('domains.aliasdomain'),
'type' => 'select',
'select_var' => $aliasdomains
],
'path' => [
'label' => lng('panel.path'),
'desc' => (Settings::Get('panel.pathedit') != 'Dropdown' ? lng('panel.pathDescriptionSubdomain').(Settings::Get('system.documentroot_use_default_value') == 1 ? lng('panel.pathDescriptionEx') : '') : null),
'type' => $pathSelect['type'],
'select_var' => $pathSelect['select_var'] ?? '',
'selected' => $pathSelect['value'],
'value' => $pathSelect['value'],
'note' => $pathSelect['note'] ?? '',
],
'url' => [
'visible' => Settings::Get('panel.pathedit') == 'Dropdown',
'label' => lng('panel.urloverridespath'),
'type' => 'text'
],
'redirectcode' => [
'visible' => Settings::Get('customredirect.enabled') == '1',
'label' => lng('domains.redirectifpathisurl'),
'desc' => lng('domains.redirectifpathisurlinfo'),
'type' => 'select',
'select_var' => isset($redirectcode) ? $redirectcode : null
],
'selectserveralias' => [
'label' => lng('admin.selectserveralias'),
'desc' => lng('admin.selectserveralias_desc'),
'type' => 'label',
'value' => lng('customer.selectserveralias_addinfo')
],
'openbasedir_path' => [
'label' => lng('domain.openbasedirpath'),
'type' => 'select',
'select_var' => $openbasedir
],
'phpsettingid' => [
'visible' => ((int)Settings::Get('system.mod_fcgid') == 1 || (int)Settings::Get('phpfpm.enabled') == 1) && count($phpconfigs) > 0 && $userinfo['phpenabled'] == '1',
'label' => lng('admin.phpsettings.title'),
'type' => 'select',
'select_var' => $phpconfigs,
'selected' => (int)Settings::Get('phpfpm.enabled') == 1 ? Settings::Get('phpfpm.defaultini') : Settings::Get('system.mod_fcgid_defaultini')
],
'speciallogfile' => [
'label' => lng('admin.speciallogfile.title'),
'desc' => lng('admin.speciallogfile.description'),
'type' => 'select',
'select_var' => [
0 => lng('panel.no'),
1 => lng('panel.yes'),
2 => lng('domain.inherited')
],
'selected' => 2
],
]
],
'section_bssl' => [
'title' => lng('admin.webserversettings_ssl'),
'visible' => Settings::Get('system.use_ssl') == '1' && $ssl_ipsandports,
'fields' => [
'sslenabled' => [
'label' => lng('admin.domain_sslenabled'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'ssl_redirect' => [
'label' => lng('domains.ssl_redirect.title'),
'desc' => lng('domains.ssl_redirect.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'letsencrypt' => [
'visible' => Settings::Get('system.leenabled') == '1',
'label' => lng('customer.letsencrypt.title'),
'desc' => lng('customer.letsencrypt.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'http2' => [
'visible' => $ssl_ipsandports && Settings::Get('system.http2_support') == '1',
'label' => lng('admin.domain_http2.title'),
'desc' => lng('admin.domain_http2.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'http3' => [
'visible' => $ssl_ipsandports && Settings::Get('system.webserver') == 'nginx' && Settings::Get('system.http3_support') == '1',
'label' => lng('admin.domain_http3.title'),
'desc' => lng('admin.domain_http3.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'hsts_maxage' => [
'label' => lng('admin.domain_hsts_maxage.title'),
'desc' => lng('admin.domain_hsts_maxage.description'),
'type' => 'number',
'min' => 0,
'max' => 94608000, // 3-years
'value' => 0
],
'hsts_sub' => [
'label' => lng('admin.domain_hsts_incsub.title'),
'desc' => lng('admin.domain_hsts_incsub.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'hsts_preload' => [
'label' => lng('admin.domain_hsts_preload.title'),
'desc' => lng('admin.domain_hsts_preload.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/domains/formfield.domains_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Domain\Domain;
use Froxlor\Settings;
return [
'domain_edit' => [
'title' => lng('domains.subdomain_edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'sections' => [
'section_a' => [
'title' => lng('domains.subdomain_edit'),
'fields' => [
'domain' => [
'label' => lng('domains.domainname'),
'type' => 'label',
'value' => $result['domain']
],
'dns' => [
'label' => lng('dns.destinationip'),
'type' => 'itemlist',
'values' => $domainips
],
'alias' => [
'visible' => $alias_check == '0' && (int)$result['email_only'] == 0,
'label' => lng('domains.aliasdomain'),
'type' => 'select',
'select_var' => $domains,
'selected' => $result['aliasdomain']
],
'path' => [
'visible' => (int)$result['email_only'] == 0,
'label' => lng('panel.path'),
'desc' => (Settings::Get('panel.pathedit') != 'Dropdown' ? lng('panel.pathDescriptionSubdomain').(Settings::Get('system.documentroot_use_default_value') == 1 ? lng('panel.pathDescriptionEx') : '') : null),
'type' => $pathSelect['type'],
'select_var' => $pathSelect['select_var'] ?? '',
'selected' => $pathSelect['value'],
'value' => $pathSelect['value'],
'note' => $pathSelect['note'] ?? '',
],
'url' => [
'visible' => Settings::Get('panel.pathedit') == 'Dropdown' && (int)$result['email_only'] == 0,
'label' => lng('panel.urloverridespath'),
'type' => 'text',
'value' => $urlvalue
],
'redirectcode' => [
'visible' => Settings::Get('customredirect.enabled') == '1' && (int)$result['email_only'] == 0,
'label' => lng('domains.redirectifpathisurl'),
'desc' => lng('domains.redirectifpathisurlinfo'),
'type' => 'select',
'select_var' => $redirectcode,
'selected' => $def_code
],
'selectserveralias' => [
'visible' => (($result['parentdomainid'] == '0' && $userinfo['subdomains'] != '0') || $result['parentdomainid'] != '0') && (int)$result['email_only'] == 0,
'label' => lng('admin.selectserveralias'),
'desc' => lng('admin.selectserveralias_desc'),
'type' => 'select',
'select_var' => $serveraliasoptions,
'selected' => $serveraliasoptions_selected
],
'isemaildomain' => [
'visible' => (($result['subcanemaildomain'] == '1' || $result['subcanemaildomain'] == '2') && $result['parentdomainid'] != '0') && (int)$result['email_only'] == 0,
'label' => 'Emaildomain',
'type' => 'checkbox',
'value' => '1',
'checked' => $result['isemaildomain']
],
'openbasedir_path' => [
'visible' => $result['openbasedir'] == '1' && (int)$result['email_only'] == 0,
'label' => lng('domain.openbasedirpath'),
'type' => 'select',
'select_var' => $openbasedir,
'selected' => $result['openbasedir_path']
],
'phpsettingid' => [
'visible' => ((int)Settings::Get('system.mod_fcgid') == 1 || (int)Settings::Get('phpfpm.enabled') == 1) && count($phpconfigs) > 0 && $userinfo['phpenabled'] == '1' && $result['phpenabled'] == '1' && (int)$result['email_only'] == 0,
'label' => lng('admin.phpsettings.title'),
'type' => 'select',
'select_var' => $phpconfigs,
'selected' => $result['phpsettingid']
],
'speciallogfile' => [
'visible' => (int)$result['email_only'] == 0,
'label' => lng('admin.speciallogfile.title'),
'desc' => lng('admin.speciallogfile.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['speciallogfile']
],
'speciallogverified' => [
'type' => 'hidden',
'value' => '0'
],
'spf_entry' => [
'visible' => (Settings::Get('system.bind_enable') == '0' && Settings::Get('spf.use_spf') == '1' && $result['isemaildomain'] == '1'),
'label' => lng('antispam.required_spf_dns'),
'type' => 'longtext',
'value' => (string)(new \Froxlor\Dns\DnsEntry('@', 'TXT', \Froxlor\Dns\Dns::encloseTXTContent(Settings::Get('spf.spf_entry'))))
],
'dmarc_entry' => [
'visible' => (Settings::Get('system.bind_enable') == '0' && Settings::Get('dmarc.use_dmarc') == '1' && $result['isemaildomain'] == '1'),
'label' => lng('antispam.required_dmarc_dns'),
'type' => 'longtext',
'value' => (string)(new \Froxlor\Dns\DnsEntry('_dmarc', 'TXT', \Froxlor\Dns\Dns::encloseTXTContent(Settings::Get('dmarc.dmarc_entry'))))
],
'dkim_entry' => [
'visible' => (Settings::Get('system.bind_enable') == '0' && Settings::Get('antispam.activated') == '1' && $result['dkim'] == '1' && $result['dkim_pubkey'] != ''),
'label' => lng('antispam.required_dkim_dns'),
'type' => 'longtext',
'value' => (string)(new \Froxlor\Dns\DnsEntry('dkim' . $result['dkim_id'] . '._domainkey', 'TXT', '"v=DKIM1; k=rsa; p='.trim($result['dkim_pubkey']).'"'))
],
]
],
'section_bssl' => [
'title' => lng('admin.webserversettings_ssl'),
'visible' => Settings::Get('system.use_ssl') == '1' && $ssl_ipsandports && Domain::domainHasSslIpPort($result['id']) && (int)$result['email_only'] == 0,
'fields' => [
'sslenabled' => [
'label' => lng('admin.domain_sslenabled'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl_enabled']
],
'ssl_redirect' => [
'label' => lng('domains.ssl_redirect.title'),
'desc' => lng('domains.ssl_redirect.description') . ($result['temporary_ssl_redirect'] > 1 ? lng('domains.ssl_redirect_temporarilydisabled') : ''),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['ssl_redirect']
],
'letsencrypt' => [
'visible' => Settings::Get('system.leenabled') == '1',
'label' => lng('customer.letsencrypt.title'),
'desc' => lng('customer.letsencrypt.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['letsencrypt']
],
'http2' => [
'visible' => $ssl_ipsandports && Settings::Get('system.http2_support') == '1',
'label' => lng('admin.domain_http2.title'),
'desc' => lng('admin.domain_http2.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['http2']
],
'http3' => [
'visible' => $ssl_ipsandports && Settings::Get('system.webserver') == 'nginx' && Settings::Get('system.http3_support') == '1',
'label' => lng('admin.domain_http3.title'),
'desc' => lng('admin.domain_http3.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['http3']
],
'hsts_maxage' => [
'label' => lng('admin.domain_hsts_maxage.title'),
'desc' => lng('admin.domain_hsts_maxage.description'),
'type' => 'number',
'min' => 0,
'max' => 94608000, // 3-years
'value' => $result['hsts']
],
'hsts_sub' => [
'label' => lng('admin.domain_hsts_incsub.title'),
'desc' => lng('admin.domain_hsts_incsub.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['hsts_sub']
],
'hsts_preload' => [
'label' => lng('admin.domain_hsts_preload.title'),
'desc' => lng('admin.domain_hsts_preload.description'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['hsts_preload']
]
]
]
],
'buttons' => ((int)$result['email_only'] == 1) ? [] : null
]
];
================================================
FILE: lib/formfields/customer/domains/index.html
================================================
================================================
FILE: lib/formfields/customer/email/formfield.emails_accountchangepasswd.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'emails_accountchangepasswd' => [
'title' => lng('menue.main.changepassword'),
'image' => 'fa-solid fa-pen',
'sections' => [
'section_a' => [
'title' => lng('menue.main.changepassword'),
'fields' => [
'emailaddr' => [
'label' => lng('emails.emailaddress'),
'type' => 'label',
'value' => $result['email_full']
],
'email_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'next_to' => [
'email_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/email/formfield.emails_accountchangequota.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'emails_accountchangequota' => [
'title' => lng('emails.quota_edit'),
'image' => 'fa-solid fa-pen',
'sections' => [
'section_a' => [
'title' => lng('emails.quota_edit'),
'fields' => [
'emailaddr' => [
'label' => lng('emails.emailaddress'),
'type' => 'label',
'value' => $result['email_full']
],
'email_quota' => [
'label' => lng('emails.quota') . ' (MiB)',
'type' => 'text',
'value' => $result['quota']
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/email/formfield.emails_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
$email_domainid ?: 0;
return [
'emails_add' => [
'title' => lng('emails.emails_add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'email', 'page' => $email_domainid != 0 ? 'email_domain' : 'emails', 'domainid' => $email_domainid],
'sections' => [
'section_a' => [
'title' => lng('emails.emails_add'),
'fields' => [
'email_part' => [
'label' => lng('emails.emailaddress'),
'type' => 'text',
'mandatory' => true,
'next_to' => [
'domain' => [
'next_to_prefix' => '@',
'type' => 'select',
'select_var' => $domains,
'selected' => $selected_domain
]
]
],
'iscatchall' => [
'label' => lng('emails.iscatchall'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/email/formfield.emails_addaccount.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'emails_addaccount' => [
'title' => lng('emails.account_add'),
'image' => 'fa-solid fa-plus',
'sections' => [
'section_a' => [
'title' => lng('emails.account_add'),
'fields' => [
'emailaddr' => [
'label' => lng('emails.emailaddress'),
'type' => 'label',
'value' => $result['email_full']
],
'email_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'mandatory' => true,
'next_to' => [
'email_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'email_quota' => [
'visible' => Settings::Get('system.mail_quota_enabled') == '1',
'label' => lng('emails.quota'),
'desc' => "MiB",
'type' => 'number',
'value' => $quota
],
'alternative_email' => [
'visible' => Settings::Get('panel.sendalternativemail') == '1',
'label' => lng('emails.alternative_emailaddress'),
'type' => 'text'
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/email/formfield.emails_addforwarder.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'emails_addforwarder' => [
'title' => lng('emails.forwarder_add'),
'image' => 'fa-solid fa-plus',
'sections' => [
'section_a' => [
'title' => lng('emails.forwarder_add'),
'fields' => [
'emailaddr' => [
'label' => lng('emails.from'),
'type' => 'label',
'value' => $result['email_full']
],
'destination' => [
'label' => lng('emails.to'),
'type' => 'email',
'mandatory' => true
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/email/formfield.emails_addsender.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'emails_addsender' => [
'title' => lng('emails.sender_add'),
'image' => 'fa-solid fa-plus',
'sections' => [
'section_a' => [
'title' => lng('emails.sender_add'),
'fields' => [
'emailaddr' => [
'label' => lng('emails.account'),
'type' => 'label',
'value' => $result['email_full']
],
'allowed_sender' => [
'label' => lng('emails.foreign_sender').'*',
'type' => 'text',
'string_regex' => '/^[A-Za-z0-9._+-]+$/',
'placeholder' => '(all)',
'next_to' => [
'allowed_domain' => (Settings::Get('mail.allow_external_domains') == '0' ?
[
'next_to_prefix' => '@',
'type' => 'select',
'select_var' => $domains,
]
:
[
'next_to_prefix' => '@',
'type' => 'text',
'placeholder' => 'domain.tld',
'mandatory' => true
])
]
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/email/formfield.emails_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'emails_edit' => [
'title' => lng('emails.emails_edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'email', 'page' => 'email_domain', 'domainid' => $result['domainid']],
'sections' => [
'section_a' => [
'title' => lng('emails.emails_edit'),
'fields' => [
'email_full' => [
'label' => lng('emails.emailaddress'),
'type' => 'label',
'value' => $result['email_full']
],
'account_yes' => [
'visible' => (int)$result['popaccountid'] != 0,
'label' => lng('emails.account'),
'type' => 'label',
'value' => lng('panel.yes'),
'next_to' => [
'edit_link' => [
'type' => 'link',
'href' => $filename . '?page=accounts&domainid=' . $result['domainid'] . '&action=changepw&id=' . $result['id'],
'label' => lng('menue.main.changepassword'),
'classes' => 'btn btn-sm btn-secondary'
],
'del_link' => [
'type' => 'link',
'href' => $filename . '?page=accounts&domainid=' . $result['domainid'] . '&action=delete&id=' . $result['id'],
'label' => lng('emails.account_delete'),
'classes' => 'btn btn-sm btn-danger'
]
]
],
'account_no' => [
'visible' => (int)$result['popaccountid'] == 0,
'label' => lng('emails.account'),
'type' => 'label',
'value' => lng('panel.no'),
'next_to' => [
'add_link' => [
'type' => 'link',
'href' => $filename . '?page=accounts&domainid=' . $result['domainid'] . '&action=add&id=' . $result['id'],
'label' => lng('emails.account_add'),
'classes' => 'btn btn-sm btn-primary'
]
]
],
'mail_quota' => [
'visible' => ((int)$result['popaccountid'] != 0 && Settings::Get('system.mail_quota_enabled')),
'label' => lng('customer.email_quota'),
'type' => 'label',
'value' => $result['quota'] . ' MiB',
'next_to' => [
'add_link' => [
'visible' => ((int)$result['popaccountid'] != 0 && Settings::Get('system.mail_quota_enabled')),
'type' => 'link',
'href' => $filename . '?page=accounts&domainid=' . $result['domainid'] . '&action=changequota&id=' . $result['id'],
'label' => lng('emails.quota_edit'),
'classes' => 'btn btn-sm btn-secondary'
]
]
],
'iscatchall' => [
'visible' => Settings::Get('catchall.catchall_enabled') == '1',
'label' => lng('emails.catchall'),
'type' => 'checkbox',
'value' => '1',
'checked' => (int)$result['iscatchall'],
],
'bypass_spam' => [
'visible' => Settings::Get('antispam.activated') == '1' && (int)Settings::Get('antispam.default_bypass_spam') <= 2,
'label' => lng('antispam.bypass_spam'),
'type' => 'checkbox',
'value' => '1',
'checked' => (int)$result['bypass_spam'],
],
'spam_tag_level' => [
'visible' => Settings::Get('antispam.activated') == '1',
'label' => lng('antispam.spam_tag_level'),
'type' => 'number',
'min' => 0,
'step' => 0.1,
'value' => $result['spam_tag_level'],
],
'rewrite_subject' => [
'visible' => Settings::Get('antispam.activated') == '1' && (int)Settings::Get('antispam.default_spam_rewrite_subject') <= 2,
'label' => lng('antispam.rewrite_subject'),
'type' => 'checkbox',
'value' => '1',
'checked' => (int)$result['rewrite_subject'],
],
'spam_kill_level' => [
'visible' => Settings::Get('antispam.activated') == '1',
'label' => lng('antispam.spam_kill_level'),
'desc' => lng('panel.use_checkbox_to_disable'),
'type' => 'textul',
'step' => 0.1,
'value' => $result['spam_kill_level']
],
'policy_greylist' => [
'visible' => Settings::Get('antispam.activated') == '1' && (int)Settings::Get('antispam.default_policy_greylist') <= 2,
'label' => lng('antispam.policy_greylist'),
'type' => 'checkbox',
'value' => '1',
'checked' => (int)$result['policy_greylist'],
],
'mail_fwds' => [
'label' => lng('emails.forwarders') . ' (' . $forwarders_count . ')',
'type' => 'itemlist',
'values' => $forwarders,
'next_to' => [
'add_link' => [
'type' => 'link',
'href' => $filename . '?page=forwarders&domainid=' . $result['domainid'] . '&action=add&id=' . $result['id'],
'label' => lng('emails.forwarder_add'),
'classes' => 'btn btn-sm btn-primary'
]
]
],
'mail_senders' => [
'visible' => ((int)$result['popaccountid'] != 0 && Settings::Get('mail.enable_allow_sender') == '1'),
'label' => lng('emails.senders') . ' (' . $senders_count . ')',
'type' => 'itemlist',
'values' => $senders,
'next_to' => [
'add_link' => [
'type' => 'link',
'href' => $filename . '?page=senders&domainid=' . $result['domainid'] . '&action=add&id=' . $result['id'],
'label' => lng('emails.sender_add'),
'classes' => 'btn btn-sm btn-primary'
]
]
]
]
]
],
'buttons' => [
[
'label' => lng('panel.save')
]
]
]
];
================================================
FILE: lib/formfields/customer/email/index.html
================================================
================================================
FILE: lib/formfields/customer/extras/formfield.export.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*
*/
use Froxlor\Settings;
return [
'export' => [
'title' => lng('extras.export'),
'image' => 'fa-solid fa-server',
'sections' => [
'section_a' => [
'title' => lng('extras.export'),
'fields' => [
'path' => [
'label' => lng('panel.exportpath.title'),
'desc' => lng('panel.exportpath.description') . ' ' . (Settings::Get('panel.pathedit') != 'Dropdown' ? lng('panel.pathDescription') : null),
'type' => $pathSelect['type'],
'select_var' => $pathSelect['select_var'] ?? '',
'selected' => $pathSelect['value'],
'value' => $pathSelect['value'],
'note' => $pathSelect['note'] ?? '',
],
'pgp_public_key' => [
'label' => lng('panel.export_pgp_public_key.title'),
'desc' => lng('panel.export_pgp_public_key.description'),
'type' => 'textarea',
],
'path_protection_info' => [
'label' => lng('extras.path_protection_label'),
'type' => 'infotext',
'value' => lng('extras.path_protection_info'),
'classes' => 'fw-bold text-danger'
],
'dump_web' => [
'label' => lng('extras.dump_web'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'dump_mail' => [
'label' => lng('extras.dump_mail'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
'dump_dbs' => [
'label' => lng('extras.dump_dbs'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/extras/formfield.htaccess_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'htaccess_add' => [
'title' => lng('extras.pathoptions_add'),
'image' => 'fa-solid fa-folder',
'self_overview' => ['section' => 'extras', 'page' => 'htaccess'],
'sections' => [
'section_a' => [
'title' => lng('extras.pathoptions_add'),
'fields' => [
'path' => [
'label' => lng('panel.path'),
'desc' => (Settings::Get('panel.pathedit') != 'Dropdown' ? lng('panel.pathDescription') : null),
'type' => $pathSelect['type'],
'select_var' => $pathSelect['select_var'] ?? '',
'selected' => $pathSelect['value'],
'value' => $pathSelect['value'],
'note' => $pathSelect['note'] ?? '',
'mandatory' => true
],
'options_indexes' => [
'label' => lng('extras.directory_browsing'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'error404path' => [
'label' => lng('extras.errordocument404path'),
'desc' => lng('panel.descriptionerrordocument'),
'type' => 'text'
],
'error403path' => [
'visible' => (Settings::Get('system.webserver') == 'apache2'),
'label' => lng('extras.errordocument403path'),
'desc' => lng('panel.descriptionerrordocument'),
'type' => 'text'
],
'error500path' => [
'visible' => (Settings::Get('system.webserver') == 'apache2'),
'label' => lng('extras.errordocument500path'),
'desc' => lng('panel.descriptionerrordocument'),
'type' => 'text'
],
'options_cgi' => [
'visible' => ($cperlenabled == 1),
'label' => lng('extras.execute_perl'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/extras/formfield.htaccess_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
return [
'htaccess_edit' => [
'title' => lng('extras.pathoptions_edit'),
'image' => 'fa-solid fa-folder',
'self_overview' => ['section' => 'extras', 'page' => 'htaccess'],
'sections' => [
'section_a' => [
'title' => lng('extras.pathoptions_edit'),
'fields' => [
'path' => [
'label' => lng('panel.path'),
'type' => 'label',
'value' => $result['path']
],
'options_indexes' => [
'label' => lng('extras.directory_browsing'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['options_indexes']
],
'error404path' => [
'label' => lng('extras.errordocument404path'),
'desc' => lng('panel.descriptionerrordocument'),
'type' => 'text',
'value' => $result['error404path']
],
'error403path' => [
'visible' => (Settings::Get('system.webserver') == 'apache2'),
'label' => lng('extras.errordocument403path'),
'desc' => lng('panel.descriptionerrordocument'),
'type' => 'text',
'value' => $result['error403path']
],
'error500path' => [
'visible' => (Settings::Get('system.webserver') == 'apache2'),
'label' => lng('extras.errordocument500path'),
'desc' => lng('panel.descriptionerrordocument'),
'type' => 'text',
'value' => $result['error500path']
],
'options_cgi' => [
'visible' => ($cperlenabled == 1),
'label' => lng('extras.execute_perl'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['options_cgi']
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/extras/formfield.htpasswd_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'htpasswd_add' => [
'title' => lng('extras.directoryprotection_add'),
'image' => 'fa-solid fa-lock',
'self_overview' => ['section' => 'extras', 'page' => 'htpasswds'],
'sections' => [
'section_a' => [
'title' => lng('extras.directoryprotection_add'),
'fields' => [
'path' => [
'label' => lng('panel.path'),
'desc' => (Settings::Get('panel.pathedit') != 'Dropdown' ? lng('panel.pathDescription') : null),
'type' => $pathSelect['type'],
'select_var' => $pathSelect['select_var'] ?? '',
'selected' => $pathSelect['value'],
'value' => $pathSelect['value'],
'note' => $pathSelect['note'] ?? '',
'mandatory' => true
],
'username' => [
'label' => lng('login.username'),
'type' => 'text',
'mandatory' => true
],
'directory_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'mandatory' => true,
'next_to' => [
'directory_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'directory_authname' => [
'label' => lng('extras.htpasswdauthname'),
'type' => 'text',
'mandatory' => true
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/extras/formfield.htpasswd_edit.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'htpasswd_edit' => [
'title' => lng('extras.directoryprotection_edit'),
'image' => 'fa-solid fa-lock',
'self_overview' => ['section' => 'extras', 'page' => 'htpasswds'],
'sections' => [
'section_a' => [
'title' => lng('extras.directoryprotection_edit'),
'fields' => [
'path' => [
'label' => lng('panel.path'),
'type' => 'label',
'value' => $result['path']
],
'username' => [
'label' => lng('login.username'),
'type' => 'label',
'value' => $result['username']
],
'directory_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'next_to' => [
'directory_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'directory_authname' => [
'label' => lng('extras.htpasswdauthname'),
'type' => 'text',
'value' => $result['authname'],
'mandatory' => true
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/extras/index.html
================================================
================================================
FILE: lib/formfields/customer/ftp/formfield.ftp_add.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*/
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'ftp_add' => [
'title' => lng('ftp.account_add'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'ftp', 'page' => 'accounts'],
'sections' => [
'section_a' => [
'title' => lng('ftp.account_add'),
'fields' => [
'ftp_username' => [
'visible' => Settings::Get('customer.ftpatdomain') == '1',
'label' => lng('login.username'),
'type' => 'text',
'next_to' => (Settings::Get('customer.ftpatdomain') == '1' && count($domainlist) > 0 ? [
'ftp_domain' => [
'next_to_prefix' => '@',
'label' => lng('domains.domainname'),
'type' => 'select',
'select_var' => $domainlist
],
]
: [])
],
'ftp_description' => [
'label' => lng('panel.ftpdesc'),
'type' => 'text'
],
'path' => [
'label' => lng('panel.path'),
'desc' => (Settings::Get('panel.pathedit') != 'Dropdown' ? lng('panel.pathDescription') : null),
'type' => $pathSelect['type'],
'select_var' => $pathSelect['select_var'] ?? '',
'selected' => $pathSelect['value'],
'value' => $pathSelect['value'],
'note' => $pathSelect['note'] ?? '',
'mandatory' => true
],
'ftp_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'mandatory' => true,
'next_to' => [
'ftp_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'sendinfomail' => [
'label' => lng('customer.sendinfomail'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
],
'shell' => [
'visible' => Settings::Get('system.allow_customer_shell') == '1' && $user_shell_allowed,
'label' => lng('panel.shell'),
'type' => 'select',
'select_var' => $shells,
'selected' => '/bin/false'
],
'login_enabled' => [
'label' => lng('panel.active'),
'type' => 'checkbox',
'value' => '1',
'checked' => true
],
]
]
]
]
];
================================================
FILE: lib/formfields/customer/ftp/formfield.ftp_edit.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*/
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'ftp_edit' => [
'title' => lng('ftp.account_edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'ftp', 'page' => 'accounts'],
'sections' => [
'section_a' => [
'title' => lng('ftp.account_edit'),
'fields' => [
'username' => [
'label' => lng('login.username'),
'type' => 'label',
'value' => $result['username']
],
'ftp_description' => [
'label' => lng('panel.ftpdesc'),
'type' => 'text',
'value' => $result['description']
],
'path' => [
'label' => lng('panel.path'),
'desc' => (Settings::Get('panel.pathedit') != 'Dropdown' ? lng('panel.pathDescription') : null),
'type' => $pathSelect['type'],
'select_var' => $pathSelect['select_var'] ?? '',
'selected' => $pathSelect['value'],
'value' => $pathSelect['value'],
'note' => $pathSelect['note'] ?? '',
'mandatory' => true
],
'ftp_password' => [
'label' => lng('login.password'),
'desc' => lng('ftp.editpassdescription'),
'type' => 'password',
'autocomplete' => 'new-password',
'next_to' => [
'ftp_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'shell' => [
'visible' => Settings::Get('system.allow_customer_shell') == '1' && $user_shell_allowed,
'label' => lng('panel.shell'),
'type' => 'select',
'select_var' => $shells,
'selected' => $result['shell'] ?? '/bin/false'
],
'login_enabled' => [
'label' => lng('panel.active'),
'type' => 'checkbox',
'value' => '1',
'checked' => $result['login_enabled'] == 'Y',
],
]
]
]
]
];
================================================
FILE: lib/formfields/customer/ftp/formfield.ftp_ssh_add.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*/
return [
'sshkey_add' => [
'title' => lng('ftp.sshkey_add'),
'image' => 'fa-solid fa-key',
'self_overview' => ['section' => 'ftp', 'page' => 'sshkeys'],
'sections' => [
'section_a' => [
'title' => lng('ftp.sshkey_add'),
'fields' => [
'description' => [
'label' => lng('panel.sshkeydesc'),
'type' => 'text'
],
'ftpuser' => [
'label' => lng('panel.ftpuser'),
'type' => 'select',
'select_var' => $userList,
'mandatory' => true
],
'ssh_pubkey' => [
'label' => lng('panel.sshpubkey'),
'placeholder' => lng('panel.sshpubkeyph'),
'type' => 'textarea',
'cols' => 60,
'rows' => 12,
'mandatory' => true
],
]
]
]
]
];
================================================
FILE: lib/formfields/customer/ftp/formfield.ftp_ssh_edit.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*/
return [
'sshkey_edit' => [
'title' => lng('ftp.sshkey_edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'ftp', 'page' => 'sshkeys'],
'sections' => [
'section_a' => [
'title' => lng('ftp.sshkey_edit'),
'fields' => [
'username' => [
'label' => lng('login.username'),
'type' => 'label',
'value' => $result['username']
],
'fingerprint' => [
'label' => lng('panel.sshfingerprint'),
'type' => 'label',
'value' => $result['fingerprint']
],
'description' => [
'label' => lng('panel.sshkeydesc'),
'type' => 'text',
'value' => $result['description']
],
]
]
]
]
];
================================================
FILE: lib/formfields/customer/ftp/index.html
================================================
================================================
FILE: lib/formfields/customer/index.html
================================================
================================================
FILE: lib/formfields/customer/mysql/formfield.mysql_add.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*/
return [
'mysql_add' => [
'title' => lng('mysql.database_create'),
'image' => 'fa-solid fa-plus',
'self_overview' => ['section' => 'mysql', 'page' => 'mysqls'],
'sections' => [
'section_a' => [
'title' => lng('mysql.database_create'),
'fields' => [
'custom_suffix' => [
'visible' => strtoupper(Settings::Get('customer.mysqlprefix')) == 'DBNAME',
'label' => lng('mysql.databasename'),
'type' => 'text'
],
'description' => [
'label' => lng('mysql.databasedescription'),
'type' => 'text'
],
'mysql_server' => [
'visible' => count($mysql_servers) > 1,
'label' => lng('mysql.mysql_server'),
'type' => 'select',
'select_var' => $mysql_servers
],
'mysql_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'mandatory' => true,
'next_to' => [
'mysql_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
],
'sendinfomail' => [
'label' => lng('customer.sendinfomail'),
'type' => 'checkbox',
'value' => '1',
'checked' => false
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/mysql/formfield.mysql_edit.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*/
use Froxlor\Settings;
use Froxlor\System\Crypt;
return [
'mysql_edit' => [
'title' => lng('mysql.database_edit'),
'image' => 'fa-solid fa-pen',
'self_overview' => ['section' => 'mysql', 'page' => 'mysqls'],
'sections' => [
'section_a' => [
'title' => lng('mysql.database_edit'),
'fields' => [
'databasename' => [
'label' => lng('mysql.databasename'),
'type' => 'label',
'value' => $result['databasename']
],
'mysql_server' => [
'visible' => count($mysql_servers) > 1,
'type' => 'hidden',
'value' => $result['dbserver'] ?? 0,
],
'mysql_server_info' => [
'visible' => count($mysql_servers) > 1,
'label' => lng('mysql.mysql_server'),
'type' => 'label',
'disabled' => true,
'value' => $mysql_servers[$result['dbserver']] ?? 'unknown db server',
],
'description' => [
'label' => lng('mysql.databasedescription'),
'type' => 'text',
'value' => $result['description']
],
'mysql_password' => [
'label' => lng('changepassword.new_password_ifnotempty'),
'type' => 'password',
'autocomplete' => 'new-password',
'next_to' => [
'mysql_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/mysql/formfield.mysql_global_user.php
================================================
(2010-)
* @license GPLv2 https://files.froxlor.org/misc/COPYING.txt
* @package Formfields
*/
return [
'mysql_global_user' => [
'title' => lng('mysql.edit_global_user'),
'self_overview' => ['section' => 'mysql', 'page' => 'mysqls'],
'sections' => [
'section_a' => [
'title' => lng('mysql.edit_global_user'),
'fields' => [
'username' => [
'label' => lng('login.username'),
'value' => $userinfo['loginname'],
'type' => 'text',
'readonly' => true
],
'mysql_password' => [
'label' => lng('login.password'),
'type' => 'password',
'autocomplete' => 'new-password',
'mandatory' => true,
'next_to' => [
'mysql_password_suggestion' => [
'next_to_prefix' => lng('customer.generated_pwd') . ':',
'type' => 'text',
'visible' => (Settings::Get('panel.password_regex') == ''),
'value' => Crypt::generatePassword(),
'readonly' => true
]
]
]
]
]
]
]
];
================================================
FILE: lib/formfields/customer/mysql/index.html
================================================
================================================
FILE: lib/formfields/formfield.api_key.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'apikey' => [
'title' => lng('menue.main.apikeys'),
'sections' => [
'section_a' => [
'fields' => [
'loginname' => [
'label' => lng('login.username'),
'type' => 'label',
'value' => $result['loginname'] ?? $result['adminname']
],
'apikey' => [
'label' => 'API key',
'type' => 'text',
'readonly' => true,
'value' => $result['apikey']
],
'secret' => [
'label' => 'Secret',
'type' => 'text',
'readonly' => true,
'value' => $result['secret']
],
'allowed_from' => [
'label' => [
'title' => lng('apikeys.allowed_from'),
'description' => lng('apikeys.allowed_from_help')
],
'type' => 'text',
'value' => $result['allowed_from'],
],
'valid_until' => [
'label' => [
'title' => lng('apikeys.valid_until'),
'description' => lng('apikeys.valid_until_help')
],
'type' => 'datetime-local',
'value' => $result['valid_until'] < 0 ? "" : date('Y-m-d\TH:i', $result['valid_until'])
]
]
]
]
]
];
================================================
FILE: lib/formfields/formfield.dns_add.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'dns_add' => [
'title' => 'DNS Editor',
'image' => 'fa-solid fa-globe',
'sections' => [
'section_a' => [
'fields' => [
'dns_record' => [
'label' => 'Record',
'type' => 'text',
'value' => $record,
'mandatory' => true
],
'dns_type' => [
'label' => 'Type',
'type' => 'select',
'select_var' => [
'A' => 'A',
'AAAA' => 'AAAA',
'CAA' => 'CAA',
'CNAME' => 'CNAME',
'DNAME' => 'DNAME',
'LOC' => 'LOC',
'MX' => 'MX',
'NS' => 'NS',
'RP' => 'RP',
'SRV' => 'SRV',
'SSHFP' => 'SSHFP',
'TLSA' => 'TLSA',
'TXT' => 'TXT'
],
'selected' => $type
],
'dns_mxp' => [
'label' => 'Priority',
'type' => 'number',
'value' => $prio
],
'dns_content' => [
'label' => 'Content',
'type' => 'text',
'value' => $content,
'note' => lng('dnseditor.notes.A')
],
'dns_ttl' => [
'label' => 'TTL',
'type' => 'number',
'min' => 30,
'value' => $ttl
]
]
]
]
]
];
================================================
FILE: lib/formfields/formfield.domain_ssleditor.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'domain_ssleditor' => [
'title' => lng('panel.ssleditor'),
'image' => 'fa-solid fa-lock',
'sections' => [
'section_a' => [
'title' => 'SSL certificates',
'fields' => [
'domainname' => [
'label' => lng('domains.domainname'),
'type' => 'label',
'value' => $result_domain['domain']
],
'ssl_cert_file' => [
'label' => lng('admin.ipsandports.ssl_cert_file_content'),
'desc' => lng('admin.ipsandports.ssl_paste_description'),
'type' => 'textarea',
'cols' => 100,
'rows' => 15,
'value' => $result['ssl_cert_file'],
'placeholder' => lng('domain.ssl_certificate_placeholder'),
'mandatory' => true
],
'ssl_key_file' => [
'label' => lng('admin.ipsandports.ssl_key_file_content'),
'desc' => lng('admin.ipsandports.ssl_paste_description'),
'type' => 'textarea',
'cols' => 100,
'rows' => 15,
'value' => $result['ssl_key_file'],
'placeholder' => lng('domain.ssl_key_placeholder'),
'mandatory' => true
],
'ssl_cert_chainfile' => [
'label' => lng('admin.ipsandports.ssl_cert_chainfile_content'),
'desc' => lng('admin.ipsandports.ssl_paste_description') . lng('admin.ipsandports.ssl_cert_chainfile_content_desc'),
'type' => 'textarea',
'cols' => 100,
'rows' => 15,
'value' => $result['ssl_cert_chainfile']
],
'ssl_ca_file' => [
'label' => lng('admin.ipsandports.ssl_ca_file_content'),
'desc' => lng('admin.ipsandports.ssl_paste_description') . lng('admin.ipsandports.ssl_ca_file_content_desc'),
'type' => 'textarea',
'cols' => 100,
'rows' => 15,
'value' => $result['ssl_ca_file']
],
'do_insert' => [
'type' => 'hidden',
'value' => '1',
'visible' => empty($result['ssl_cert_file'])
]
]
]
]
]
];
================================================
FILE: lib/formfields/index.html
================================================
================================================
FILE: lib/formfields/install/formfield.install.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Froxlor;
$httpuser = '';
$httpgroup = '';
if (extension_loaded('posix')) {
$httpuser = posix_getpwuid(posix_getuid())['name'] ?? '';
$httpgroup = posix_getgrgid(posix_getgid())['name'] ?? '';
}
return [
'install' => [
'title' => 'install',
'sections' => [
'step1' => [
'title' => lng('install.database.title'),
'description' => lng('install.database.description'),
'fields' => [
'mysql_host' => [
'label' => lng('mysql.mysql_server'),
'placeholder' => lng('mysql.mysql_server'),
'type' => 'text',
'mandatory' => true,
'value' => old('mysql_host', 'localhost', 'installation')
],
'mysql_ssl_ca_file' => [
'label' => lng('mysql.mysql_ssl_ca_file'),
'placeholder' => lng('mysql.mysql_ssl_ca_file'),
'type' => 'text',
'value' => old('mysql_ssl_ca_file', null, 'installation'),
'advanced' => true,
],
'mysql_ssl_verify_server_certificate' => [
'label' => lng('mysql.mysql_ssl_verify_server_certificate'),
'type' => 'checkbox',
'value' => '1',
'checked' => old('mysql_ssl_verify_server_certificate', '0', 'installation'),
'advanced' => true,
],
'mysql_root_user' => [
'label' => lng('mysql.privileged_user'),
'placeholder' => lng('mysql.privileged_user'),
'type' => 'text',
'mandatory' => true,
'value' => old('mysql_root_user', 'froxroot', 'installation'),
],
'mysql_root_pass' => [
'label' => lng('mysql.privileged_passwd'),
'placeholder' => lng('mysql.privileged_passwd'),
'type' => 'password',
'mandatory' => true,
'value' => old('mysql_root_pass', null, 'installation'),
],
'mysql_unprivileged_user' => [
'label' => lng('install.database.user'),
'placeholder' => lng('install.database.user'),
'type' => 'text',
'mandatory' => true,
'value' => old('mysql_unprivileged_user', 'froxlor', 'installation'),
],
'mysql_unprivileged_pass' => [
'label' => lng('mysql.unprivileged_passwd'),
'placeholder' => lng('mysql.unprivileged_passwd'),
'type' => 'password',
'mandatory' => true,
'value' => old('mysql_unprivileged_pass', null, 'installation'),
],
'mysql_database' => [
'label' => lng('install.database.dbname'),
'placeholder' => lng('install.database.dbname'),
'type' => 'text',
'mandatory' => true,
'value' => old('mysql_database', 'froxlor', 'installation'),
],
'mysql_force_create' => [
'label' => lng('install.database.force_create'),
'type' => 'checkbox',
'value' => '1',
'checked' => old('mysql_force_create', '0', 'installation')
],
]
],
'step2' => [
'title' => lng('install.admin.title'),
'description' => lng('install.admin.description'),
'fields' => [
'admin_name' => [
'label' => lng('customer.name'),
'placeholder' => lng('customer.name'),
'type' => 'text',
'mandatory' => true,
'value' => old('admin_name', 'Administrator', 'installation'),
],
'admin_user' => [
'label' => lng('login.username'),
'placeholder' => lng('login.username'),
'type' => 'text',
'mandatory' => true,
'value' => old('admin_user', 'admin', 'installation'),
],
'admin_pass' => [
'label' => lng('login.password'),
'placeholder' => lng('login.password'),
'type' => 'password',
'mandatory' => true,
'value' => old('admin_pass', null, 'installation'),
],
'admin_pass_confirm' => [
'label' => lng('changepassword.new_password_confirm'),
'placeholder' => lng('changepassword.new_password_confirm'),
'type' => 'password',
'mandatory' => true,
'value' => old('admin_pass_confirm', null, 'installation'),
],
'admin_email' => [
'label' => lng('customer.email'),
'placeholder' => lng('customer.email'),
'type' => 'email',
'mandatory' => true,
'value' => old('admin_email', null, 'installation'),
],
'use_admin_email_as_sender' => [
'label' => lng('install.admin.use_admin_email_as_sender'),
'type' => 'checkbox',
'value' => '1',
'checked' => old('use_admin_email_as_sender', '1', 'installation'),
],
'sender_email' => [
'label' => lng('serversettings.adminmail.title'),
'placeholder' => lng('install.admin.use_autogenerated_email_as_sender'),
'type' => 'email',
'value' => old('sender_email', null, 'installation'),
],
]
],
'step3' => [
'title' => lng('install.system.title'),
'description' => lng('install.system.description'),
'fields' => [
'distribution' => [
'label' => lng('admin.configfiles.distribution'),
'type' => 'select',
'mandatory' => true,
'select_var' => $supportedOS,
'selected' => $guessedDistribution
],
'serveripv4' => [
'label' => lng('install.system.ipv4'),
'placeholder' => lng('install.system.ipv4'),
'type' => 'text',
'value' => old('serveripv4', filter_var($_SERVER['SERVER_ADDR'] ?? "", FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? ($_SERVER['SERVER_ADDR'] ?? "") : "", 'installation'),
],
'serveripv6' => [
'label' => lng('install.system.ipv6'),
'placeholder' => lng('install.system.ipv6'),
'type' => 'text',
'value' => old('serveripv6', filter_var($_SERVER['SERVER_ADDR'] ?? "", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ? ($_SERVER['SERVER_ADDR'] ?? "") : "", 'installation'),
],
'servername' => [
'label' => lng('install.system.servername'),
'placeholder' => lng('install.system.servername'),
'type' => 'text',
'mandatory' => true,
'value' => old('servername', filter_var($_SERVER['SERVER_NAME'] ?? "", FILTER_VALIDATE_IP) ? null : $_SERVER['SERVER_NAME'], 'installation'),
],
'use_ssl' => [
'label' => lng('serversettings.ssl.use_ssl.title'),
'type' => 'checkbox',
'value' => '1',
'checked' => old('use_ssl', '1', 'installation'),
],
'webserver' => [
'label' => lng('admin.webserver'),
'type' => 'select',
'mandatory' => true,
'select_var' => ['apache24' => 'Apache 2.4', 'nginx' => 'Nginx'],
'selected' => old('webserver', $guessedWebserver, 'installation'),
],
'webserver_backend' => [
'label' => lng('install.system.phpbackend'),
'type' => 'select',
'mandatory' => true,
'select_var' => $webserverBackend,
'selected' => old('webserver_backend', 'php-fpm', 'installation'),
],
'httpuser' => [
'label' => lng('admin.webserver_user'),
'placeholder' => lng('admin.webserver_user'),
'type' => 'text',
'mandatory' => true,
'value' => old('httpuser', $httpuser, 'installation'),
'advanced' => true,
],
'httpgroup' => [
'label' => lng('admin.webserver_group'),
'placeholder' => lng('admin.webserver_group'),
'type' => 'text',
'mandatory' => true,
'value' => old('httpgroup', $httpgroup, 'installation'),
'advanced' => true,
],
'activate_newsfeed' => [
'label' => lng('install.system.activate_newsfeed'),
'type' => 'checkbox',
'value' => '1',
'checked' => old('activate_newsfeed', '0', 'installation'),
],
]
],
'step4' => [
'title' => lng('install.install.title'),
'description' => lng('install.install.description'),
'fields' => [
'system' => [
'label' => lng('install.install.runcmd'),
'type' => 'textarea',
'value' => (!empty($_SESSION['installation']['ud_str']) ? Froxlor::getInstallDir() . "bin/froxlor-cli froxlor:install -c '" . $_SESSION['installation']['ud_str'] . "'\n" : "") .
(!empty($_SESSION['installation']['json_params']) ? Froxlor::getInstallDir() . "bin/froxlor-cli froxlor:config-services -a '" . $_SESSION['installation']['json_params'] . "' --yes-to-all" : "something went wrong..."),
'readonly' => true,
'rows' => 10,
'style' => 'min-height:16rem;'
],
'manual_config' => [
'label' => lng('install.install.manual_config'),
'type' => 'checkbox',
'value' => '1',
'checked' => old('manual_config', '0', 'installation'),
],
'target_servername' => [
'type' => 'hidden',
'value' => $_SESSION['installation']['servername'] ?? "",
],
]
]
]
]
];
================================================
FILE: lib/formfields/install/index.html
================================================
================================================
FILE: lib/functions.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Language;
use Froxlor\UI\Request;
/**
* Render a template with the given data.
* Mostly used if we have no template-engine (twig).
*
* @param $template
* @param $attributes
* @return array|false|string|string[]
*/
function view($template, $attributes)
{
$view = file_get_contents(dirname(__DIR__) . '/templates/' . $template);
return str_replace(array_keys($attributes), array_values($attributes), $view);
}
/**
* Get the current translation for a given string.
*
* @param string $identifier
* @param array $arguments
* @return array|string
*/
function lng(string $identifier, array $arguments = [])
{
return Language::getTranslation($identifier, $arguments);
}
/**
* Get the value of a request variable.
*
* @param string $identifier
* @param string|null $default
* @param string|null $session
* @return mixed|string|null
*/
function old(string $identifier, ?string $default, ?string $session = null)
{
if ($session && isset($_SESSION[$session])) {
return $_SESSION[$session][$identifier] ?? $default;
}
return Request::any($identifier, $default);
}
/**
* Loading the mix manifest file from given theme.
* This file contains the hashed filenames of the assets.
* It must be always placed in the theme assets folder.
*
* @deprecated since 2.1.x no longer in use
* @param $filename
* @return mixed|string
*/
function mix($filename)
{
if (preg_match('/templates\/(.+)\/assets\/(.+)\/(.+)/', $filename, $matches)) {
$mixManifest = dirname(__DIR__) . '/templates/' . $matches[1] . '/assets/mix-manifest.json';
if (file_exists($mixManifest)) {
$manifest = json_decode(file_get_contents($mixManifest), true);
$key = '/' . $matches[2] . '/' . $matches[3];
if ($manifest && !empty($manifest[$key])) {
$filename = 'templates/' . $matches[1] . '/assets' . $manifest[$key];
}
}
}
return $filename;
}
/**
* Loading the vite manifest file from given theme.
* This file contains the hashed filenames of the assets.
* It must be always placed in the theme assets folder.
*
* @param string|null $basehref
* @param array $filenames
* @return string
* @throws Exception
*/
function vite($basehref, array $filenames): string
{
// Get the hashed filenames from the manifest file
$links = [];
foreach ($filenames as $filename) {
if (preg_match("/templates\/([^\/]+)(.*)/", $filename, $matches)) {
$assetDirectory = '/templates/' . $matches[1] . '/build/';
$viteManifest = dirname(__DIR__) . $assetDirectory . '/manifest.json';
$manifest = json_decode(file_get_contents($viteManifest), true);
if (!empty($manifest[$filename]['file'])) {
$links[] = $basehref . ltrim($assetDirectory, '/') . $manifest[$filename]['file'];
} else {
// additional asset from config.json that was not prebuilt on release (e.g. custom.css)
$links[] = $filename;
}
} else {
$links[] = $filename;
}
}
// Update the links to the correct html tags
foreach ($links as $key => $link) {
switch (pathinfo($link, PATHINFO_EXTENSION)) {
case 'css':
$links[$key] = '';
break;
case 'js':
$links[$key] = '';
break;
default:
throw new Exception('Unknown file extension for file '. $link .' from manifest.json');
}
}
return implode("\n", $links);
}
================================================
FILE: lib/index.html
================================================
================================================
FILE: lib/init.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
// define default theme for configurehint, etc.
$_deftheme = 'Froxlor';
require dirname(__DIR__) . '/lib/functions.php';
// validate correct php version
if (version_compare("7.4.0", PHP_VERSION, ">=")) {
die(view($_deftheme . '/misc/phprequirementfailed.html.twig', [
'{{ basehref }}' => '',
'{{ froxlor_min_version }}' => '7.4.0',
'{{ current_version }}' => PHP_VERSION,
'{{ current_year }}' => date('Y', time()),
]));
}
// validate vendor autoloader
if (!file_exists(dirname(__DIR__) . '/vendor/autoload.php')) {
die(view($_deftheme . '/misc/vendormissinghint.html.twig', [
'{{ basehref }}' => '',
'{{ froxlor_install_dir }}' => dirname(__DIR__),
'{{ current_year }}' => date('Y', time()),
]));
}
require dirname(__DIR__) . '/vendor/autoload.php';
use Froxlor\CurrentUser;
use Froxlor\FileDir;
use Froxlor\Froxlor;
use Froxlor\FroxlorLogger;
use Froxlor\Http\RateLimiter;
use Froxlor\Idna\IdnaWrapper;
use Froxlor\Install\Update;
use Froxlor\Language;
use Froxlor\PhpHelper;
use Froxlor\Settings;
use Froxlor\System\Mailer;
use Froxlor\UI\HTML;
use Froxlor\UI\Linker;
use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response;
use Froxlor\Install\Requirements;
// include MySQL-tabledefinitions
require Froxlor::getInstallDir() . '/lib/tables.inc.php';
UI::sendHeaders();
UI::initTwig();
/**
* Register Globals Security Fix
*/
Request::cleanAll();
unset($_);
unset($key);
$filename = htmlentities(basename($_SERVER['SCRIPT_NAME']));
// check whether the userdata file exists
if (!file_exists(Froxlor::getInstallDir() . '/lib/userdata.inc.php')) {
UI::twig()->addGlobal('install_mode', '1');
echo UI::twig()->render($_deftheme . '/misc/configurehint.html.twig');
die();
}
// check whether we can read the userdata file
if (!is_readable(Froxlor::getInstallDir() . '/lib/userdata.inc.php')) {
// get possible owner
$posixusername = posix_getpwuid(posix_getuid());
$posixgroup = posix_getgrgid(posix_getgid());
UI::twig()->addGlobal('install_mode', '1');
echo UI::twig()->render($_deftheme . '/misc/ownershiphint.html.twig', [
'user' => $posixusername['name'],
'group' => $posixgroup['name'],
'installdir' => Froxlor::getInstallDir()
]);
die();
}
// include MySQL-Username/Passwort etc.
require Froxlor::getInstallDir() . '/lib/userdata.inc.php';
if (!isset($sql) || !is_array($sql)) {
UI::twig()->addGlobal('install_mode', '1');
echo UI::twig()->render($_deftheme . '/misc/configurehint.html.twig');
die();
}
/**
* Show nice note if requested domain is "unknown" to froxlor and thus is being lead to its vhost
*/
$req_host = UI::getCookieHost();
if ($req_host != Settings::Get('system.hostname') &&
Settings::Get('panel.is_configured') == 1 &&
!filter_var($req_host, FILTER_VALIDATE_IP) && (
empty(Settings::Get('system.froxloraliases')) ||
(!empty(Settings::Get('system.froxloraliases')) && !in_array($req_host, array_map('trim', explode(',', Settings::Get('system.froxloraliases')))))
)) {
// not the froxlor system-hostname, show info page for domains not configured in froxlor
$redirect_file = FileDir::getUnknownDomainTemplate($req_host ?? "non-detectable http-host");
header('Location: '.$redirect_file);
die();
}
// validate php-extensions requirements
$loadedExtensions = get_loaded_extensions();
$missingExtensions = [];
foreach (Requirements::REQUIRED_EXTENSIONS as $requiredExtension) {
if (in_array($requiredExtension, $loadedExtensions)) {
continue;
}
$missingExtensions[] = $requiredExtension;
}
if (!empty($missingExtensions)) {
UI::twig()->addGlobal('install_mode', '1');
echo UI::twig()->render($_deftheme . '/misc/missingextensionhint.html.twig', [
'phpversion' => phpversion(),
'missing_extensions' => implode(", ", $missingExtensions),
]);
die();
}
// set error-handler
@set_error_handler([
'\\Froxlor\\PhpHelper',
'phpErrHandler'
]);
@set_exception_handler([
'\\Froxlor\\PhpHelper',
'phpExceptionHandler'
]);
// send ssl-related headers (later than the others because we need a working database-connection and installation)
UI::sendSslHeaders();
RateLimiter::run();
// create a new idna converter
$idna_convert = new IdnaWrapper();
// re-read user data if logged in
if (CurrentUser::hasSession()) {
CurrentUser::reReadUserData();
}
/**
* Language management
*/
// set default language before anything else to
// ensure that we can display messages
Language::setLanguage(Settings::Get('panel.standardlanguage'));
// set language by given user
if (CurrentUser::hasSession()) {
if (!empty(CurrentUser::getField('language')) && isset(Language::getLanguages()[CurrentUser::getField('language')])) {
Language::setLanguage(CurrentUser::getField('language'));
} else {
Language::setLanguage(CurrentUser::getField('def_language'));
}
}
// Initialize our link - class
$linker = new Linker('index.php');
UI::setLinker($linker);
/**
* Global Theme-variable
*/
if (Update::versionInUpdate(Settings::Get('panel.version'), '2.0.0-beta1')) {
$theme = $_deftheme;
} else {
$theme = (Settings::Get('panel.default_theme') !== null) ? Settings::Get('panel.default_theme') : $_deftheme;
// Overwrite with customer/admin theme if defined
if (CurrentUser::hasSession() && CurrentUser::getField('theme') != $theme) {
$theme = CurrentUser::getField('theme');
}
}
// Check if a different variant of the theme is used
$themevariant = "default";
if (preg_match("/([a-z0-9.\-]+)_([a-z0-9.\-]+)/i", $theme, $matches)) {
$theme = $matches[1];
$themevariant = $matches[2];
}
// check for existence of the theme
if (@file_exists('templates/' . $theme . '/config.json')) {
$_themeoptions = json_decode(file_get_contents('templates/' . $theme . '/config.json'), true);
} else {
$_themeoptions = null;
}
// check for existence of variant in theme
if (is_array($_themeoptions) && (!array_key_exists('variants', $_themeoptions) || !array_key_exists(
$themevariant,
$_themeoptions['variants']
))) {
$themevariant = "default";
}
if (array_key_exists('global', $_themeoptions)) {
$_themeoptions['variants'][$themevariant] = PhpHelper::array_merge_recursive_distinct($_themeoptions['global'], $_themeoptions['variants'][$themevariant]);
}
// check for custom header-graphic
$hl_path = 'templates/' . $theme . '/assets/img';
// default is theme-image
$header_logo = $hl_path . '/' . ($_themeoptions['variants'][$themevariant]['img']['ui'] ?? 'logo_white.png');
$header_logo_login = $hl_path . '/' . ($_themeoptions['variants'][$themevariant]['img']['login'] ?? 'logo_white.png');
if (Settings::Get('panel.logo_overridetheme') == 1 || Settings::Get('panel.logo_overridecustom') == 1) {
// logo settings shall overwrite theme logo and possible custom logo
$header_logo = Settings::Get('panel.logo_image_header') ?: $header_logo;
$header_logo_login = Settings::Get('panel.logo_image_login') ?: $header_logo_login;
}
if (Settings::Get('panel.logo_overridecustom') == 0 && file_exists($hl_path . '/logo_custom.png')) {
// custom theme image (logo_custom.png) is not being overwritten by logo_image_* setting
$header_logo = $hl_path . '/logo_custom.png';
$header_logo_login = $hl_path . '/logo_custom.png';
if (file_exists($hl_path . '/logo_custom_login.png')) {
$header_logo_login = $hl_path . '/logo_custom_login.png';
}
}
$color_scheme = $_themeoptions['variants'][$themevariant]['color-scheme'] ?? 'auto';
UI::twig()->addGlobal('header_logo_login', $header_logo_login);
UI::twig()->addGlobal('header_logo', $header_logo);
UI::twig()->addGlobal('color_scheme', $color_scheme);
/**
* Redirects to index.php (login page) if no session exists
*/
if (!CurrentUser::hasSession() && AREA != 'login') {
unset($_SESSION['userinfo']);
CurrentUser::setData();
$_SESSION = [
"lastscript" => basename($_SERVER["SCRIPT_NAME"]),
"lastqrystr" => $_SERVER["QUERY_STRING"]
];
Response::redirectTo('index.php');
exit();
}
$userinfo = CurrentUser::getData();
UI::twig()->addGlobal('userinfo', $userinfo);
UI::setCurrentUser($userinfo);
// Initialize logger
if (CurrentUser::hasSession()) {
// Initialize logging
$log = FroxlorLogger::getInstanceOf($userinfo);
if ((CurrentUser::isAdmin() && AREA != 'admin') || (!CurrentUser::isAdmin() && AREA != 'customer')) {
// user tries to access an area not meant for him -> redirect to corresponding index
Response::redirectTo((CurrentUser::isAdmin() ? 'admin' : 'customer') . '_index.php');
exit();
}
}
/**
* Fills variables for navigation, header and footer
*/
$navigation = [];
if (AREA == 'admin' || AREA == 'customer') {
if (Froxlor::hasUpdates() || Froxlor::hasDbUpdates()) {
/*
* if froxlor-files have been updated
* but not yet configured by the admin
* we only show logout and the update-page
*/
$navigation_data = [
'admin' => [
'server' => [
'label' => lng('admin.server'),
'required_resources' => 'change_serversettings',
'elements' => [
[
'url' => 'admin_updates.php?page=overview',
'label' => lng('update.update'),
'required_resources' => 'change_serversettings'
]
]
]
]
];
$navigation = HTML::buildNavigation($navigation_data['admin'], CurrentUser::getData());
} else {
$navigation_data = PhpHelper::loadConfigArrayDir('lib/navigation/');
$navigation = HTML::buildNavigation($navigation_data[AREA], CurrentUser::getData());
}
}
UI::twig()->addGlobal('nav_entries', $navigation);
$theme_assets = [];
foreach (['css', 'js'] as $asset) {
if (is_array($_themeoptions) && array_key_exists($asset, $_themeoptions['variants'][$themevariant])) {
if (is_array($_themeoptions['variants'][$themevariant][$asset])) {
foreach ($_themeoptions['variants'][$themevariant][$asset] as $assetfile) {
if (file_exists('templates/' . $theme . '/' . $assetfile)) {
$theme_assets[] .= 'templates/' . $theme . '/' . $assetfile;
}
}
}
}
}
UI::twig()->addGlobal('theme_assets', $theme_assets);
unset($theme_assets);
$action = Request::any('action');
$page = Request::any('page', 'overview');
$gSearchText = Request::any('searchtext');
// clear request data
if (!$action && isset($_SESSION)) {
unset($_SESSION['requestData']);
}
UI::twig()->addGlobal('action', $action);
UI::twig()->addGlobal('page', $page);
UI::twig()->addGlobal('area', AREA);
UI::twig()->addGlobal('gSearchText', $gSearchText);
// Initialize the mailingsystem
$mail = new Mailer(true);
// initialize csrf
if (CurrentUser::hasSession()) {
// create new csrf token if not set
if (!$csrf_token = CurrentUser::getField('csrf_token')) {
$csrf_token = Froxlor::genSessionId(20);
CurrentUser::setField('csrf_token', $csrf_token);
}
// set csrf token for twig
UI::twig()->addGlobal('csrf_token', $csrf_token);
// check if csrf token is valid
if (in_array($_SERVER['REQUEST_METHOD'], ['POST', 'PUT', 'PATCH', 'DELETE'])) {
$current_token = Request::post('csrf_token', $_SERVER['HTTP_X_CSRF_TOKEN'] ?? null);
if ($current_token != CurrentUser::getField('csrf_token')) {
http_response_code(403);
Response::dynamicError('CSRF validation failed');
}
}
// update cookie lifetime
$cookie_params = [
'expires' => time() + min(Settings::Get('session.sessiontimeout'), 31536000),
'path' => '/',
'domain' => UI::getCookieHost(),
'secure' => UI::requestIsHttps(),
'httponly' => true,
'samesite' => 'Lax'
];
setcookie(session_name(), $_COOKIE[session_name()], $cookie_params);
} else {
UI::twig()->addGlobal('csrf_token', Froxlor::genSessionId(20));
}
================================================
FILE: lib/navigation/00.froxlor.main.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\CurrentUser;
return [
'customer' => [
'email' => [
'url' => 'customer_email.php',
'label' => lng('menue.email.email'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'email')),
'icon' => 'fa-solid fa-envelope',
'elements' => [
[
'url' => 'customer_email.php?page=emails',
'label' => lng('menue.email.emails'),
'required_resources' => 'emails',
'add_shortlink' => !CurrentUser::isAdmin() && CurrentUser::canAddResource('emails') ? 'customer_email.php?page=email_domain&action=add' : null,
],
[
'url' => Settings::Get('panel.webmail_url'),
'new_window' => true,
'label' => lng('menue.email.webmail'),
'required_resources' => 'emails_used',
'show_element' => (Settings::Get('panel.webmail_url') != ''),
'is_external' => true,
]
]
],
'mysql' => [
'url' => 'customer_mysql.php',
'label' => lng('menue.mysql.mysql'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'mysql')),
'icon' => 'fa-solid fa-database',
'elements' => [
[
'url' => 'customer_mysql.php?page=mysqls',
'label' => lng('menue.mysql.databases'),
'required_resources' => 'mysqls',
'add_shortlink' => !CurrentUser::isAdmin() && CurrentUser::canAddResource('mysqls')? 'customer_mysql.php?page=mysqls&action=add' : null,
],
[
'url' => Settings::Get('panel.phpmyadmin_url'),
'new_window' => true,
'label' => lng('menue.mysql.phpmyadmin'),
'required_resources' => 'mysqls_used',
'show_element' => (Settings::Get('panel.phpmyadmin_url') != ''),
'is_external' => true,
]
]
],
'domains' => [
'url' => 'customer_domains.php',
'label' => lng('menue.domains.domains'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'domains')),
'icon' => 'fa-solid fa-globe',
'elements' => [
[
'url' => 'customer_domains.php?page=domains',
'label' => lng('menue.domains.settings'),
'add_shortlink' => !CurrentUser::isAdmin() && CurrentUser::canAddResource('subdomains') ? 'customer_domains.php?page=domains&action=add' : null,
],
[
'url' => 'customer_domains.php?page=sslcertificates',
'label' => lng('domains.ssl_certificates')
]
]
],
'ftp' => [
'url' => 'customer_ftp.php',
'label' => lng('menue.ftp.ftp'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'ftp')),
'icon' => 'fa-solid fa-users',
'elements' => [
[
'url' => 'customer_ftp.php?page=accounts',
'label' => lng('menue.ftp.accounts'),
'add_shortlink' => !CurrentUser::isAdmin() && CurrentUser::canAddResource('ftps') ? 'customer_ftp.php?page=accounts&action=add' : null,
],
[
'url' => 'customer_ftp.php?page=sshkeys',
'label' => lng('menue.ftp.sshkeys'),
'add_shortlink' => !CurrentUser::isAdmin() && CurrentUser::canAddResource('ftps') ? 'customer_ftp.php?page=sshkeys&action=add' : null,
'show_element' => intval(Settings::Get('system.allow_customer_shell')) == 1 && intval(CurrentUser::getField('shell_allowed')) == 1
],
[
'url' => Settings::Get('panel.webftp_url'),
'new_window' => true,
'label' => lng('menue.ftp.webftp'),
'show_element' => (Settings::Get('panel.webftp_url') != ''),
'is_external' => true,
]
]
],
'extras' => [
'url' => 'customer_extras.php',
'label' => lng('menue.extras.extras'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'extras')),
'icon' => 'fa-solid fa-wrench',
'elements' => [
[
'url' => 'customer_extras.php?page=htpasswds',
'label' => lng('menue.extras.directoryprotection'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'extras.directoryprotection')),
'add_shortlink' => 'customer_extras.php?page=htpasswds&action=add',
],
[
'url' => 'customer_extras.php?page=htaccess',
'label' => lng('menue.extras.pathoptions'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'extras.pathoptions')),
'add_shortlink' => 'customer_extras.php?page=htaccess&action=add',
],
[
'url' => 'customer_logger.php?page=log',
'label' => lng('menue.logger.logger'),
'show_element' => (Settings::Get('logger.enabled') == true) && (!Settings::IsInList('panel.customer_hide_options', 'extras.logger'))
],
[
'url' => 'customer_extras.php?page=export',
'label' => lng('menue.extras.export'),
'show_element' => (Settings::Get('system.exportenabled') == true) && (!Settings::IsInList('panel.customer_hide_options', 'extras.export'))
]
]
],
'traffic' => [
'url' => 'customer_traffic.php',
'label' => lng('menue.traffic.traffic'),
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'traffic')),
'icon' => 'fa-solid fa-area-chart',
'elements' => [
[
'url' => 'customer_traffic.php?page=current',
'label' => lng('menue.traffic.current')
],
[
'url' => 'customer_traffic.php',
'label' => lng('menue.traffic.overview')
]
]
],
'docs' => [
'label' => lng('admin.documentation'),
'icon' => 'fa-solid fa-circle-info',
'show_element' => (!Settings::IsInList('panel.customer_hide_options', 'misc.documentation')),
'elements' => [
[
'url' => \Froxlor\Froxlor::getDocsUrl() . 'user-guide/',
'label' => lng('admin.userguide'),
'new_window' => true,
'is_external' => true,
],
[
'url' => \Froxlor\Froxlor::getDocsUrl() . 'api-guide/',
'label' => lng('admin.apiguide'),
'new_window' => true,
'show_element' => Settings::Get('api.enabled') == 1 && CurrentUser::getField('api_allowed') == 1,
'is_external' => true,
]
]
]
],
'admin' => [
'resources' => [
'label' => lng('admin.resources'),
'required_resources' => 'customers',
'icon' => 'fa-solid fa-box',
'elements' => [
[
'url' => 'admin_customers.php?page=customers',
'label' => lng('admin.customers'),
'required_resources' => 'customers',
'add_shortlink' => CurrentUser::isAdmin() && CurrentUser::canAddResource('customers') ? 'admin_customers.php?page=customers&action=add' : null,
],
[
'url' => 'admin_admins.php?page=admins',
'label' => lng('admin.admins'),
'required_resources' => 'change_serversettings',
'add_shortlink' => 'admin_admins.php?page=admins&action=add'
],
[
'url' => 'admin_domains.php?page=domains',
'label' => lng('admin.domains'),
'required_resources' => 'domains',
'add_shortlink' => CurrentUser::isAdmin() && CurrentUser::canAddResource('domains') ? 'admin_domains.php?page=domains&action=add' : null,
],
[
'url' => 'admin_domains.php?page=sslcertificates',
'label' => lng('domains.ssl_certificates'),
'required_resources' => 'domains'
],
[
'url' => 'admin_ipsandports.php?page=ipsandports',
'label' => lng('admin.ipsandports.ipsandports'),
'required_resources' => 'change_serversettings',
'add_shortlink' => 'admin_ipsandports.php?page=ipsandports&action=add'
],
[
'url' => 'admin_mysqlserver.php?page=mysqlserver',
'label' => lng('admin.mysqlserver.mysqlserver'),
'required_resources' => 'change_serversettings',
'add_shortlink' => 'admin_mysqlserver.php?page=mysqlserver&action=add'
],
[
'url' => 'admin_plans.php?page=overview',
'label' => lng('admin.plans.plans'),
'required_resources' => 'customers',
'add_shortlink' => 'admin_plans.php?page=overview&action=add'
],
[
'url' => 'admin_settings.php?page=updatecounters',
'label' => lng('admin.updatecounters'),
'required_resources' => 'change_serversettings'
]
]
],
'traffic' => [
'label' => lng('admin.traffic'),
'required_resources' => 'customers',
'icon' => 'fa-solid fa-area-chart',
'elements' => [
[
'url' => 'admin_traffic.php?page=customers',
'label' => lng('admin.customertraffic'),
'required_resources' => 'customers'
]
]
],
'server' => [
'label' => lng('admin.server'),
'icon' => 'fa-solid fa-server',
'elements' => [
[
'url' => 'admin_configfiles.php?page=configfiles',
'label' => lng('admin.configfiles.serverconfiguration'),
'required_resources' => 'change_serversettings'
],
[
'url' => 'admin_settings.php?page=overview',
'label' => lng('admin.serversettings'),
'required_resources' => 'change_serversettings'
],
[
'url' => 'admin_cronjobs.php?page=overview',
'label' => lng('admin.cron.cronsettings'),
'required_resources' => 'change_serversettings'
],
[
'url' => 'admin_logger.php?page=log',
'label' => lng('menue.logger.logger'),
'show_element' => (Settings::Get('logger.enabled') == true)
],
[
'url' => 'admin_settings.php?page=rebuildconfigs',
'label' => lng('admin.rebuildconf'),
'required_resources' => 'change_serversettings'
],
[
'url' => 'admin_autoupdate.php?page=overview',
'label' => lng('admin.autoupdate'),
'required_resources' => 'change_serversettings',
'show_element' => extension_loaded('zip') && Settings::Config('enable_webupdate')
],
[
'url' => 'admin_settings.php?page=wipecleartextmailpws',
'label' => lng('admin.wipecleartextmailpwd'),
'required_resources' => 'change_serversettings',
'show_element' => (Settings::Get('system.mailpwcleartext') == true)
]
]
],
'server_php' => [
'label' => lng('admin.server_php'),
'icon' => 'fab fa-php',
'elements' => [
[
'url' => 'admin_phpsettings.php?page=overview',
'label' => lng('menue.phpsettings.maintitle'),
'show_element' => (Settings::Get('system.mod_fcgid') == true || Settings::Get('phpfpm.enabled') == true),
'add_shortlink' => 'admin_phpsettings.php?page=overview&action=add'
],
[
'url' => 'admin_phpsettings.php?page=fpmdaemons',
'label' => lng('menue.phpsettings.fpmdaemons'),
'show_element' => Settings::Get('phpfpm.enabled') == true,
'add_shortlink' => 'admin_phpsettings.php?page=fpmdaemons&action=add'
],
[
'url' => 'admin_settings.php?page=phpinfo',
'label' => lng('admin.phpinfo'),
'required_resources' => 'change_serversettings'
],
[
'url' => 'admin_apcuinfo.php?page=showinfo',
'label' => lng('admin.apcuinfo'),
'required_resources' => 'change_serversettings',
'show_element' => (function_exists('apcu_cache_info') === true)
],
[
'url' => 'admin_opcacheinfo.php?page=showinfo',
'label' => lng('admin.opcacheinfo'),
'required_resources' => 'change_serversettings',
'show_element' => (function_exists('opcache_get_configuration') === true)
]
]
],
'misc' => [
'label' => lng('admin.misc'),
'icon' => 'fa-solid fa-wrench',
'elements' => [
[
'url' => 'admin_settings.php?page=integritycheck',
'label' => lng('admin.integritycheck'),
'required_resources' => 'change_serversettings'
],
[
'url' => 'admin_templates.php?page=email',
'label' => lng('admin.templates.email')
],
[
'url' => 'admin_message.php?page=message',
'label' => lng('admin.message')
],
[
'url' => 'admin_settings.php?page=testmail',
'label' => lng('admin.testmail')
]
]
],
'docs' => [
'label' => lng('admin.documentation'),
'icon' => 'fa-solid fa-circle-info',
'elements' => [
[
'url' => \Froxlor\Froxlor::getDocsUrl() . 'admin-guide/',
'label' => lng('admin.adminguide'),
'new_window' => true,
'is_external' => true,
],
[
'url' => \Froxlor\Froxlor::getDocsUrl() . 'api-guide/',
'label' => lng('admin.apiguide'),
'new_window' => true,
'show_element' => Settings::Get('api.enabled') == 1,
'is_external' => true,
]
]
]
]
];
================================================
FILE: lib/navigation/index.html
================================================
================================================
FILE: lib/tablelisting/admin/index.html
================================================
================================================
FILE: lib/tablelisting/admin/tablelisting.admins.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Admin;
use Froxlor\UI\Callbacks\Customer;
use Froxlor\UI\Callbacks\Impersonate;
use Froxlor\UI\Callbacks\ProgressBar;
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'admin_list' => [
'title' => lng('admin.admin'),
'icon' => 'fa-solid fa-user',
'self_overview' => ['section' => 'admins', 'page' => 'admins'],
'default_sorting' => ['loginname' => 'asc'],
'columns' => [
'adminid' => [
'label' => 'ID',
'field' => 'adminid',
'sortable' => true,
],
'loginname' => [
'label' => lng('login.username'),
'field' => 'loginname',
'callback' => [Impersonate::class, 'admin'],
'sortable' => true,
'isdefaultsearchfield' => true,
],
'name' => [
'label' => lng('customer.name'),
'field' => 'name',
],
'email' => [
'label' => lng('login.email'),
'field' => 'email',
],
'def_language' => [
'label' => lng('login.profile_lng'),
'field' => 'def_language',
],
'customers_used' => [
'label' => lng('admin.customers'),
'field' => 'customers_used',
'class' => 'text-center',
],
'diskspace' => [
'label' => lng('customer.diskspace'),
'field' => 'diskspace',
'callback' => [ProgressBar::class, 'diskspace'],
],
'traffic' => [
'label' => lng('customer.traffic'),
'field' => 'traffic',
'callback' => [ProgressBar::class, 'traffic_admins'],
],
'caneditphpsettings' => [
'label' => lng('admin.caneditphpsettings'),
'field' => 'caneditphpsettings',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'change_serversettings' => [
'label' => lng('admin.change_serversettings'),
'field' => 'change_serversettings',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'deactivated' => [
'label' => lng('admin.deactivated'),
'field' => 'deactivated',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'lastlogin_succ' => [
'label' => lng('admin.lastlogin_succ'),
'field' => 'lastlogin_succ',
'callback' => [Text::class, 'timestamp'],
],
'theme' => [
'label' => lng('panel.theme'),
'field' => 'theme',
],
'api_allowed' => [
'label' => lng('usersettings.api_allowed.title'),
'field' => 'api_allowed',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'type_2fa' => [
'label' => lng('2fa.type_2fa'),
'field' => 'type_2fa',
'class' => 'text-center',
'callback' => [Text::class, 'type2fa'],
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('admin_list', [
'loginname',
'name',
'customers_used',
'diskspace',
'traffic',
'deactivated',
]),
'actions' => [
'show' => [
'icon' => 'fa-solid fa-eye',
'title' => lng('usersettings.custom_notes.title'),
'modal' => [Text::class, 'customerNoteDetailModal'],
'visible' => [Customer::class, 'hasNote']
],
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'admins',
'page' => 'admins',
'action' => 'edit',
'id' => ':adminid'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'admins',
'page' => 'admins',
'action' => 'delete',
'id' => ':adminid'
],
'visible' => [Admin::class, 'isNotMe']
],
],
'format_callback' => [
[Style::class, 'deactivated'],
[Style::class, 'diskspaceWarning'],
[Style::class, 'trafficWarning']
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.cronjobs.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'cron_list' => [
'title' => lng('admin.cron.cronsettings'),
'icon' => 'fa-solid fa-clock-rotate-left',
'default_sorting' => ['c.id' => 'asc'],
'no_search' => true,
'columns' => [
'c.desc_lng_key' => [
'label' => lng('cron.description'),
'field' => 'desc_lng_key',
'callback' => [Text::class, 'crondesc']
],
'c.lastrun' => [
'label' => lng('cron.lastrun'),
'field' => 'lastrun',
'callback' => [Text::class, 'timestamp']
],
'c.interval' => [
'label' => lng('cron.interval'),
'field' => 'interval'
],
'c.isactive' => [
'label' => lng('cron.isactive'),
'field' => 'isactive',
'callback' => [Text::class, 'boolean']
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('cron_list', [
'c.desc_lng_key',
'c.lastrun',
'c.interval',
'c.isactive',
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'cronjobs',
'page' => 'overview',
'action' => 'edit',
'id' => ':id'
],
]
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.customers.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Customer;
use Froxlor\UI\Callbacks\Impersonate;
use Froxlor\UI\Callbacks\ProgressBar;
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'customer_list' => [
'title' => lng('admin.customers'),
'description' => lng('admin.customers_list_desc'),
'icon' => 'fa-solid fa-user',
'self_overview' => ['section' => 'customers', 'page' => 'customers'],
'default_sorting' => ['c.name' => 'asc'],
'columns' => [
'c.customerid' => [
'label' => 'ID',
'field' => 'customerid',
'sortable' => true,
],
'c.name' => [
'label' => lng('customer.name'),
'field' => 'name',
'callback' => [Text::class, 'customerfullname'],
],
'c.loginname' => [
'label' => lng('login.username'),
'field' => 'loginname',
'callback' => [Impersonate::class, 'customer'],
],
'a.loginname' => [
'label' => lng('admin.admin'),
'field' => 'adminname',
'callback' => [Impersonate::class, 'admin'],
],
'c.email' => [
'label' => lng('customer.email'),
'field' => 'email',
],
'c.street' => [
'label' => lng('customer.street'),
'field' => 'street',
],
'c.zipcode' => [
'label' => lng('customer.zipcode'),
'field' => 'zipcode',
],
'c.city' => [
'label' => lng('customer.city'),
'field' => 'city',
],
'c.phone' => [
'label' => lng('customer.phone'),
'field' => 'phone',
],
'c.fax' => [
'label' => lng('customer.fax'),
'field' => 'fax',
],
'c.customernumber' => [
'label' => lng('customer.customernumber'),
'field' => 'customernumber',
],
'c.def_language' => [
'label' => lng('login.profile_lng'),
'field' => 'def_language',
],
'c.guid' => [
'label' => 'GUID',
'field' => 'guid',
],
'c.diskspace' => [
'label' => lng('customer.diskspace'),
'field' => 'diskspace',
'callback' => [ProgressBar::class, 'diskspace'],
],
'c.traffic' => [
'label' => lng('customer.traffic'),
'field' => 'traffic',
'callback' => [ProgressBar::class, 'traffic'],
],
'c.deactivated' => [
'label' => lng('admin.deactivated'),
'field' => 'deactivated',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'c.lastlogin_succ' => [
'label' => lng('admin.lastlogin_succ'),
'field' => 'lastlogin_succ',
'callback' => [Text::class, 'timestamp'],
],
'c.phpenabled' => [
'label' => lng('admin.phpenabled'),
'field' => 'phpenabled',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'c.perlenabled' => [
'label' => lng('admin.perlenabled'),
'field' => 'perlenabled',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'c.dnsenabled' => [
'label' => lng('admin.dnsenabled'),
'field' => 'dnsenabled',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'c.theme' => [
'label' => lng('panel.theme'),
'field' => 'theme',
],
'c.logviewenabled' => [
'label' => lng('admin.logviewenabled'),
'field' => 'logviewenabled',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'c.api_allowed' => [
'label' => lng('usersettings.api_allowed.title'),
'field' => 'api_allowed',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
],
'c.type_2fa' => [
'label' => lng('2fa.type_2fa'),
'field' => 'type_2fa',
'class' => 'text-center',
'callback' => [Text::class, 'type2fa'],
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('customer_list', [
'c.name',
'c.loginname',
'a.loginname',
'c.email',
'c.diskspace',
'c.traffic',
]),
'actions' => [
'show' => [
'icon' => 'fa-solid fa-eye',
'title' => lng('usersettings.custom_notes.title'),
'modal' => [Text::class, 'customerNoteDetailModal'],
'visible' => [Customer::class, 'hasNote']
],
'unlock' => [
'icon' => 'fa-solid fa-unlock',
'title' => lng('panel.unlock'),
'class' => 'btn-outline-secondary',
'href' => [
'section' => 'customers',
'page' => 'customers',
'action' => 'unlock',
'id' => ':customerid'
],
'visible' => [Customer::class, 'isLocked']
],
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'customers',
'page' => 'customers',
'action' => 'edit',
'id' => ':customerid'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'customers',
'page' => 'customers',
'action' => 'delete',
'id' => ':customerid'
],
],
],
'format_callback' => [
[Style::class, 'resultCustomerLockedOrDeactivated']
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.domains.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\UI\Callbacks\Domain;
use Froxlor\UI\Callbacks\Impersonate;
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
// used outside scope variables
$customerCollectionCount = !is_null($customerCollection ?? null) ? $customerCollection->count() : 0;
return [
'domain_list' => [
'title' => lng('admin.domains'),
'icon' => 'fa-solid fa-globe',
'empty_msg' => $customerCollectionCount == 0 ? lng('admin.domain_nocustomeraddingavailable') : '',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'default_sorting' => ['d.domain_ace' => 'asc'],
'columns' => [
'd.id' => [
'label' => 'ID',
'field' => 'id',
'sortable' => true,
],
'd.domain_ace' => [
'label' => lng('domains.domainname'),
'field' => 'domain_ace',
'isdefaultsearchfield' => true,
'callback' => [Domain::class, 'domainEditLink'],
],
'ipsandports' => [
'label' => lng('admin.ipsandports.ipsandports'),
'field' => 'ipsandports',
'sortable' => false,
'callback' => [Domain::class, 'listIPs'],
],
'c.name' => [
'label' => lng('customer.name'),
'field' => 'customer.name',
'callback' => [Text::class, 'customerfullname'],
],
'c.loginname' => [
'label' => lng('login.username'),
'field' => 'customer.loginname',
'callback' => [Impersonate::class, 'customer'],
],
'd.aliasdomain' => [
'label' => lng('domains.aliasdomain'),
'field' => 'aliasdomain',
],
'd.documentroot' => [
'label' => lng('customer.documentroot'),
'field' => 'documentroot',
],
'd.isbinddomain' => [
'label' => lng('domains.isbinddomain'),
'field' => 'isbinddomain',
'callback' => [Text::class, 'boolean'],
],
'd.isemaildomain' => [
'label' => lng('admin.emaildomain'),
'field' => 'isemaildomain',
'callback' => [Text::class, 'boolean'],
],
'd.email_only' => [
'label' => lng('admin.email_only'),
'field' => 'email_only',
'callback' => [Text::class, 'boolean'],
],
'd.iswildcarddomain' => [
'label' => lng('domains.serveraliasoption_wildcard'),
'field' => 'iswildcarddomain',
'callback' => [Text::class, 'boolean'],
],
'd.subcanemaildomain' => [
'label' => lng('admin.subdomainforemail'),
'field' => 'subcanemaildomain',
'callback' => [Text::class, 'boolean'],
],
'd.caneditdomain' => [
'label' => lng('admin.domain_editable.title'),
'field' => 'caneditdomain',
'callback' => [Text::class, 'boolean'],
],
'd.dkim' => [
'label' => lng('domains.dkimenabled'),
'field' => 'dkim',
'callback' => [Text::class, 'boolean'],
],
'd.phpenabled' => [
'label' => lng('admin.phpenabled'),
'field' => 'phpenabled',
'callback' => [Text::class, 'boolean'],
],
'd.phpsettingid' => [
'label' => lng('admin.phpsettings.title'),
'field' => 'phpsettingid',
'searchable' => false,
'callback' => [Domain::class, 'getPhpConfigName'],
'visible' => (int)Settings::Get('system.mod_fcgid') == 1 || (int)Settings::Get('phpfpm.enabled') == 1
],
'd.openbasedir' => [
'label' => lng('domains.openbasedirenabled'),
'field' => 'openbasedir',
'callback' => [Text::class, 'boolean'],
],
'd.speciallogfile' => [
'label' => lng('admin.speciallogfile.title'),
'field' => 'speciallogfile',
'callback' => [Text::class, 'boolean'],
],
'd.hsts' => [
'label' => lng('domains.hsts'),
'field' => 'hsts',
'callback' => [Text::class, 'boolean'],
],
'd.http2' => [
'label' => lng('admin.domain_http2.title'),
'field' => 'http2',
'callback' => [Text::class, 'boolean'],
],
'd.http3' => [
'label' => lng('admin.domain_http3.title'),
'field' => 'http3',
'callback' => [Text::class, 'boolean'],
],
'd.letsencrypt' => [
'label' => lng('panel.letsencrypt'),
'field' => 'letsencrypt',
'callback' => [Text::class, 'boolean'],
],
'd.deactivated' => [
'label' => lng('admin.deactivated'),
'field' => 'deactivated',
'callback' => [Text::class, 'boolean'],
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('domain_list', [
'd.domain_ace',
'c.name',
'c.loginname',
'd.aliasdomain',
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'domains',
'page' => 'domains',
'action' => 'edit',
'id' => ':id'
],
],
'duplicate' => [
'icon' => 'fa-solid fa-clone',
'title' => lng('admin.domain_duplicate'),
'modal' => [Text::class, 'domainDuplicateModal'],
],
'logfiles' => [
'icon' => 'fa-solid fa-file',
'title' => lng('panel.viewlogs'),
'href' => [
'section' => 'domains',
'page' => 'logfiles',
'domain_id' => ':id'
],
'visible' => [Domain::class, 'canViewLogs']
],
'domaindnseditor' => [
'icon' => 'fa-solid fa-globe',
'title' => lng('dnseditor.edit'),
'href' => [
'section' => 'domains',
'page' => 'domaindnseditor',
'domain_id' => ':id'
],
'visible' => [Domain::class, 'adminCanEditDNS']
],
'domainssleditor' => [
'callback' => [Domain::class, 'editSSLButtons'],
],
'letsencrypt' => [
'icon' => 'fa-solid fa-shield',
'title' => lng('panel.letsencrypt'),
'visible' => [Domain::class, 'hasLetsEncryptActivated']
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'domains',
'page' => 'domains',
'action' => 'delete',
'id' => ':id'
],
'visible' => [Domain::class, 'adminCanDelete']
]
],
'format_callback' => [
[Style::class, 'resultDomainTerminatedOrDeactivated']
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.filetemplates.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Listing;
return [
'filetpl_list' => [
'title' => lng('admin.templates.filetemplates'),
'icon' => 'fa-solid fa-file-lines',
'self_overview' => ['section' => 'templates', 'page' => 'email'],
'default_sorting' => ['template' => 'asc'],
'no_search' => true,
'columns' => [
'template' => [
'label' => lng('admin.templates.action'),
'field' => 'template'
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('filetpl_list', [
'template'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'templates',
'page' => $page,
'action' => 'editf',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'templates',
'page' => $page,
'action' => 'deletef',
'id' => ':id'
],
],
],
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.fpmconfigs.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Admin;
use Froxlor\UI\Callbacks\PHPConf;
use Froxlor\UI\Listing;
return [
'fpmconf_list' => [
'title' => lng('menue.phpsettings.fpmdaemons'),
'icon' => 'fa-brands fa-php',
'self_overview' => ['section' => 'phpsettings', 'page' => 'fpmdaemons'],
'default_sorting' => ['description' => 'asc'],
'columns' => [
'id' => [
'label' => 'ID',
'field' => 'id'
],
'description' => [
'label' => lng('admin.phpsettings.description'),
'field' => 'description',
'isdefaultsearchfield' => true,
],
'configs' => [
'label' => lng('admin.phpsettings.activephpconfigs'),
'callback' => [PHPConf::class, 'configsList'],
'searchable' => false,
],
'reload_cmd' => [
'label' => lng('serversettings.phpfpm_settings.reload'),
'field' => 'reload_cmd'
],
'config_dir' => [
'label' => lng('serversettings.phpfpm_settings.configdir'),
'field' => 'config_dir'
],
'pm' => [
'label' => lng('serversettings.phpfpm_settings.pm'),
'field' => 'pm',
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('fpmconf_list', [
'description',
'configs',
'reload_cmd',
'config_dir',
'pm'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'phpsettings',
'page' => 'fpmdaemons',
'action' => 'edit',
'id' => ':id'
],
'visible' => [Admin::class, 'canChangeServerSettings']
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'phpsettings',
'page' => 'fpmdaemons',
'action' => 'delete',
'id' => ':id'
],
'visible' => [PHPConf::class, 'isNotDefault']
]
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.integrity.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'integrity_list' => [
'title' => lng('admin.integritycheck'),
'icon' => 'fa-solid fa-circle-check',
'self_overview' => ['section' => 'settings', 'page' => 'integritycheck'],
'default_sorting' => ['displayid' => 'asc'],
'no_search' => true,
'columns' => [
'displayid' => [
'label' => 'ID',
'field' => 'displayid'
],
'checkdesc' => [
'label' => lng('admin.integrityname'),
'field' => 'checkdesc'
],
'result' => [
'label' => lng('admin.integrityresult'),
'field' => 'result',
'callback' => [Text::class, 'boolean'],
'searchable' => false,
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('integrity_list', [
'displayid',
'checkdesc',
'result'
]),
'format_callback' => [
[Style::class, 'resultIntegrityBad']
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.ipsandports.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'ipsandports_list' => [
'title' => lng('admin.ipsandports.ipsandports'),
'icon' => 'fa-solid fa-ethernet',
'self_overview' => ['section' => 'ipsandports', 'page' => 'ipsandports'],
'default_sorting' => ['ip' => 'asc'],
'columns' => [
'ip' => [
'label' => lng('admin.ipsandports.ip'),
'field' => 'ip',
'isdefaultsearchfield' => true,
],
'port' => [
'label' => lng('admin.ipsandports.port'),
'field' => 'port',
'class' => 'text-center',
],
'listen' => [
'label' => 'Listen',
'field' => 'listen_statement',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
'visible' => Settings::Get('system.webserver') != 'nginx'
],
'namevirtualhost' => [
'label' => 'NameVirtualHost',
'field' => 'namevirtualhost_statement',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
'visible' => Settings::Get('system.webserver') == 'apache2' && (int)Settings::Get('system.apache24') == 0
],
'vhostcontainer' => [
'label' => 'vHost-Container',
'field' => 'vhostcontainer',
'class' => 'text-center',
'callback' => [Text::class, 'boolean']
],
'servername' => [
'label' => lng('admin.ipsandports.create_vhostcontainer_servername_statement'),
'field' => 'vhostcontainer_servername_statement',
'class' => 'text-center',
'callback' => [Text::class, 'boolean'],
'visible' => Settings::Get('system.webserver') == 'apache2'
],
'specialsettings' => [
'label' => 'Specialsettings',
'field' => 'specialsettings',
'class' => 'text-center',
'callback' => [Text::class, 'boolean']
],
'ssl' => [
'label' => 'SSL',
'field' => 'ssl',
'class' => 'text-center',
'callback' => [Text::class, 'boolean']
],
'ssl_cert_file' => [
'label' => lng('admin.ipsandports.ssl_cert_file'),
'field' => 'ssl_cert_file',
'class' => 'text-center',
],
'ssl_key_file' => [
'label' => lng('admin.ipsandports.ssl_key_file'),
'field' => 'ssl_key_file',
'class' => 'text-center',
],
'ssl_ca_file' => [
'label' => lng('admin.ipsandports.ssl_ca_file'),
'field' => 'ssl_ca_file',
'class' => 'text-center',
],
'ssl_cert_chainfile' => [
'label' => lng('admin.ipsandports.ssl_cert_chainfile.title'),
'field' => 'ssl_cert_chainfile',
'class' => 'text-center',
],
'docroot' => [
'label' => lng('admin.ipsandports.docroot.title'),
'field' => 'docroot',
'class' => 'text-center',
],
'ssl_specialsettings' => [
'label' => 'SSL Specialsettings',
'field' => 'ssl_specialsettings',
'class' => 'text-center',
'callback' => [Text::class, 'boolean']
],
'include_specialsettings' => [
'label' => lng('serversettings.includedefault_sslvhostconf'),
'field' => 'include_specialsettings',
'class' => 'text-center',
'callback' => [Text::class, 'boolean']
],
'ssl_default_vhostconf_domain' => [
'label' => lng('admin.ipsandports.ssl_default_vhostconf_domain'),
'field' => 'ssl_default_vhostconf_domain',
'class' => 'text-center',
'callback' => [Text::class, 'boolean']
],
'include_default_vhostconf_domain' => [
'label' => '[Domains] '. lng('serversettings.includedefault_sslvhostconf'),
'field' => 'include_default_vhostconf_domain',
'class' => 'text-center',
'callback' => [Text::class, 'boolean']
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('ipsandports_list', [
'ip',
'port',
'vhostcontainer',
'specialsettings',
'servername',
'ssl'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'ipsandports',
'page' => 'ipsandports',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'ipsandports',
'page' => 'ipsandports',
'action' => 'delete',
'id' => ':id'
],
],
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.mailtemplates.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Listing;
return [
'mailtpl_list' => [
'title' => lng('admin.templates.templates'),
'icon' => 'fa-solid fa-envelope',
'self_overview' => ['section' => 'templates', 'page' => 'email'],
'default_sorting' => ['template' => 'asc'],
'no_search' => true,
'columns' => [
'language' => [
'label' => lng('login.language'),
'field' => 'language'
],
'template' => [
'label' => lng('admin.templates.action'),
'field' => 'template'
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('mailtpl_list', [
'language',
'template'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'templates',
'page' => $page,
'action' => 'edit',
'subjectid' => ':subjectid',
'mailbodyid' => ':mailbodyid'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'templates',
'page' => $page,
'action' => 'delete',
'subjectid' => ':subjectid',
'mailbodyid' => ':mailbodyid'
],
],
],
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.mysqlserver.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Admin;
use Froxlor\UI\Listing;
return [
'mysqlserver_list' => [
'title' => lng('admin.mysqlserver.mysqlserver'),
'icon' => 'fa-solid fa-server',
'self_overview' => ['section' => 'mysqlserver', 'page' => 'mysqlserver'],
'default_sorting' => ['caption' => 'asc'],
'columns' => [
'id' => [
'label' => lng('admin.mysqlserver.dbserver'),
'field' => 'id',
],
'caption' => [
'label' => lng('admin.mysqlserver.caption'),
'field' => 'caption',
'isdefaultsearchfield' => true,
],
'host' => [
'label' => lng('admin.mysqlserver.host'),
'field' => 'host',
],
'port' => [
'label' => lng('admin.mysqlserver.port'),
'field' => 'port',
'class' => 'text-center',
],
'user' => [
'label' => lng('admin.mysqlserver.user'),
'field' => 'user',
'visible' => [Admin::class, 'canChangeServerSettings']
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('mysqlserver_list', [
'caption',
'host',
'port',
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'mysqlserver',
'page' => 'mysqlserver',
'action' => 'edit',
'id' => ':id'
],
'visible' => [Admin::class, 'canChangeServerSettings']
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'mysqlserver',
'page' => 'mysqlserver',
'action' => 'delete',
'id' => ':id'
],
'visible' => [Admin::class, 'canChangeServerSettings']
],
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.phpconfigs.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\UI\Callbacks\Admin;
use Froxlor\UI\Callbacks\PHPConf;
use Froxlor\UI\Listing;
return [
'phpconf_list' => [
'title' => lng('menue.phpsettings.maintitle'),
'icon' => 'fa-brands fa-php',
'self_overview' => ['section' => 'phpsettings', 'page' => 'overview'],
'default_sorting' => ['c.description' => 'asc'],
'columns' => [
'c.id' => [
'label' => 'ID',
'field' => 'id',
],
'c.description' => [
'label' => lng('admin.phpsettings.description'),
'field' => 'description',
'isdefaultsearchfield' => true,
],
'domains' => [
'label' => lng('admin.phpsettings.activedomains'),
'field' => 'domains',
'callback' => [PHPConf::class, 'domainList'],
'searchable' => false,
'sortable' => false,
],
'fpmdesc' => [
'label' => lng('admin.phpsettings.fpmdesc'),
'field' => 'fpmdesc',
'visible' => (bool)Settings::Get('phpfpm.enabled'),
'callback' => [PHPConf::class, 'fpmConfLink']
],
'c.binary' => [
'label' => lng('admin.phpsettings.binary'),
'field' => 'binary',
'visible' => !(bool)Settings::Get('phpfpm.enabled')
],
'c.file_extensions' => [
'label' => lng('admin.phpsettings.file_extensions'),
'field' => 'file_extensions',
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('phpconf_list', [
'c.description',
'domains',
'fpmdesc',
'c.binary',
'c.file_extensions'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'phpsettings',
'page' => 'overview',
'action' => 'edit',
'id' => ':id'
],
'visible' => [Admin::class, 'canChangeServerSettings']
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'phpsettings',
'page' => 'overview',
'action' => 'delete',
'id' => ':id'
],
'visible' => [PHPConf::class, 'isNotDefault']
]
]
]
];
================================================
FILE: lib/tablelisting/admin/tablelisting.plans.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'plan_list' => [
'title' => lng('admin.plans.plans'),
'icon' => 'fa-solid fa-clipboard-list',
'self_overview' => ['section' => 'plans', 'page' => 'overview'],
'default_sorting' => ['p.name' => 'asc'],
'columns' => [
'p.id' => [
'label' => 'ID',
'field' => 'id',
],
'p.name' => [
'label' => lng('admin.plans.name'),
'field' => 'name',
'isdefaultsearchfield' => true,
],
'p.description' => [
'label' => lng('admin.plans.description'),
'field' => 'description',
],
'p.adminname' => [
'label' => lng('admin.admin'),
'field' => 'adminname',
],
'p.ts' => [
'label' => lng('admin.plans.last_update'),
'field' => 'ts',
'callback' => [Text::class, 'timestamp'],
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('plan_list', [
'p.name',
'p.description',
'p.adminname',
'p.ts',
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'plans',
'page' => 'overview',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'plans',
'page' => 'overview',
'action' => 'delete',
'id' => ':id'
],
],
]
]
];
================================================
FILE: lib/tablelisting/customer/index.html
================================================
================================================
FILE: lib/tablelisting/customer/tablelisting.domains.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Domain;
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'domain_list' => [
'title' => lng('admin.domains'),
'icon' => 'fa-solid fa-globe',
'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'default_sorting' => ['d.domain_ace' => 'asc'],
'columns' => [
'd.domain_ace' => [
'label' => lng('domains.domainname'),
'field' => 'domain_ace',
'callback' => [Domain::class, 'domainExternalLinkInfo'],
],
'ipsandports' => [
'label' => lng('admin.ipsandports.ipsandports'),
'field' => 'ipsandports',
'sortable' => false,
'callback' => [Domain::class, 'listIPs'],
'searchable' => false,
],
'd.documentroot' => [
'label' => lng('panel.path'),
'field' => 'documentroot',
'callback' => [Domain::class, 'domainTarget'],
],
'd.isbinddomain' => [
'label' => lng('domains.isbinddomain'),
'field' => 'isbinddomain',
'callback' => [Text::class, 'boolean'],
],
'd.isemaildomain' => [
'label' => lng('admin.emaildomain'),
'field' => 'isemaildomain',
'callback' => [Text::class, 'boolean'],
],
'd.email_only' => [
'label' => lng('admin.email_only'),
'field' => 'email_only',
'callback' => [Text::class, 'boolean'],
],
'd.iswildcarddomain' => [
'label' => lng('domains.serveraliasoption_wildcard'),
'field' => 'iswildcarddomain',
'callback' => [Text::class, 'boolean'],
],
'd.letsencrypt' => [
'label' => lng('panel.letsencrypt'),
'field' => 'letsencrypt',
'callback' => [Text::class, 'boolean'],
],
'ad.id' => [
'label' => lng('domains.aliasdomainid'),
'field' => 'aliasdomainid'
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('domain_list', [
'd.domain_ace',
'd.documentroot'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'domains',
'page' => 'domains',
'action' => 'edit',
'id' => ':id'
],
'visible' => [Domain::class, 'canEdit']
],
'logfiles' => [
'icon' => 'fa-solid fa-file',
'title' => lng('panel.viewlogs'),
'href' => [
'section' => 'domains',
'page' => 'logfiles',
'domain_id' => ':id'
],
'visible' => [Domain::class, 'canViewLogs']
],
'domaindnseditor' => [
'icon' => 'fa-solid fa-globe',
'title' => lng('dnseditor.edit'),
'href' => [
'section' => 'domains',
'page' => 'domaindnseditor',
'domain_id' => ':id'
],
'visible' => [Domain::class, 'canEditDNS']
],
'domainssleditor' => [
'callback' => [Domain::class, 'editSSLButtons'],
],
'letsencrypt' => [
'icon' => 'fa-solid fa-shield',
'title' => lng('panel.letsencrypt'),
'visible' => [Domain::class, 'hasLetsEncryptActivated']
],
'haslias' => [
'icon' => 'fa-solid fa-arrow-up-right-from-square',
'title' => lng('domains.hasaliasdomains'),
'href' => [
'section' => 'domains',
'page' => 'domains',
'searchfield' => 'ad.id',
'searchtext' => ':id'
],
'visible' => [Domain::class, 'canEditAlias']
],
'isassigned' => [
'icon' => 'fa-solid fa-check-to-slot',
'title' => lng('domains.isassigneddomain'),
'visible' => [Domain::class, 'isAssigned']
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'domains',
'page' => 'domains',
'action' => 'delete',
'id' => ':id'
],
'visible' => [Domain::class, 'canDelete']
]
],
'format_callback' => [
[Style::class, 'resultDomainTerminatedOrDeactivated']
]
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.emails.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\UI\Callbacks\Email;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'email_list' => [
'title' => lng('menue.email.emails'),
'icon' => 'fa-solid fa-envelope',
'self_overview' => ['section' => 'email', 'page' => 'email_domain'],
'default_sorting' => ['m.email_full' => 'asc'],
'columns' => [
'm.email_full' => [
'label' => lng('emails.emailaddress'),
'field' => 'email_full',
],
'm.destination' => [
'label' => lng('emails.forwarders'),
'field' => 'destination',
'callback' => [Email::class, 'forwarderList'],
],
'm.popaccountid' => [
'label' => lng('emails.account'),
'field' => 'popaccountid',
'callback' => [Email::class, 'account'],
],
'm.spam_tag_level' => [
'label' => lng('antispam.spam_tag_level.title'),
'field' => 'spam_tag_level',
],
'm.spam_kill_level' => [
'label' => lng('antispam.spam_kill_level.title'),
'field' => 'spam_kill_level',
],
'm.bypass_spam' => [
'label' => lng('antispam.bypass_spam.title'),
'field' => 'bypass_spam',
'callback' => [Text::class, 'boolean'],
],
'm.policy_greylist' => [
'label' => lng('antispam.policy_greylist.title'),
'field' => 'policy_greylist',
'callback' => [Text::class, 'boolean'],
],
'm.iscatchall' => [
'label' => lng('emails.catchall'),
'field' => 'iscatchall',
'callback' => [Text::class, 'boolean'],
'visible' => Settings::Get('catchall.catchall_enabled') == '1'
],
'u.quota' => [
'label' => lng('emails.quota'),
'field' => 'quota',
'visible' => Settings::Get('system.mail_quota_enabled') == '1'
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('email_list', [
'm.email_full',
'm.destination',
'm.popaccountid',
'm.iscatchall',
'u.quota'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'email',
'page' => 'email_domain',
'domainid' => ':domainid',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'email',
'page' => 'email_domain',
'domainid' => ':domainid',
'action' => 'delete',
'id' => ':id'
],
]
]
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.emails_overview.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Impersonate;
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'emaildomain_list' => [
'title' => lng('menue.email.emailsoverview'),
'icon' => 'fa-solid fa-envelope',
'self_overview' => ['section' => 'email', 'page' => 'overview'],
'default_sorting' => ['d.domain_ace' => 'asc'],
'columns' => [
'd.domain_ace' => [
'label' => 'Domain',
'field' => 'domain',
],
'addresses' => [
'label' => '# ' . lng('emails.emails'),
'field' => 'addresses',
'searchable' => false,
],
'accounts' => [
'label' => '# ' . lng('emails.accounts'),
'field' => 'accounts',
'searchable' => false,
],
'forwarder' => [
'label' => '# ' . lng('emails.forwarders'),
'field' => 'forwarder',
'searchable' => false,
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('emaildomain_list', [
'd.domain_ace',
'addresses',
'accounts',
'forwarder',
]),
'actions' => [
'show' => [
'icon' => 'fa-solid fa-eye',
'title' => lng('apikeys.clicktoview'),
'href' => [
'section' => 'email',
'page' => 'email_domain',
'domainid' => ':domainid'
],
],
],
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.export.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Ftp;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'export_list' => [
'title' => lng('error.customerhasongoingexportjob'),
'icon' => 'fa-solid fa-server',
'self_overview' => ['section' => 'extras', 'page' => 'export'],
'default_sorting' => ['destdir' => 'asc'],
'columns' => [
'destdir' => [
'label' => lng('panel.path'),
'field' => 'data.destdir',
'callback' => [Ftp::class, 'pathRelative']
],
'pgp_public_key' => [
'label' => lng('panel.pgp_public_key'),
'field' => 'data.pgp_public_key',
'callback' => [Text::class, 'boolean']
],
'dump_web' => [
'label' => lng('extras.dump_web'),
'field' => 'data.dump_web',
'callback' => [Text::class, 'boolean'],
],
'dump_mail' => [
'label' => lng('extras.dump_mail'),
'field' => 'data.dump_mail',
'callback' => [Text::class, 'boolean'],
],
'dump_dbs' => [
'label' => lng('extras.dump_dbs'),
'field' => 'data.dump_dbs',
'callback' => [Text::class, 'boolean'],
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('export_list', [
'destdir',
'pgp_public_key',
'dump_web',
'dump_mail',
'dump_dbs'
]),
'actions' => [
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.abort'),
'class' => 'btn-warning',
'href' => [
'section' => 'extras',
'page' => 'export',
'action' => 'abort',
'id' => ':id'
],
]
]
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.ftps.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\Settings;
use Froxlor\UI\Callbacks\Ftp;
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'ftp_list' => [
'title' => lng('menue.ftp.accounts'),
'icon' => 'fa-solid fa-users',
'self_overview' => ['section' => 'ftp', 'page' => 'accounts'],
'default_sorting' => ['username' => 'asc'],
'columns' => [
'username' => [
'label' => lng('login.username'),
'field' => 'username',
],
'description' => [
'label' => lng('panel.ftpdesc'),
'field' => 'description'
],
'homedir' => [
'label' => lng('panel.path'),
'field' => 'homedir',
'callback' => [Ftp::class, 'pathRelative']
],
'shell' => [
'label' => lng('panel.shell'),
'field' => 'shell',
'visible' => Settings::Get('system.allow_customer_shell') == '1'
],
'login_enabled' => [
'label' => lng('panel.active'),
'field' => 'login_enabled',
'callback' => [Text::class, 'yesno'],
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('ftp_list', [
'username',
'description',
'homedir',
'shell',
'login_enabled',
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'ftp',
'page' => 'accounts',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'ftp',
'page' => 'accounts',
'action' => 'delete',
'id' => ':id'
],
]
],
'format_callback' => [
[Style::class, 'loginDisabled']
],
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.htaccess.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Ftp;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
// used outside scope variables
$cperlenabled = $cperlenabled ?? false;
return [
'htaccess_list' => [
'title' => lng('menue.extras.pathoptions'),
'icon' => 'fa-solid fa-folder',
'self_overview' => ['section' => 'extras', 'page' => 'htaccess'],
'default_sorting' => ['path' => 'asc'],
'columns' => [
'path' => [
'label' => lng('panel.path'),
'field' => 'path',
'callback' => [Ftp::class, 'pathRelative']
],
'options_indexes' => [
'label' => lng('extras.view_directory'),
'field' => 'options_indexes',
'callback' => [Text::class, 'boolean']
],
'error404path' => [
'label' => lng('extras.error404path'),
'field' => 'error404path'
],
'error403path' => [
'label' => lng('extras.error403path'),
'field' => 'error403path'
],
'error500path' => [
'label' => lng('extras.error500path'),
'field' => 'error500path'
],
'options_cgi' => [
'label' => lng('extras.execute_perl'),
'field' => 'options_cgi',
'callback' => [Text::class, 'boolean'],
'visible' => $cperlenabled
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('htaccess_list', [
'path',
'options_indexes',
'error404path',
'error403path',
'error500path',
'options_cgi'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'extras',
'page' => 'htaccess',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'extras',
'page' => 'htaccess',
'action' => 'delete',
'id' => ':id'
],
]
]
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.htpasswd.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Ftp;
use Froxlor\UI\Listing;
return [
'htpasswd_list' => [
'title' => lng('menue.extras.directoryprotection'),
'icon' => 'fa-solid fa-lock',
'self_overview' => ['section' => 'extras', 'page' => 'htpasswds'],
'default_sorting' => ['path' => 'asc'],
'columns' => [
'username' => [
'label' => lng('login.username'),
'field' => 'username'
],
'path' => [
'label' => lng('panel.path'),
'field' => 'path',
'callback' => [Ftp::class, 'pathRelative']
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('htpasswd_list', [
'username',
'path'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'extras',
'page' => 'htpasswds',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'extras',
'page' => 'htpasswds',
'action' => 'delete',
'id' => ':id'
],
]
]
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.mysqls.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Mysql;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
// used outside scope variables
$multiple_mysqlservers = $multiple_mysqlservers ?? false;
return [
'mysql_list' => [
'title' => lng('menue.mysql.databases'),
'icon' => 'fa-solid fa-database',
'self_overview' => ['section' => 'mysql', 'page' => 'mysqls'],
'default_sorting' => ['databasename' => 'asc'],
'columns' => [
'databasename' => [
'label' => lng('mysql.databasename'),
'field' => 'databasename',
],
'description' => [
'label' => lng('mysql.databasedescription'),
'field' => 'description'
],
'size' => [
'label' => lng('mysql.size'),
'field' => 'size',
'callback' => [Text::class, 'size'],
'searchable' => false
],
'dbserver' => [
'label' => lng('mysql.mysql_server'),
'field' => 'dbserver',
'callback' => [Mysql::class, 'dbserver'],
'visible' => $multiple_mysqlservers
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('mysql_list', [
'databasename',
'description',
'size',
'dbserver'
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'mysql',
'page' => 'mysqls',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'mysql',
'page' => 'mysqls',
'action' => 'delete',
'id' => ':id'
],
]
]
]
];
================================================
FILE: lib/tablelisting/customer/tablelisting.sshkeys.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Listing;
return [
'sshkeys_list' => [
'title' => lng('menue.ftp.sshkeys'),
'icon' => 'fa-solid fa-key',
'self_overview' => ['section' => 'ftp', 'page' => 'sshkeys'],
'default_sorting' => ['f.username' => 'asc'],
'columns' => [
'username' => [
'label' => lng('login.username'),
'field' => 'username',
],
'description' => [
'label' => lng('panel.sshkeydesc'),
'field' => 'description'
],
'fingerprint' => [
'label' => lng('panel.sshfingerprint'),
'field' => 'fingerprint',
'sortable' => false,
'searchable' => false,
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('sshkeys_list', [
'username',
'description',
'fingerprint',
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'ftp',
'page' => 'sshkeys',
'action' => 'edit',
'id' => ':id'
],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'ftp',
'page' => 'sshkeys',
'action' => 'delete',
'id' => ':id'
],
]
],
]
];
================================================
FILE: lib/tablelisting/index.html
================================================
================================================
FILE: lib/tablelisting/tablelisting.apikeys.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Impersonate;
use Froxlor\UI\Callbacks\Style;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'apikeys_list' => [
'title' => lng('menue.main.apikeys'),
'icon' => 'fa-solid fa-key',
'self_overview' => ['section' => 'index', 'page' => 'apikeys'],
'no_search' => true,
'columns' => [
'a.loginname' => [
'label' => lng('login.username'),
'field' => 'loginname',
'callback' => [Impersonate::class, 'apiAdminCustomerLink']
],
'ak.apikey' => [
'label' => 'API-key',
'field' => 'apikey',
'callback' => [Text::class, 'shorten'],
],
'ak.secret' => [
'label' => 'Secret',
'field' => 'secret',
'callback' => [Text::class, 'shorten'],
],
'ak.allowed_from' => [
'label' => lng('apikeys.allowed_from'),
'field' => 'allowed_from',
],
'ak.valid_until' => [
'label' => lng('apikeys.valid_until'),
'field' => 'valid_until',
'callback' => [Text::class, 'timestampUntil'],
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('apikeys_list', [
'a.loginname',
'ak.apikey',
'ak.secret',
'ak.allowed_from',
'ak.valid_until'
]),
'actions' => [
'show' => [
'icon' => 'fa-solid fa-eye',
'title' => lng('apikeys.clicktoview'),
'modal' => [Text::class, 'apikeyDetailModal'],
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'index',
'page' => 'apikeys',
'action' => 'delete',
'id' => ':id'
],
],
],
'format_callback' => [
[Style::class, 'invalidApiKey']
]
]
];
================================================
FILE: lib/tablelisting/tablelisting.dns.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Dns;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
// used outside scope variables
$domain = $domain ?? '';
$domain_id = $domain_id ?? '';
return [
'dns_list' => [
'title' => 'DNS Entries',
'description' => $domain,
'icon' => 'fa-solid fa-globe',
'self_overview' => ['section' => 'domains', 'page' => 'domaindnseditor'],
'default_sorting' => ['record' => 'asc'],
'columns' => [
'record' => [
'label' => 'Record',
'field' => 'record'
],
'type' => [
'label' => 'Type',
'field' => 'type'
],
'prio' => [
'label' => 'Priority',
'field' => 'prio',
'callback' => [Dns::class, 'prio'],
],
'content' => [
'label' => 'Content',
'field' => 'content',
'callback' => [Text::class, 'wordwrap'],
],
'ttl' => [
'label' => 'TTL',
'field' => 'ttl'
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('dns_list', [
'record',
'type',
'prio',
'content',
'ttl'
]),
'actions' => [
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'text-danger',
'href' => [
'section' => 'domains',
'page' => 'domaindnseditor',
'action' => 'delete',
'domain_id' => $domain_id,
'id' => ':id'
],
],
]
]
];
================================================
FILE: lib/tablelisting/tablelisting.sslcertificates.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\Domain;
use Froxlor\UI\Callbacks\SSLCertificate;
use Froxlor\UI\Listing;
return [
'sslcertificates_list' => [
'title' => lng('domains.ssl_certificates'),
'icon' => 'fa-solid fa-shield',
'self_overview' => ['section' => 'domains', 'page' => 'sslcertificates'],
'default_sorting' => ['d.domain' => 'asc'],
'columns' => [
'd.domain' => [
'label' => lng('domains.domainname'),
'field' => 'domain',
'callback' => [Domain::class, 'domainWithCustomerLink'],
],
'c.domain' => [
'label' => lng('ssl_certificates.certificate_for'),
'field' => 'domain',
'callback' => [SSLCertificate::class, 'domainWithSan'],
'searchable' => false,
],
's.issuer' => [
'label' => lng('ssl_certificates.issuer'),
'field' => 'issuer',
],
's.validfromdate' => [
'label' => lng('ssl_certificates.valid_from'),
'field' => 'validfromdate',
'searchable' => false,
],
's.validtodate' => [
'label' => lng('ssl_certificates.valid_until'),
'field' => 'validtodate',
'searchable' => false,
],
],
'visible_columns' => Listing::getVisibleColumnsForListing('sslcertificates_list', [
'd.domain',
'c.domain',
's.issuer',
's.validfromdate',
's.validtodate',
]),
'actions' => [
'edit' => [
'icon' => 'fa-solid fa-edit',
'title' => lng('panel.edit'),
'href' => [
'section' => 'domains',
'page' => 'domainssleditor',
'action' => 'view',
'id' => ':domainid'
],
'visible' => [SSLCertificate::class, 'canEditSSL']
],
'delete' => [
'icon' => 'fa-solid fa-trash',
'title' => lng('panel.delete'),
'class' => 'btn-danger',
'href' => [
'section' => 'domains',
'page' => 'sslcertificates',
'action' => 'delete',
'id' => ':id'
],
// Let's Encrypt certificates can be removed 'correctly'
// by disabling let's encrypt for the domain
'visible' => [SSLCertificate::class, 'isNotLetsEncrypt']
],
]
]
];
================================================
FILE: lib/tablelisting/tablelisting.syslog.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
use Froxlor\UI\Callbacks\SysLog;
use Froxlor\UI\Callbacks\Text;
use Froxlor\UI\Listing;
return [
'syslog_list' => [
'title' => lng('menue.logger.logger'),
'icon' => 'fa-solid fa-file-lines',
'self_overview' => ['section' => 'logger', 'page' => 'log'],
'default_sorting' => ['date' => 'desc'],
'columns' => [
'date' => [
'label' => lng('logger.date'),
'field' => 'date',
'callback' => [Text::class, 'timestamp'],
],
'type' => [
'label' => lng('logger.type'),
'field' => 'type',
'callback' => [SysLog::class, 'typeDescription'],
],
'user' => [
'label' => lng('logger.user'),
'field' => 'user',
],
'text' => [
'label' => lng('logger.action'),
'field' => 'text',
]
],
'visible_columns' => Listing::getVisibleColumnsForListing('syslog_list', [
'date',
'type',
'user',
'text'
])
]
];
================================================
FILE: lib/tables.inc.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
const TABLE_FTP_GROUPS = 'ftp_groups';
const TABLE_FTP_USERS = 'ftp_users';
const TABLE_FTP_QUOTALIMITS = 'ftp_quotalimits';
const TABLE_FTP_QUOTATALLIES = 'ftp_quotatallies';
const TABLE_MAIL_USERS = 'mail_users';
const TABLE_MAIL_VIRTUAL = 'mail_virtual';
const TABLE_MAIL_SENDER_ALIAS = 'mail_sender_aliases';
const TABLE_PANEL_ACTIVATION = 'panel_activation';
const TABLE_PANEL_ADMINS = 'panel_admins';
const TABLE_PANEL_CUSTOMERS = 'panel_customers';
const TABLE_PANEL_DATABASES = 'panel_databases';
const TABLE_PANEL_DOMAINS = 'panel_domains';
const TABLE_PANEL_HTACCESS = 'panel_htaccess';
const TABLE_PANEL_HTPASSWDS = 'panel_htpasswds';
const TABLE_PANEL_SETTINGS = 'panel_settings';
const TABLE_PANEL_TASKS = 'panel_tasks';
const TABLE_PANEL_TEMPLATES = 'panel_templates';
const TABLE_PANEL_TRAFFIC = 'panel_traffic';
const TABLE_PANEL_TRAFFIC_ADMINS = 'panel_traffic_admins';
const TABLE_PANEL_DISKSPACE = 'panel_diskspace';
const TABLE_PANEL_IPSANDPORTS = 'panel_ipsandports';
const TABLE_PANEL_LOG = 'panel_syslog';
const TABLE_PANEL_PHPCONFIGS = 'panel_phpconfigs';
const TABLE_PANEL_CRONRUNS = 'cronjobs_run';
const TABLE_PANEL_REDIRECTCODES = 'redirect_codes';
const TABLE_PANEL_DOMAINREDIRECTS = 'domain_redirect_codes';
const TABLE_PANEL_DOMAIN_SSL_SETTINGS = 'domain_ssl_settings';
const TABLE_DOMAINTOIP = 'panel_domaintoip';
const TABLE_DOMAIN_DNS = 'domain_dns_entries';
const TABLE_PANEL_FPMDAEMONS = 'panel_fpmdaemons';
const TABLE_PANEL_PLANS = 'panel_plans';
const TABLE_API_KEYS = 'api_keys';
const TABLE_PANEL_USERCOLUMNS = 'panel_usercolumns';
const TABLE_PANEL_LOGINLINKS = 'panel_loginlinks';
const TABLE_PANEL_2FA_TOKENS = 'panel_2fa_tokens';
const TABLE_PANEL_USER_SSHKEYS = 'panel_sshkeys';
================================================
FILE: lng/ca.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => 'Txec',
'de' => 'Alemany',
'en' => 'Angles',
'fr' => 'Frances',
'it' => 'Italia',
'nl' => 'Holandes',
'pt' => 'Portugues',
'se' => 'Suec',
'sk' => 'Eslovac',
'es' => 'Espanyol',
'ca' => 'Catala',
'zh_CN' => 'Xines (Simplificat)',
],
'2fa' => [
'2fa' => 'Opcions 2FA',
'2fa_enabled' => 'Activar l\'autenticació de dos factors (2FA)',
'2fa_removed' => '2FA eliminat correctament',
'2fa_added' => '2FA activat correctament Veure detalls de 2FA',
'2fa_add' => 'Activar 2FA',
'2fa_delete' => 'Desactivar 2FA',
'2fa_verify' => 'Verificar codi',
'2fa_overview_desc' => 'Aquí podeu activar una autenticació de dos factors per al vostre compte.
Podeu utilitzar una aplicació d\'autenticació (contrasenya d\'un sol ús basada en el temps / TOTP) o deixar que froxlor us enviï un correu electrònic a l\'adreça del vostre compte després de cada inici de sessió correcte amb una contrasenya d\'un sol ús.',
'2fa_email_desc' => 'El vostre compte està configurat per utilitzar contrasenyes d\'un sol ús per a cada correu electrònic. Per desactivar-la, feu clic a "Desactivar 2FA".',
'2fa_ga_desc' => 'El vostre compte està configurat per utilitzar contrasenyes d\'un sol ús basades en el temps mitjançant una aplicació d\'autenticació. Escanegeu el codi QR que apareix a continuació amb l\'aplicació d\'autenticació que vulgueu per generar els codis. Per desactivar, feu clic a "Desactivar 2FA".'
],
'admin' => [
'overview' => 'Visió general',
'ressourcedetails' => 'Recursos utilitzats',
'systemdetails' => 'Detalls del sistema',
'froxlordetails' => 'Detalls de froxlor',
'installedversion' => 'Versió instal·lada',
'latestversion' => 'Última versió',
'lookfornewversion' => [
'clickhere' => 'Cerca mitjançant el servei web',
'error' => 'Error de lectura'
],
'resources' => 'Recursos',
'customer' => 'Client',
'customers' => 'Clients',
'customers_list_desc' => 'Gestioni els seus clients',
'customer_add' => 'Crear client',
'customer_edit' => 'Editar client',
'username_default_msg' => 'Deixar buit per al valor autogenerat',
'domains' => 'Dominis',
'domain_add' => 'Crear domini',
'domain_edit' => 'Editar domini',
'subdomainforemail' => 'Subdominis com dominis de correu electrònic',
'admin' => 'Administrador',
'admins' => 'Administradors',
'admin_add' => 'Crear administrador',
'admin_edit' => 'Editar administrador',
'customers_see_all' => 'Pot accedir als recursos d\'altres administradors/revenedors?',
'change_serversettings' => 'Pot canviar la configuració del servidor?',
'server' => 'Sistema',
'serversettings' => 'Ajustos',
'serversettings_desc' => 'Administrar el sistema froxlor',
'rebuildconf' => 'Reconstruir arxius de configuració',
'stdsubdomain' => 'Subdomini estàndard',
'stdsubdomain_add' => 'Crear subdomini estàndard',
'phpenabled' => 'PHP habilitat',
'deactivated' => 'Desactivat',
'deactivated_user' => 'Desactivar usuari',
'sendpassword' => 'Enviar contrasenya',
'ownvhostsettings' => 'Configuració vHost pròpia',
'configfiles' => [
'serverconfiguration' => 'Configuració',
'overview' => 'Visió general',
'wizard' => 'Assistent',
'distribution' => 'Distribució',
'service' => 'Servei',
'daemon' => 'Dimoni',
'http' => 'Servidor web (HTTP)',
'dns' => 'Servidor de noms (DNS)',
'mail' => 'Servidor de correu (IMAP/POP3)',
'smtp' => 'Servidor de correu (SMTP)',
'ftp' => 'Servidor FTP',
'etc' => 'Altres (Sistema)',
'choosedistribution' => '-- Esculli una distribució --',
'chooseservice' => '-- Esculli un servei --',
'choosedaemon' => '-- Esculli un dimoni --',
'statistics' => 'Estadístiques',
'compactoverview' => 'Vista general compacta',
'legend' => '
Està a punt de configurar un servei/dimoni
',
'commands' => 'Ordres: Aquestes ordres han de ser executades línia per línia com a usuari root en una shell. És segur copiar tot el bloc i enganxar-lo a l\'intèrpret d\'ordres.',
'files' => 'Fitxers de configuració: Les ordres abans dels camps de text han d\'obrir un editor amb el fitxer de destí. Només has de copiar i enganxar el contingut a l\'editor i desar el fitxer. Nota: La contrasenya MySQL no ha estat reemplaçada per raons de seguretat. Si us plau, reemplaça "FROXLOR_MYSQL_PASSWORD" pel teu compte o fes servir el formulari javascript de sota per reemplaçar-la in situ. Si has oblidat la teva contrasenya MySQL la trobaràs a "lib/userdata.inc.php".',
'importexport' => 'Importar/Exportar',
'finishnote' => 'Fitxer de paràmetres generat correctament. Ara executeu la següent ordre com a root:',
'description' => 'Configurar els serveis del sistema',
'minihowto' => 'En aquesta pàgina podeu veure les diferents plantilles de configuració per a cada servei, (re)configurar serveis específics si cal o exportar la selecció actual a un fitxer JSON per utilitzar-lo als scripts CLI o en un altre servidor.
Tingui en compte que els serveis ressaltats no reflecteixen la configuració actual, sinó que mostren requisits/recomanacions dels seus valors de configuració actuals.',
'skipconfig' => 'No (re)configurar',
'recommendednote' => 'Serveis recomanats/requerits segons la configuració actual del sistema',
'selectrecommended' => 'Seleccionar recomanats',
'downloadselected' => 'Exportar seleccionat'
],
'templates' => [
'templates' => 'Plantilles de correu electrònic',
'template_add' => 'Afegir plantilla',
'template_fileadd' => 'Afegir plantilla de fitxer',
'template_edit' => 'Editar plantilla',
'action' => 'Acció',
'email' => 'Plantilles de correu electrònic i fitxers',
'subject' => 'Assumpte',
'mailbody' => 'Cos del correu',
'createcustomer' => 'Correu de benvinguda per a nous clients',
'pop_success' => 'Correu de benvinguda per a nous comptes de correu electrònic',
'template_replace_vars' => 'Variables a substituir a la plantilla:',
'SALUTATION' => 'Substituït per una correcta salutació (nom o empresa)',
'FIRSTNAME' => 'Substituït pel nom del client.',
'NAME' => 'Substituït pel nom complet del client.',
'COMPANY' => 'Substituït pel nom de l\'empresa del client.',
'USERNAME' => 'Substituït pel nom d\'usuari del compte del client.',
'PASSWORD' => 'Substituït per la contrasenya del compte del client.',
'EMAIL' => 'Substituït per l\'adreça de correu electrònic del compte POP3/IMAP.',
'CUSTOMER_NO' => 'Substituït pel número de client.',
'TRAFFIC' => 'Substituït pel trànsit assignat al client.',
'TRAFFICUSED' => 'Substituït pel trànsit, que ha sigut esgotat pel client.',
'pop_success_alternative' => 'Correu de benvinguda per a nous comptes de correu electrònic enviats a l\'adreça alternativa.',
'EMAIL_PASSWORD' => 'Substituït per la contrasenya del compte POP3/IMAP.',
'index_html' => 'Arxiu d\'índex per a directoris de clients acabats de crear',
'SERVERNAME' => 'Substituït pel nom del servidor.',
'CUSTOMER' => 'Substituït pel nom d\'usuari del client.',
'ADMIN' => 'Substituït pel nom d\'usuari de l\'administrador.',
'CUSTOMER_EMAIL' => 'Substituït per l\'adreça de correu electrònic del client.',
'ADMIN_EMAIL' => 'Substituït per l\'adreça de correu electrònic de l\'administrador.',
'filetemplates' => 'Plantilles de fitxers',
'filecontent' => 'Contingut del fitxer',
'new_database_by_customer' => 'Notificació al client de la creació d\'una base de dades',
'new_ftpaccount_by_customer' => 'Notificació al client de la creació d\'un usuari ftp',
'newdatabase' => 'Correus de notificació per a noves bases de dades',
'newftpuser' => 'Correus de notificació per a nous usuaris ftp',
'CUST_NAME' => 'Nom del client',
'DB_NAME' => 'Nom de la base de dades',
'DB_PASS' => 'Contrasenya de la base de dades',
'DB_DESC' => 'Descripció de la base de dades',
'DB_SRV' => 'Servidor de base de dades',
'PMA_URI' => 'URL de phpMyAdmin (si s\'indica)',
'USR_NAME' => 'Nom d\'usuari FTP',
'USR_PASS' => 'Contrasenya FTP',
'USR_PATH' => 'Directori HOME de l\'FTP (relatiu a customer-docroot)',
'forgotpwd' => 'Correus de notificació de restabliment de contrasenya',
'password_reset' => 'Notificació al client de restabliment de contrasenya',
'trafficmaxpercent' => 'Correu de notificació per als clients quan s\'esgota un determinat percentatge màxim de trànsit',
'MAX_PERCENT' => 'Substituït pel límit de l\'ús del disc/trànsit per a l\'enviament d\'informes en percentatge.',
'USAGE_PERCENT' => 'Substituït amb l\'ús del disc/trànsit esgotat pel client en percentatge.',
'diskmaxpercent' => 'Correu de notificació als clients quan s\'esgota el percentatge màxim d\'espai al disc.',
'DISKAVAILABLE' => 'Substituït per l\'ús de disc assignat al client.',
'DISKUSED' => 'Substituït per l\'ús de disc, que ha sigut esgotat pel client.',
'LINK' => 'Substituït per l\'enllaç de restabliment de contrasenya del client.',
'SERVER_HOSTNAME' => 'Reemplaça el nom del sistema (URL a froxlor)',
'SERVER_IP' => 'Reemplaça l\'adreça IP per defecte del servidor ',
'SERVER_PORT' => 'Reemplaça el port per defecte del servidor',
'DOMAINNAME' => 'Reemplaça el subdomini estàndard del client (pot estar buit si no se\'n genera cap)'
],
'webserver' => 'Servidor web',
'createzonefile' => 'Crear zona dns pel domini',
'custombindzone' => 'Arxiu de zona personalitzatada / no gestionada',
'bindzonewarning' => 'buit per defecte ATENCIÓ: Si utilitza un fitxer de zones, haurà de gestionar també manualment tots els registres necessaris per a totes les subzones.',
'ipsandports' => [
'ipsandports' => 'IPs i Ports',
'add' => 'Afegir IP/Port',
'edit' => 'Editar IP/Port',
'ipandport' => 'IP/Port',
'ip' => 'IP',
'ipnote' => '
Nota: Tot i que les adreces IP privades estan permeses, algunes característiques com DNS podrien no comportar-se correctament. Només utilitzi adreces IP privades si està segur.
',
'port' => 'Port',
'create_listen_statement' => 'Crear sentència Listen',
'create_namevirtualhost_statement' => 'Crear sentència NameVirtualHost',
'create_vhostcontainer' => 'Crear vHost-Container',
'create_vhostcontainer_servername_statement' => 'Crear sentència ServerName a vHost-Container',
'enable_ssl' => 'Es tracta d\'un port SSL?',
'ssl_cert_file' => 'Ruta del certificat SSL',
'webserverdefaultconfig' => 'Configuració per defecte del servidor web',
'webserverdomainconfig' => 'Configuració de domini del servidor web',
'webserverssldomainconfig' => 'Configuració SSL del servidor web',
'ssl_key_file' => 'Ruta del fitxer de claus SSL',
'ssl_ca_file' => 'Ruta del certificat SSL CA',
'default_vhostconf_domain' => 'Configuració vHost per defecte per a cada contenidor de domini',
'ssl_cert_chainfile' => [
'title' => 'Ruta del fitxer SSL CertificateChainFile',
'description' => 'Normalment CA_Bundle, o similar, probablement vols configurar això si has comprat un certificat SSL.'
],
'docroot' => [
'title' => 'Docroot personalizat (buit = apunta a froxlor)',
'description' => 'Aquí podeu definir un document-root personalitzat (el destí d\'una petició) per a aquesta combinació ip/port. ATENCIÓ: Si us plau, vés amb compte amb el que introdueixes aquí!'
],
'ssl_paste_description' => 'Enganxi el contingut complet del vostre certificat al quadre de text',
'ssl_cert_file_content' => 'Contingut del certificat ssl',
'ssl_key_file_content' => 'Contingut del fitxer de la clau ssl (privada)',
'ssl_ca_file_content' => 'Contingut del fitxer ssl CA (opcional)',
'ssl_ca_file_content_desc' => '
Autenticació del client, configuri això només si sap el que és.',
'ssl_cert_chainfile_content' => 'Contingut del fitxer de cadena de certificats (opcional)',
'ssl_cert_chainfile_content_desc' => '
Normalment CA_Bundle, o similar, probablement vols configurar això si has comprat un certificat SSL.',
'ssl_default_vhostconf_domain' => 'Configuració SSL vHost per defecte per a cada contenidor de domini'
],
'memorylimitdisabled' => 'Desactivat',
'valuemandatory' => 'Aquest valor és obligatori',
'valuemandatorycompany' => 'O bé "nom" i "nom complet" o "empresa" ha de ser omplert',
'serversoftware' => 'Programari del servidor',
'phpversion' => 'Versió PHP',
'mysqlserverversion' => 'Versió del servidor MySQL',
'webserverinterface' => 'Interfície del servidor web',
'accountsettings' => 'Configuració del compte',
'panelsettings' => 'Configuració del panell',
'systemsettings' => 'Configuració del sistema',
'webserversettings' => 'Configuració del servidor web',
'mailserversettings' => 'Configuració del servidor de correu',
'nameserversettings' => 'Configuració del servidor de noms',
'updatecounters' => 'Recalcular l\'ús de recursos',
'subcanemaildomain' => [
'never' => 'Mai',
'choosableno' => 'Seleccionable, per defecte no',
'choosableyes' => 'Seleccionable, per defecte sí',
'always' => 'Sempre'
],
'wipecleartextmailpwd' => 'Esborrar contrasenyes en text pla',
'webalizersettings' => 'Configuració de Webalizer',
'webalizer' => [
'normal' => 'Normal',
'quiet' => 'Silenciós',
'veryquiet' => 'No mostra res'
],
'domain_nocustomeraddingavailable' => 'Actualment no és possible afegir un domini. Primer ha d\'afegir almenys un client.',
'loggersettings' => 'Configuració del registre',
'logger' => [
'normal' => 'normal',
'paranoid' => 'paranoic'
],
'emaildomain' => 'Correu de domini',
'email_only' => 'Només correu electrònic?',
'wwwserveralias' => 'Afageix un "www." ServerAlias',
'subject' => 'Assumpte',
'recipient' => 'Destinatari',
'message' => 'Escriure un missatge',
'text' => 'Missatge',
'sslsettings' => 'Configuració SSL',
'specialsettings_replacements' => 'Pot utilitzar les següents variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (si escau) ',
'dkimsettings' => 'Configuració de DKIM',
'caneditphpsettings' => 'Pot canviar els paràmetres de domini relacionats amb php?',
'allips' => 'Totes les IP',
'awstatssettings' => 'Configuració de AWstats',
'domain_dns_settings' => 'Configuració DNS del domini',
'activated' => 'Activat',
'statisticsettings' => 'Configuració d\'estadístiques',
'or' => 'o',
'sysload' => 'Càrrega del sistema',
'noloadavailable' => 'no disponible',
'nouptimeavailable' => 'no disponible',
'nosubject' => '(Sense assumpte)',
'security_settings' => 'Opcions de seguretat',
'know_what_youre_doing' => 'Canviar només si sap el que fa!',
'show_version_login' => [
'title' => 'Mostra la versió de froxlor a l\'inici de sessió',
'description' => 'Mostrar la versió de froxlor al peu de pàgina a la pàgina d\'inici de sessió'
],
'show_version_footer' => [
'title' => 'Mostrar la versió de froxlor al peu de pàgina',
'description' => 'Mostrar la versió de froxlor al peu de pàgina de la resta de pàgines'
],
'froxlor_graphic' => [
'title' => 'Gràfic de capçalera per a froxlor',
'description' => 'Quin gràfic s\'ha de mostrar a la capçalera'
],
'phpsettings' => [
'title' => 'Configuració PHP',
'description' => 'Breu descripció',
'actions' => 'Accions',
'activedomains' => 'En ús per domini(s)',
'notused' => 'Configuració no en ús',
'editsettings' => 'Canviar configuració PHP',
'addsettings' => 'Crear nova configuració PHP',
'viewsettings' => 'Veure la configuració PHP',
'phpinisettings' => 'Configuració php.ini',
'addnew' => 'Crear nova configuració PHP',
'binary' => 'PHP Binari',
'fpmdesc' => 'Configuració PHP-FPM',
'file_extensions' => 'Extensions de fitxers',
'file_extensions_note' => '(sense punt, separades per espais)',
'enable_slowlog' => 'Activar slowlog (per domini)',
'request_terminate_timeout' => 'Sol·licitar terminate-timeout',
'request_slowlog_timeout' => 'Sol·licitar slowlog-timeout',
'activephpconfigs' => 'En ús per php-config(s)',
'pass_authorizationheader' => 'Afegeix les capçaleres HTTP AUTH BASIC/DIGEST de l\'Apache cap al PHP'
],
'misc' => 'Varis',
'fpmsettings' => [
'addnew' => 'Crear nova versió PHP',
'edit' => 'Canviar versió PHP'
],
'phpconfig' => [
'template_replace_vars' => 'Variables que seran reemplaçades a les configs',
'pear_dir' => 'Serà reemplaçada amb la configuració global per al directori pear.',
'open_basedir_c' => 'S\'inserirà un ; (punt i coma) per comentar/desactivar open_basedir quan s\'estableixi',
'open_basedir' => 'Es substituirà per la configuració open_basedir del domini.',
'tmp_dir' => 'Serà reemplaçat pel directori temporal del domini.',
'open_basedir_global' => 'Es substituirà pel valor global de la ruta que s\'adjuntarà a open_basedir (veure configuració del servidor web).',
'customer_email' => 'Es substituirà per l\'adreça de correu electrònic del client propietari del domini.',
'admin_email' => 'Es substituirà per l\'adreça de correu electrònic de l\'administrador propietari del domini.',
'domain' => 'Es substituirà pel domini.',
'customer' => 'Es substituirà pel nom d\'usuari del client propietari del domini.',
'admin' => 'Es substituirà pel nom d\'usuari de l\'administrador propietari del domini.',
'docroot' => 'Es substituirà per l\'arrel del document del domini.',
'homedir' => 'Es substituirà pel directori arrel del client.'
],
'expert_settings' => 'Configuració experta!',
'mod_fcgid_starter' => [
'title' => 'Processos PHP per a aquest domini (buit per defecte)'
],
'phpserversettings' => 'Configuracions de PHP',
'mod_fcgid_maxrequests' => [
'title' => 'Peticions php màximes per a aquest domini (buit per defecte)'
],
'spfsettings' => 'Configuració SPF del domini',
'specialsettingsforsubdomains' => 'Aplicar configuració especial a tots els subdominis (*.exemple.com)',
'accountdata' => 'Dades del compte',
'contactdata' => 'Dades de contacte',
'servicedata' => 'Dades de servei',
'newerversionavailable' => 'Hi ha una nova versió de froxlor disponible.',
'newerversiondetails' => 'Actualitzi ara a la versió %s? (La seva versió actual és: %s)',
'extractdownloadedzip' => 'Extreure el fitxer descarregat "%s"?',
'cron' => [
'cronsettings' => 'Configuració de tasques de Cron',
'add' => 'Afegir tasca cron'
],
'cronjob_edit' => 'Editar tasques de cron',
'warning' => 'AVÍS - Tingueu en compte!',
'lastlogin_succ' => 'Darrer inici de sessió',
'ftpserver' => 'Servidor FTP',
'ftpserversettings' => 'Configuració del servidor FTP',
'webserver_user' => 'Nom d\'usuari del servidor web',
'webserver_group' => 'Nom de grup del servidor web',
'perlenabled' => 'Perl activat',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Usuari local a utilitzar per a FCGID (froxlor vHost)',
'mod_fcgid_group' => 'Grup local a utilitzar per a FCGID (froxlor vHost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[No indicat]',
'store_defaultindex' => 'Emmagatzemar el fitxer d\'índex per defecte al docroot del client',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Trànsit',
'traffic_sub' => 'Detalls sobre l\'ús del trànsit',
'domaintraffic' => 'Dominis',
'customertraffic' => 'Clients',
'assignedmax' => 'Assignat / Màxim',
'usedmax' => 'Utilitzat / Màxim',
'used' => 'Utilitzat',
'speciallogwarning' => '
AVÍS: En canviar aquesta configuració perdrà totes les antigues estadístiques per a aquest domini.
',
'speciallogfile' => [
'title' => 'Fitxer de registre separat',
'description' => 'Activi aquesta opció per obtenir un fitxer de registre d\'accés independent per a aquest domini.'
],
'domain_editable' => [
'title' => 'Permetre editar el domini',
'desc' => 'Si s\'estableix en "si", el client pot canviar diversos paràmetres del domini. Si s\'estableix en "no", el client no pot canviar res.'
],
'writeaccesslog' => [
'title' => 'Escriure un registre d\'accés',
'description' => 'Activi aquesta opció per obtenir un fitxer de registre d\'accés per a aquest domini.'
],
'writeerrorlog' => [
'title' => 'Escriure un registre d\'errors',
'description' => 'Activi aquesta opció per obtenir un fitxer de registre d \'errors per a aquest domini.'
],
'phpfpm.ininote' => 'No tots els valors que voleu definir poden ser utilitzats en la configuració del pool php-fpm',
'phpinfo' => 'PHPinfo()',
'selectserveralias' => 'Valor ServerAlias per al domini',
'selectserveralias_desc' => 'Triï si froxlor ha de crear una entrada comodí (*.domini.tld), un àlies WWW (www.domini.tld) o cap àlies.',
'show_news_feed' => [
'title' => 'Mostrar notícies al panell d\'administració',
'description' => 'Activi aquesta opció per mostrar les notícies oficials de froxlor (https://inside.froxlor.org/news/) al teu tauler de control i no perdre\'t mai informació important o anuncis de llançaments.'
],
'cronsettings' => 'Configuració de tasques de Cron',
'integritycheck' => 'Validació de la base de dades',
'integrityname' => 'Nom',
'integrityresult' => 'Resultat',
'integrityfix' => 'Solució automàtica de problemes',
'customer_show_news_feed' => 'Mostrar notícies al panell del client',
'customer_news_feed_url' => [
'title' => 'Utilitzar un canal RSS personalitzat',
'description' => 'Especifiqui un canal RSS personalitzat que es mostrarà als vostres clients en el vostre tauler de control. Deixi aquest camp buit per utilitzar el canal de notícies oficial de froxlor (https://inside.froxlor.org/news/).'
],
'movetoadmin' => 'Moure client',
'movecustomertoadmin' => 'Mou el client a l\'administrador/revenedor seleccionat Deixa això buit per no fer canvis. Si l\'administrador desitjat no apareix a la llista, el seu límit de clients ha estat assolit.',
'note' => 'Nota',
'mod_fcgid_umask' => [
'title' => 'Màscara (per defecte: 022)'
],
'apcuinfo' => 'Informació APCu',
'opcacheinfo' => 'Informació OPcache',
'letsencrypt' => [
'title' => 'Utilitzar Let\'s Encrypt',
'description' => 'Obtingui un certificat gratuït de Let\'s Encrypt. El certificat es crearà i renovarà automàticament. ATENCIÓ: Si els comodins estan activats, aquesta opció es desactivarà automàticament.'
],
'autoupdate' => 'Actualitza automàticament',
'server_php' => 'PHP',
'dnsenabled' => 'Habilitar editor DNS',
'froxlorvhost' => 'Configuració VirtualHost de froxlor ',
'hostname' => 'Nom de host',
'memory' => 'Memòria en ús',
'webserversettings_ssl' => 'Configuració SSL del servidor web',
'domain_hsts_maxage' => [
'title' => 'Seguretat estricta de transport HTTP (HSTS)',
'description' => 'Especifiqui el valor d\'edat màxima per a la capçalera Strict-Transport-Security (STS) El valor 0 desactivarà HSTS per al domini. La majoria dels usuaris estableixen un valor de 31536000 (un any).'
],
'domain_hsts_incsub' => [
'title' => 'Incloure HSTS per a qualsevol subdomini',
'description' => 'La directiva opcional "includeSubDomains", si és present, indica a la UA que la Política HSTS s\'aplica a aquest Host HSTS així com a qualsevol subdomini del nom de domini del host.'
],
'domain_hsts_preload' => [
'title' => 'Incloure domini a la llista de precàrrega HSTS',
'description' => 'Si vol que aquest domini s\'inclogui a la llista de precàrrega HSTS mantinguda per Chrome (i utilitzada per Firefox i Safari), activeu aquesta opció. L\'enviament de la directiva de precàrrega des del vostre lloc pot tenir CONSEQÜÈNCIES PERMANENTS i impedir que els usuaris accedeixin al seu lloc i a qualsevol dels seus subdominis. Si us plau, llegiu els detalls a https://hstspreload .org/#removal abans d\'enviar la capçalera amb "preload".'
],
'domain_ocsp_stapling' => [
'title' => 'OCSP stapling',
'description' => 'Consulti Wikipedia per a una explicació detallada del grapat OCSP',
'nginx_version_warning' => ' AVÍS: Es requereix la versió 1.3.7 o superior de Nginx per al OCSP stapling. Si la vostra versió és anterior, el servidor web NO s\'iniciarà correctament mentre el grapat OCSP estigui activat!'
],
'domain_http2' => [
'title' => 'Suport HTTP2',
'description' => 'Consulti Wikipedia per a una explicació detallada de HTTP2'
],
'testmail' => 'Prova SMTP',
'phpsettingsforsubdomains' => 'Aplicar php-config a tots els subdominis:',
'plans' => [
'name' => 'Nom del pla',
'description' => 'Descripció',
'last_update' => 'Última actualització',
'plans' => 'Plans d\'allotjament',
'plan_details' => 'Detalls del pla',
'add' => 'Afegir nou pla',
'edit' => 'Editar pla',
'use_plan' => 'Aplicar pla'
],
'notryfiles' => [
'title' => 'No s\'autogeneren try_files',
'description' => 'Digui "sí" aquí si vol especificar una directiva try_files personalitzada en specialsettings (necessària per a alguns plugins de wordpress).'
],
'logviewenabled' => 'Habilitar accés als logs d\'accéss/error',
'novhostcontainer' => '
Cap de les IPs i ports té activada l\'opció "Crear vHost-Container", molts ajustaments aquí no estaran disponibles',
'ownsslvhostsettings' => 'Configuració pròpia de SSL vHost',
'domain_override_tls' => 'Anul·lar la configuració TLS del sistema',
'domain_override_tls_addinfo' => ' Només s\'utilitza si l\'opció "Override system TLS settings" està configurada com a "Sí".',
'domain_sslenabled' => 'Habilitar l\'ús de SSL',
'domain_honorcipherorder' => 'Respecteu l\'ordre de xifrat (servidor), per defecte no',
'domain_sessiontickets' => 'Habilitar TLS sessiontickets (RFC 5077), per defecte sí',
'domain_sessionticketsenabled' => [
'title' => 'Habilitar l\'ús de TLS sessiontickets globalment',
'description' => 'Per defecte sí Requereix apache-2.4.11+ o nginx-1.5.9+'
],
'domaindefaultalias' => 'Valor per defecte de ServerAlias per a nous dominis',
'smtpsettings' => 'Configuració SMTP',
'smtptestaddr' => 'Enviar correu de prova a',
'smtptestnote' => 'Tingueu en compte que els valors següents reflecteixen la configuració actual i només es poden ajustar allà (vegeu l\'enllaç a la cantonada superior dreta)',
'smtptestsend' => 'Enviar correu de prova',
'mysqlserver' => [
'mysqlserver' => 'Servidor MySQL',
'dbserver' => 'Servidor #',
'caption' => 'Descripció',
'host' => 'Nom de host / IP',
'port' => 'Port',
'user' => 'Usuari privilegiat',
'add' => 'Afegir nou servidor MySQL',
'edit' => 'Editar servidor MySQL',
'password' => 'Contrasenya d\'usuari privilegiat',
'password_emptynochange' => 'Nova contrasenya, deixar buit per a cap canvi',
'allowall' => [
'title' => 'Permetre l\'ús d\'aquest servidor a tots els clients existents actualment',
'description' => 'Estableix aquesta opció a "Cert" si voleu permetre l\'ús d\'aquest servidor de base de dades a tots els clients existents perquè hi puguin afegir bases de dades. Aquesta configuració no és permanent, però es pot executar diverses vegades.'
],
'testconn' => 'Provar la connexió en desar',
'ssl' => 'Utilitzar SSL per a la connexió al servidor de base de dades',
'ssl_cert_file' => 'La ruta del fitxer a l\'autoritat del certificat SSL',
'verify_ca' => 'Habilitar la verificació del certificat SSL del servidor'
],
'settings_importfile' => 'Escollir fitxer d\'importació',
'documentation' => 'Documentació',
'adminguide' => 'Guia de l\'administrador',
'userguide' => 'Guia de l\'usuari',
'apiguide' => 'Guia de la API'
],
'apcuinfo' => [
'clearcache' => 'Esborrar memòria cau d\'APCu',
'generaltitle' => 'Informació general sobre la memòria cau',
'version' => 'Versió d\'APCu',
'phpversion' => 'Versió PHP',
'host' => 'Host APCu',
'sharedmem' => 'Memòria compartida',
'sharedmemval' => '%d Segment(s) amb %s (%s memòria)',
'start' => 'Hora d\'inici',
'uptime' => 'Temps d\'activitat',
'upload' => 'Suport de càrrega de fitxers',
'cachetitle' => 'Informació de la memòria cau',
'cvar' => 'Variables en memòria cau',
'hit' => 'Encerts',
'miss' => 'Errors',
'reqrate' => 'Taxa de peticions (encerts, errors)',
'creqsec' => 'Peticions de memòria cau/segon',
'hitrate' => 'Taxa d\'encerts',
'missrate' => 'Percentatge d\'errors',
'insrate' => 'Taxa d\'insercions',
'cachefull' => 'Recompte de memòria cau plena',
'runtime' => 'Configuració de temps d\'execució',
'memnote' => 'Ús de memòria',
'total' => 'Total',
'free' => 'Lliure',
'used' => 'Utilitzat',
'hitmiss' => 'Encerts i errors',
'detailmem' => 'Ús detallat de memòria i fragmentació',
'fragment' => 'Fragmentació',
'nofragment' => 'Sense Fragmentació',
'fragments' => 'Fragments'
],
'apikeys' => [
'no_api_keys' => 'No s\'han trobat claus API',
'key_add' => 'Afegir una nova clau',
'apikey_removed' => 'La clau api amb l\'id #%s ha estat eliminada amb èxit',
'apikey_added' => 'S\'ha generat correctament una nova clau api',
'clicktoview' => 'Faci clic per veure',
'allowed_from' => 'Permès des de',
'allowed_from_help' => 'Llista separada per comes d\'adreces IP / xarxes. Per defecte és buit (permetre des de tots).',
'valid_until' => 'Vàlid fins',
'valid_until_help' => 'Data fins a la qual és vàlid, format AAAA-MM-DDThh:mm'
],
'changepassword' => [
'old_password' => 'Contrasenya antiga',
'new_password' => 'Nova contrasenya',
'new_password_confirm' => 'Confirmi la contrasenya',
'new_password_ifnotempty' => 'Nova contrasenya (buida = sense canvis)',
'also_change_ftp' => ' canviï també la contrasenya del compte FTP principal',
'also_change_stats' => ' canviï també la contrasenya de la pàgina d\'estadístiques'
],
'cron' => [
'cronname' => 'Nom de la tasca cron',
'lastrun' => 'última execució',
'interval' => 'interval',
'isactive' => 'activat',
'description' => 'descripció',
'changewarning' => 'Canviar aquests valors pot tenir una causa negativa en el comportament de froxlor i les tasques automatitzades. Si us plau, només canviï els valors aquí, si està segur del que està fent.'
],
'crondesc' => [
'cron_unknown_desc' => 'cap descripció especificada',
'cron_tasks' => 'Generació d\'arxius de configuració',
'cron_legacy' => 'Tasca cron heretadada (antic)',
'cron_traffic' => 'Càlcul de trànsit',
'cron_usage_report' => 'Informes web i de trànsit',
'cron_mailboxsize' => 'Càlcul de la mida de la bústia',
'cron_letsencrypt' => 'Actualització de certificats Let\'s Encrypt',
'cron_backup' => 'Processar tasques de còpia de seguretat'
],
'cronjob' => [
'cronjobsettings' => 'Configuració de Tasques Cron',
'cronjobintervalv' => 'Valor de l\'interval de temps d\'execució',
'cronjobinterval' => 'Interval d\'execució'
],
'cronjobs' => [
'notyetrun' => 'Encara no executat'
],
'cronmgmt' => [
'minutes' => 'minuts',
'hours' => 'hores',
'days' => 'dies',
'weeks' => 'setmanes',
'months' => 'mesos'
],
'customer' => [
'documentroot' => 'Directori d\'inici',
'name' => 'Nom complet',
'firstname' => 'Nom',
'lastname' => 'Cognoms',
'company' => 'Empresa',
'nameorcompany_desc' => 'Es requereix nom/cognom o empresa',
'street' => 'Carrer',
'zipcode' => 'Codi postal',
'city' => 'Ciutat',
'phone' => 'Telèfon',
'fax' => 'Fax',
'email' => 'Correu electrònic',
'customernumber' => 'ID de client',
'diskspace' => 'Espai web',
'traffic' => 'Trànsit',
'mysqls' => 'Bases de dades MySQL',
'emails' => 'Adreces de correu electrònic',
'accounts' => 'Comptes de correu electrònic',
'forwarders' => 'Remitents de correu electrònic',
'ftps' => 'Comptes FTP',
'subdomains' => 'Subdominis',
'domains' => 'Dominis',
'mib' => 'MiB',
'gib' => 'GiB',
'title' => 'Títol',
'country' => 'País',
'email_quota' => 'Quota de correu electrònic',
'email_imap' => 'Correu IMAP',
'email_pop3' => 'Correu electrònic POP3',
'sendinfomail' => 'Enviar dades per correu electrònic',
'generated_pwd' => 'Suggeriment de contrasenya',
'usedmax' => 'Utilitzat / Màxim',
'services' => 'Serveis',
'letsencrypt' => [
'title' => 'Utilitzar Let\'s Encrypt',
'description' => 'Obtingui un certificat gratuït de Let\'s Encrypt. El certificat es crearà i renovarà automàticament.'
],
'selectserveralias_addinfo' => 'Aquesta opció es pot configurar en editar el domini. El seu valor inicial s\'hereta del domini pare.',
'total_diskspace' => 'Espai total en disc',
'mysqlserver' => 'Servidor mysql utilitzable'
],
'diskquota' => 'Quota',
'dns' => [
'destinationip' => 'IP(s) del domini',
'standardip' => 'IP estàndard del servidor',
'a_record' => 'Registre A (IPv6 opcional)',
'cname_record' => 'Registre CNAME',
'mxrecords' => 'Definir registres MX',
'standardmx' => 'Registre MX estàndard del servidor',
'mxconfig' => 'Registres MX personalitzats',
'priority10' => 'Prioritat 10',
'priority20' => 'Prioritat 20',
'txtrecords' => 'Definir registres TXT',
'txtexample' => 'Exemple (entrada SPF): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'howitworks' => 'Aquí podeu gestionar les entrades DNS per al vostre domini. Tingueu en compte que froxlor generarà automàticament els registres NS/MX/A/AAAA per tu. Les entrades personalitzades són preferibles, només les entrades que faltin seran generades automàticament.'
],
'dnseditor' => [
'edit' => 'editar DNS',
'records' => 'Registres',
'notes' => [
'A' => 'Adreça IPv4 de 32 bits, utilitzada per mapejar noms de host a una adreça IP del host.',
'AAAA' => 'Adreça IPv6 de 128 bits, utilitzada per mapejar noms de host a una adreça IP del host.',
'CAA' => 'El registre de recursos CAA permet al titular d\'un nom de domini DNS especificar una o diverses Autoritats de Certificació (CA) autoritzades a emetre certificats per a aquest domini. Estructura: flag tag[issue|issuewild|iodef|contactmail|contactphone] value Exemple: 0 issue "ca.example.net" 0 iodef "mailto:security@example.com"< /code>',
'CNAME' => 'Àlies del nom de domini, la cerca DNS continuarà reintentant la cerca amb el nou nom. Només és possible per a subdominis.',
'DNAME' => 'Crea un àlies per a tot un subarbre de l\'arbre de noms de domini',
'LOC' => 'Informació sobre la ubicació geogràfica d\'un nom de domini. Estructura: ( d1 [m1 [s1]] { d2 [m2 [s2]] { alt["m"] [siz["m"] [hp["m"] [vp["m"]]]] ) Descripció: d1: [0 . . 90] (graus de latitud)
d2: [0 .. 180] (graus de longitud)
m1, m2: [0 .. 59] (minuts latitud/longitud)
s1, s2: [0 .. 59,999] (segons latitud/longitud)
alt: [-100000.00 .. 42849672.95] POR .01 (altitud en metres)
siz, hp, vp: [0 .. 90000000.00] (mida/precisió en metres) Exemple: 52 22 23.000 N 4 53 32.000 E -2.00m 0.00m 10000m 10m',
'MX' => 'Registre d\'intercanvi de correu, assigna un nom de domini a un servidor de correu per a aquest domini. Exemple: 10 mail.example.com Nota : Per a la prioritat, utilitzeu el camp anterior.',
'NS' => 'Delega una zona DNS perquè utilitzi els servidors de noms autoritatius indicats.',
'RP' => 'Registre de persona responsable Estructura: mailbox[substituir @ per un punt] txt-record-name Exemple: team.froxlor.org . froxlor.org.',
'SRV' => 'Registre d\'ubicació de servei, utilitzat per a protocols més recents en lloc de crear registres específics de protocol com MX. Estructura: priority weight port target Exemple : 0 5 5060 sipserver.example.com. Nota: Per a la prioritat, utilitzeu el camp anterior.',
'SSHFP' => 'El registre de recursos SSHFP s\'utilitza per publicar empremtes digitals de claus d\'intèrpret d\'ordres segur (SSH) al DNS. Estructura: tipus d\'algorisme empremta digital Algorismes: 0: reservat , 1: RSA, 2: DSA, 3: ECDSA, 4: Ed25519, 6: Ed448 Tipus: 0 : reservat, 1: SHA- 1, 2: SHA-256 Exemple: 2 1 123456789abcdef67890123456789abcdef67890',
'TXT' => 'Text descriptiu de lliure definició.'
]
],
'domain' => [
'openbasedirpath' => 'Ruta OpenBasedir',
'docroot' => 'Ruta del camp anterior',
'homedir' => 'Directori d\'inici',
'docparent' => 'Directori pare de la ruta del camp anterior',
'ssl_certificate_placeholder' => '---- BEGIN CERTIFICATE---' . PHP_EOL . '[...]' . PHP_EOL . '----END CERTIFICATE----',
'ssl_key_placeholder' => '---- BEGIN RSA PRIVATE KEY-----' . PHP_EOL . '[...]' . PHP_EOL . '-----END RSA PRIVATE KEY-----',
],
'domains' => [
'description' => 'Aquí pot crear (sub)dominis i canviar les seves rutes. El sistema necessitarà algun temps per aplicar la nova configuració després de cada canvi.',
'domainsettings' => 'Configuració del domini',
'domainname' => 'Nom de domini',
'subdomain_add' => 'Crear subdomini',
'subdomain_edit' => 'Editar (sub)domini',
'wildcarddomain' => 'Crear com a domini comodí?',
'aliasdomain' => 'Àlies per a domini',
'noaliasdomain' => 'Sense àlies de domini',
'hasaliasdomains' => 'Té domini(s) àlies',
'statstics' => 'Estadístiques d\'ús',
'isassigneddomain' => 'Domini assignat',
'add_date' => 'Afegit a froxlor',
'registration_date' => 'Afegit al registre',
'topleveldomain' => 'Domini Top-Level',
'associated_with_domain' => 'Associat',
'aliasdomains' => 'Dominis d\'àlies',
'redirectifpathisurl' => 'Codi de redirecció (per defecte: buit)',
'redirectifpathisurlinfo' => 'Només ha de seleccionar una d\'aquestes opcions si heu introduït un URL com a ruta NOTA: Els canvis només s\'apliquen si la ruta indicada és una URL.',
'issubof' => 'Aquest domini és un subdomini d\'un altre domini',
'issubofinfo' => 'Si vol afegir un subdomini com a domini complet, haureu d\'establir-lo al domini correcte (per exemple, si voleu afegir "www.domini.tld", haureu de seleccionar "domini.tld").',
'nosubtomaindomain' => 'No és subdomini d\'un domini complet',
'ipandport_multi' => [
'title' => 'Adreces IP',
'description' => 'Especifica una o més adreces IP per al domini.
NOTA: Les adreces IP no es poden canviar quan el domini està configurat com a àlies-domini strong> d\'un altre domini.
'
],
'ipandport_ssl_multi' => [
'title' => 'Adreça(es) IP SSL'
],
'ssl_redirect' => [
'title' => 'Redirecció SSL',
'description' => 'Aquesta opció crea redireccionaments per a vhosts no SSL de manera que totes les peticions són redirigides al vhost SSL.
p.e. una petició a http://domini.tld/ us redirigirà a https://domini.tld/'
],
'serveraliasoption_wildcard' => 'Comodí (*.domini.tld)',
'serveraliasoption_www' => 'WWW (www.domini.tld)',
'serveraliasoption_none' => 'Sense àlies',
'domain_import' => 'Importar dominis',
'import_separator' => 'Separador',
'import_offset' => 'Desplaçament',
'import_file' => 'Arxiu CSV',
'import_description' => 'Per obtenir informació detallada sobre l\'estructura del fitxer d\'importació i sobre com fer la importació correctament, visiti https://docs.froxlor.org/latest/admin-guide/domain-import/.',
'ssl_redirect_temporarilydisabled' => ' La redirecció SSL es desactiva temporalment mentre es genera un certificat Let\'s Encrypt nou. Es tornarà a activar un cop generat el certificat.',
'termination_date' => 'Data de terminació',
'termination_date_overview' => 'acabat a partir de ',
'ssl_certificates' => 'Certificats SSL',
'ssl_certificate_removed' => 'El certificat amb l\'id #%s s\'ha eliminat amb èxit',
'ssl_certificate_error' => 'Error en llegir el certificat per al domini: %s',
'no_ssl_certificates' => 'No hi ha dominis amb certificat SSL',
'isaliasdomainof' => 'És àlies de domini per a %s',
'isbinddomain' => 'Crear zona DNS',
'dkimenabled' => 'DKIM activat',
'openbasedirenabled' => 'Restricció de Openbasedir',
'hsts' => 'HSTS habilitat',
'aliasdomainid' => 'ID de àlies de domini'
],
'emails' => [
'description' => 'Aquí pots crear i modificar les teves adreces de correu electrònic. Un compte és com la bústia que tens davant de casa. Si algú us envia un correu electrònic, aquest caurà al compte.
Per descarregar els vostres correus electrònics utilitzeu la següent configuració al vostre programa de correu: (Les dades en cursiva s\'han de canviar pels equivalents que heu escrit!) Hostname: nom del domini Username: nom del compte / adreça de correu electrònic password: la contrasenya que heu triat',
'emailaddress' => 'Adreça de correu electrònic',
'emails_add' => 'Crear adreça de correu electrònic',
'emails_edit' => 'Editar adreça de correu electrònic',
'catchall' => 'Catchall',
'iscatchall' => 'Definir com a adreça "catchall"?',
'account' => 'Compte',
'account_add' => 'Crear compte',
'account_delete' => 'Eliminar compte',
'from' => 'Origen',
'to' => 'Destí',
'forwarders' => 'Transitaris',
'forwarder_add' => 'Crear expedidor',
'alternative_emailaddress' => 'Adreça de correu electrònic alternativa',
'quota' => 'Quota',
'noquota' => 'Sense quota',
'updatequota' => 'Actualitzar quota',
'quota_edit' => 'Modificar quota de correu electrònic',
'noemaildomainaddedyet' => 'Encara no té un domini (de correu electrònic) al vostre compte.',
'back_to_overview' => 'Tornar a la vista general de dominis',
'accounts' => 'Comptes',
'emails' => 'Adreces'
],
'error' => [
'error' => 'Error',
'directorymustexist' => 'El directori %s ha d\'existir. Si us plau, crea\'l amb el teu client FTP.',
'filemustexist' => 'El fitxer %s ha d\'existir.',
'allresourcesused' => 'Ja ha utilitzat tots els seus recursos.',
'domains_cantdeletemaindomain' => 'No pot suprimir un domini assignat.',
'domains_canteditdomain' => 'No pot editar aquest domini. Ha estat desactivat per l\'administrador.',
'domains_cantdeletedomainwithemail' => 'No pot suprimir un domini que s\'utilitza com a domini de correu electrònic. Elimineu primer totes les adreces de correu electrònic.',
'firstdeleteallsubdomains' => 'Abans de crear un domini comodí, heu d\'eliminar tots els subdominis.',
'youhavealreadyacatchallforthisdomain' => 'Ja ha definit un domini comodí per a aquest domini.',
'ftp_cantdeletemainaccount' => 'No pot suprimir el vostre compte FTP principal',
'login' => 'El nom d\'usuari o la contrasenya que heu introduït són incorrectes. Intenta-ho de nou.',
'login_blocked' => 'Aquest compte ha estat suspès a causa de masses errors d\'inici de sessió. Intenteu-ho de nou en %s segons.',
'notallreqfieldsorerrors' => 'No ha emplenat tots els camps o n\'ha omplert alguns incorrectament.',
'oldpasswordnotcorrect' => 'La contrasenya antiga no és correcta.',
'youcantallocatemorethanyouhave' => 'No es pot assignar més recursos dels que té.',
'mustbeurl' => 'No heu escrit una URL vàlida o completa (per exemple http://algundomini.com/error404.htm)',
'invalidpath' => 'No ha triat una URL vàlida (potser té problemes amb la llista d\'adreces?)',
'stringisempty' => 'Falta informació al camp',
'stringiswrong' => 'Camp incorrecte',
'newpasswordconfirmerror' => 'La nova contrasenya i la de confirmació no coincideixen',
'mydomain' => 'Domini',
'mydocumentroot' => 'Documentroot',
'loginnameexists' => 'El nom d\'usuari %s ja existeix',
'emailiswrong' => 'L\'adreça de correu %s conté caràcters no vàlids o està incomplet',
'alternativeemailiswrong' => 'Les %s adreces de correu electrònic alternatives donades per enviar les credencials semblen no ser vàlides',
'loginnameiswrong' => 'El nom d\'usuari "%s" conté caràcters il·legals.',
'loginnameiswrong2' => 'El nom d\'usuari conté massa caràcters. Només es permeten %s caràcters.',
'userpathcombinationdupe' => 'La combinació de nom d\'usuari i ruta ja existeix',
'patherror' => 'Error general. La ruta no pot estar buida',
'errordocpathdupe' => 'L\'opció per a la ruta %s ja existeix',
'adduserfirst' => 'Si us plau, creï primer un client',
'domainalreadyexists' => 'El domini %s ja està assignat a un client',
'nolanguageselect' => 'No s\'ha seleccionat cap idioma.',
'nosubjectcreate' => 'Ha de definir un tema per a aquesta plantilla de correu.',
'nomailbodycreate' => 'Ha de definir un text de correu per a aquesta plantilla de correu.',
'templatenotfound' => 'La plantilla no s\'ha trobat.',
'alltemplatesdefined' => 'No pot definir més plantilles, tots els idiomes ja estan suportats.',
'wwwnotallowed' => 'www no està permès per a subdominis.',
'subdomainiswrong' => 'El subdomini %s conté caràcters no vàlids.',
'domaincantbeempty' => 'El nom de domini no pot estar buit.',
'domainexistalready' => 'El domini %s ja existeix.',
'domainisaliasorothercustomer' => 'L\'àlies de domini seleccionat és en ell mateix un àlies de domini, té una combinació ip/port diferent o pertany a un altre client.',
'emailexistalready' => 'L\'adreça de correu electrònic %s ja existeix.',
'maindomainnonexist' => 'El domini principal %s no existeix.',
'destinationnonexist' => 'Si us plau, creeu el vostre redireccionador al camp "Destí".',
'destinationalreadyexistasmail' => 'El remitent a %s ja existeix com a adreça de correu electrònic activa.',
'destinationalreadyexist' => 'Ja ha definit un reenviador per "%s".',
'destinationiswrong' => 'La redirecció %s conté caràcters no vàlids o està incompleta.',
'backupfoldercannotbedocroot' => 'La carpeta per a les còpies de seguretat no pot ser la vostra carpeta d\'inici, escolliu una carpeta dins de la vostra carpeta d\'inici, per exemple, /backups.',
'templatelanguagecombodefined' => 'La combinació idioma/plantilla seleccionada ja ha estat definida.',
'templatelanguageinvalid' => 'L\'idioma seleccionat no existeix.',
'ipstillhasdomains' => 'La combinació IP/Port que vol eliminar encara té dominis assignats, si us plau reassigneu-los a altres combinacions IP/Port abans d\'eliminar aquesta combinació IP/Port.',
'cantdeletedefaultip' => 'No pot esborrar la combinació IP/Port per defecte, si us plau fes una altra combinació IP/Port per defecte abans d\'esborrar aquesta combinació IP/Port.',
'cantdeletesystemip' => 'No pot suprimir la última IP del sistema, creeu una nova combinació IP/Port per a la IP del sistema o canvieu la IP del sistema.',
'myipaddress' => 'IP',
'myport' => 'Port',
'myipdefault' => 'Ha de seleccionar una combinació IP/Port que es converteixi en predeterminada.',
'myipnotdouble' => 'Aquesta combinació IP/Port ja existeix.',
'admin_domain_emailsystemhostname' => 'El nom de host del servidor no es pot utilitzar com a domini del client.',
'cantchangesystemip' => 'No pot canviar la última IP del sistema, creeu una nova combinació IP/Port per a la IP del sistema o canvieu la IP del sistema.',
'sessiontimeoutiswrong' => 'Només es permet un temps d\'espera de sessió numèric.',
'maxloginattemptsiswrong' => 'Només es permeten "intents d\'inici de sessió màxims" numèrics.',
'deactivatetimiswrong' => 'Només es permet "temps de desactivació" numèric.',
'accountprefixiswrong' => 'El "prefix del client" és incorrecte.',
'mysqlprefixiswrong' => 'El "prefix SQL" és incorrecte.',
'ftpprefixiswrong' => 'El "prefix FTP" és incorrecte.',
'ipiswrong' => 'L\'"adreça IP" és incorrecte. Només es permet una adreça IP vàlida.',
'vmailuidiswrong' => 'El "mails-uid" és incorrecte. Només es permet un UID numèric.',
'vmailgidiswrong' => 'El "mails-gid" és incorrecte. Només es permet un GID numèric.',
'adminmailiswrong' => 'La direcció del remitent és incorrecte. Només es permet una adreça de correu electrònic vàlida.',
'pagingiswrong' => 'El valor "entries per page" és incorrecte. Només es permeten caràcters numèrics.',
'phpmyadminiswrong' => 'L\'enllaç phpMyAdmin no és un enllaç vàlid.',
'webmailiswrong' => 'L\'enllaç webmail no és un enllaç vàlid.',
'webftpiswrong' => 'L\'enllaç WebFTP no és un enllaç vàlid.',
'stringformaterror' => 'El valor del camp "%s" no té el format esperat.',
'loginnameisusingprefix' => 'No pot crear comptes que comencen per "%s", ja que aquest prefix està configurat per ser utilitzat a l\'assignació automàtica de noms de compte. Introduïu un altre nom de compte.',
'loginnameissystemaccount' => 'El compte "%s" ja existeix al sistema i no es pot utilitzar. Si us plau, introduïu un altre nom de compte.',
'youcantdeleteyourself' => 'No es pot esborrar per raons de seguretat.',
'youcanteditallfieldsofyourself' => 'Nota: No pot editar tots els camps del vostre compte per raons de seguretat.',
'documentrootexists' => 'El directori "%s" ja existeix per a aquest client. Si us plau, elimineu-lo abans d\'afegir el client de nou.',
'norepymailiswrong' => 'L\'adreça "Noreply-address" és incorrecta. Només es permet una adreça de correu electrònic vàlida.',
'logerror' => 'Registre d\'error: %s',
'nomessagetosend' => 'No ha introduït cap missatge.',
'norecipientsgiven' => 'No ha especificat cap destinatari',
'errorsendingmail' => 'El missatge a "%s" ha fallat',
'errorsendingmailpub' => 'El missatge a l\'adreça de correu electrònic indicada ha fallat',
'cannotreaddir' => 'No s\'ha pogut llegir el directori "%s".',
'invalidip' => 'Adreça IP no vàlida: %s',
'invalidmysqlhost' => 'Adreça de host MySQL no vàlida: %s',
'cannotuseawstatsandwebalizeratonetime' => 'No pot activar Webalizer i AWstats al mateix temps, si us plau escolliu un d\'ells.',
'cannotwritetologfile' => 'No es pot obrir el fitxer de registre %s per escriure',
'vmailquotawrong' => 'La mida de la quota ha de ser un número positiu.',
'allocatetoomuchquota' => 'Ha intentat assignar %s MB de quota, però no en té suficients.',
'missingfields' => 'No s\'han omplert tots els camps obligatoris.',
'requiredfield' => 'Aquest camp és obligatori.',
'accountnotexisting' => 'El compte de correu electrònic indicat no existeix.',
'nopermissionsorinvalidid' => 'No té permisos suficients per canviar aquesta configuració o s\'ha introduït un identificador no vàlid.',
'phpsettingidwrong' => 'No hi ha una configuració PHP amb aquest id.',
'descriptioninvalid' => 'La descripció és massa curta, massa llarga o conté caràcters il·legals.',
'info' => 'Informació',
'filecontentnotset' => 'El fitxer no pot estar buit.',
'index_file_extension' => 'L\'extensió del fitxer índex ha de tenir entre 1 i 6 caràcters. L\'extensió només pot contenir caràcters com a-z, A-Z y 0-9',
'customerdoesntexist' => 'El client seleccionat no existeix.',
'admindoesntexist' => 'L\'administrador escollit no existeix.',
'ipportdoesntexist' => 'La combinació ip/port que ha triat no existeix.',
'usernamealreadyexists' => 'El nom d\'usuari %s ja existeix.',
'plausibilitychecknotunderstood' => 'No s\'ha entès la resposta de la comprovació de plausibilitat.',
'errorwhensaving' => 'S\'ha produït un error en desar els %s camps',
'hiddenfieldvaluechanged' => 'El valor del camp ocult "%s" ha canviat en editar la configuració.
Això no sol ser un gran problema, però la configuració no s\'ha pogut desar per aquest motiu.',
'notrequiredpasswordlength' => 'La contrasenya introduïda és massa curta. Si us plau, introduïu almenys %s caràcters.',
'overviewsettingoptionisnotavalidfield' => 'Ups, un camp que s\'hauria de mostrar com una opció a la vista de configuració no és un tipus exceptuat. Pots culpar els desenvolupadors per això. Això no hauria de passar.',
'pathmaynotcontaincolon' => 'La ruta introduïda no ha de contenir dos punts (":"). Introduïu un valor de ruta correcte.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'La complexitat de la contrasenya especificada no s\'ha complert. Poseu-vos en contacte amb el vostre administrador si teniu algun dubte sobre la complexitat especificada.',
'invaliderrordocumentvalue' => 'El valor donat com a ErrorDocument no sembla ser un fitxer, URL o cadena vàlids.',
'intvaluetoolow' => 'El número donat és massa baix (camp %s))',
'intvaluetoohigh' => 'El número donat és massa alt (camp %s)',
'phpfpmstillenabled' => 'PHP-FPM està actualment actiu. Desactiveu-lo abans d\'activar FCGID.',
'fcgidstillenabled' => 'FCGID està actualment actiu. Desactiveu-lo abans d\'activar PHP-FPM.',
'domains_cantdeletedomainwithaliases' => 'No es pot suprimir un domini que s\'utilitza per a àlies. Primer heu d\'eliminar els àlies.',
'user_banned' => 'El vostre compte ha estat bloquejat. Si us plau, contacteu amb el vostre administrador per a més informació.',
'session_timeout' => 'Valor massa baix',
'session_timeout_desc' => 'El temps d\'espera de la sessió no ha de ser inferior a 1 minut.',
'invalidhostname' => 'El nom de host ha de ser un domini vàlid. No pot estar buit ni estar format només per espais en blanc.',
'operationnotpermitted' => 'Operació no permesa',
'featureisdisabled' => 'La funció %s està desactivada. Poseu-vos en contacte amb el vostre proveïdor de serveis.',
'usercurrentlydeactivated' => 'L\'usuari %s està desactivat actualment',
'setlessthanalreadyused' => 'No pot establir menys recursos de \'%s\' dels que aquest usuari ja ha utilitzat ',
'stringmustntbeempty' => 'El valor del camp %s no ha d\'estar buit',
'sslcertificateismissingprivatekey' => 'Necessita especificar una clau privada per al vostre certificat',
'sslcertificatewrongdomain' => 'El certificat indicat no pertany a aquest domini',
'sslcertificateinvalidcert' => 'El contingut del certificat indicat no sembla un certificat vàlid.',
'sslcertificateinvalidcertkeypair' => 'La clau privada indicada no pertany al certificat en qüestió.',
'sslcertificateinvalidca' => 'Les dades del certificat de la CA no semblen ser un certificat vàlid.',
'sslcertificateinvalidchain' => 'Les dades de la cadena del certificat no semblen ser un certificat vàlid.',
'givendirnotallowed' => 'El directori indicat al camp %s no està permès.',
'sslredirectonlypossiblewithsslipport' => 'L\'ús de Let\'s Encrypt només és possible quan el domini té assignada almenys una combinació IP/port habilitada per a ssl.',
'fcgidstillenableddeadlock' => 'FCGID està actualment actiu. Si us plau, desactiveu-lo abans de canviar a un altre servidor web que no sigui Apache2',
'send_report_title' => 'Enviar informe d\'error',
'send_report_desc' => 'Gràcies per informar d\'aquest error i ajudar-nos a millorar froxlor. Aquest és el correu electrònic que s\'enviarà a l\'equip de desenvolupadors de froxlor:',
'send_report' => 'Enviar informe',
'send_report_error' => 'Error en enviar l\'informe: %s',
'notallowedtouseaccounts' => 'El vostre compte no permet utilitzar IMAP/POP3. No podeu afegir comptes de correu.',
'cannotdeletehostnamephpconfig' => 'Aquesta configuració PHP és utilitzada pel froxlor-vhost i no pot ser esborrada.',
'cannotdeletedefaultphpconfig' => 'Aquesta configuració PHP està establerta per defecte i no es pot esborrar.',
'passwordshouldnotbeusername' => 'La contrasenya no pot ser la mateixa que el nom dusuari.',
'no_phpinfo' => 'Ho sentim, no puc llegir phpinfo()',
'moveofcustomerfailed' => 'El canvi del client a l\'administrador/revenedor seleccionat ha fallat. Tingui en compte que tots els altres canvis en el client s\'han aplicat amb èxit en aquesta etapa.
Missatge d\'error: %s',
'domain_import_error' => 'S\'ha produït el següent error en importar dominis: %s',
'fcgidandphpfpmnogoodtogether' => 'FCGID i PHP-FPM no poden estar activats alhora',
'no_apcuinfo' => 'No hi ha informació de memòria cau disponible. APCu no sembla que s\'està executant.',
'no_opcacheinfo' => 'No hi ha informació de memòria cau disponible. OPCache no sembla que s\'està executant.',
'nowildcardwithletsencrypt' => 'Let\'s Encrypt no pot manejar dominis comodí usant ACME a froxlor (requereix dns-challenge), ho sento. Si us plau, establiu el ServerAlias a WWW o desactiveu-lo completament.',
'customized_version' => 'Sembla que la teva instal·lació de froxlor ha estat modificada, no hi ha suport, ho sentim.',
'autoupdate_0' => 'Error desconegut',
'autoupdate_1' => 'El paràmetre de PHP allow_url_fopen està desactivat. Autoupdate necessita que aquest paràmetre estigui habilitat a php.ini',
'autoupdate_2' => 'Extensió PHP zip no trobada, si us plau assegureu-vos que està instal·lada i activada',
'autoupdate_4' => 'El fitxer froxlor no ha pogut ser emmagatzemat al disc :(',
'autoupdate_5' => 'version.froxlor.org ha tornat valors inacceptables :(',
'autoupdate_6' => 'Whoops, no hi havia una versió (vàlida) donada per descarregar :(',
'autoupdate_7' => 'No s\'ha pogut trobar el fitxer descarregat :(',
'autoupdate_8' => 'No s\'ha pogut extreure el fitxer :(',
'autoupdate_9' => 'El fitxer descarregat no ha passat la comprovació de la integritat. Si us plau, intenteu tornar a actualitzar.',
'autoupdate_10' => 'La versió mínima suportada de PHP és 7.4.0',
'autoupdate_11' => 'Webupdate està desactivat',
'mailaccistobedeleted' => 'Un altre compte amb el mateix nom (%s) està sent eliminat i per tant no es pot afegir en aquest moment.',
'customerhasongoingbackupjob' => 'Ja hi ha un treball de còpia de seguretat esperant a ser processat, si us plau sigui pacient.',
'backupfunctionnotenabled' => 'La funció de còpia de seguretat no està habilitada',
'dns_domain_nodns' => 'DNS no està habilitat per a aquest domini',
'dns_content_empty' => 'No hi ha contingut',
'dns_content_invalid' => 'El contingut DNS no és vàlid',
'dns_arec_noipv4' => 'No s\'ha proporcionat cap adreça IP vàlida per al registre A.',
'dns_aaaarec_noipv6' => 'No s\'ha indicat una adreça IP vàlida per al registre AAAA',
'dns_mx_prioempty' => 'Prioritat MX no vàlida',
'dns_mx_needdom' => 'El valor de contingut MX ha de ser un nom de domini vàlid.',
'dns_mx_noalias' => 'El valor de contingut MX no pot ser una entrada CNAME.',
'dns_cname_invaliddom' => 'Nom de domini no vàlid per al registre CNAME',
'dns_cname_nomorerr' => 'Ja hi ha un resource-record amb el mateix nom de registre. No es pot utilitzar com a CNAME.',
'dns_other_nomorerr' => 'Ja hi ha un registre CNAME amb el mateix nom de registre. No es pot utilitzar per a cap altre tipus.',
'dns_ns_invaliddom' => 'Nom de domini no vàlid per al registre NS',
'dns_srv_prioempty' => 'Prioritat SRV no vàlida',
'dns_srv_invalidcontent' => 'Contingut SRV no vàlid, ha de contenir els camps weight, port i target, p.ex: 5 5060 servidorsip.exemple.com.',
'dns_srv_needdom' => 'El valor SRV target ha de ser un nom de domini vàlid',
'dns_srv_noalias' => 'El valor SRV-target no pot ser una entrada CNAME.',
'dns_duplicate_entry' => 'El registre ja existeix',
'dns_notfoundorallowed' => 'Domini no trobat o sense permís',
'domain_nopunycode' => 'No heu d\'especificar punycode (IDNA). El domini es convertirà automàticament',
'dns_record_toolong' => 'Els registres/etiquetes només poden tenir un màxim de 63 caràcters',
'noipportgiven' => 'No s\'ha especificat IP/port',
'jsonextensionnotfound' => 'Aquesta funció requereix una extensió php json.',
'cannotdeletesuperadmin' => 'El primer administrador no es pot eliminar.',
'no_wwwcnamae_ifwwwalias' => 'No es pot establir un registre CNAME per a "www" perquè el domini està configurat per generar un àlies www. Canvieu la configuració a "Sense àlies" o "Àlies comodí".',
'local_group_exists' => 'El grup indicat ja existeix al sistema.',
'local_group_invalid' => 'El nom del grup no és vàlid',
'invaliddnsforletsencrypt' => 'El DNS del domini no inclou cap de les adreces IP seleccionades. La generació del certificat Let\'s Encrypt no és possible.',
'notallowedphpconfigused' => 'Intentant utilitzar php-config que no està assignat al client',
'pathmustberelative' => 'L\'usuari no té permís per especificar directoris fora del directori personal del client. Si us plau, especifiqueu una ruta relativa (sense /).',
'mysqlserverstillhasdbs' => 'No es pot eliminar el servidor de base de dades de la llista de clients permesos, ja que encara hi ha bases de dades.',
'domaincannotbeedited' => 'No se us permet editar la %s domini.',
'invalidcronjobintervalvalue' => 'L\'interval de la tasca Cron ha de ser un dels següents: %s'
],
'extras' => [
'description' => 'Aquí podeu afegir alguns extres, per exemple protecció de directoris. El sistema necessitarà algun temps per aplicar la nova configuració després de cada canvi.',
'directoryprotection_add' => 'Afegir protecció de directori',
'view_directory' => 'Mostra el contingut del directori',
'pathoptions_add' => 'Afegir opcions de ruta',
'directory_browsing' => 'Exploració del contingut del directori',
'pathoptions_edit' => 'Editar opcions de ruta',
'error404path' => '404',
'error403path' => '403',
'error500path' => '500',
'error401path' => '401',
'errordocument404path' => 'DocumentError 404',
'errordocument403path' => 'DocumentError 403',
'errordocument500path' => 'DocumentError 500',
'errordocument401path' => 'DocumentError 401',
'execute_perl' => 'Executar perl/CGI',
'htpasswdauthname' => 'Raó d\'autenticació (AuthName)',
'directoryprotection_edit' => 'Editar protecció de directori',
'backup' => 'Crear còpia de seguretat',
'backup_web' => 'Còpia de seguretat de dades web',
'backup_mail' => 'Còpia de seguretat de les dades de correu',
'backup_dbs' => 'Còpia de seguretat de bases de dades',
'path_protection_label' => 'Important',
'path_protection_info' => 'Us recomanem encaridament que protegeixi la ruta indicada, consulteu "Extres" -> "Protecció de directoris".'
],
'ftp' => [
'description' => 'Aquí podeu crear i modificar els vostres comptes FTP. Els canvis es fan a l\'instant i els comptes es poden utilitzar immediatament.',
'account_add' => 'Crear compte',
'account_edit' => 'Editar compte ftp',
'editpassdescription' => 'Estableixi una nova contrasenya o deixeu-la en blanc per no canviar-la.'
],
'gender' => [
'title' => 'Títol',
'male' => 'Sr.',
'female' => 'Sra.',
'undef' => ''
],
'imprint' => 'Avís legal',
'index' => [
'customerdetails' => 'Dades del client',
'accountdetails' => 'Dades del compte'
],
'integrity_check' => [
'databaseCharset' => 'Joc de caràcters de la base de dades (ha de ser UTF-8)',
'domainIpTable' => 'Referències IP <-> domini',
'subdomainSslRedirect' => 'Bandera falsa SSL-redirect per a dominis no SSL',
'froxlorLocalGroupMemberForFcgidPhpFpm' => 'Usuari froxlor als grups de clients (per a FCGID/php-fpm)',
'webserverGroupMemberForFcgidPhpFpm' => 'Usuari Webserver als grups de clients (per a FCGID/php-fpm)',
'subdomainLetsencrypt' => 'Els dominis principals sense port SSL assignat no tenen subdominis amb redirecció SSL activa'
],
'logger' => [
'date' => 'Data',
'type' => 'Tipus',
'action' => 'Acció',
'user' => 'Usuari',
'truncate' => 'Registre buit',
'reseller' => 'Revenedor',
'admin' => 'Administrador',
'cron' => 'Tasca Cron',
'login' => 'Inici de sessió',
'intern' => 'Intern',
'unknown' => 'Desconegut'
],
'login' => [
'username' => 'Nom d\'usuari',
'password' => 'Contrasenya',
'language' => 'Idioma',
'login' => 'Inici de sessió',
'logout' => 'Finalitzar sessió',
'profile_lng' => 'Idioma del perfil',
'welcomemsg' => 'Iniciï sessió per accedir al vostre compte.',
'forgotpwd' => 'Heu oblidat la contrasenya?',
'presend' => 'Restablir contrasenya',
'email' => 'Correu electrònic',
'remind' => 'Restablir la contrasenya',
'usernotfound' => 'No s\'ha trobat l\'usuari',
'backtologin' => 'Tornar a l\'inici de sessió',
'combination_not_found' => 'No s\'ha trobat cap combinació d\'usuari i adreça electrònica.',
'2fa' => 'Autenticació de dos factors (2FA)',
'2facode' => 'Introdueixi el codi 2FA'
],
'mails' => [
'pop_success' => [
'mailbody' => 'Hola,\\nel vostre compte de correu {EMAIL} s\'ha configurat correctament.\\nAquest és un correu creat \\nautomàticament, si us plau no contesteu!\\nAtentament, el vostre administrador',
'subject' => 'Compte de correu configurat correctament'
],
'createcustomer' => [
'mailbody' => 'Hola {SALUTATION}, aquí hi ha les dades del vostre compte: Nom d\'usuari: {USERNAME}: {PASSWORD}, el seu administrador.',
'subject' => 'Informació del compte'
],
'pop_success_alternative' => [
'mailbody' => 'Hola {SALUTATION}, el vostre compte de correu {EMAIL} s\'ha configurat correctament. La contrasenya és {PASSWORD}. Aquest és un correu creat automàticament, si us plau no el contesteu. Atentament, el vostre administrador.',
'subject' => 'Compte de correu configurat correctament'
],
'password_reset' => [
'subject' => 'Restablir contrasenya',
'mailbody' => 'Hola {SALUTATION}, aquí està el vostre enllaç per establir una nova contrasenya. Aquest enllaç és vàlid durant les següents 24 hores. {LINK}, el vostre administrador.'
],
'new_database_by_customer' => [
'subject' => '[froxlor] Nova base de dades creada',
'mailbody' => 'Hola {CUST_NAME},
acabes d\'afegir una nova base de dades. Aquí hi ha la informació introduïda:
Nom de la base de dades: {DB_NAME}
Contrasenya: {DB_PASS}
Descripció: {DB_DESC}
Nom de host de la base de dades: {DB_SRV}
phpMyAdmin: {PMA_URI}
Atentament, el vostre administrador'
],
'new_ftpaccount_by_customer' => [
'subject' => 'Nou usuari ftp creat',
'mailbody' => 'Hola {CUST_NAME}
acabes d\'afegir un nou usuari ftp. Aquí hi ha la informació introduïda:
Nom d\'usuari: {USR_NAME}
Contrasenya: {USR_PASS}
Ruta: {USR_PATH}
Atentament, el vostre administrador'
],
'trafficmaxpercent' => [
'mailbody' => 'Estimat {SALUTATION}, ha utilitzat el {TRAFFICUSED} del seu {TRAFFIC} disponible de trànsit. Això és més del {MAX_PERCENT}%%',
'subject' => 'Arribant al límit de trànsit'
],
'diskmaxpercent' => [
'mailbody' => 'Estimat {SALUTATION}, ha utilitzat el {DISKUSED} de su {DISKAVAILABLE} disponible d\'espai en disc. Això és més del {MAX_PERCENT}.',
'subject' => 'Arribant al límit d\'espai de disc'
],
'2fa' => [
'mailbody' => 'Hola, el vostre codi d\'accés 2FA és..: {CODE}. Aquest és un correu creat automàticament, si us plau no el respongui. Atentament, el vostre administrador.',
'subject' => 'froxlor - Codi 2FA'
]
],
'menue' => [
'main' => [
'main' => 'Principal',
'changepassword' => 'Canviar contrasenya',
'changelanguage' => 'Canviar idioma',
'username' => 'Iniciar sessió com ',
'changetheme' => 'Canviar tema',
'apihelp' => 'Ajuda d\'API',
'apikeys' => 'Claus d\'API'
],
'email' => [
'email' => 'Correu electrònic',
'emails' => 'Adreces',
'webmail' => 'Correu web',
'emailsoverview' => 'Vista general de dominis de correu electrònic'
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Bases de dades',
'phpmyadmin' => 'phpMyAdmin'
],
'domains' => [
'domains' => 'Dominis',
'settings' => 'Vista general de dominis'
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Comptes',
'webftp' => 'WebFTP'
],
'extras' => [
'extras' => 'Extres',
'directoryprotection' => 'Protecció de directoris',
'pathoptions' => 'Opcions de ruta',
'backup' => 'Còpia de seguretat'
],
'traffic' => [
'traffic' => 'Trànsit',
'current' => 'Mes en curs',
'overview' => 'Trànsit total'
],
'phpsettings' => [
'maintitle' => 'Configuracions PHP',
'fpmdaemons' => 'Versions de PHP-FPM'
],
'logger' => [
'logger' => 'Registre del sistema'
]
],
'message' => [
'norecipients' => 'No s\'ha enviat cap correu electrònic perquè no hi ha destinataris a la base de dades',
'success' => 'Missatge enviat correctament als destinataris de %s',
],
'mysql' => [
'databasename' => 'Usuari/Nom de la base de dades',
'databasedescription' => 'Descripció de la base de dades',
'database_create' => 'Crear base de dades',
'description' => 'Aquí podeu crear i modificar les vostres bases de dades MySQL. Els canvis es realitzen a l\'instant i la base de dades es pot utilitzar immediatament. Al menú de l\'esquerra trobareu l\'eina phpMyAdmin amb la qual podeu administrar fàcilment la vostra base de dades.
Per utilitzar les vostres bases de dades en els vostres propis scripts php utilitzeu els següents ajustaments: (Les dades en cursiva s\'han de canviar pels equivalents que hagi escrit!) Nom de host: Nom d\'usuari: databasename Contrasenya: la contrasenya que heu triat Base de dades: databasename',
'mysql_server' => 'Servidor MySQL',
'database_edit' => 'Editar base de dades',
'size' => 'Mida',
'privileged_user' => 'Usuari privilegiat de la base de dades',
'privileged_passwd' => 'Contrasenya per a usuari privilegiat',
'unprivileged_passwd' => 'Contrasenya per a usuari sense privilegis',
'mysql_ssl_ca_file' => 'Certificat del servidor SSL',
'mysql_ssl_verify_server_certificate' => 'Verificar certificat de servidor SSL'
],
'opcacheinfo' => [
'generaltitle' => 'Informació general',
'resetcache' => 'Restablir OPcache',
'version' => 'Versió de OPCache',
'phpversion' => 'Versió de PHP',
'runtimeconf' => 'Configuració de temps d\'execució',
'start' => 'Hora d\'inici',
'lastreset' => 'Últim reinici',
'oomrestarts' => 'Recompte de reinicis OOM',
'hashrestarts' => 'Recompte de reinicis Hash',
'manualrestarts' => 'Recompte de reinicis manuals',
'hitsc' => 'Nombre d\'encerts',
'missc' => 'Nombre de faltes',
'blmissc' => 'Llista negra del nombre de faltes',
'status' => 'Estat',
'never' => 'mai',
'enabled' => 'OPcache activat',
'cachefull' => 'Memòria cau plena',
'restartpending' => 'Reinici pendent',
'restartinprogress' => 'Reinici en curs',
'cachedscripts' => 'Recompte d\'scripts en memòria cau',
'memusage' => 'Ús de memòria',
'totalmem' => 'Memòria total',
'usedmem' => 'Memòria utilitzada',
'freemem' => 'Memòria lliure',
'wastedmem' => 'Memòria desaprofitada',
'maxkey' => 'Tecles màximes',
'usedkey' => 'Tecles utilitzades',
'wastedkey' => 'Tecles desaprofitades',
'strinterning' => 'Intercalació de cadenes',
'strcount' => 'Recompte de cadenes',
'keystat' => 'Estadística de claus en memòria cau',
'used' => 'Utilitzat',
'free' => 'Lliure',
'blacklist' => 'Llista negra',
'novalue' => 'sense valor',
'true' => 'cert',
'false' => 'fals',
'funcsavail' => 'Funcions disponibles'
],
'panel' => [
'edit' => 'Editar',
'delete' => 'Eliminar',
'create' => 'Crear',
'save' => 'Desar',
'yes' => 'Sí',
'no' => 'No',
'emptyfornochanges' => 'buit per a cap canvi',
'emptyfordefault' => 'buit per a valors per defecte',
'path' => 'Ruta',
'toggle' => 'Commutar',
'next' => 'Següent',
'dirsmissing' => 'No es pot trobar o llegir el directori!',
'unlimited' => '∞',
'urloverridespath' => 'URL (anul·la la ruta)',
'pathorurl' => 'Ruta o URL',
'ascending' => 'ascendent',
'descending' => 'descendent',
'search' => 'Cercar',
'used' => 'utilitzada',
'translator' => 'Traductor',
'reset' => 'Descartar canvis',
'pathDescription' => 'Si el directori no existeix, es crearà automàticament.',
'pathDescriptionEx' => '
Nota: La ruta / no està permesa a causa de la configuració administrativa, s\'establirà automàticament a /elegit.subdomini.tld/ si no s\'estableix en un altre directori.',
'pathDescriptionSubdomain' => 'Si el directori no existeix, es crearà automàticament.
Si voleu una redirecció a un altre domini, aquesta entrada ha de començar per http:// o https://.
Si la URL acaba en / es considera una carpeta, si no, es tracta com a fitxer.',
'back' => 'Tornar',
'reseller' => 'revenedor',
'admin' => 'administrador',
'customer' => 'client/s',
'send' => 'enviar',
'nosslipsavailable' => 'Actualment no hi ha combinacions ip/port ssl per a aquest servidor',
'backtooverview' => 'Tornar a la vista general',
'dateformat' => 'AAAA-MM-DD',
'dateformat_function' => 'A-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Per defecte',
'never' => 'Mai',
'active' => 'Actiu',
'please_choose' => 'Seleccioni una opció',
'allow_modifications' => 'Permetre modificacions',
'megabyte' => 'MegaByte',
'not_supported' => 'No suportat en: ',
'view' => 'veure',
'toomanydirs' => 'Massa subdirectoris. Tornar a la selecció manual de ruta.',
'abort' => 'Avortar',
'not_activated' => 'no activat',
'off' => 'desactivat',
'options' => 'Opcions',
'neverloggedin' => 'Encara no s\'ha iniciat sessió',
'descriptionerrordocument' => 'Pot ser una URL, la ruta a un fitxer o simplement una cadena envoltada de "" Deixeu-lo buit per utilitzar el valor predeterminat del servidor.',
'unlock' => 'Desbloquejar',
'theme' => 'Tema',
'variable' => 'Variable',
'description' => 'Descripció',
'cancel' => 'Cancel·lar',
'ssleditor' => 'Configuració SSL per a aquest domini',
'ssleditor_infoshared' => 'Actualment utilitzant el certificat del domini pare',
'ssleditor_infoglobal' => 'Actualment utilitzant el certificat global',
'dashboard' => 'Panell de control',
'assigned' => 'Assignat',
'available' => 'Disponible',
'news' => 'Notícies',
'newsfeed_disabled' => 'La font de notícies està desactivada. Feu clic a la icona d\'edició per anar a la configuració.',
'ftpdesc' => 'Descripció d\'FTP',
'letsencrypt' => 'Utilitzant Let\'s encrypt',
'set' => 'Aplicar',
'shell' => 'Shell',
'backuppath' => [
'title' => 'Ruta de destí de la còpia de seguretat',
'description' => 'Aquesta és la ruta on s\'emmagatzemaran les còpies de seguretat. Si seleccioneu la còpia de seguretat de les dades web, tots els fitxers de la carpeta d\'inici s\'emmagatzemen excloent-hi la carpeta de còpia de seguretat especificada aquí.'
],
'none_value' => 'Cap',
'viewlogs' => 'Veure fitxers de registre',
'not_configured' => 'El sistema encara no està configurat. Feu clic aquí per anar a la configuració.',
'ihave_configured' => 'He configurat els serveis',
'system_is_configured' => 'El sistema ja està configurat',
'settings_before_configuration' => 'Assegureu-vos d\'ajustar la configuració abans de configurar els serveis aquí',
'image_field_delete' => 'Esborrar la imatge actual existent',
'usage_statistics' => 'Ús de recursos',
'security_question' => 'Pregunta de seguretat',
'listing_empty' => 'No s\'han trobat entrades',
'unspecified' => 'sense especificar',
'settingsmode' => 'Mode',
'settingsmodebasic' => 'Bàsic',
'settingsmodeadvanced' => 'Avançat',
'settingsmodetoggle' => 'Faci clic per canviar el mode',
'modalclose' => 'Tancar',
'managetablecolumnsmodal' => [
'title' => 'Administrar columnes de la taula',
'description' => 'Aquí pot personalitzar les columnes visibles'
],
'mandatoryfield' => 'Camp obligatori',
'select_all' => 'Selecciona-ho tot',
'unselect_all' => 'Desselecciona-ho tot',
'searchtablecolumnsmodal' => [
'title' => 'Cerca en els camps',
'description' => 'Seleccioni el camp on vol cercar'
],
'upload_import' => 'Carregar e importar'
],
'phpfpm' => [
'vhost_httpuser' => 'Usuari local a utilitzar per PHP-FPM (froxlor vHost)',
'vhost_httpgroup' => 'Grup local a utilitzar per PHP-FPM (froxlor vHost)',
'ownvhost' => [
'title' => 'Habilitar PHP-FPM per al vHost de froxlor',
'description' => 'Si està habilitat, froxlor també s\'executarà sota un usuari local'
],
'use_mod_proxy' => [
'title' => 'Utilitzar mod_proxy / mod_proxy_fcgi',
'description' => 'S\'ha d\'activar quan utilitzeu Debian 9.x (Stretch) o posterior. Activar per utilitzar php-fpm via mod_proxy_fcgi. Com a mínim es requereix apache-2.4.9'
],
'ini_flags' => 'Introdueixi possibles php_flagsper a php.ini. Una entrada per línia',
'ini_values' => 'Introdueixi possibles php_valuesper a php.ini. Una entrada per línia',
'ini_admin_flags' => 'Introdueixi possibles php_admin_flagsper a php.ini. Una entrada per línia',
'ini_admin_values' => 'Introdueixi possibles php_admin_valuesper a php.ini. Una entrada per línia'
],
'privacy' => 'Política de privadesa',
'pwdreminder' => [
'success' => 'Restabliment de contrasenya sol·licitat amb èxit. Seguiu les instruccions del correu electrònic que heu rebut.',
'notallowed' => 'Usuari desconegut o el restabliment de contrasenya està desactivat',
'changed' => 'La vostra contrasenya s\'ha actualitzat correctament. Ja podeu iniciar sessió amb la nova contrasenya.',
'wrongcode' => 'Ho sentim, el vostre codi d\'activació no existeix o ja ha caducat.',
'choosenew' => 'Establir nova contrasenya'
],
'question' => [
'question' => 'Pregunta de seguretat',
'admin_customer_reallydelete' => 'Realment vol eliminar el client %s? No es podrà desfer.',
'admin_domain_reallydelete' => 'Realment vol esborrar el domini %s?',
'admin_domain_reallydisablesecuritysetting' => 'Realment vol desactivar aquesta configuració de seguretat OpenBasedir?',
'admin_admin_reallydelete' => 'Realment vol esborrar l\'admin %s? Tots els clients i dominis seran reassignats al vostre compte.',
'admin_template_reallydelete' => 'Realment vol esborrar la plantilla \'%s\'?',
'domains_reallydelete' => 'Realment vol esborrar el domini %s?',
'email_reallydelete' => 'Realment vol esborrar l\'adreça de correu electrònic %s?',
'email_reallydelete_account' => 'Realment vol esborrar el compte de correu de %s?',
'email_reallydelete_forwarder' => 'Realment vol esborrar el forwarder %s?',
'extras_reallydelete' => 'Realment vol esborrar la protecció de directori de %s?',
'extras_reallydelete_pathoptions' => 'Realment vol esborrar les opcions de ruta de %s?',
'extras_reallydelete_backup' => 'Realment vol avortar el treball de la còpia de seguretat planificat?',
'ftp_reallydelete' => 'Realment vol esborrar el compte FTP %s?',
'mysql_reallydelete' => 'Realment vol esborrar la base de dades %s? No es podrà desfer.',
'admin_configs_reallyrebuild' => 'Realment vol reconstruir tots els fitxers de configuració?',
'admin_customer_alsoremovefiles' => 'Treure també els fitxers d\'usuari?',
'admin_customer_alsoremovemail' => 'Eliminar completament les dades de correu electrònic del sistema de fitxers?',
'admin_customer_alsoremoveftphomedir' => 'Treure també el directori de l\'usuari FTP?',
'admin_ip_reallydelete' => 'Realment vol esborrar l\'adreça IP %s?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Estàs segur que vol que l\'arrel del document per a aquest domini no estigui dins l\'arrel del client?',
'admin_counters_reallyupdate' => 'Realment vol recalcular l\'ús de recursos?',
'admin_cleartextmailpws_reallywipe' => 'Realment vol esborrar totes les contrasenyes no encriptades dels comptes de correu de la taula mail_users? Això no es pot revertir. L\'opció d\'emmagatzemar les contrasenyes de correu electrònic sense xifrar també es desactivarà.',
'logger_reallytruncate' => 'Realment vol truncar la taula "%s"?',
'admin_quotas_reallywipe' => 'Realment vol esborrar totes les quotes de la taula mail_users? Això no es pot revertir.',
'admin_quotas_reallyenforce' => 'Realment vol aplicar la quota per defecte a tots els usuaris? Això no es pot revertir.',
'phpsetting_reallydelete' => 'Realment vol suprimir aquesta configuració? Tots els dominis que utilitzen aquesta configuració seran canviats a la configuració per defecte.',
'fpmsetting_reallydelete' => 'Realment vol eliminar aquesta configuració de php-fpm? Totes les configuracions de php que utilitzin aquests paràmetres es canviaran a la configuració per defecte.',
'remove_subbutmain_domains' => 'Treure també els dominis que s\'afegeixen com a dominis complets però que són subdominis d\'aquest domini?',
'customer_reallyunlock' => 'Realment vol desbloquejar el client %s?',
'admin_integritycheck_reallyfix' => 'Realment vol intentar arreglar tots els problemes d\'integritat de la base de dades automàticament?',
'plan_reallydelete' => 'Realment vol eliminar el pla d\'allotjament %s?',
'apikey_reallydelete' => 'Realment vol esborrar aquesta api-key?',
'apikey_reallyadd' => 'Realment vol crear una nova api-key?',
'dnsentry_reallydelete' => 'Realment vol suprimir aquesta entrada dns?',
'certificate_reallydelete' => 'Realment vol esborrar aquest certificat?',
'cache_reallydelete' => 'Realment vol esborrar la memòria cau?'
],
'redirect_desc' => [
'rc_default' => 'per defecte',
'rc_movedperm' => 'mogut permanentment',
'rc_found' => 'trobat',
'rc_seeother' => 'veure\'n un altre',
'rc_tempred' => 'redirecció temporal'
],
'serversettings' => [
'session_timeout' => [
'title' => 'Temps d\'espera de la sessió',
'description' => 'Quant de temps ha d\'estar inactiu un usuari perquè s\'invalidi la sessió (segons)?'
],
'accountprefix' => [
'title' => 'Prefix de client',
'description' => 'Quin prefix han de tenir els comptes de client?'
],
'mysqlprefix' => [
'title' => 'Prefix SQL',
'description' => 'Quin prefix han de tenir els comptes MySQL? Utilitzeu "RANDOM" com a valor per obtenir un prefix aleatori de 3 dígits Utilitzeu "DBNAME" com a valor, s\'utilitza un camp de nom de base de dades juntament amb el nom del client com a prefix.'
],
'ftpprefix' => [
'title' => 'Prefix FTP',
'description' => 'Quin prefix han de tenir els comptes ftp? Si canvies això, també hauràs de canviar la consulta SQL Quota al fitxer de configuració del servidor FTP en cas que l\'utilitzis. '
],
'documentroot_prefix' => [
'title' => 'Directori d\'inici',
'description' => 'On s\'han d\'emmagatzemar tots els directoris d\'inici?'
],
'logfiles_directory' => [
'title' => 'Directori Logfiles',
'description' => 'On s\'han d\'emmagatzemar tots els fitxers de registre?'
],
'logfiles_script' => [
'title' => 'Script personalitzat per enviar els fitxers de registre',
'description' => 'Pot especificar un script aquí i utilitzar els marcadors de posició {LOGFILE}, {DOMAIN} i {CUSTOMER} si cal. En cas que vulgui utilitzar-lo, ha d\'activar també l\'opció Pipe webserver logfiles. No cal el prefix pipe.'
],
'logfiles_format' => [
'title' => 'Format de registre d\'accés',
'description' => 'Introduïu aquí un format de registre personalitzat d\'acord amb les especificacions del vostre servidor web, deixi buit per defecte. Depenent del seu format, la cadena ha d\'estar entre cometes. Si s\'utilitza amb nginx, es veurà com a log_formatfrx_custom {CONFIGURED_VALUE}. Si s\'utilitza amb Apache, es veurà com a LogFormat {CONFIGURED_VALUE} frx_custom. Atenció: No es comprovarà si el codi conté errors. Si conté errors, el servidor web podria no tornar a arrencar!'
],
'logfiles_type' => [
'title' => 'Tipus de registre d\'accés',
'description' => 'Trieu aquí entre combinat o vhost_combinat.'
],
'logfiles_piped' => [
'title' => 'Canalitzar els fitxers de registre del servidor web a l\'script especificat (veure a dalt)',
'description' => 'Si utilitzeu un script personalitzat per als fitxers de registre, haureu d\'activar-lo perquè s\'executi.'
],
'ipaddress' => [
'title' => 'Adreça IP',
'description' => 'Quina és l\'adreça IP principal d\'aquest servidor?'
],
'hostname' => [
'title' => 'Nom de host',
'description' => 'Quin és el nom de host d\'aquest servidor?'
],
'apachereload_command' => [
'title' => 'Ordre de recàrrega del servidor web',
'description' => 'Quina és l\'ordre del servidor web per recarregar els fitxers de configuració?'
],
'bindenable' => [
'title' => 'Habilitar servidor de noms',
'description' => 'Aquí es pot habilitar i deshabilitar globalment el servidor de noms.'
],
'bindconf_directory' => [
'title' => 'Directori de configuració del servidor DNS',
'description' => 'On s\'han de desar els fitxers de configuració del servidor DNS?'
],
'bindreload_command' => [
'title' => 'Ordre de recàrrega del servidor DNS',
'description' => 'Quina és la comanda per recarregar el dimoni del servidor DNS?'
],
'vmail_uid' => [
'title' => 'Mails-UID',
'description' => 'Quin UserID han de tenir els correus?'
],
'vmail_gid' => [
'title' => 'Mails-GID',
'description' => 'Quin GroupID ha de tenir Mails?'
],
'vmail_homedir' => [
'title' => 'Mails-homedir',
'description' => 'On s\'haurien d\'emmagatzemar tots els correus?'
],
'adminmail' => [
'title' => 'Remitent',
'description' => 'Quina és l\'adreça del remitent per als correus electrònics enviats des del Panell?'
],
'phpmyadmin_url' => [
'title' => 'URL de phpMyAdmin',
'description' => 'Quina és la URL de phpMyAdmin? (ha de començar per http(s)://)'
],
'webmail_url' => [
'title' => 'URL de Webmail',
'description' => 'Quina és la URL de webmail? (ha de començar per http(s)://)'
],
'webftp_url' => [
'title' => 'URL de WebFTP',
'description' => 'Quina és la URL de WebFTP? (ha de començar per http(s)://)'
],
'language' => [
'description' => 'Quin és el llenguatge estàndard del vostre servidor?'
],
'maxloginattempts' => [
'title' => 'Nombre màxim d\'intents d\'inici de sessió',
'description' => 'Nombre màxim d\'intents d\'inici de sessió després dels quals es desactiva el compte.'
],
'deactivatetime' => [
'title' => 'Temps de desactivació',
'description' => 'Temps (segons) que es desactiva un compte després de massa intents d\'inici de sessió.'
],
'pathedit' => [
'title' => 'Tipus d\'entrada de ruta',
'description' => 'S\'ha de seleccionar una ruta amb un menú desplegable o amb un camp d\'entrada?'
],
'nameservers' => [
'title' => 'Servidors de noms',
'description' => 'Una llista separada per comes que conté els noms de host de tots els servidors de noms. El primer serà el principal.'
],
'mxservers' => [
'title' => 'Servidors MX',
'description' => 'Una llista separada per comes que conté un parell d\'un nombre i un nom de sistema principal separats per espais en blanc (per exemple, \'10 mx.exemple.com\') que conté els servidors mx.'
],
'paging' => [
'title' => 'Entrades per pàgina',
'description' => 'Quantes entrades es mostraran a una pàgina? (0 = desactivar la paginació)'
],
'defaultip' => [
'title' => 'IP/Port per defecte',
'description' => 'Seleccioni totes les adreces IP que voleu utilitzar com a predeterminades per als nous dominis.'
],
'defaultsslip' => [
'title' => 'IP/Port SSL per defecte',
'description' => 'Seleccioni totes les adreces IP amb ssl habilitat que voleu utilitzar per defecte per als nous dominis'
],
'phpappendopenbasedir' => [
'title' => 'Rutes a afegir a OpenBasedir',
'description' => 'Aquestes rutes (separades per dos punts) s\'afegiran a la declaració OpenBasedir a cada contenidor vHost.'
],
'natsorting' => [
'title' => 'Utilitzar ordenació humana natural a la vista de llista',
'description' => 'Ordena les llistes com a web1 -> web2 -> web11 en lloc de web1 -> web11 -> web2.'
],
'deactivateddocroot' => [
'title' => 'Docroot per a usuaris desactivats',
'description' => 'Quan un usuari és desactivat aquesta ruta és utilitzada com el seu docroot. Deixar buit per no crear cap vHost.'
],
'mailpwcleartext' => [
'title' => 'Desar també les contrasenyes dels comptes de correu sense xifrar a la base de dades',
'description' => 'Si aquesta opció està activada, totes les contrasenyes seran guardades sense encriptar (text clar, llegible per a qualsevol amb accés a la base de dades) a la taula mail_users. Activeu aquesta opció només si voleu utilitzar SASL.'
],
'ftpdomain' => [
'title' => 'Comptes FTP @domini',
'description' => 'Els clients poden crear comptes FTP user@customerdomain?'
],
'mod_fcgid' => [
'title' => 'Activar FCGID',
'description' => 'Utilitzi això per executar PHP amb el compte d\'usuari corresponent.
Això necessita una configuració especial del servidor web per a Apache, vegeu FCGID - manual',
'configdir' => [
'title' => 'Directori de configuració',
'description' => 'On s\'han de desar tots els fitxers de configuració fcgid? Si no utilitzeu un binari suexec autocompilat, que és la situació normal, aquesta ruta ha d\'estar sota /var/www/
NOTA: El contingut d\'aquesta carpeta s\'esborra regularment, així que eviteu emmagatzemar dades allà manualment.
'
],
'tmpdir' => [
'title' => 'Directori temporal',
'description' => 'On s\'han d\'emmagatzemar els directoris temporals'
],
'starter' => [
'title' => 'Processos per domini',
'description' => 'Quants processos s\'haurien d\'iniciar/permetre per domini? Es recomana el valor 0 perquè PHP gestionarà llavors la quantitat de processos per si mateix de forma molt eficient.'
],
'wrapper' => [
'title' => 'Wrapper en Vhosts',
'description' => 'Com s\'ha d\'incloure el wrapper als Vhosts'
],
'peardir' => [
'title' => 'Directoris globals de PEAR',
'description' => 'Quins directoris globals de PEAR han de ser reemplaçats a cada configuració php.ini? Els directoris diferents han d\'estar separats per dos punts.'
],
'maxrequests' => [
'title' => 'Nombre màxim de peticions per domini',
'description' => 'Quantes peticions cal permetre per domini?'
],
'defaultini' => 'Configuració PHP per defecte per a nous dominis',
'defaultini_ownvhost' => 'Configuració PHP per defecte per a froxlor-vHost',
'idle_timeout' => [
'title' => 'Temps d\'espera',
'description' => 'Configuració de temps d\'espera per a FastCGI Mod.'
]
],
'sendalternativemail' => [
'title' => 'Utilitzar una adreça de correu electrònic alternativa',
'description' => 'Enviar la contrasenya a una adreça diferent durant la creació del compte de correu electrònic.'
],
'apacheconf_vhost' => [
'title' => 'Fitxer/nom de directori de configuració del servidor web vHost',
'description' => 'On s\'ha de desar la configuració del vHost? Podeu especificar aquí un fitxer (tots els vHosts en un fitxer) o un directori (cada vHost al vostre propi fitxer).'
],
'apacheconf_diroptions' => [
'title' => 'Fitxer/nom de directori de configuració de diroptions del servidor web',
'description' => 'On s\'ha d\'emmagatzemar la configuració de diroptions? Podeu especificar un fitxer (totes les diroptions en un fitxer) o directori (cada diroption en el vostre propi fitxer) aquí.'
],
'apacheconf_htpasswddir' => [
'title' => 'Nom de directori per a htpasswd Webserver',
'description' => 'On s\'han de desar els fitxers htpasswd per a la protecció de directoris?'
],
'mysql_access_host' => [
'title' => 'MySQL-Access-Hosts',
'description' => 'Una llista separada per comes dels hosts des dels quals s\'ha de permetre als usuaris connectar-se al servidor MySQL. Per permetre una subxarxa és vàlida la sintaxi netmask o cidr.'
],
'webalizer_quiet' => [
'title' => 'Sortida de Webalizer',
'description' => 'Verbositat del programa webalizer'
],
'logger' => [
'enable' => 'Registre activat/desactivat',
'severity' => 'Nivell de registre',
'types' => [
'title' => 'Tipus de registre',
'description' => 'Especifiqueu els tipus de registre. Per seleccionar diversos tipus, mantingueu premuda la tecla CTRL mentre selecciona. Els tipus de registre disponibles són: syslog, file, mysql'
],
'logfile' => [
'title' => 'Nom del fitxer de registre',
'description' => 'Només s\'utilitza si el log-type inclou "file". Aquest fitxer es crearà a froxlor/logs/. Aquesta carpeta està protegida contra l\'accés públic.'
],
'logcron' => 'Log cronjobs',
'logcronoption' => [
'never' => 'Mai',
'once' => 'Un cop',
'always' => 'Sempre'
]
],
'ssl' => [
'use_ssl' => [
'title' => 'Activar ús de SSL',
'description' => 'Marqui aquesta opció si vol utilitzar SSL per al seu servidor web'
],
'ssl_cert_file' => [
'title' => 'Ruta al certificat SSL',
'description' => 'Especifiqui la ruta incloent el nom del fitxer .crt o .pem (certificat principal)'
],
'openssl_cnf' => 'Valors predeterminats per crear el fitxer Cert',
'ssl_key_file' => [
'title' => 'Ruta al fitxer de claus SSL',
'description' => 'Especifiqui la ruta incloent el nom de fitxer per al fitxer de clau privada (.key principalment)'
],
'ssl_ca_file' => [
'title' => 'Ruta al certificat SSL CA (opcional)',
'description' => 'Autenticació del client, configuri això només si sap el que és.'
],
'ssl_cipher_list' => [
'title' => 'Configuri els xifrats SSL permesos',
'description' => 'Aquesta és una llista de xifradors que vol (o no vol) utilitzar quan parli SSL. Per a una llista de xifradors i com incloure\'ls/excloure\'ls, vegeu les seccions "CIPHER LIST FORMAT" i "CIPHER STRINGS" a la pàgina man de xifradors.
'
],
'apache24_ocsp_cache_path' => [
'title' => 'Apache 2.4: ruta a la memòria cau de grapat OCSP',
'description' => 'Configura la memòria cau utilitzada per emmagatzemar les respostes OCSP que s\'inclouen als handshakes TLS.'
],
'ssl_protocols' => [
'title' => 'Configurar la versió del protocol TLS',
'description' => 'Aquesta és una llista de protocols ssl que vol (o no vol) utilitzar quan utilitzeu SSL. Nota: És possible que alguns navegadors antics no admetin les versions de protocol més recents.
El valor per defecte és:
TLSv1.2
'
],
'tlsv13_cipher_list' => [
'title' => 'Configurar xifrats explícits TLSv1.3 si es fan servir',
'description' => 'Aquesta és una llista de xifradors que voleu (o no voleu) utilitzar quan parleu TLSv1.3. Per a una llista de xifradors i com incloure\'ls/excloure\'ls, vegeu els documents per a TLSv1.3.
El valor per defecte és buit'
]
],
'default_vhostconf' => [
'title' => 'Configuració vHost per defecte',
'description' => 'El contingut d\'aquest camp s\'inclourà directament en aquest contenidor ip/port vHost. Podeu utilitzar les variables següents: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}< /code>, {PORT}, {SCHEME}, {FPMSOCKET} (si escau) Atenció: No es comprovarà si el codi conté errors. Si conté errors, el servidor web podria no tornar a arrencar!'
],
'apache_globaldiropt' => [
'title' => 'Opcions de directori per a customer-prefix',
'description' => 'El contingut d\'aquest camp s\'inclourà a la configuració d\'apache 05_froxlor_dirfix_nofcgid.conf. Si està buit, es farà servir el valor per defecte:
apache >=2.4 Require all granted AllowOverride All
apache <=2.2 Order allow,deny allow from all'
],
'default_vhostconf_domain' => [
'description' => 'El contingut d\'aquest camp s\'inclou directament al contenidor vHost del domini. Podeu utilitzar les variables següents: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}< /code>, {PORT}, {SCHEME}, {FPMSOCKET} (si escau) Atenció: No es comprovarà si el codi conté errors. Si conté errors, el servidor web podria no tornar a arrencar!'
],
'decimal_places' => 'Nombre de decimals a la sortida de trànsit/espai web',
'selfdns' => [
'title' => 'Configuració dns del domini del client'
],
'selfdnscustomer' => [
'title' => 'Permetre als clients editar la configuració dns del domini'
],
'unix_names' => [
'title' => 'Utilitzar noms d\'usuari compatibles amb UNIX',
'description' => 'Permet utilitzar - i _ als noms d\'usuari si No'
],
'allow_password_reset' => [
'title' => 'Permetre que els clients restableixin la contrasenya',
'description' => 'Els clients poden restablir la contrasenya i se\'ls enviarà un enllaç d\'activació a la seva adreça de correu electrònic.'
],
'allow_password_reset_admin' => [
'title' => 'Permetre que els administradors restableixin la contrasenya',
'description' => 'Els administradors/revenedors poden restablir la contrasenya i se\'ls enviarà un enllaç d\'activació a la seva adreça de correu electrònic.'
],
'mail_quota' => [
'title' => 'Quota de bústia',
'description' => 'La quota per defecte per a les noves bústies creades (MegaByte).'
],
'mail_quota_enabled' => [
'title' => 'Utilitzar mailbox-quota per a clients',
'description' => 'Activar per utilitzar quotes a les bústies de correu. Per defecte és No ja que això requereix una configuració especial.',
'removelink' => 'Faci clic aquí per esborrar totes les quotes dels comptes de correu.',
'enforcelink' => 'Faci clic aquí per aplicar la quota per defecte a tots els comptes de correu dels usuaris.'
],
'index_file_extension' => [
'description' => 'Quina extensió de fitxer s\'ha d\'utilitzar per al fitxer d\'índex als directoris de clients acabats de crear? Aquesta extensió de fitxer s\'utilitzarà si vosté o un dels seus administradors ha creat la seva pròpia plantilla de fitxer d\'índex.',
'title' => 'Extensió de fitxer per al fitxer d\'índex en directoris de clients acabats de crear'
],
'session_allow_multiple_login' => [
'title' => 'Permetre l\'inici de sessió múltiple',
'description' => 'Si s\'activa, un usuari pot iniciar sessió diverses vegades.'
],
'panel_allow_domain_change_admin' => [
'title' => 'Permetre moure dominis entre administradors',
'description' => 'Si està activat pot canviar l\'admin d\'un domini a domainsettings. Atenció: Si un client no està assignat al mateix administrador que el domini, l\'administrador pot veure tots els altres dominis d\'aquest client!'
],
'panel_allow_domain_change_customer' => [
'title' => 'Permetre moure dominis entre clients',
'description' => 'Si està activat pots canviar el client d\'un domini a domainsettings. Atenció: froxlor canvia el documentroot al homedir per defecte del nou client (+ carpeta de domini si està activat)'
],
'specialsettingsforsubdomains' => [
'description' => 'En cas afirmatiu, aquests paràmetres personalitzats de vHost s\'afegiran a tots els subdominis; en cas negatiu, s\'eliminaran els ajustaments especials de subdomini.'
],
'panel_password_min_length' => [
'title' => 'Longitud mínima de contrasenya',
'description' => 'Aquí pot establir una longitud mínima per a les contrasenyes. 0\' vol dir que no es requereix longitud mínima.'
],
'system_store_index_file_subs' => [
'title' => 'Emmagatzemar el fitxer índex per defecte també a les noves subcarpetes',
'description' => 'Si s\'activa, el fitxer d\'índex per defecte s\'emmagatzema a cada ruta de subdomini creada recentment (no si la carpeta ja existeix).'
],
'adminmail_return' => [
'title' => 'Adreça de resposta',
'description' => 'Defineix una adreça de correu electrònic com a adreça de resposta per als correus electrònics enviats pel panell.'
],
'adminmail_defname' => 'Nom del remitent del correu electrònic del panell',
'stdsubdomainhost' => [
'title' => 'Subdomini estàndard del client',
'description' => 'Quin nom de host s\'ha de fer servir per crear subdominis estàndard per al client. Si està buit, s\'utilitza el nom de sistema principal del sistema.'
],
'awstats_path' => 'Ruta a AWStats \'awstats_buildstaticpages.pl\'',
'awstats_conf' => 'Ruta de configuració d\'AWStats',
'defaultttl' => 'TTL de domini per a bind en segons (per defecte \'604800\' = 1 setmana)',
'defaultwebsrverrhandler_enabled' => 'Habilitar documents d\'error per defecte per a tots els clients',
'defaultwebsrverrhandler_err401' => [
'title' => 'Fitxer/URL per a l\'error 401',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'Fitxer/URL per a l\'error 403',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'Fitxer/URL per a l\'error 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'Fitxer/URL per a l\'error 500',
'description' => '',
],
'ftpserver' => [
'desc' => 'Si seleccioneu pureftpd, els fitxers .ftpquota per a quotes d\'usuari es creen i s\'actualitzen diàriament'
],
'customredirect_enabled' => [
'title' => 'Permetre redireccionaments de clients',
'description' => 'Permetre als clients triar el codi http-status per a les redireccions que es faran servir'
],
'customredirect_default' => [
'title' => 'Redirecció per defecte',
'description' => 'Estableix el codi de redirecció per defecte que s\'utilitzarà si el client no ho estableix per si mateix'
],
'mail_also_with_mxservers' => 'Crear mail-, imap-, pop3- y smtp-"A record" també amb MX-Servers set',
'froxlordirectlyviahostname' => 'Accedir a froxlor directament a través del nom de host',
'panel_password_regex' => [
'title' => 'Expressió regular per a contrasenyes',
'description' => 'Aquí pot establir una expressió regular per a la complexitat de les contrasenyes. Buit = cap requeriment'
],
'mod_fcgid_ownvhost' => [
'title' => 'Habilita FCGID per al vHost de froxlor',
'description' => 'Si està habilitat, froxlor també s\'executarà sota un usuari local'
],
'perl' => [
'suexecworkaround' => [
'title' => 'Habilitar solució SuExec',
'description' => 'Habilitar només si els directoris del client no estan dins de la ruta apache suexec. Si està habilitat, froxlor generarà un enllaç simbòlic des del directori del client habilitat per a perl + /cgi-bin/ a la ruta donada. Tingueu en compte que perl només funcionarà al subdirectori de carpetes /cgi-bin/ i no a la carpeta en si (com ho fa sense aquesta solució!)'
],
'suexeccgipath' => [
'title' => 'Ruta per als enllaços simbòlics de directori habilitats per a perl del client',
'description' => 'Només heu de configurar això si la solució de SuExec està activada. ATENCIÓ: Assegureu-vos que aquesta ruta està dins de la ruta de suexec o en cas contrari aquesta solució és inútil.'
]
],
'awstats_awstatspath' => 'Ruta a AWStats \'awstats.pl\'.',
'awstats_icons' => [
'title' => 'Ruta a la carpeta d\'icones d\'AWstats',
'description' => 'Exemple: /usr/share/awstats/htdocs/icon/'
],
'login_domain_login' => 'Permetre login amb dominis',
'perl_server' => [
'title' => 'Ubicació del socket del servidor Perl',
'description' => 'Pot trobar una guia senzilla a: nginx.com'
],
'nginx_php_backend' => [
'title' => 'Nginx PHP backend',
'description' => 'aquí és on el procés PHP està escoltant peticions de nginx, pot ser un socket unix de combinació ip:port *NO s\'utilitza amb php-fpm'
],
'phpreload_command' => [
'title' => 'Ordre de reinici de PHP',
'description' => 's\'utilitza per recarregar el backend PHP si se n\'utilitza algun Per defecte: en blanc *NO s\'utilitza amb php-fpm'
],
'phpfpm' => [
'title' => 'Habilitar php-fpm',
'description' => 'Això necessita una configuració especial del servidor web veure manual PHP-FPM'
],
'phpfpm_settings' => [
'configdir' => 'Directori de configuració de php-fpm',
'aliasconfigdir' => 'Directori Àlies de configuració de php-fpm',
'reload' => 'Ordre de reinici de php-fpm',
'pm' => 'Control del gestor de processos (pm)',
'max_children' => [
'title' => 'Nombre de processos fill',
'description' => 'El nombre de processos fill a ser creats quan pm està en \'static\' i el nombre màxim de processos fill a ser creats quan pm està en \'dynamic/ondemand\' Equivalent a PHP_FCGI_CHILDREN'
],
'start_servers' => [
'title' => 'El nombre de processos fill creats a l\'inici',
'description' => 'Nota: Només es fa servir quan pm està configurat com a \'dynamic'
],
'min_spare_servers' => [
'title' => 'El nombre mínim desitjat de processos de servidor inactius',
'description' => 'Nota: Només es fa servir quan pm és \'dynamic\' Nota: Obligatori quan pm és \'dynamic'
],
'max_spare_servers' => [
'title' => 'El nombre màxim desitjat de processos inactius de servidor',
'description' => 'Nota: només s\'utilitza quan pm té el valor "dynamic". Nota: obligatori quan pm té el valor "dynamic".'
],
'max_requests' => [
'title' => 'Peticions per fill abans de respawning',
'description' => 'Per a un processament infinit de peticions especifiqueu \'0\'. Equivalent a PHP_FCGI_MAX_REQUESTS.'
],
'idle_timeout' => [
'title' => 'Temps d\'espera',
'description' => 'Configuració de temps d\'espera per a PHP FPM FastCGI.'
],
'ipcdir' => [
'title' => 'Directori IPC FastCGI',
'description' => 'El directori on els sockets php-fpm seran emmagatzemats pel servidor web. Aquest directori ha de ser llegible per al servidor web.'
],
'limit_extensions' => [
'title' => 'Extensions permeses',
'description' => 'Limita les extensions de l\'script principal que FPM permetrà analitzar. Això pot evitar errors de configuració al servidor web. Només heu de limitar FPM a extensions .php per evitar que usuaris maliciosos utilitzin altres extensions per executar codi php. Valor per defecte: .php'
],
'envpath' => 'Rutes per afegir a l\'entorn PATH. Deixeu-lo buit per a cap variable d\'entorn PATH',
'override_fpmconfig' => 'Anul·lar la configuració de FPM-daemon (pm, max_children, etc.)',
'override_fpmconfig_addinfo' => ' Només es fa servir si "Override FPM-daemon settings" està en "Sí"',
'restart_note' => 'Atenció: La configuració no serà revisada per errors. Si conté errors, PHP-FPM podria no tornar a arrencar.',
'custom_config' => [
'title' => 'Configuració personalitzada',
'description' => 'Afegeix configuració personalitzada a cada instància de versió de PHP-FPM, per exemple pm.status_path = /status per a monitoratge. Les variables de sota poden ser utilitzades aquí. Atenció: La configuració no serà revisada per errors. Si conté errors, PHP-FPM podria no tornar a arrencar!'
],
'allow_all_customers' => [
'title' => 'Assigneu aquesta configuració a tots els clients existents',
'description' => 'Establiu-lo a "cert" si voleu assignar aquesta configuració a tots els clients existents perquè puguin utilitzar-la. Aquesta configuració no és permanent, però es pot executar diverses vegades.'
]
],
'report' => [
'report' => 'Habilitar l\'enviament d\'informes sobre l\'ús de la web i el trànsit',
'webmax' => [
'title' => 'Nivell d\'advertència en percentatge per a l\'espai web',
'description' => 'Els valors vàlids són 0-150. Establir aquest valor a 0 desactiva aquest informe.'
],
'trafficmax' => [
'title' => 'Nivell d\'advertència en percentatge per al trànsit',
'description' => 'Els valors vàlids són de 0 a 150. El valor 0 desactiva aquest informe.'
]
],
'dropdown' => 'Desplegable',
'manual' => 'Manual',
'default_theme' => 'Tema per defecte',
'validate_domain' => 'Validar noms de domini',
'diskquota_enabled' => 'Quota activada?',
'diskquota_repquota_path' => [
'description' => 'Ruta a repquota'
],
'diskquota_quotatool_path' => [
'description' => 'Ruta a quotatool'
],
'diskquota_customer_partition' => [
'description' => 'Partició en què s\'emmagatzemen els fitxers del client'
],
'vmail_maildirname' => [
'title' => 'Nom del maildir',
'description' => 'Directori maildir al compte de l\'usuari. Normalment \'Maildir\', en algunes implementacions \'.maildir\', i directament al directori de l\'usuari si es deixa en blanc.'
],
'catchall_enabled' => [
'title' => 'Utilitzar Catchall',
'description' => 'Vol proporcionar als seus clients la funció catchall?'
],
'apache_24' => [
'title' => 'Utilitzi les modificacions per Apache 2.4',
'description' => 'ATENCIÓ: utilitzeu-lo només si teniu instal·lada la versió 2.4 o superior d\'apache en cas contrari el vostre servidor web no podrà arrencar'
],
'nginx_fastcgiparams' => [
'title' => 'Ruta al fitxer fastcgi_params',
'description' => 'Especifiqui la ruta al fitxer fastcgi_params de nginx incloent el nom de fitxer'
],
'documentroot_use_default_value' => [
'title' => 'Utilitzar el nom de domini com a valor per defecte per a la ruta DocumentRoot',
'description' => 'Si està habilitat i la ruta DocumentRoot és buida, el valor per defecte serà el (sub)nom de domini.
Exemples: /var/clients/nom_client/exemple.com/ /var/clients/nom_client/subdomini.exemple.com/'
],
'panel_phpconfigs_hidesubdomains' => [
'title' => 'Amagar subdominis a la vista general de configuració PHP',
'description' => 'Si s\'activa, els subdominis dels clients no es mostraran a la vista general de configuracions PHP, només es mostrarà el número de subdominis.
Nota: Això només serà visible si heu activat FCGID o PHP-FPM .'
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Amagar subdominis estàndard a la vista general de configuracions PHP',
'description' => 'Si s\'activa, els subdominis estàndard dels clients no es mostraran a la vista general de configuracions php
Nota: Això només serà visible si heu activat FCGID o PHP-FPM.'
],
'passwordcryptfunc' => [
'title' => 'Triï el mètode de xifratge de contrasenyes a utilitzar'
],
'systemdefault' => 'Sistema per defecte',
'panel_allow_theme_change_admin' => 'Permetre als administradors canviar el tema',
'panel_allow_theme_change_customer' => 'Permetre als clients canviar el tema',
'axfrservers' => [
'title' => 'Servidors AXFR',
'description' => 'Una llista separada per comes d\'adreces IP permeses per transferir (AXFR) zones dns.'
],
'powerdns_mode' => [
'title' => 'Mode de funcionament PowerDNS',
'description' => 'Seleccioni el mode PoweDNS: Natiu si no es necessita replicació DNS (Predeterminat) / Mestre si es necessita replicació DNS.'
],
'customerssl_directory' => [
'title' => 'Webserver customer-ssl certificates-directory',
'description' => 'On s\'han de crear els certificats ssl especificats pel client?
NOTA: El contingut d\'aquesta carpeta s\'esborra amb regularitat, així que eviteu emmagatzemar dades allà manualment.
'
],
'allow_error_report_admin' => [
'title' => 'Permetre als administradors/revenedors informar d\'errors a la base de dades a froxlor',
'description' => 'Nota: Mai ens enviïs dades personals (de clients)!'
],
'allow_error_report_customer' => [
'title' => 'Permetre als clients informar d\'errors a la base de dades a froxlor',
'description' => 'Nota: Mai ens enviïs dades personals (de clients)!'
],
'mailtraffic_enabled' => [
'title' => 'Analitzar el trànsit de correu',
'description' => 'Permetre l\'anàlisi dels registres del servidor de correu per calcular el trànsit'
],
'mdaserver' => [
'title' => 'Tipus de MDA',
'description' => 'Tipus de servidor de lliurament de correu'
],
'mdalog' => [
'title' => 'Registre MDA',
'description' => 'Fitxer de registre del Mail Delivery Server'
],
'mtaserver' => [
'title' => 'Tipus de MTA',
'description' => 'Tipus d\'agent de transferència de correu'
],
'mtalog' => [
'title' => 'Registre MTA',
'description' => 'Fitxer de registre de l\'agent de transferència de correu'
],
'system_cronconfig' => [
'title' => 'Fitxer de configuració de cron',
'description' => 'Ruta al fitxer de configuració del servei cron. Aquest fitxer serà actualitzat regularment i automàticament per froxlor. Nota: Si us plau assegureu-vos d\'utilitzar el mateix nom de fitxer que per al froxlor cronjob principal (per defecte: /etc/cron.d/froxlor)!
Si utilitzeu FreeBSD, si us plau especifiqueu /etc/crontab aquí!'
],
'system_crondreload' => [
'title' => 'Ordre de recàrrega pel domini Cron',
'description' => 'Especifiqui l\'ordre a executar per recarregar el dimoni cron del vostre sistema'
],
'system_croncmdline' => [
'title' => 'Ordre d\'execució de cron (php-binari)',
'description' => 'Ordre per executar les nostres tasques cron. Canvieu-ho només si sabeu el que esteu fent (per defecte: "/usr/bin/nice -n 5 /usr/bin/php -q").'
],
'system_cron_allowautoupdate' => [
'title' => 'Permetre actualitzar automàticament la base de dades',
'description' => '
ATENCIÓ:
Aquesta configuració permet al cronjob saltar-se la comprovació de versió dels fitxers froxlors i la base de dades i executa l\'actualització de la base de dades en cas que passi un desajust de versió.
Auto-update sempre establirà valors per defecte per a noves configuracions o canvis. Això pot no ser sempre adequat per al vostre sistema. Si us plau, penseu-ho dues vegades abans d\'activar aquesta opció
'
],
'dns_createhostnameentry' => 'Crear bind-zone/config per al nom de host del sistema',
'panel_password_alpha_lower' => [
'title' => 'Minúscules',
'description' => 'La contrasenya ha de contenir com a mínim una lletra minúscula (a-z).'
],
'panel_password_alpha_upper' => [
'title' => 'Majúscules',
'description' => 'La contrasenya ha de contenir com a mínim una lletra majúscula (A-Z).'
],
'panel_password_numeric' => [
'title' => 'Números',
'description' => 'La contrasenya ha de contenir almenys un número (0-9).'
],
'panel_password_special_char_required' => [
'title' => 'Caràcter especial',
'description' => 'La contrasenya ha de contenir com a mínim un dels caràcters definits a continuació.'
],
'panel_password_special_char' => [
'title' => 'Llista de caràcters especials',
'description' => 'Es requereix un d\'aquests caràcters si s\'estableix l\'opció anterior.'
],
'apache_itksupport' => [
'title' => 'Modificacions d\'ús per Apache ITK-MPM',
'description' => 'ATENCIÓ: utilitzeu-la només si teniu apache itk-mpm habilitat , altrament el vostre servidor web no es podrà iniciar.'
],
'letsencryptca' => [
'title' => 'Entorn ACME',
'description' => 'Entorn que s\'utilitzarà per als certificats Let\'s Encrypt / ZeroSSL.'
],
'letsencryptchallengepath' => [
'title' => 'Ruta per als desafiaments Let\'s Encrypt',
'description' => 'Directori des del qual s\'oferiran els reptes Let\'s Encrypt a través d\'un àlies global.'
],
'letsencryptkeysize' => [
'title' => 'Mida de la clau per a nous certificats Let\'s Encrypt',
'description' => 'Mida de la clau en Bits per a nous certificats Let\'s Encrypt.'
],
'letsencryptreuseold' => [
'title' => 'Reutilitzar clau Let\'s Encrypt',
'description' => 'Si s\'activa, s\'utilitzarà la mateixa clau per a cada renovació, altrament es generarà una clau nova cada vegada.'
],
'leenabled' => [
'title' => 'Activar Let\'s Encrypt',
'description' => 'Si s\'activa, els clients poden deixar que automàticament froxlor generi i renovi certificats ssl Let\'s Encrypt per a dominis amb una IP/port ssl.
Si us plau recorda que necessites anar a través de la configuració del servidor web quan s\'activa perquè aquesta característica necessita una configuració especial.'
],
'caa_entry' => [
'title' => 'Generar registres DNS CAA',
'description' => 'Genera automàticament registres CAA per a dominis habilitats per a SSL que utilitzen Let\'s Encrypt.'
],
'caa_entry_custom' => [
'title' => 'Registres DNS CAA addicionals',
'description' => 'DNS Certification Authority Authorization (CAA) és un mecanisme de política de seguretat a Internet que permet als titulars de noms de domini indicar a les autoritats de certificació si estan autoritzades a emetre certificats digitals per a un nom de domini concret. Ho fa mitjançant un nou registre de recursos del sistema de noms de domini (DNS) "CAA".
El contingut d\'aquest camp s\'inclourà a la zona DNS directament (cada línia dóna lloc a un registre CAA ). Si Let\'s Encrypt està habilitat per a aquest domini, aquesta entrada sempre s\'afegirà automàticament i no caldrà afegir-la manualment: 0issue "letsencrypt.org" ( Si el domini és un domini comodí, s\'utilitzarà issuewild al seu lloc). Per habilitar l\'informe d\'incidents, podeu afegir un registre iodef. Un exemple per enviar aquest informe a me@example.com seria: 0iodef "mailto:me@example.com"
Atenció: No es comprovarà si el codi conté errors. Si conté errors, és possible que els vostres registres CAA no funcionin!'
],
'backupenabled' => [
'title' => 'Activar còpia de seguretat per a clients',
'description' => 'Si s\'activa, el client podrà programar treballs de còpia de seguretat (cron-backup) que generen un fitxer dins del seu docroot (subdirectori a elecció del client)'
],
'dnseditorenable' => [
'title' => 'Habilitar editor DNS',
'description' => 'Permet als administradors i als clients gestionar les entrades DNS del domini'
],
'dns_server' => [
'title' => 'Dimoni del servidor DNS',
'description' => 'Recordi que els dimonis han de ser configurats usant les plantilles de configuració de froxlors'
],
'panel_customer_hide_options' => [
'title' => 'Amagar elements de menú i gràfics de trànsit al panell de client',
'description' => 'Seleccioni els elements que vol amagar al panell de client. Per seleccionar diverses opcions, mantingueu premuda la tecla CTRL mentre seleccioneu.'
],
'allow_allow_customer_shell' => [
'title' => 'Permetre als clients habilitar l\'accés shell per a usuaris ftp',
'description' => 'Atenció: L\'accés Shell permet a l\'usuari executar diversos binaris al vostre sistema. Utilitzeu-lo amb extrema precaució. Si us plau, activeu això només si REALMENT sap el que està fent!!!'
],
'available_shells' => [
'title' => 'Llista de shells disponibles',
'description' => 'Llista separada per comes dels intèrprets d\'ordres disponibles perquè el client esculli per als seus usuaris ftp.
Tingueu en compte que l\'intèrpret d\'ordres predeterminat /bin/false sempre serà una opció (si està habilitat), fins i tot si aquesta configuració és buida. És el valor per defecte per als usuaris ftp en qualsevol cas.'
],
'le_froxlor_enabled' => [
'title' => 'Activar Let\'s Encrypt per al froxlor vhost',
'description' => 'Si s\'activa, el froxlor vhost s\'assegurarà automàticament utilitzant un certificat Let\'s Encrypt.'
],
'le_froxlor_redirect' => [
'title' => 'Activar SSL-redirect per a froxlor vhost',
'description' => 'Si s\'activa, totes les peticions http al vostre froxlor seran redirigides al lloc SSL corresponent.'
],
'option_unavailable_websrv' => ' Disponible només per a: %s',
'option_unavailable' => ' Opció no disponible degut a altres paràmetres.',
'letsencryptacmeconf' => [
'title' => 'Ruta al fragment acme.conf',
'description' => 'Nom de fitxer del fragment de configuració que permet al servidor web utilitzar el desafiament acme.'
],
'mail_use_smtp' => 'Configurar mailer per utilitzar SMTP',
'mail_smtp_host' => 'Especifiqui el servidor SMTP',
'mail_smtp_usetls' => 'Activar el xifratge TLS',
'mail_smtp_auth' => 'Activar l\'autenticació SMTP',
'mail_smtp_port' => 'Port TCP al qual connectar-se',
'mail_smtp_user' => 'Nom d\'usuari SMTP',
'mail_smtp_passwd' => 'Contrasenya SMTP',
'http2_support' => [
'title' => 'Suport HTTP2',
'description' => 'habiliti el suport HTTP2 per a ssl. HABILITAR NOMÉS SI EL SEU WEBSERVER SUPORTA AQUESTA CARACTERÍSTICA (nginx versió 1.9.5+, apache2 versió 2.4.17+)'
],
'nssextrausers' => [
'title' => 'Utilitzar libnss-extrausers en lloc de libnss-mysql',
'description' => 'No llegir usuaris de la base de dades sinó de fitxers. Si us plau, activa-ho només si ja has realitzat els passos de configuració necessaris (system ->libnss-extrausers). Només per a Debian/Ubuntu (o si ha compilat libnss-extrausers vostè mateix!)'
],
'le_domain_dnscheck' => [
'title' => 'Validar DNS de dominis en utilitzar Let\'s Encrypt',
'description' => 'Si està activat, froxlor validarà si el domini que sol·licita un certificat Let\'s Encrypt resol almenys una de les adreces ip del sistema.'
],
'le_domain_dnscheck_resolver' => [
'title' => 'Utilitzar un servidor de noms extern per a la validació DNS',
'description' => 'Si s\'estableix, froxlor utilitzarà aquest DNS per validar els DNS dels dominis quan utilitzeu Let\'s Encrypt. Si està buit, s\'utilitzarà el solucionador DNS per defecte del sistema.'
],
'phpsettingsforsubdomains' => [
'description' => 'En cas afirmatiu s\'actualitzarà el php-config triat a tots els subdominis'
],
'leapiversion' => [
'title' => 'Escollir la implementació ACME de Let\'s Encrypt',
'description' => 'Actualment només es suporta la implementació ACME v2 per a Let\'s Encrypt.'
],
'enable_api' => [
'title' => 'Habilitar ús d\'API externa',
'description' => 'Per utilitzar la API froxlor cal activar aquesta opció. Per obtenir informació més detallada, vegeu https://docs.froxlor.org/'
],
'api_customer_default' => '"Permetre accés a la API" valor per defecte per a nous clients',
'dhparams_file' => [
'title' => 'Fitxer DHParams (intercanvi de claus Diffie-Hellman)',
'description' => 'Si s\'especifica aquí un fitxer dhparams.pem, s\'inclourà a la configuració del servidor web. Deixeu-lo buit per desactivar-lo. Exemple: /etc/ssl/webserver/dhparams.pem
Si el fitxer no existeix, es crearà automàticament amb la següent ordre: openssl dhparam -out /etc/ssl/webserver/dhparams.pem 4096. Es recomana crear el fitxer abans d\'especificar-lo aquí, ja que la creació triga força i bloqueja el cronjob.'
],
'errorlog_level' => [
'title' => 'Nivell de registre d\'errors',
'description' => 'Especifiqui el nivell de registre d\'errors. Per defecte és "warn" per a usuaris apache i "error" per a usuaris nginx.'
],
'letsencryptecc' => [
'title' => 'Emetre certificat ECC / ECDSA',
'description' => 'Si s\'estableix una mida de clau vàlida, el certificat emès utilitzarà ECC/ECDSA.'
],
'froxloraliases' => [
'title' => 'Àlies de domini per a froxlor vhost',
'description' => 'Llista separada per comes de dominis per afegir com a àlies de servidor al froxlor vhost'
],
'default_sslvhostconf' => [
'title' => 'SSL per defecte vHost-settings',
'description' => 'El contingut d\'aquest camp s\'inclourà directament en aquest contenidor ip/port vHost. Podeu utilitzar les variables següents: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}< /code>, {PORT}, {SCHEME}, {FPMSOCKET} (si escau) Atenció: No es comprovarà si el codi conté errors. Si conté errors, el servidor web podria no tornar a arrencar!'
],
'includedefault_sslvhostconf' => 'Incloure configuració de vHost no SSL a SSL-vHost',
'apply_specialsettings_default' => [
'title' => 'Valor per defecte per a "Aplicar configuracions especials a tots els subdominis (*.exemple.com)\' en editar un domini'
],
'apply_phpconfigs_default' => [
'title' => 'Valor per defecte per a "Aplicar php-config a tots els subdominis:\' en editar un domini'
],
'awstats' => [
'logformat' => [
'title' => 'Configuració de LogFormat',
'description' => 'Si utilitzeu un format de registre personalitzat per al vostre servidor web, necessiteu canviar també l\'awstats LogFormat. Per defecte és 1. Per a més informació consulta la documentació aquí.'
]
],
'hide_incompatible_settings' => 'Amagar configuracions incompatibles',
'soaemail' => 'Adreça de correu a utilitzar en registres SOA (per defecte l\'adreça del remitent de la configuració del panell si és buida)',
'imprint_url' => [
'title' => 'URL a notes legals / impressió',
'description' => 'Especifiqui una URL al vostre lloc de notes legals / impressió. L\'enllaç serà visible a la pantalla d\'inici de sessió i al peu de pàgina un cop iniciada la sessió.'
],
'terms_url' => [
'title' => 'URL a les condicions d\'ús',
'description' => 'Especifiqui una URL al vostre lloc de condicions d\'ús. L\'enllaç serà visible a la pantalla d\'inici de sessió i al peu de pàgina en iniciar sessió.'
],
'privacy_url' => [
'title' => 'URL a la política de privadesa',
'description' => 'Especifiqui una URL al vostre lloc de política de privadesa / lloc d\'impressió. L\'enllaç serà visible a la pantalla d\'inici de sessió i al peu de pàgina en iniciar sessió.'
],
'logo_image_header' => [
'title' => 'Imatge de logotip (capçalera)',
'description' => 'Carregui la vostra pròpia imatge de logotip perquè es mostri a la capçalera després de l\'inici de sessió (alçada recomanada 30px)'
],
'logo_image_login' => [
'title' => 'Imatge del logotip (inici de sessió)',
'description' => 'Carregui la vostra pròpia imatge de logotip perquè es mostri durant l\'inici de sessió'
],
'logo_overridetheme' => [
'title' => 'Sobreescriu el logotip definit en el tema per "Logo Image" (Capçalera i Login, veure més a avall)',
'description' => 'Aquesta opció s\'ha d\'establir com a "cert" si vol utilitzar el logotip que ha carregat; com a alternativa, pot continuar utilitzant les possibilitats basades en el tema "logo_custom.png" i "logo_custom_login.png".'
],
'logo_overridecustom' => [
'title' => 'Sobreescriure el logotip personalitzat (logo_custom.png i logo_custom_login.png) definit al tema per "Imatge del logotip" (Capçalera i Inici de sessió, veure més avall).',
'description' => 'Estableixi aquest valor a "cert" si vol ignorar els logotips personalitzats específics del tema per a la capçalera i l\'inici de sessió i utilitzar "Logo Image".'
],
'createstdsubdom_default' => [
'title' => 'Valor preseleccionat per a "Crear subdomini estàndard" en crear un client',
'description' => ''
],
'froxlorusergroup' => [
'title' => 'Grup de sistema personalitzat per a tots els usuaris del client',
'description' => 'Cal utilitzar libnss-extrausers (system-settings) perquè això tingui efecte. Un valor buit omet la creació o elimina el grup existent.'
],
'acmeshpath' => [
'title' => 'Ruta a acme.sh',
'description' => 'Establiu-lo on s\'instal·la acme.sh, incloent l\'script acme.sh Per defecte és /root/.acme.sh/acme.sh'
],
'update_channel' => [
'title' => 'Actualitzar canal froxlor',
'description' => 'Seleccioni el canal d\'actualització de froxlor. Per defecte és "estable"'
],
'uc_stable' => 'estable',
'uc_testing' => 'tests',
'traffictool' => [
'toolselect' => 'Analitzador de trànsit',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
'goaccess' => 'goacccess'
],
'requires_reconfiguration' => 'El canvi d\'aquesta configuració podria requerir una reconfiguració dels serveis següents: %s'
],
'spf' => [
'use_spf' => 'Activar SPF per a dominis?',
'spf_entry' => 'Entrada SPF per a tots els dominis'
],
'ssl_certificates' => [
'certificate_for' => 'Certificat per a',
'valid_from' => 'Vàlid des de',
'valid_until' => 'Vàlid fins a',
'issuer' => 'Emissor'
],
'success' => [
'success' => 'Informació',
'clickheretocontinue' => 'Feu clic aquí per a continuar',
'settingssaved' => 'La configuració s\'ha guardat correctament.',
'rebuildingconfigs' => 'Tasques inserides amb èxit per reconstruir fitxers de configuració',
'domain_import_successfully' => 'S\'han importat correctament els dominis %s.',
'backupscheduled' => 'S\'ha programat la vostra tasca de còpia de seguretat. Espereu que es processi.',
'backupaborted' => 'La seva còpia de seguretat programada ha estat cancel·lada',
'dns_record_added' => 'Registre DNS afegit correctament',
'dns_record_deleted' => 'Registre DNS eliminat correctament',
'testmailsent' => 'Correu de prova enviat correctament',
'settingsimported' => 'Configuració importada correctament',
'sent_error_report' => 'Informe d\'error enviat correctament. Gràcies per la vostra contribució.'
],
'tasks' => [
'outstanding_tasks' => 'Tasques cron pendents',
'REBUILD_VHOST' => 'Reconstrucció de la configuració del servidor web',
'CREATE_HOME' => 'Afegeix nova %s client',
'REBUILD_DNS' => 'Reconstrucció de la configuració bind',
'CREATE_FTP' => 'Crear directori per a un nou usuari ftp',
'DELETE_CUSTOMER_FILES' => 'Esborrar fitxers de client %s',
'noneoutstanding' => 'Actualment no hi ha tasques pendents per a froxlor',
'CREATE_QUOTA' => 'Establir quota al sistema de fitxers',
'DELETE_EMAIL_DATA' => 'Esborrar dades de correu electrònic del client.',
'DELETE_FTP_DATA' => 'Esborrar les dades del compte ftp del client.',
'REBUILD_CRON' => 'Reconstruir el fitxer cron.d',
'CREATE_CUSTOMER_BACKUP' => 'Treball de còpia de seguretat per al client %s',
'DELETE_DOMAIN_PDNS' => 'Esborrar domini %s de la base de dades PowerDNS',
'DELETE_DOMAIN_SSL' => 'Esborrar fitxers ssl de domini %s'
],
'terms' => 'Condicions d\'ús',
'traffic' => [
'month' => 'Mes',
'day' => 'Dia',
'months' => [
'1' => 'Gener',
'2' => 'Febrer',
'3' => 'Març',
'4' => 'Abril',
'5' => 'Maig',
'6' => 'Juny',
'7' => 'Juliol',
'8' => 'Agost',
'9' => 'Setembre',
'10' => 'Octubre',
'11' => 'Novembre',
'12' => 'Desembre',
'jan' => 'Gener',
'feb' => 'Febrer',
'mar' => 'Març',
'apr' => 'Abril',
'may' => 'Maig',
'jun' => 'Juny',
'jul' => 'Juliol',
'aug' => 'Agost',
'sep' => 'Setembre',
'oct' => 'Octubre',
'nov' => 'Novembre',
'dec' => 'Desembre',
'total' => 'Total'
],
'mb' => 'Trànsit',
'sumtotal' => 'Trànsit total',
'sumhttp' => 'Trànsit HTTP',
'sumftp' => 'Trànsit FTP',
'summail' => 'Trànsit de correu',
'customer' => 'Client',
'domain' => 'Domini',
'trafficoverview' => 'Resum del trànsit',
'bycustomers' => 'Trànsit per clients',
'details' => 'Detalls',
'http' => 'HTTP',
'ftp' => 'FTP',
'mail' => 'Correu',
'nocustomers' => 'Necessita com a mínim un client per veure els informes de trànsit.',
'top5customers' => 'Top 5 clients',
'nodata' => 'No s\'han trobat dades per a l\'interval donat.',
'ranges' => [
'last24h' => 'últimes 24 hores',
'last7d' => 'últims 7 dies',
'last30d' => 'últims 30 dies',
'cm' => 'Mes actual',
'last3m' => 'últims 3 mesos',
'last6m' => 'últims 6 mesos',
'last12m' => 'últims 12 meses',
'cy' => 'Any en curs'
],
'byrange' => 'Especificat per rang'
],
'translator' => '',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'S\'ha instal·lat una versió més recent del froxlor però encara no s\'ha configurat. Només l\'administrador pot iniciar sessió i finalitzar l\'actualització.',
'update' => 'Actualització de froxlor',
'proceed' => 'Procedir',
'update_information' => [
'part_a' => 'Els fitxers froxlor han estat actualitzats a la versió %s. La versió instal·lada és %s.',
'part_b' => '
Els clients no es poden connectar fins que l\'actualització hagi finalitzat. Procedir?'
],
'noupdatesavail' => 'Ja té instal·lada la darrera %sversion de froxlor.',
'description' => 'Executant actualitzacions de la base de dades per a la instal·lació de froxlor',
'uc_newinfo' => 'Hi ha una versió més recent disponible: "%s" (La vostra versió actual és: %s)',
'notify_subject' => 'Nova actualització disponible'
],
'usersettings' => [
'custom_notes' => [
'title' => 'Notes personalitzades',
'description' => 'Sigues lliure de posar les notes que vulguis/necessitis aquí. Es mostraran a la vista general de l\'administrador/client per a l\'usuari corresponent.',
'show' => 'Mostrar les teves notes al tauler de control de l\'usuari'
],
'api_allowed' => [
'title' => 'Permet accedir a la API',
'description' => 'Quan està habilitat a la configuració, aquest usuari pot crear claus API i accedir a la API froxlor',
'notice' => 'L\'accés a la API no està permès per al vostre compte.'
]
],
'install' => [
'slogan' => 'Panell de gestió del servidor froxlor',
'preflight' => 'Comprovació del sistema',
'critical_error' => 'Error crític',
'suggestions' => 'No requerit però recomanat',
'phpinfosuccess' => 'El seu sistema funciona amb PHP %s',
'phpinfowarn' => 'El seu sistema està executant una versió inferior a PHP %s',
'phpinfoupdate' => 'Actualitzi la seva versió PHP actual de %s a %s o superior',
'start_installation' => 'Inicieu la instal·lació',
'check_again' => 'Recarregar per comprovar de nou',
'switchmode_advanced' => 'Mostrar opcions avançades',
'switchmode_basic' => 'Ocultar opcions avançades',
'dependency_check' => [
'title' => 'Benvingut a froxlor',
'description' => 'Comprovem les dependències del sistema per assegurar-nos que totes les extensions i mòduls php necessaris estan habilitats perquè froxlor funcioni correctament.'
],
'database' => [
'top' => 'Base de dades',
'title' => 'Crear base de dades i usuari',
'description' => 'froxlor requereix una base de dades i addicionalment un usuari privilegiat per poder crear usuaris i bases de dades (opció GRANT). La base de dades i l\'usuari no privilegiat es crearan en aquest procés. L\'usuari privilegiat ha d\'existir.',
'user' => 'Usuari no privilegiat de la base de dades',
'dbname' => 'Nom de la base de dades',
'force_create' => 'Fer còpia de seguretat i sobreescriure la base de dades si existeix?'
],
'admin' => [
'top' => 'Usuari administrador',
'title' => 'Crearem l\'usuari administrador principal.',
'description' => 'Aquest usuari tindrà tots els privilegis per ajustar la configuració i afegir/actualitzar/eliminar recursos com a clients, dominis, etc.'
],
'system' => [
'top' => 'Configuració del sistema',
'title' => 'Detalls sobre el vostre servidor',
'description' => 'Establiu el vostre entorn així com les dades i opcions rellevants del servidor aquí perquè froxlor conegui el vostre sistema. Aquests valors són crucials per a la configuració i el funcionament del sistema.',
'ipv4' => 'Adreça IPv4 primària (si escau)',
'ipv6' => 'Adreça IPv6 primària (si escau)',
'servername' => 'Nom del servidor (FQDN, sense adreça IP)',
'phpbackend' => 'PHP backend',
'activate_newsfeed' => 'Habilitar la font oficial de notícies (font externa: https://inside.froxlor.org/news/)'
],
'install' => [
'top' => 'Finalitzar la configuració',
'title' => 'Un últim pas...',
'description' => 'L\'ordre següent descarregarà, instal·larà i configurarà els serveis necessaris al vostre sistema d\'acord amb les dades que heu facilitat en aquest procés d\'instal·lació.',
'runcmd' => 'Executeu la següent ordre com a usuari root al vostre intèrpret d\'ordres en aquest servidor:',
'manual_config' => 'Configuraré manualment els serveis, porta\'m a l\'inici de sessió',
'waitforconfig' => 'Esperant que es configurin els serveis...'
],
'errors' => [
'wrong_ownership' => 'Assegureu-vos que els fitxers froxlor són propietat de %s:%s',
'missing_extensions' => 'Les següents extensions de php són necessàries i no estan instal·lades',
'suggestedextensions' => 'No s\'han trobat les següents extensions de php però es recomanen',
'databaseexists' => 'La base de dades ja existeix, si us plau establiu l\'opció override per reconstruir o trieu un altre nom',
'unabletocreatedb' => 'No s\'ha pogut crear la base de dades de prova',
'unabletodropdb' => 'No s\'ha pogut suprimir la base de dades de prova',
'mysqlusernameexists' => 'L\'usuari especificat per a l\'usuari sense privilegis ja existeix. Si us plau, utilitzeu un altre nom d\'usuari o elimineu-lo primer.',
'unabletocreateuser' => 'No s\'ha pogut crear l\'usuari de prova',
'unabletodropuser' => 'L\'usuari de prova no s\'ha pogut eliminar.',
'unabletoflushprivs' => 'L\'usuari privilegiat no pot eliminar privilegis.',
'nov4andnov6ip' => 'Cal indicar una adreça IPv4 o IPv6.',
'servernameneedstobevalid' => 'El nom de servidor indicat no sembla que sigui un FQDN o un nom de host.',
'websrvuserdoesnotexist' => 'Sembla que l\'usuari del servidor web no existeix al sistema.',
'websrvgrpdoesnotexist' => 'El webserver-group indicat no sembla existir al sistema.',
'notyetconfigured' => 'Els serveis encara no s\'han configurat (correctament). Si us plau, executeu l\'ordre que es mostra a continuació o marqueu la casella per fer-ho més tard.',
'mandatory_field_not_set' => 'El camp obligatori "%s" no està configurat.',
'unexpected_database_error' => 'S\'ha produït una excepció inesperada a la base de dades. %s',
'sql_import_failed' => 'Error en importar dades SQL.',
'unprivileged_sql_connection_failed' => 'Error en inicialitzar una connexió SQL sense privilegis.',
'privileged_sql_connection_failed' => 'Error en inicialitzar la connexió SQL privilegiada.',
'mysqldump_backup_failed' => 'No es pot crear una còpia de seguretat de la base de dades, tenim un error de mysqldump.',
'sql_backup_file_missing' => 'No es pot crear una còpia de seguretat de la base de dades, el fitxer de còpia de seguretat no existeix.',
'backup_binary_missing' => 'No es pot crear una còpia de seguretat de la base de dades, assegureu-vos que heu instal·lat mysqldump.',
'creating_configfile_failed' => 'No es poden crear fitxers de configuració, no es pot escriure el fitxer.',
'database_already_exiting' => 'Hem trobat una base de dades i no se\'ns ha permès sobreescriure-la!'
]
],
'welcome' => [
'title' => 'Benvingut a froxlor!',
'config_note' => 'Perquè froxlor pugui comunicar-se correctament amb el backend, has de configurar-lo.',
'config_now' => 'Configurar ara'
],
];
================================================
FILE: lng/cz.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => 'Čeština',
'de' => 'Němčina',
'en' => 'Angličtina',
'fr' => 'Francouzština',
'hu' => 'Maďarština',
'it' => 'Italština',
'nl' => 'Holandština',
'pt' => 'Portugalština',
'se' => 'Švědština',
'sk' => 'Slovenština',
'es' => 'Španělština',
'ca' => 'Katalánština',
'zh_CN' => 'Čínština (Zjednodušená)',
],
'2fa' => [
'2fa' => 'Možnosti 2FA',
'2fa_enabled' => 'Aktivovat dvoufázové ověření (2FA)',
'2fa_removed' => '2FA úspěšně odebráno',
'2fa_added' => '2FA aktivováno úspěšně Zobrazit 2FA podrobnosti',
'2fa_add' => 'Aktivovat 2FA',
'2fa_delete' => 'Deaktivovat 2FA',
'2fa_verify' => 'Ověřit kód',
'2fa_overview_desc' => 'Zde můžete aktivovat dvoufaktorové ověřování vašeho účtu.
Můžete buď použít autentifikátor-aplikaci (jednorázové heslo / TOTP) nebo vám nechat froxlor po každém úspěšném přihlášení pomocí jednorázového hesla poslat e-mail na vaši e-mailovou adresu.',
'2fa_email_desc' => 'Váš účet je nastaven pro použití jednorázových hesel e-mailem. Chcete-li deaktivovat, klikněte na "Deaktivovat 2FA"',
'2fa_ga_desc' => 'Váš účet je nastaven tak, aby používal jednorázová hesla založená na čase prostřednictvím autentizační aplikace. Naskenujte níže uvedený QR kód pomocí požadované autentizační aplikace pro vygenerování kódů. Chcete-li deaktivovat, klikněte na "Deaktivovat 2FA"',
'2fa_not_activated' => 'Dvoufázové ověřování není povoleno',
'2fa_not_activated_for_user' => 'Dvoufaktorové ověření není pro aktuálního uživatele povoleno',
'type_2fa' => 'Stav 2FA',
],
'admin' => [
'overview' => 'Přehled',
'ressourcedetails' => 'Využijte zdroje',
'systemdetails' => 'Podrobnosti o systému',
'froxlordetails' => 'Podrobnosti o froxloru',
'installedversion' => 'Nainstalovaná verze',
'latestversion' => 'Nejnovější verze',
'lookfornewversion' => [
'clickhere' => 'Hledat prostřednictvím webové služby',
'error' => 'Při čtení došlo k chybě',
],
'resources' => 'Zdroje',
'customer' => 'Zákazník',
'customers' => 'Zákazníci',
'customers_list_desc' => 'Spravovat své zákazníky',
'customer_add' => 'Vytvořit zákazníka',
'customer_edit' => 'Upravit zákazníka',
'username_default_msg' => 'Ponechte prázdné pro automaticky generovanou hodnotu',
'password_default_msg' => 'Automaticky vygenerováno, pokud je prázdné',
'domains' => 'Domény',
'domain_add' => 'Vytvořit doménu',
'domain_edit' => 'Upravit doménu',
'subdomainforemail' => 'Subdomény jako e-mailové domény',
'admin' => 'Admin',
'admins' => 'Administrátoři',
'admin_add' => 'Vytvořit administrátora',
'admin_edit' => 'Upravit administrátora',
'customers_see_all' => 'Můžete přistupovat k dalším správcům/prodejcům?',
'change_serversettings' => 'Může změnit nastavení serveru?',
'server' => 'Systém',
'serversettings' => 'Nastavení',
'serversettings_desc' => 'Spravujte svůj systém froxlor',
'rebuildconf' => 'Znovu vytvořit konfigurační soubory',
'stdsubdomain' => 'Standardní subdoména',
'stdsubdomain_add' => 'Vytvořit standardní subdoménu',
'phpenabled' => 'PHP povoleno',
'deactivated' => 'Deaktivováno',
'deactivated_user' => 'Deaktivovat uživatele',
'sendpassword' => 'Poslat heslo',
'ownvhostsettings' => 'Vlastní nastavení vHost-serveru',
'configfiles' => [
'serverconfiguration' => 'Konfigurace',
'overview' => 'Přehled',
'wizard' => 'Průvodce',
'distribution' => 'Distribuce',
'service' => 'Služba',
'daemon' => 'Daemon',
'http' => 'Webový server (HTTP)',
'dns' => 'Nameserver (DNS)',
'mail' => 'Poštovní server (IMAP/POP3)',
'smtp' => 'Mailový server (SMTP)',
'ftp' => 'FTP-server',
'etc' => 'Ostatní (Systém)',
'choosedistribution' => '-- Vyberte distribuci --',
'chooseservice' => '-- Vyberte službu --',
'choosedaemon' => '-- Zvolte daemon --',
'statistics' => 'Statistiky',
'compactoverview' => 'Kompaktní přehled',
'legend' => '
Chystáte se nakonfigurovat službu/daemon
',
'commands' => 'Příkazy: Tyto příkazy mají být spuštěny po řádku jako uživatel rootu v shellu. Je bezpečné zkopírovat celý blok a vložit ho do konzole.',
'files' => 'Konfigurační soubory: Příkazy před textovými poli by měly otevřít editor s cílovým souborem. Stačí jen zkopírovat a vložit obsah do editoru a uložit soubor. Upozornění: MySQL heslo nebylo z bezpečnostních důvodů nahrazeno. Prosím nahraďte "FROXLOR_MYSQL_PASSWORD" samostatně nebo použijte formulář javascript níže k nahrazení na webu. Pokud jste zapomněli heslo k MySQL, najdete ho v "lib/userdata.inc.php"',
'importexport' => 'Importovat/Exportovat',
'finishnote' => 'Soubor parametru byl úspěšně vygenerován. Nyní spusťte následující příkaz jako root:',
'description' => 'Konfigurace systémových služeb',
'minihowto' => 'Na této stránce můžete zobrazit různé konfigurační šablony pro každou službu, (opětovně)konfigurovat specifické služby v případě potřeby nebo exportovat aktuální výběr do JSON souboru pro použití ve skriptech CLI nebo na jiném serveru.
Poznámka, že zvýrazněné služby neodrážejí aktuální nastavení, ale ukazují požadavky/doporučení z vašich aktuálních hodnot nastavení.',
'skipconfig' => 'Ne(re)konfigurovat',
'recommendednote' => 'Doporučené/požadované služby založené na aktuálním nastavení systému',
'selectrecommended' => 'Vybrat doporučené',
'downloadselected' => 'Exportovat vybrané',
],
'templates' => [
'templates' => 'Šablony e-mailů',
'template_add' => 'Přidat šablonu',
'template_fileadd' => 'Přidat šablonu souboru',
'template_edit' => 'Upravit šablonu',
'action' => 'Akce',
'email' => 'E-mailové a souborové šablony',
'subject' => 'Předmět',
'mailbody' => 'Text e-mailu',
'createcustomer' => 'Uvítací e-mail pro nové zákazníky',
'pop_success' => 'Uvítací e-mail pro nové e-mailové účty',
'template_replace_vars' => 'Proměnné, které mají být nahrazeny v šabloně:',
'SALUTATION' => 'Nahrazeno správným oslovením (jméno nebo název společnosti)',
'FIRSTNAME' => 'Nahrazeno křestním jménem zákazníka.',
'NAME' => 'Nahrazeno jménem zákazníka.',
'COMPANY' => 'Nahrazuje název firmy zákazníka',
'USERNAME' => 'Nahradí uživatelským jménem zákazníka.',
'PASSWORD' => 'Nahradí heslem zákazníka.',
'EMAIL' => 'Nahrazeno adresou účtu POP3/IMAP.',
'CUSTOMER_NO' => 'Nahradí číslo zákazníka',
'TRAFFIC' => 'Nahrazeno provozem, který byl přiřazen zákazníkovi.',
'TRAFFICUSED' => 'Nahrazeno provozem, který byl zákazníkem vyčerpán.',
'pop_success_alternative' => 'Uvítací e-mail pro nové e-mailové účty odeslaný na alternativní adresu',
'EMAIL_PASSWORD' => 'Nahradí heslem účtu POP3/IMAP.',
'index_html' => 'indexový soubor pro nově vytvořené adresáře zákazníků',
'unconfigured_html' => 'soubor indexu pro nenastavené/neznámé domény',
'unconfigured_content_fallback' => 'Tato doména vyžaduje konfiguraci prostřednictvím panelu pro správu serveru froxlor, protože v současné době není přiřazena žádnému zákazníkovi.',
'file_extension' => [
'description' => 'Přípona souboru pro index musí být v rozmezí 1 až 6 znaků. Rozšíření může obsahovat pouze znaky jako a-z, A-Z a 0-9
Výchozí: html',
'title' => 'Přípona souboru pro šablonu souboru',
],
'SERVERNAME' => 'Nahrazeno jménem serveru.',
'CUSTOMER' => 'Nahrazeno přihlašovacím jménem zákazníka. Pouze pro "indexový soubor pro nově vytvořené adresáře zákazníků"',
'ADMIN' => 'Nahrazeno přihlašovacím jménem správce. Pouze pro "indexový soubor pro nově vytvořené adresáře zákazníků"',
'CUSTOMER_EMAIL' => 'Nahrazeno e-mailovou adresou zákazníka. Pouze pro "indexový soubor pro nově vytvořené adresáře zákazníků"',
'ADMIN_EMAIL' => 'Nahrazeno e-mailovou adresou správce. Pouze pro "indexový soubor pro nově vytvořené adresáře zákazníků"',
'filetemplates' => 'Šablony souborů',
'filecontent' => 'Obsah souboru',
'new_database_by_customer' => 'Upozornění zákazníka na vytvoření databáze',
'new_ftpaccount_by_customer' => 'Upozornění zákazníka na vytvoření ftp uživatele',
'newdatabase' => 'Notifikační-maily o nových databázích',
'newftpuser' => 'Notifikační-maily o nových ftp uživatelích',
'CUST_NAME' => 'Jméno zákazníka',
'DB_NAME' => 'Jméno databáze',
'DB_PASS' => 'Heslo databáze',
'DB_DESC' => 'Popis databáze',
'DB_SRV' => 'Databázový server',
'PMA_URI' => 'URL na phpMyAdmin (pokud byl poskytnut)',
'USR_NAME' => 'FTP uživatelské jméno',
'USR_PASS' => 'FTP heslo',
'USR_PATH' => 'Domovský adresář FTP (relativní k adresáři customer-docroot)',
'forgotpwd' => 'Notifikační-maily o resetu hesla',
'password_reset' => 'Upozornění pro zákazníka na resetování hesla',
'trafficmaxpercent' => 'Upozornění pro zákazníky při vyčerpání daného maximálního procenta provozu',
'MAX_PERCENT' => 'Nahrazeno limitem využití disku/limitu provozu pro odesílání zpráv v procentech.',
'USAGE_PERCENT' => 'Nahrazeno využitím disku / provozem, který byl zákazníkem vyčerpán v procentech.',
'diskmaxpercent' => 'Oznamovací e-mail pro zákazníky, pokud je vyčerpáno maximum procent z disku',
'DISKAVAILABLE' => 'Nahrazeno využitím disku, který byl přiřazen zákazníkovi.',
'DISKUSED' => 'Nahrazeno využitím disku, který byl zákazníkem vyčerpán.',
'LINK' => 'Nahrazeno odkazem na obnovení hesla zákazníka.',
'SERVER_HOSTNAME' => 'Nahradí název systémového hostitele (URL do froxlor)',
'SERVER_IP' => 'Nahradí výchozí Ip adresu serveru',
'SERVER_PORT' => 'Nahradí výchozí port serveru',
'DOMAINNAME' => 'Nahrazuje standardní subdoménu zákazníka (může být prázdná, pokud není vygenerována žádná)',
],
'webserver' => 'Webový server',
'createzonefile' => 'Vytvořit zónu dns pro doménu',
'custombindzone' => 'Vlastní / nespravovaný soubor zóny',
'bindzonewarning' => 'pro výchozí nastavení POZOR: Pokud používáte zonefile, budete muset ručně spravovat všechny požadované záznamy i pro všechny podzóny.',
'ipsandports' => [
'ipsandports' => 'IP aresy a porty',
'add' => 'Přidat IP/port',
'edit' => 'Upravit IP/port',
'ipandport' => 'IP/Port',
'ip' => 'IP',
'ipnote' => '
Poznámka: Ačkoli jsou soukromé IP adresy povoleny, některé funkce jako DNS se nemusí chovat správně. Používejte pouze soukromé IP adresy, pokud jste si jisti.
',
'port' => 'Port',
'create_listen_statement' => 'Vytvořit Listen statement',
'create_namevirtualhost_statement' => 'Vytvořit výpis VirtualHost',
'create_vhostcontainer' => 'Vytvořit vHost-Container',
'create_vhostcontainer_servername_statement' => 'Vytvořit výpis ServerName v kontejneru vHost-Container',
'enable_ssl' => 'Je tohle SSL port?',
'ssl_cert_file' => 'Cesta k certifikátu SSL',
'webserverdefaultconfig' => 'Výchozí nastavení webserveru',
'webserverdomainconfig' => 'Konfigurace domény Webserveru',
'webserverssldomainconfig' => 'Konfigurace Webserveru SSL',
'ssl_key_file' => 'Cesta k souboru klíče SSL',
'ssl_ca_file' => 'Cesta k SSL CA certifikátu',
'default_vhostconf_domain' => 'Výchozí nastavení vHost pro každý kontejner domény',
'ssl_cert_chainfile' => [
'title' => 'Cesta k souboru SSL CertificateChainFile',
'description' => 'Většinou CA_Bundle, nebo podobně, to pravděpodobně chcete nastavit, pokud jste si koupili SSL certifikát.',
],
'docroot' => [
'title' => 'Vlastní docroot (prázdný = ukazuje na froxlor)',
'description' => 'Zde můžete definovat vlastní kořenový adresář dokumentu (cíl požadavku) pro tuto kombinaci IP/port. POZOR: Dávejte pozor, co zde zadáváte!',
],
'ssl_paste_description' => 'Vložte svůj úplný obsah certifikátu do textového pole',
'ssl_cert_file_content' => 'Obsah certifikátu ssl',
'ssl_key_file_content' => 'Obsah souboru ssl (soukromého) klíče',
'ssl_ca_file_content' => 'Obsah souboru ssl CA (nepovinné)',
'ssl_ca_file_content_desc' => '
Ověřování klienta, nastavte to pouze pokud víte, co je.',
'ssl_cert_chainfile_content' => 'Obsah souboru certifikačního řetězce (nepovinné)',
'ssl_cert_chainfile_content_desc' => '
Nejčastěji CA_Bundle nebo podobný, pravděpodobně jej budete chtít nastavit, pokud jste si zakoupili SSL certifikát.',
'ssl_default_vhostconf_domain' => 'Výchozí nastavení SSL vHost pro každý kontejner domény',
],
'memorylimitdisabled' => 'Zakázáno',
'valuemandatory' => 'Tato hodnota je povinná',
'valuemandatorycompany' => 'Musí být vyplněno buď "jméno" a "křestní jméno" nebo "název společnosti"',
'serversoftware' => 'Software serveru',
'phpversion' => 'Verze PHP',
'mysqlserverversion' => 'Verze MySQL serveru',
'webserverinterface' => 'Rozhraní Webserveru',
'accountsettings' => 'Nastavení účtu',
'panelsettings' => 'Nastavení panelu',
'systemsettings' => 'Systemová nastavení',
'webserversettings' => 'Nastavení webserveru',
'mailserversettings' => 'Nastavení webserveru',
'nameserversettings' => 'Nastavení nameserveru',
'updatecounters' => 'Přepočítat využití zdrojů',
'subcanemaildomain' => [
'never' => 'Nikdy',
'choosableno' => 'Volitelný, výchozí ne',
'choosableyes' => 'Volitelné, výchozí ano',
'always' => 'Vždy',
],
'wipecleartextmailpwd' => 'Vymazat prostý text hesla',
'webalizersettings' => 'Nastavení Webalizéru',
'webalizer' => [
'normal' => 'Normální',
'quiet' => 'Tiché',
'veryquiet' => 'Žádný výstup',
],
'domain_nocustomeraddingavailable' => 'V současné době není možné přidat doménu. Nejprve musíte přidat alespoň jednoho zákazníka.',
'loggersettings' => 'Nastavení logování',
'logger' => [
'normal' => 'normální',
'paranoid' => 'paranoid',
],
'emaildomain' => 'E-mailová doména',
'email_only' => 'Pouze e-mail?',
'wwwserveralias' => 'Přidat "www." ServerAlias',
'subject' => 'Předmět',
'recipient' => 'Příjemce',
'message' => 'Napsat zprávu',
'text' => 'Zpráva',
'sslsettings' => 'Nastavení SSL',
'specialsettings_replacements' => 'Můžete použít následující proměnné: {DOMAIN}, {DOCROOT}, {CUSTOMER}{IP}, {PORT}{SCHEME}, {FPMSOCKET} (připadá-li v úvahu) ',
'antispam_settings' => 'Nastavení Antispamu',
'caneditphpsettings' => 'Může změnit php nastavení domény?',
'allips' => 'Všechny IP adresy',
'awstatssettings' => 'Nastavení AWstatu',
'domain_dns_settings' => 'Nastavení doménové dns',
'activated' => 'Aktivováno',
'statisticsettings' => 'Nastavení statistik',
'or' => 'nebo',
'sysload' => 'Systémové zatížení',
'noloadavailable' => 'neni k dispozici',
'nouptimeavailable' => 'neni k dispozici',
'nosubject' => '(Bez předmětu)',
'security_settings' => 'Možnosti zabezpečení',
'know_what_youre_doing' => 'Změňte pouze, pokud víte, co děláte!',
'show_version_login' => [
'title' => 'Zobrazit froxlor verzi při přihlášení',
'description' => 'Zobrazit froxlor verzi v zápatí na přihlašovací stránce',
],
'show_version_footer' => [
'title' => 'Zobrazit froxlor verzi v zápatí',
'description' => 'Zobrazit froxlor verzi v zápatí na ostatních stránkách',
],
'froxlor_graphic' => [
'title' => 'Grafické záhlaví pro froxlor',
'description' => 'Jaká grafika by měla být zobrazena v záhlaví',
],
'phpsettings' => [
'title' => 'PHP konfigurace',
'description' => 'Stručný popis',
'actions' => 'Akce',
'activedomains' => 'Používá se pro doménu/y',
'notused' => 'Konfigurace se nepoužívá',
'editsettings' => 'Změnit nastavení PHP',
'addsettings' => 'Vytvořit nové nastavení PHP',
'viewsettings' => 'Zobrazit nastavení PHP',
'phpinisettings' => 'php.ini nastavení',
'addnew' => 'Vytvořit novou konfiguraci PHP',
'binary' => 'PHP Binary',
'fpmdesc' => 'PHP-FPM konfigurace',
'file_extensions' => 'Přípony souborů',
'file_extensions_note' => '(bez tečky, oddělených mezerami)',
'enable_slowlog' => 'Povolit slowlog (pro každou doménu)',
'request_terminate_timeout' => 'Časový limit ukončení požadavku',
'request_slowlog_timeout' => 'Časový limit ukončení požadavku slowlogu',
'activephpconfigs' => 'Používá se pro php-config(y)',
'pass_authorizationheader' => 'Předávání hlaviček HTTP AUTH BASIC/DIGEST z Apache do PHP',
],
'misc' => 'Ostatní',
'fpmsettings' => [
'addnew' => 'Vytvořit novou verzi PHP',
'edit' => 'Změnit verzi PHP'
],
'phpconfig' => [
'template_replace_vars' => 'Proměnné, které budou nahrazeny v konfiguraci',
'pear_dir' => 'Bude nahrazeno globálním nastavením pro pearl adresář.',
'open_basedir_c' => 'Vloží ; (středník) do komentáře/vypne open_basedir po nastavení',
'open_basedir' => 'Bude nahrazeno nastavením domény open_basedir.',
'tmp_dir' => 'Bude nahrazeno dočasným adresářem domény.',
'open_basedir_global' => 'Bude nahrazena globální hodnotou cesty, která bude připojena k open_basedir (viz nastavení webserveru).',
'customer_email' => 'Bude nahrazeno e-mailovou adresou zákazníka, který tuto doménu vlastní.',
'admin_email' => 'Bude nahrazeno e-mailovou adresou správce, který tuto doménu vlastní.',
'domain' => 'Bude nahrazeno doménou.',
'customer' => 'Bude nahrazeno přihlašovacím jménem zákazníka, který vlastní tuto doménu.',
'admin' => 'Bude nahrazeno přihlašovacím jménem správce, který tuto doménu vlastní.',
'docroot' => 'Bude nahrazeno kořenovým textem domény.',
'homedir' => 'Bude nahrazeno domovským adresářem zákazníka.',
],
'expert_settings' => 'Pokročilá nastavení!',
'mod_fcgid_starter' => [
'title' => 'PHP procesy pro tuto doménu (prázdné pro výchozí hodnotu)',
],
'phpserversettings' => 'Nastavení PHP',
'mod_fcgid_maxrequests' => [
'title' => 'Maximální počet php požadavků pro tuto doménu (ponechte prázdné pro výchozí hodnotu)',
],
'spfsettings' => 'Nastavení SPF domén',
'specialsettingsforsubdomains' => 'Použít speciální nastavení pro všechny subdomény (*.example.com)',
'accountdata' => 'Údaje o účtu',
'contactdata' => 'Kontaktní údaje',
'servicedata' => 'Údaje o službě',
'newerversionavailable' => 'K dispozici je novější verze froxloru.',
'newerversiondetails' => 'Aktualizovat na verzi %s nyní? (Vaše aktuální verze je: %s)',
'extractdownloadedzip' => 'Extrahovat stažený archiv "%s"?',
'cron' => [
'cronsettings' => 'Nastavení Cronjobu',
'add' => 'Přidat cronjob',
],
'cronjob_edit' => 'Upravit cronjob',
'warning' => 'VAROVÁNÍ - Vezměte prosím na vědomí!',
'lastlogin_succ' => 'Poslední přihlášení',
'ftpserver' => 'FTP Server',
'ftpserversettings' => 'Nastavení FTP serveru',
'webserver_user' => 'Uživatelské jméno webserveru',
'webserver_group' => 'Název skupiny webserveru',
'perlenabled' => 'Perl povolen',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Místní uživatel pro FCGID (froxlor vHost)',
'mod_fcgid_group' => 'Místní skupina k použití pro FCGID (froxlor vHost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[neposkytnuto]',
'store_defaultindex' => 'Uložit výchozí indexový soubor zákazníkům docroot',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Provoz',
'traffic_sub' => 'Podrobnosti o využití provozu',
'domaintraffic' => 'Domény',
'customertraffic' => 'Zákazníci',
'assignedmax' => 'Přiřazeno / Max',
'usedmax' => 'Použito / Max',
'used' => 'Využito',
'speciallogwarning' => '
Pozor: Změnou tohoto nastavení ztratíte všechny staré statistiky pro tuto doménu.
',
'speciallogfile' => [
'title' => 'Oddělit soubor logu',
'description' => 'Povolením této možnosti získáte pro tuto doménu samostatný soubor přístupového protokolu',
],
'domain_editable' => [
'title' => 'Povolit úpravy domény',
'desc' => 'Pokud je nastaveno ano, může zákazník změnit několik nastavení domény. Pokud je nastaveno ne, nemůže zákazník nic měnit.',
],
'writeaccesslog' => [
'title' => 'Zapisovat přístupový protokol',
'description' => 'Povolením této možnosti získáte soubor protokolu přístupu pro tuto doménu',
],
'writeerrorlog' => [
'title' => 'Zapsat protokol chyb',
'description' => 'Povolením této funkce získáte soubor s chybovým protokolem pro tuto doménu',
],
'phpfpm.ininote' => 'Ne všechny hodnoty, které chcete definovat, mohou být použity v konfiguraci php-fpm poolu',
'phpinfo' => 'PHPinfo()',
'selectserveralias' => 'Hodnota ServerAlias pro doménu',
'selectserveralias_desc' => 'Vyberte, zda by froxlor měl vytvořit wildcard-entry (*.domain.tld), WWW-alias (www.domain.tld) nebo vůbec žádný alias',
'show_news_feed' => [
'title' => 'Zobrazit novinky na admin nástěnce',
'description' => 'Povolením zobrazíte oficiální novinky froxlor (https://inside.froxlor.org/news/) na vaší nástěnce a nikdy nezmeškejte důležité informace nebo oznámení o vydání.',
],
'cronsettings' => 'Nastavení Cronjobu',
'integritycheck' => 'Ověření databáze',
'integrityname' => 'Název',
'integrityresult' => 'Výsledek',
'integrityfix' => 'Automaticky opravit problémy',
'customer_show_news_feed' => 'Zobrazit novinky na řídicím panelu zákazníka',
'customer_news_feed_url' => [
'title' => 'Použít vlastní RSS-feed',
'description' => 'Zadejte vlastní RSS kanál, který bude zobrazen vašim zákazníkům na jejich nástěnce. Ponechte prázdné pro použití oficiálního froxlor newsfeed (https://inside.froxlor.org/news/).',
],
'movetoadmin' => 'Přesunout zákazníka',
'movecustomertoadmin' => [
'title' => 'Přesunout zákazníka na vybraného administrátora/prodejce',
'description' => 'Ponechte prázdné pro žádnou změnu. Pokud se požadovaný administrátor nezobrazí v seznamu, jeho zákaznický limit byl dosažen.',
],
'note' => 'Poznámka',
'mod_fcgid_umask' => [
'title' => 'Umask (výchozí: 022)',
],
'apcuinfo' => 'APCu info',
'opcacheinfo' => 'OPcache Info',
'letsencrypt' => [
'title' => 'Použít Let\'s Encrypt',
'description' => 'Získejte zdarma certifikát od Let\'s Encrypt. Certifikát bude vytvořen a obnoven automaticky. POZNÁMKA: Pokud jsou povoleny wildcards, tato možnost bude automaticky zakázána.',
],
'autoupdate' => 'Automatická aktualizace',
'server_php' => 'PHP',
'dnsenabled' => 'Povolit DNS editor',
'froxlorvhost' => 'froxlor VirtualHost nastavení',
'hostname' => 'Název serveru',
'memory' => 'Využití paměti',
'webserversettings_ssl' => 'Nastavení SSL Webserveru',
'domain_hsts_maxage' => [
'title' => 'HTTP Strict Transport Security (HSTS)',
'description' => 'Zadejte hodnotu maximálního věku pro záhlaví Strict-Transport-Security Hodnota 0 zakáže HSTS pro doménu. Většina uživatelů nastavila hodnotu 31536000 (jeden rok).',
],
'domain_hsts_incsub' => [
'title' => 'Zahrnout HSTS pro jakoukoliv subdoménu',
'description' => 'Volitelná direktiva „includeSubDomains“, pokud je přítomna, signalizuje UA, že zásady HSTS se vztahují na tohoto hostitele HSTS i na všechny subdomény názvu domény hostitele.',
],
'domain_hsts_preload' => [
'title' => 'Zahrnout doménu do seznamu přednačtených HSTS',
'description' => 'Pokud chcete, aby byla tato doména zahrnuta do HSTS preload listu spravovaného Chrome (a používaného Firefoxem a Safari), poté použijte tuto aktivaci. Odeslání preload direktivy z vašich stránek může mít TRVALÉ NÁSLEDKY a zabránit uživatelům v přístupu na vaše stránky a všechny jejich poddomény. Před odesláním hlavičky s "preload" si prosím přečtěte podrobnosti na https://hstspreload.org/#removal.',
],
'domain_ocsp_stapling' => [
'title' => 'Stapling OCSP',
'description' => 'Podrobné vysvětlení stapling OCSP viz Wikipedia',
'nginx_version_warning' => ' VAROVÁNÍ: Nginx verze 1.3.7 nebo vyšší je vyžadována pro OCSP stapling. Pokud je vaše verze starší, webový server NEBUDE správně spuštěn, dokud je povoleno OCSP stapling!',
],
'domain_http2' => [
'title' => 'HTTP2 podpora',
'description' => 'Navštivte Wikipedia pro podrobné vysvětlení HTTP3 protokolu',
],
'domain_http3' => [
'title' => 'HTTP3 podpora',
'description' => 'Navštivte Wikipedia pro podrobné vysvětlení HTTP3 protokolu',
'nginx_version_warning' => ' VAROVÁNÍ: Je vyžadována Nginx verze 1.25.0 nebo vyšší a pro HTTP/3 je vyžadován ssl-protokol TLSv1.3. Pokud je vaše verze starší, tak se webový server při zapnutém HTTP/3 správně nespustí!',
],
'testmail' => 'Test SMTP',
'phpsettingsforsubdomains' => 'Použít php konfiguraci na všechny subdomény:',
'plans' => [
'name' => 'Název plánu',
'description' => 'Popis',
'last_update' => 'Naposledy aktualizováno',
'plans' => 'Plány hostingu',
'plan_details' => 'Detaily plánu',
'add' => 'Přidat nový plán',
'edit' => 'Upravit plán',
'use_plan' => 'Použít plán',
],
'notryfiles' => [
'title' => 'Žádné automatické generování try_souborů',
'description' => 'Zde zvolte ano, pokud chcete ve sepciálním nastavcení zadat vlastní direktivu try_files (potřebnou například pro některé pluginy WordPressu).',
],
'logviewenabled' => 'Povolit přístup k logům přístupu/chyb',
'novhostcontainer' => '
Žádná z IP a portů nemá povolenou možnost "Vytvořit vHost-Container", mnoho nastavení zde nebude k dispozici',
'ownsslvhostsettings' => 'Vlastní SSL vHost-nastavení',
'domain_override_tls' => 'Přepsat nastavení systémového TLS',
'domain_override_tls_addinfo' => ' Používá se pouze v případě, že "Přepsat nastavení TLS systému" je nastaveno na "Ano"',
'domain_sslenabled' => 'Povolit použití SSL',
'domain_honorcipherorder' => 'Dodržovat pořadí šifry (serveru), výchozí ne',
'domain_sessiontickets' => 'Povolit TLS sessiontickety (RFC 5077), výchozí ano',
'domain_sessionticketsenabled' => [
'title' => 'Povolit použití tiketů TLS globálně',
'description' => 'Výchozí ano Vyžaduje apache-2.4.11+ nebo nginx-1.5.9+',
],
'domaindefaultalias' => 'Výchozí hodnota serverAlias pro nové domény',
'smtpsettings' => 'Nastavení SMTP',
'smtptestaddr' => 'Odeslat testovací email na',
'smtptestnote' => 'Níže uvedené hodnoty odrážejí vaše aktuální nastavení a lze je upravit pouze zde (viz odkaz v pravém horním rohu)',
'smtptestsend' => 'Odeslat testovací e-mail',
'mysqlserver' => [
'mysqlserver' => 'MySQL Server',
'dbserver' => 'Server #',
'caption' => 'Popis',
'host' => 'Název serveru / IP',
'port' => 'Port',
'user' => 'Oprávněný uživatel',
'add' => 'Přidat nový MySQL server',
'edit' => 'Upravit MySQL server',
'password' => 'Heslo oprávněného uživatele',
'password_emptynochange' => 'Nové heslo, ponechte prázdné pro ponechání aktuálního',
'allowall' => [
'title' => 'Povolit použití tohoto serveru všem aktuálně existujícím zákazníkům',
'description' => 'Nastavte tuto hodnotu na „true“, pokud chcete povolit používání tohoto databázového serveru všem stávajícím zákazníkům, aby na něj mohli přidávat databáze. Toto nastavení není trvalé, ale lze jej spustit vícekrát.',
],
'testconn' => 'Otestovat připojení při ukládání',
'ssl' => 'Použít SSL pro připojení k databázovému serveru',
'ssl_cert_file' => 'Cesta k souboru k SSL Certifikační autoritě',
'verify_ca' => 'Povolit ověření serverového SSL certifikátu',
],
'settings_importfile' => 'Zvolit importovaný soubor',
'documentation' => 'Dokumentace',
'adminguide' => 'Admin průvodce',
'userguide' => 'Uživatelský manuál',
'apiguide' => 'Průvodce API',
'domain_duplicate' => 'Duplikovat doménu',
'domain_duplicate_named' => 'Duplikovat %s',
'backups' => [
'backups' => 'Zálohy',
],
'emaildomainwarning' => '
VAROVÁNÍ: Změnou tohoto nastavení trvale smažete všechny existující e-mailové adresy a účty.
',
],
'apcuinfo' => [
'clearcache' => 'Vymazat APCu mezipaměť',
'generaltitle' => 'Obecné informace o cache',
'version' => 'APCu verze',
'phpversion' => 'Verze PHP',
'host' => 'APCu hostitel',
'sharedmem' => 'Sdílená paměť',
'sharedmemval' => '%d Segment(y) s %s (%s paměti)',
'start' => 'Čas spuštění',
'uptime' => 'Doba provozu',
'upload' => 'Podpora nahrávání souborů',
'cachetitle' => 'Informace o cache',
'cvar' => 'Proměnné v mezipaměti',
'hit' => 'Zásahy',
'miss' => 'Nevyužito',
'reqrate' => 'Míra požadavku (zásahy, nevyužité)',
'creqsec' => 'požadavky mezipaměti za sekundu',
'hitrate' => 'Rychlost zásahu',
'missrate' => 'Nevyužitá míra',
'insrate' => 'Insert Rate',
'cachefull' => 'Plný počet vyrovnávací paměti',
'runtime' => 'Nastavení spuštění',
'memnote' => 'Využití paměti',
'total' => 'Celkem',
'free' => 'Volné',
'used' => 'Využito',
'hitmiss' => 'Zásahy & Nevyužití',
'detailmem' => 'Podrobné využití paměti a fragmentace',
'fragment' => 'Fragmentace',
'nofragment' => 'Bez fragmentace',
'fragments' => 'Fragmentace',
],
'apikeys' => [
'no_api_keys' => 'Nebyly nalezeny žádné API klíče',
'key_add' => 'Přidat nový klíč',
'apikey_removed' => 'Api klíč s Id #%s byl úspěšně odstraněn',
'apikey_added' => 'Byl úspěšně vygenerován nový api klíč',
'clicktoview' => 'Klikněte pro zobrazení',
'allowed_from' => 'Povoleno od',
'allowed_from_help' => 'Čárkami oddělený seznam Ip adres / sítí. Výchozí nastavení je prázdné (povolit od všech).',
'valid_until' => 'Platné do',
'valid_until_help' => 'Datum do platnosti, formát RRRR-MM-DDTh:mm',
],
'changepassword' => [
'old_password' => 'Staré heslo',
'new_password' => 'Nové heslo',
'new_password_confirm' => 'Potvrdit heslo',
'new_password_ifnotempty' => 'Nové heslo (prázdné = žádná změna)',
'also_change_ftp' => ' také změnit heslo hlavního FTP účtu',
'also_change_stats' => ' také změnit heslo pro stránku se statistikou',
'also_change_global_mysql' => 'také změnit heslo pro globální MySQL účet',
],
'cron' => [
'cronname' => 'název cronjobu',
'lastrun' => 'poslední spuštění',
'interval' => 'interval',
'isactive' => 'povoleno',
'description' => 'popis',
'changewarning' => 'Změna těchto hodnot může mít negativní příčinu chování froxlor a jeho automatických úloh. Změňte hodnoty zde pouze pokud jste si jisti, že víte, co děláte.',
],
'crondesc' => [
'cron_unknown_desc' => 'nebyl zadán žádný popis',
'cron_tasks' => 'Generování konfiguračních souborů',
'cron_legacy' => 'starší (starý) cronjob',
'cron_traffic' => 'Výpočet datového provozu',
'cron_usage_report' => 'Hlášení o provozu a webu',
'cron_mailboxsize' => 'Výpočet velikosti schránky',
'cron_letsencrypt' => 'Aktualizace certifikátu Let\'s Encrypt',
'cron_export' => 'Zpracování úloh exportu dat',
'cron_backup' => 'Zpracování úloh zálohování systému a zákazníků',
],
'cronjob' => [
'cronjobsettings' => 'Nastavení Cronjobu',
'cronjobintervalv' => 'Hodnota intervalu běhu',
'cronjobinterval' => 'Interval běhu',
],
'cronjobs' => [
'notyetrun' => 'Ještě nespuštěno',
],
'cronmgmt' => [
'minutes' => 'minut',
'hours' => 'hodin',
'days' => 'dní',
'weeks' => 'týdnů',
'months' => 'měsíců',
],
'customer' => [
'documentroot' => 'Domovský adresář',
'name' => 'Název',
'firstname' => 'Křestní jméno',
'lastname' => 'Příjmení',
'company' => 'Firma',
'nameorcompany_desc' => 'Křestní jméno/příjmení nebo firma je povinná',
'street' => 'Ulice',
'zipcode' => 'Psč',
'city' => 'Město',
'phone' => 'Mobil',
'fax' => 'Fax',
'email' => 'Email',
'customernumber' => 'ID zákazníka',
'diskspace' => 'Webový prostor',
'traffic' => 'Provoz',
'mysqls' => 'Databáze MySQL',
'emails' => 'E-mailové adresy',
'accounts' => 'E-mailové účty',
'forwarders' => 'E-mailoví přeposílači',
'ftps' => 'FTP účty',
'subdomains' => 'Subdomény',
'domains' => 'Domény',
'mib' => 'MiB',
'gib' => 'GiB',
'title' => 'Název',
'country' => 'Země',
'email_quota' => 'Kvóta e-mailu',
'email_imap' => 'E-mail IMAP',
'email_pop3' => 'E-mail POP3',
'sendinfomail' => 'Poslat mi data e-mailem',
'generated_pwd' => 'Návrh hesla',
'usedmax' => 'Použito / Max',
'services' => 'Služby',
'letsencrypt' => [
'title' => 'Použít Let\'s Encrypt',
'description' => 'Získejte zdarma certifikát od Let\'s Encrypt. Certifikát bude vytvořen a obnoven automaticky.',
],
'selectserveralias_addinfo' => 'Tuto možnost lze nastavit při úpravě domény. Její počáteční hodnota je zděděna z rodičovské domény.',
'total_diskspace' => 'Celkový prostor na disku',
'mysqlserver' => 'Použitelný mysql-server',
],
'diskquota' => 'Kvóta',
'antispam' => [
'config_file' => [
'title' => 'Soubor s nastavením Antispamu',
'description' => 'Zadejte název souboru pro pravidla e-mail-antispamu',
],
'reload_command' => [
'title' => 'Příkaz k restartu systému Milter',
'description' => 'Zadejte příkaz restartu pro službu rspamd',
],
'activated' => [
'title' => 'Aktivovat antispam?',
'description' => 'Chcete použít rspamd jako antispam službu?',
],
'dkim_keylength' => [
'title' => 'DKIM délka klíče',
'description' => 'Upozornění: Změny se budou vztahovat pouze na nové klíče
Vyžaduje určitou položku dns pro doménu. Pokud nepoužíváte funkci nameserver, budete muset tyto položky ručně spravovat.',
],
'spam_tag_level' => [
'title' => 'Úroveň Spam tagu',
'description' => 'Počet bodů, který je nutný k označení e-mailu jako spam Výchozí: 7.0'
],
'rewrite_subject' => [
'title' => 'Přepisovat předmět',
'description' => 'Zda přidat ***SPAM*** do předmětu e-mailu, pokud je to vhodné',
],
'spam_kill_level' => [
'title' => 'Úroveň likvidace spamu',
'description' => 'Počet bodů, který je nutný k úplnému vyřazení e-mailu Výchozí: 14.0'
],
'bypass_spam' => [
'title' => 'Obejít spamfiltr',
'description' => 'Aktivací obejdete/zakážete filtrování spamu pro tuto adresu. Výchozí: ne'
],
'policy_greylist' => [
'title' => 'Použít greylisting',
'description' => 'Příchozí e-maily budou chráněny greylisting. Výchozí: ano'
],
'required_spf_dns' => 'Požadovaný SPF DNS záznam',
'required_dmarc_dns' => 'Požadovaný DMARC DNS záznam',
'required_dkim_dns' => 'Požadovaný DKIM DNS záznam',
'default_select' => [
'on_changeable' => 'Aktivováno, nastavitelné',
'off_changeable' => 'Deaktivováno, nastavitelné',
'on_unchangeable' => 'Aktivováno, nelze nastavit',
'off_unchangeable' => 'Deaktivováno, nelze nastavit',
],
'default_bypass_spam' => [
'title' => 'Obcházet výchozí hodnotu emailového spam filtru',
'description' => 'Zda mají nové e-mailové účty ve výchozím nastavení aktivovanou funkci „Obejít spamfiltr“ a zda je toto nastavení zákazníkem nastavitelné. Výchozí nastavení: Deaktivováno, nastavitelné'
],
'default_spam_rewrite_subject' => [
'title' => 'Přepisovat výchozí hodnotu předmětu',
'description' => 'Zda mají nové e-mailové účty ve výchozím nastavení aktivovanou funkci „Přepisovat předmět“ a zda je toto nastavení zákazníkem nastavitelné. Výchozí nastavení: Aktivováno, nastavitelné'
],
'default_policy_greylist' => [
'title' => 'Použít výchozí hodnotu greylistingu',
'description' => 'Zda mají nové e-mailové účty ve výchozím nastavení aktivovanou funkci „Použít greylisting“ a zda je toto nastavení zákazníkem nastavitelné. Výchozí nastavení: Aktivováno, nastavitelné'
],
],
'dns' => [
'destinationip' => 'IP domény(y)',
'standardip' => 'Standardní IP adresa serveru',
'a_record' => 'A-záznam (volitelně IPv6)',
'cname_record' => 'Záznam CNAME',
'mxrecords' => 'Definovat MX záznamy',
'standardmx' => 'Standardní MX záznam serveru',
'mxconfig' => 'Vlastní MX záznamy',
'priority10' => 'Priorita 10',
'priority20' => 'Priorita 20',
'txtrecords' => 'Definovat TXT záznamy',
'txtexample' => 'Příklad (SPF-entry): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'howitworks' => 'Zde můžete spravovat DNS položky pro vaši doménu. Pamatujte, že froxlor automaticky vygeneruje NS/MX/A/AAAA záznamy pro vás. Vlastní položky jsou upřednostňovány, budou automaticky vygenerovány pouze chybějící položky.',
'nis2note' => [
'title' => 'NIS2 info',
'content' => 'DNS hosting/autoritativní DNS služby mohou být považovány za digitální služby s vyššími bezpečnostními a oznamovacími povinnostmi podle EU-NIS2. Zkontrolujte, zda se na vaše nastavení vztahuje NIS2 a jaká opatření jsou vyžadována.'
],
],
'dnseditor' => [
'edit' => 'upravit DNS',
'records' => 'záznamy',
'notes' => [
'A' => '32bitová adresa IPv4 používaná k mapování názvů hostitelů na IP adresu hostitele.',
'AAAA' => '128-bitová IPv6 adresa, používaná k mapování jmen na IP adresu hostitele.',
'CAA' => 'Záznam zdroje CAA umožňuje držiteli jména domény DNS zadat jednu nebo více certifikačních autorit (CA), které jsou oprávněny vydávat certifikáty pro tuto doménu. Struktura: značka tag[issue|issuewild|iodef|contactmail|contactphone] hodnota Příklad: 0 issue "ca.example.net" 0 iodef "mailto:security@example.com"',
'CNAME' => 'Alias názvu domény, hledání DNS bude pokračovat opakováním hledání s novým názvem. Možné pouze pro subdomény!',
'DNAME' => 'Vytvoří alias pro celý podstrom stromu domény',
'LOC' => 'Informace o geografickém umístění pro název domény. Struktura: ( d1 [m1 [s1]] {"N"|"S"} d2 [m2 [s2]] {"E"|"W"} alt["m"] [siz["m"] [hp["] [vp["m"]]]] ) d1: [0 . 90] (stupně zeměpisné šířky)
d2: [0 .. 180] (stupnice zeměpisné délky)
m1, m2: [0 .. 59] (minuty zeměpisné šířky/délky)
s1, s2: [0 .. 59. 99] (sekundy zeměpisné šířky/délky)
t [-100000.00 .. 42849672.95] BY . 1 (výška v metrech)
velikost, hp, vp: [0 .. 90000000. 0] (velikost/přesnost v metrech) Příklad: 52 22 23.000 N 4 53 32.000 E -2,00m 000m 10000m',
'MX' => 'Záznam o výměně e-mailů, namapuje doménu na mailserver pro tuto doménu. Příklad: 10 mail.example.com Poznámka: Pro prioritu použijte pole výše',
'NS' => 'Deleguje zónu DNS, aby použil dané autoritativní jmenné servery.',
'RP' => 'Záznam odpovědné osoby Struktura: mailbox[nahraďte @ tečkou] txt-record-name Příklad: team.froxlor.org. froxlor.org.',
'SRV' => 'Záznam polohy služby, použitý pro novější protokoly namísto vytváření záznamů specifických pro protokol, jako je MX. Struktura: prioritní váhový port cíl Příklad: 0 5 5060 sipserver. xample.com. Poznámka: Pro prioritu použijte pole výše',
'SSHFP' => 'Záznam zdroje SSHFP se používá ke zveřejnění otisků prstů klíče bezpečného shell (SSH) v DNS. Struktura: typ algoritmu Algoritmy: 0: vyhrazeno, 1: RSA, 2: DSA, 3: ECDSA, 4: Ed25519, 6: Typy Ed448 0: vyhrazené, 1: SHA-1, 2: SHA-256 Příklad: 2 1 123456789abcdef67890123456789abcdef67890',
'TLSA' => 'TLSA (TLS Authentication) záznam slouží ke zveřejnění otisku prstu certifikátu TLS/SSL. Běžně se používá pro DANE. TLSA záznamy mohou být důvěryhodné, pouze pokud je DNSSEC povolena na vaší doméně. Struktura: typ otisku prstu využití certifikátu: 0: PKIX-T, 1: PKIX-EE, 2: DANE-TA, 3: DANE-EE selektor: 0: Použijte celý certifikát 1: Používejte podřízený veřejný klíč Odpovídající typ: 0: Bez Hash, 1: SHA-256 Hash, 2:SHA-512 Hash Příklad: 3 1 123456789abcdef67890123456789abcdef123456789abcdef123456789abcde',
'TXT' => 'Volně definovaný, popisný text.'
]
],
'domain' => [
'openbasedirpath' => 'OpenBasedir-cesta',
'inherited' => 'Stejné jako rodičovská doména',
'docroot' => 'Cesta z pole výše',
'homedir' => 'Domovský adresář',
'docparent' => 'Nadřazený adresář cesty z výše uvedeného pole',
'ssl_certificate_placeholder' => '---- BEGIN CERTIFICATE---' . PHP_EOL . '[...]' . PHP_EOL . '----END CERTIFICATE----',
'ssl_key_placeholder' => '---- BEGIN RSA PRIVATE KEY-----' . PHP_EOL . '[...]' . PHP_EOL . '-----END RSA PRIVATE KEY-----',
],
'domains' => [
'description' => 'Zde můžete vytvořit (sub)domény a změnit jejich cesty. Systém bude potřebovat nějaký čas, aby mohl po každé změně použít nové nastavení.',
'domainsettings' => 'Nastavení domény',
'domainname' => 'Název domény',
'subdomain_add' => 'Vytvořit subdoménu',
'subdomain_edit' => 'Upravit (sub)doménu',
'wildcarddomain' => 'Vytvořit jako wildcarddomain?',
'aliasdomain' => 'Alias pro doménu',
'noaliasdomain' => 'Žádný alias domény',
'hasaliasdomains' => 'Má alias doménu(y)',
'statstics' => 'Statistiky využití',
'isassigneddomain' => 'Je přiřazena doména',
'add_date' => 'Přidáno do froxloru',
'registration_date' => 'Přidáno do registru',
'topleveldomain' => 'Top-Level-Doména',
'associated_with_domain' => 'Přidružené',
'aliasdomains' => 'Alias domén',
'redirectifpathisurl' => 'Přesměrovací kód (výchozí: prázdný)',
'redirectifpathisurlinfo' => 'Musíte vybrat pouze jednu z těchto položek, pokud jste zadali adresu URL jako cestu POZNÁMKA: Změny jsou aplikovány pouze v případě, že daná cesta je URL adresa.',
'ipandport_multi' => [
'title' => 'IP adresa (adresy)',
'description' => 'Zadejte jednu nebo více IP adres domény.
POZNÁMKA: IP adresy nelze změnit, pokud je doména nakonfigurována jako alias-doména jiné domény.
',
],
'ipandport_ssl_multi' => [
'title' => 'SSL IP adresa/y',
],
'ssl_redirect' => [
'title' => 'Přesměrování SSL',
'description' => 'Tato volba vytvoří přesměrování pro ne ssl vhosty, takže všechny požadavky jsou přesměrovány na SSL-vhost.
e.. požadavek na http://domain.tld/ přesměruje vás na https://domain.tld/',
],
'serveraliasoption_wildcard' => 'Wildcard (*.domain.tld)',
'serveraliasoption_www' => 'WWW (www.domain.tld)',
'serveraliasoption_none' => 'Bez aliasu',
'domain_import' => 'Importovat domény',
'import_separator' => 'Oddělovač',
'import_offset' => 'Odsazení',
'import_file' => 'Soubor CSV',
'import_description' => 'Podrobné informace o struktuře importního souboru a o úspěšném importu, navštivte prosím https://docs.froxlor.org/latest/admin-guide/domain-import/',
'ssl_redirect_temporarilydisabled' => ' Přesměrování protokolu SSL je dočasně deaktivováno, zatímco je generován nový Let\'s Encrypt certifikát. Bude znovu aktivováno po vygenerování certifikátu.',
'termination_date' => 'Datum ukončení',
'termination_date_overview' => 'ukončeno dne ',
'ssl_certificates' => 'SSL certifikáty',
'ssl_certificate_removed' => 'Certifikát s Id #%s byl úspěšně odstraněn',
'ssl_certificate_error' => 'Chyba při čtení certifikátu pro doménu: %s',
'no_ssl_certificates' => 'Neexistují žádné domény s SSL certifikátem',
'isaliasdomainof' => 'Je aliasdoména pro %s',
'isbinddomain' => 'Vytvořit zónu DNS',
'dkimenabled' => 'DKIM povoleno',
'openbasedirenabled' => 'Openbasedir restrikce',
'hsts' => 'HSTS povoleno',
'aliasdomainid' => 'ID aliasové domény',
'nodomainsassignedbyadmin' => 'Váš účet nemá v současné době přiřazeny žádné (aktivní) domény. Pokud si myslíte, že je to špatné, kontaktujte svého správce.',
'email_only' => 'Jen emaily',
],
'emails' => [
'description' => 'Zde můžete vytvářet a měnit své e-mailové adresy. Účet je jako poštovní schránka před vaším domem. Pokud vám někdo pošle e-mail, bude vypuštěn na účet.
Chcete-li stáhnout své e-maily, použijte následující nastavení ve vašem poštovním programu: (Data v kurzívě musí být změněna na ekvivalenty, které jste zadali! Hostitelské jméno: doménové jméno Uživatelské jméno: jméno účtu / e-mailová adresa heslo: heslo, které jste zvolili',
'emailaddress' => 'E-mailová adresa',
'emails_add' => 'Vytvořit e-mailovou adresu',
'emails_edit' => 'Upravit e-mailovou adresu',
'catchall' => 'Catchall',
'iscatchall' => 'Definovat jako catchall-adresu?',
'account' => 'Účet',
'account_add' => 'Vytvořit účet',
'account_delete' => 'Odstranit účet',
'from' => 'Zdroj',
'to' => 'Destinace',
'forwarders' => 'Přesměrování',
'forwarder_add' => 'Vytvořit přeposílatele',
'alternative_emailaddress' => 'Alternativní e-mailová adresa',
'quota' => 'Kvóta',
'noquota' => 'Bez kvóty',
'updatequota' => 'Aktualizovat kvótu',
'quota_edit' => 'Změnit E-Mail kvótu',
'noemaildomainaddedyet' => 'Ve svém účtu ještě nemáte (e-mailovou) doménu.',
'back_to_overview' => 'Zpět na přehled domény',
'accounts' => 'Účty',
'emails' => 'Adresy',
'senders' => 'Povolený odesílatel',
'sender_add' => 'Přidat povoleného odesílatele',
'foreign_sender' => 'Povolený (externí) odesílatel',
'allowed_sender_info' => 'Pomocí nastavení Povolený odesílatel povolíte existujícímu e-mailovému účtu odesílání e-mailů s jinou adresou odesílatele. Důležité: Adresa/wildcard-doména zadaná zde se automaticky nestane poštovní schránkou – slouží pouze jako další povolený identifikátor odesílatele.',
],
'error' => [
'error' => 'Chyba',
'directorymustexist' => 'Adresář %s musí existovat. Vytvořte jej prosím pomocí Vašeho FTP klienta.',
'filemustexist' => 'Soubor %s musí existovat.',
'allresourcesused' => 'Všechny své zdroje jste již využili.',
'domains_cantdeletemaindomain' => 'Nemůžete odstranit přiřazenou doménu.',
'domains_canteditdomain' => 'Tuto doménu nelze upravovat. Byla zakázána administrátorem.',
'domains_cantdeletedomainwithemail' => 'Nemůžete odstranit doménu, která se používá jako e-mailová doména. Nejprve odstraňte všechny e-mailové adresy.',
'firstdeleteallsubdomains' => 'Nejdříve musíte odstranit všechny subdomény, než budete moci vytvořit wildcard doménu.',
'youhavealreadyacatchallforthisdomain' => 'Pro tuto doménu jste již definovali catchall.',
'ftp_cantdeletemainaccount' => 'Nemůžete odstranit svůj hlavní FTP účet',
'login' => 'Zadané uživatelské jméno nebo heslo je špatné. Zkuste to prosím znovu!',
'login_blocked' => 'Tento účet byl pozastaven kvůli příliš mnoha chybám přihlášení. Zkuste to prosím znovu za %s sekund.',
'notallreqfieldsorerrors' => 'Nevyplnili jste všechna nebo jste nesprávně vyplnili některá pole.',
'oldpasswordnotcorrect' => 'Staré heslo není správné.',
'youcantallocatemorethanyouhave' => 'Nemůžete přidělit více zdrojů než pro sebe.',
'mustbeurl' => 'Nezadal jsi platnou nebo úplnou Url (např. http://somedomain.com/error404.htm)',
'invalidpath' => 'Nezvolili jste platnou adresu URL (možná problémy se seznamem adres?)',
'stringisempty' => 'Chybějící vstup v poli',
'stringiswrong' => 'Nesprávný vstup v poli',
'newpasswordconfirmerror' => 'Nové heslo a potvrzení hesla se neshodují',
'mydomain' => '\'Doména\'',
'mydocumentroot' => '\'Documentroot\'',
'loginnameexists' => 'Přihlašovací jméno %s již existuje',
'emailiswrong' => 'Emailová adresa %s obsahuje neplatné znaky nebo je nekompletní',
'emailexists' => 'E-mailová adresa %s je již používána jiným správcem.',
'emailexistsanon' => 'E-mailová adresa %s je již používána.',
'alternativeemailiswrong' => 'Zadaná alternativní e-mailová adresa %s pro odeslání přihlašovacích údajů se zdá být neplatná',
'loginnameiswrong' => 'Přihlašovací jméno "%s" obsahuje nepovolené znaky.',
'loginnameiswrong2' => 'Přihlašovací jméno obsahuje příliš mnoho znaků. Pouze %s znaky jsou povoleny.',
'userpathcombinationdupe' => 'Kombinace uživatelského jména a cesty již existuje',
'patherror' => 'Obecná chyba! Cesta nemůže být prázdná',
'errordocpathdupe' => 'Možnost pro cestu %s již existují',
'adduserfirst' => 'Nejprve prosím vytvořte zákazníka',
'domainalreadyexists' => 'Doména %s je již přiřazena zákazníkovi',
'nolanguageselect' => 'Nebyl vybrán žádný jazyk.',
'nosubjectcreate' => 'Musíte definovat téma pro tuto šablonu e-mailu.',
'nomailbodycreate' => 'Musíte definovat text e-mailu pro tuto šablonu e-mailu.',
'templatenotfound' => 'Šablona nebyla nalezena.',
'alltemplatesdefined' => 'Nemůžete definovat více šablon, všechny jazyky jsou již podporovány.',
'wwwnotallowed' => 'www není povoleno pro subdomény.',
'subdomainiswrong' => 'Subdoména %s obsahuje neplatné znaky.',
'domaincantbeempty' => 'Název domény nemůže být prázdný.',
'domainexistalready' => 'Doména %s již existuje.',
'domainisaliasorothercustomer' => 'Vybraná doména aliasu je sama o sobě doménou, má jinou kombinaci ip/port nebo patří jinému zákazníkovi.',
'emailexistalready' => 'E-mailová adresa %s již existuje.',
'maindomainnonexist' => 'Hlavní doména %s neexistuje.',
'maindomaindeactivated' => 'Hlavní doména %s je deaktivována.',
'destinationnonexist' => 'Prosím vytvořte předavatele v poli "Destination".',
'destinationalreadyexistasmail' => 'Přeposílatel do %s již existuje jako aktivní e-mailová adresa.',
'destinationalreadyexist' => 'Již jste definovali přesměrování na "%s"',
'destinationiswrong' => 'Přeposílatel(é) %s obsahuje neplatné znaky nebo je neúplný.',
'dumpfoldercannotbedocroot' => 'Složka pro datové výpisy nemůže být váš domovský adresář, zvolte prosím složku ve svém domovském adresáři, např. /dumps',
'templatelanguagecombodefined' => 'Kombinace vybraného jazyka/šablony již byla definována.',
'templatelanguageinvalid' => 'Vybraný jazyk neexistuje',
'ipstillhasdomains' => 'Kombinace IP/portu, kterou chcete odstranit, stále obsahuje přiřazené domény, před smazáním této kombinace IP/portu je prosím přiřaďte k jiným kombinacím IP/portu.',
'cantdeletedefaultip' => 'Nelze odstranit výchozí kombinaci IP/portu, před smazáním této kombinace IP/portu prosím nastavte výchozí nastavení jiné kombinace IP/portu.',
'cantdeletesystemip' => 'Nelze odstranit poslední systémovou IP adresu ani vytvořit novou kombinaci IP/Port pro systémovou IP adresu nebo změnit systémovou IP adresu.',
'myipaddress' => '\'IP\'',
'myport' => '\'Port\'',
'myipdefault' => 'Musíte vybrat kombinaci IP/port, která by měla být výchozí.',
'myipnotdouble' => 'Tato kombinace IP/portu již existuje.',
'admin_domain_emailsystemhostname' => 'Jméno serveru nelze použít jako doménu zákazníka.',
'cantchangesystemip' => 'Nelze změnit poslední systémovou IP adresu ani vytvořit novou kombinaci IP/Port pro systémovou IP adresu nebo změnit systémovou IP adresu.',
'sessiontimeoutiswrong' => 'Je povolen pouze číselný "časový limit relace".',
'maxloginattemptsiswrong' => 'Jsou povoleny pouze číselné "maximální pokusy o přihlášení".',
'deactivatetimiswrong' => 'Jsou povoleny pouze číselné "doby deaktivace".',
'accountprefixiswrong' => '"Zákaznický prefix" je nesprávný.',
'mysqlprefixiswrong' => '"SQL prefix" je nesprávný.',
'ftpprefixiswrong' => 'Prefix FTP je špatný.',
'ipiswrong' => '"IP-adresa" je špatně. Je povoleno pouze platná IP adresa.',
'vmailuidiswrong' => '"UID-Mailů" je nesprávné. Je povoleno pouze číselné UID.',
'vmailgidiswrong' => 'Položka „mails-gid“ je chybná. Povoleno je pouze číselné GID.',
'adminmailiswrong' => '"Odesílatelská adresa" je chybná. Povolena je pouze platná e-mailová adresa.',
'pagingiswrong' => 'Hodnota "Položky na stránku" je špatná. Povoleny jsou pouze číselné znaky.',
'phpmyadminiswrong' => 'PhpMyAdmin-link není platný odkaz.',
'webmailiswrong' => 'Odkaz na webmail není platný odkaz.',
'webftpiswrong' => 'WebFTP odkaz není platným odkazem.',
'stringformaterror' => 'Hodnota pro pole "%s" není v očekávaném formátu.',
'loginnameisusingprefix' => 'Nemůžete vytvořit účty, které začínají znakem „%s“, protože tento prefix je nastaven na automatické pojmenování účtu. Zadejte prosím jiný název účtu.',
'loginnameissystemaccount' => 'Účet "%s" již v systému existuje a nelze jej použít. Zadejte jiný název účtu.',
'loginnameisreservedname' => 'Název účtu „%s“ je vyhrazen pro vnitřní systém a nelze jej použít.',
'youcantdeleteyourself' => 'Z bezpečnostních důvodů nelze odstranit sám sebe.',
'youcanteditallfieldsofyourself' => 'Poznámka: Z bezpečnostních důvodů nelze upravovat všechna pole vlastního účtu.',
'documentrootexists' => 'Adresář "%s" již pro tohoto zákazníka existuje. Před přidáním zákazníka jej odstraňte.',
'norepymailiswrong' => 'Položka „Noreply-address“ je chybná. Povolena je pouze platná e-mailová adresa.',
'logerror' => 'Chyba logu: %s',
'nomessagetosend' => 'Nezadali jste zprávu.',
'norecipientsgiven' => 'Nezadali jste žádného příjemce',
'errorsendingmail' => 'Zpráva pro "%s" se nezdařila',
'errorsendingmailpub' => 'Zpráva na danou e-mailovou adresu se nezdařila',
'cannotreaddir' => 'Nelze přečíst adresář "%s"',
'invalidip' => 'Neplatná IP adresa: %s',
'invalidmysqlhost' => 'Neplatná adresa MySQL hostitele: %s',
'cannotuseawstatsandwebalizeratonetime' => 'Nemůžete povolit Webalizer a AWstats zároveň, zvolte si jeden z nich',
'cannotwritetologfile' => 'Nelze otevřít soubor protokolu %s pro zápis',
'vmailquotawrong' => 'Kvóta musí být kladné číslo.',
'allocatetoomuchquota' => 'Pokusili jste se přidělit %s MB kvótu, ale již vám nezbývá dostatek.',
'missingfields' => 'Ne všechna povinná pole byla vyplněna.',
'requiredfield' => 'Toto pole je povinné.',
'accountnotexisting' => 'Zadaný e-mailový účet neexistuje.',
'nopermissionsorinvalidid' => 'Nemáte dostatečná oprávnění ke změně tohoto nastavení nebo bylo uděleno neplatné Id.',
'phpsettingidwrong' => 'PHP konfigurace s tímto ID neexistuje',
'descriptioninvalid' => 'Popis je příliš krátký/příliš dlouhý nebo obsahuje nepovolené znaky.',
'info' => 'Info',
'filecontentnotset' => 'Soubor nemůže být prázdný!',
'customerdoesntexist' => 'Zvolený zákazník neexistuje.',
'admindoesntexist' => 'Zvolený administrátor neexistuje.',
'ipportdoesntexist' => 'Kombinace ip/portu, kterou jste zvolili, neexistuje.',
'usernamealreadyexists' => 'Uživatelské jméno %s již existuje.',
'plausibilitychecknotunderstood' => 'Odpověď kontroly věrohodnosti není srozumitelná.',
'errorwhensaving' => 'Došlo k chybě při ukládání pole %s',
'hiddenfieldvaluechanged' => 'Hodnota skrytého pole "%s" se změnila při úpravách nastavení.
Toto obvykle není velký problém, ale z toho důvodu nelze uložit nastavení.',
'notrequiredpasswordlength' => 'Zadané heslo je příliš krátké. Zadejte prosím alespoň %s znaky.',
'overviewsettingoptionisnotavalidfield' => 'Jejda, pole, které by mělo být zobrazeno jako volba v přehledu nastavení, není výjimečně povolený typ. Z toho můžete vinit vývojáře. Nemělo by se to stát!',
'pathmaynotcontaincolon' => 'Cesta, kterou jste zadali, by neměla obsahovat dvojtečku (":"). Zadejte správnou hodnotu cesty.',
'invaliddocumentrooturl' => 'URL adresa, kterou jste zadali pro kořenový adresář, není platná. Zadejte prosím správnou URL adresu nebo unixovou cestu.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'Složitost zadaného hesla nebyla dostatečná. Pokud máte nějaké dotazy ohledně složitosti',
'invaliderrordocumentvalue' => 'Hodnota udaná jako chybový dokument se nezdá být platným souborem, URL nebo řetězcem.',
'intvaluetoolow' => 'Zadané číslo je příliš nízké (pole %s)',
'intvaluetoohigh' => 'Zadané číslo je příliš vysoké (pole %s)',
'phpfpmstillenabled' => 'PHP-FPM je aktuálně aktivní. Před aktivací FCGID jej deaktivujte',
'fcgidstillenabled' => 'FCGID je aktuálně aktivní. Prosím deaktivujte jej před aktivací PHP-FPM',
'domains_cantdeletedomainwithaliases' => 'Nemůžete odstranit doménu, která se používá pro alias-domény. Nejdříve musíte aliasy odstranit.',
'user_banned' => 'Váš účet byl uzamčen. Pro další informace kontaktujte svého správce.',
'session_timeout' => 'Hodnota je příliš nízká',
'session_timeout_desc' => 'Časový limit relace by neměl být nižší než 1 minuta.',
'invalidhostname' => 'Název hostitele musí být platná doména. Nemůže být prázdný ani nesmí obsahovat pouze mezery',
'operationnotpermitted' => 'Operace není povolena!',
'featureisdisabled' => 'Funkce %s je zakázána. Obraťte se na svého poskytovatele služeb.',
'usercurrentlydeactivated' => 'Uživatel %s je momentálně deaktivován',
'setlessthanalreadyused' => 'Nelze nastavit méně prostředků \'%s\', než tento uživatel již použil ',
'stringmustntbeempty' => 'Hodnota pole %s nesmí být prázdná',
'sslcertificateismissingprivatekey' => 'Musíte zadat soukromý klíč k vašemu certifikátu',
'sslcertificatewrongdomain' => 'Daný certifikát nepatří k této doméně',
'sslcertificateinvalidcert' => 'Daný obsah certifikátu se nezdá být platným certifikátem',
'sslcertificateinvalidcertkeypair' => 'Zadaný soukromý klíč nepatří k danému certifikátu',
'sslcertificateinvalidca' => 'Dané údaje certifikátů CA se nezdají být platným certifikátem',
'sslcertificateinvalidchain' => 'Údaje daného řetězce certifikátů se nezdají být platným certifikátem',
'givendirnotallowed' => 'Zadaný adresář v poli %s není povolen.',
'sslredirectonlypossiblewithsslipport' => 'Použití Let\'s Encryptí je možné pouze v případě, že doména má přiřazenou alespoň jednu ssl-povolenou kombinaci IP/port.',
'fcgidstillenableddeadlock' => 'FCGID je aktuálně aktivní. Prosím deaktivujte ho před přepnutím na jiný webový server než Apache2',
'send_report_title' => 'Odeslat zprávu o chybě',
'send_report_desc' => 'Děkujeme, že jste nahlásili tuto chybu a pomohli nám vylepšit froxlor. Toto je e-mail, který bude odeslán froxlor vývojáři:',
'send_report' => 'Odeslat hlášení',
'send_report_error' => 'Chyba při odesílání hlášení: %s',
'notallowedtouseaccounts' => 'Váš účet neumožňuje používat IMAP/POP3. E-mailové účty nelze přidat.',
'cannotdeletehostnamephpconfig' => 'Tato konfigurace PHP je používána ve froxlor-vhost a nelze ji odstranit.',
'cannotdeletedefaultphpconfig' => 'Tato konfigurace PHP je nastavena jako výchozí a nelze ji odstranit.',
'passwordshouldnotbeusername' => 'Heslo by nemělo být stejné jako uživatelské jméno.',
'no_phpinfo' => 'Je nám líto, phpinfo() nelze přečíst',
'moveofcustomerfailed' => 'Přesun zákazníka do vybraného administrátora/prodejce selhal. Mějte na paměti, že všechny ostatní změny zákazníka byly úspěšně aplikovány v této fázi.
Zpráva o chybě: %s',
'domain_import_error' => 'Při importu domén došlo k chybě: %s',
'fcgidandphpfpmnogoodtogether' => 'FCGID a PHP-FPM nelze současně aktivovat',
'no_apcuinfo' => 'Žádné informace o cache nejsou k dispozici. APCu se nezdá být spuštěna.',
'no_opcacheinfo' => 'Žádné informace o OPCache nejsou k dispozici. OPCache se nezdá být načtena.',
'inactive_opcacheinfo' => 'OPCache se zdá být nainstalována, ale není aktivováno.',
'nowildcardwithletsencrypt' => 'Let\'s Encrypt neumí zpracovávat wildcard domény pomocí ACME ve froxlor (vyžaduje dns-challenge), omlouváme se. Nastavte prosím ServerAlias na WWW nebo jej zcela zakažte',
'customized_version' => 'Vypadá to, že vaše instalace froxlor byla upravena, na úpravy neposkytuijeme podporu, je nám líto.',
'autoupdate_0' => 'Neznámá chyba',
'autoupdate_1' => 'Nastavení PHP allow_url_fopen je zakázáno. Autoupdate musí být povolen v php.ini',
'autoupdate_2' => 'PHP zip rozšíření nebylo nalezeno, ujistěte se, že je nainstalováno a aktivováno',
'autoupdate_4' => 'Archiv froxlor nemohl být uložen na disk :(',
'autoupdate_5' => 'version.froxlor.org vrátil nepřijatelné hodnoty :(',
'autoupdate_6' => 'Jejda, ke stažení nebyla zadána žádná (platná) verze :(',
'autoupdate_7' => 'Stažený archiv nebyl nalezen :(',
'autoupdate_8' => 'Archiv nelze extrahovat :(',
'autoupdate_9' => 'Stažený soubor neprošel kontrolou integrity. Zkuste prosím aktualizovat znovu.',
'autoupdate_10' => 'Minimální podporovaná verze PHP je 7.4.0',
'autoupdate_11' => 'Webupdate je zakázán',
'mailaccistobedeleted' => 'Jiný účet se stejným názvem (%s) je v současné době smazán, a proto jej nelze v tuto chvíli přidat.',
'customerhasongoingexportjob' => 'Na zpracování již čeká úloha exportu dat, buďte prosím trpěliví.',
'exportfunctionnotenabled' => 'Funkce exportu není povolena',
'dns_domain_nodns' => 'DNS není pro tuto doménu povoleno',
'dns_content_empty' => 'Nebyl zadán žádný obsah',
'dns_content_invalid' => 'Neplatný obsah DNS',
'dns_arec_noipv4' => 'Neplatná IP adresa pro A-záznam',
'dns_aaaarec_noipv6' => 'Neplatná IP adresa pro zadaný záznam AAAA',
'dns_mx_prioempty' => 'Byla zadána neplatná MX priorita',
'dns_mx_needdom' => 'Hodnota MX obsahu musí být platný název domény',
'dns_mx_noalias' => 'Hodnota MX nemůže být položka CNAME.',
'dns_cname_invaliddom' => 'Neplatný název domény pro záznam CNAME',
'dns_cname_nomorerr' => 'Záznam zdroje se stejným názvem záznamu již existuje. Nelze jej použít jako CNAME.',
'dns_other_nomorerr' => 'Záznam CNAME se stejným názvem záznamu již existuje. Nelze jej použít pro jiný typ.',
'dns_ns_invaliddom' => 'Neplatný název domény pro NS záznam',
'dns_srv_prioempty' => 'Byla zadána neplatná SRV priorita',
'dns_srv_invalidcontent' => 'Neplatný obsah SRV musí obsahovat váhu, port a cíl, např.: 5 5060 sipserver.example.com.',
'dns_srv_needdom' => 'Hodnota SRV cíle musí být platný název domény',
'dns_srv_noalias' => 'Hodnota SRV cíle nemůže být položka CNAME.',
'dns_duplicate_entry' => 'Záznam již existuje',
'dns_notfoundorallowed' => 'Doména nebyla nalezena nebo nemáte oprávnění',
'domain_nopunycode' => 'Nesmíte specifikovat punycode (IDNA). Doména bude automaticky převedena',
'domain_noipaddress' => 'Nelze přidat IP adresu jako doménu',
'dns_record_toolong' => 'Záznamy/popisky mohou mít pouze 63 znaků',
'noipportgiven' => 'Není zadán žádný IP/port',
'nosslippportgiven' => 'Při povolení SSL je třeba zvolit SSL IP/port',
'jsonextensionnotfound' => 'Tato funkce vyžaduje rozšíření php-json.',
'cannotdeletesuperadmin' => 'Prvního správce nelze odstranit.',
'no_wwwcnamae_ifwwwalias' => 'Nelze nastavit CNAME záznam pro "www" jako doménu pro generování www-alias. Změňte prosím nastavení buď na "No alias" nebo "Wildcard alias"',
'local_group_exists' => 'Tato skupina již v systému existuje.',
'local_group_invalid' => 'Zadaný název skupiny je neplatný',
'local_user_invalid' => 'Zadané uživatelské jméno je neplatné nebo neexistuje',
'local_user_isfroxloruser' => 'Zadané uživatelské jméno je spravováno froxlorem a nelze jej v tomto kontextu použít',
'invaliddnsforletsencrypt' => 'DNS domén neobsahuje žádnou z vybraných IP adres. Vytvoření Let\'s Encryp certifikátu není možné.',
'notallowedphpconfigused' => 'Pokus o použití php konfigurace, která není přiřazena zákazníkovi',
'pathmustberelative' => 'Uživatel nemá oprávnění specifikovat adresáře mimo domovský adresář zákazníka. Zadejte relativní cestu (bez úvodního /).',
'mysqlserverstillhasdbs' => 'Databázový server nelze odstranit ze seznamu povolených zákazníků, protože na něm stále existují databáze.',
'domaincannotbeedited' => 'Nemáte oprávnění upravovat doménu %s',
'invalidcronjobintervalvalue' => 'Interval Cronjobu musí být jeden z: %s',
'phpgdextensionnotavailable' => 'Rozšíření PHP GD není dostupné. Nelze ověřit data obrázků',
'2fa_wrongcode' => 'Zadaný kód není platný',
'gnupgextensionnotavailable' => 'Rozšíření PHP GnuPG není dostupné. Nelze ověřit PGP veřejný klíč',
'invalidpgppublickey' => 'PGP veřejný klíč není platný',
'invalid_validtime' => 'Platný čas v sekundách může být pouze mezi 10 a 120',
'customerphpenabledbutnoconfig' => 'Zákazník má PHP aktivován, ale nebyla vybrána žádná konfigurace PHP.',
'emaildomainstillhasaddresses' => 'Nelze deaktivovat flag poštovní domény, protože pro tuto doménu stále existují e-mailové adresy.',
'tls13requiredforhttp3' => 'Flag domény http3 je povolen, ale protokoly SSL nezahrnují TLSv1.3.',
'senderdomainnotowned' => 'Zadaná doména „%s“ nemůže být použita.',
'emailhasnoaccount' => 'Zadaná e-mailová adresa „%s“ nemá žádný účet, nelze přidat adresu odesílatele.',
],
'extras' => [
'description' => 'Zde můžete přidat některé doplňky, například ochranu adresářů. Po každé změně bude systém potřebovat určitý čas, aby aplikoval nová nastavení.',
'directoryprotection_add' => 'Přidat ochranu adresáře',
'view_directory' => 'Zobrazit obsah adresáře',
'pathoptions_add' => 'Přidat možnosti cesty',
'directory_browsing' => 'Prohlížení obsahu adresáře',
'pathoptions_edit' => 'Upravit možnosti cesty',
'error404path' => '404',
'error403path' => '403',
'error500path' => '500',
'error401path' => '401',
'errordocument404path' => 'ErrorDocument 404',
'errordocument403path' => 'ErrorDocument 403',
'errordocument500path' => 'ErrorDocument 500',
'errordocument401path' => 'ErrorDocument 401',
'execute_perl' => 'Spustit perl/CGI',
'htpasswdauthname' => 'Důvod ověření (AuthName)',
'directoryprotection_edit' => 'Upravit ochranu adresáře',
'export' => 'Vytvořit výpis dat',
'dump_web' => 'Zahrnout webová data',
'dump_mail' => 'Zahrnout e-mailová data',
'dump_dbs' => 'Zahrnout databáze',
'path_protection_label' => 'Důležité',
'path_protection_info' => 'Důrazně doporučujeme chránit danou cestu, viz "Extra" -> "Ochrana adresářů"',
],
'ftp' => [
'description' => 'Zde můžete vytvořit a změnit své FTP účty. Změny jsou provedeny okamžitě a účty mohou být použity okamžitě.',
'account_add' => 'Vytvořit účet',
'account_edit' => 'Upravit ftp účet',
'editpassdescription' => 'Nastavte nové heslo nebo ponechte prázdné pro zanechání stávajícího.',
'sshkey_add' => 'Přidat ssh klíč',
'sshkey_edit' => 'Upravit ssh klíč',
],
'gender' => [
'title' => 'Název',
'male' => 'Pan',
'female' => 'Paní',
'undef' => '',
],
'imprint' => 'Právní ustanovení',
'index' => [
'customerdetails' => 'Podrobnosti o zákazníkovi',
'accountdetails' => 'Nastavení účtu',
],
'integrity_check' => [
'databaseCharset' => 'Sada znaků databáze (měla by být UTF-8)',
'domainIpTable' => 'IP <‐> reference domén',
'subdomainSslRedirect' => 'Falešný příznak přesměrování SSL pro non-ssl domény',
'froxlorLocalGroupMemberForFcgidPhpFpm' => 'froxlor-uživatelve skupinách zákazníků (pro FCGID/php-fpm)',
'webserverGroupMemberForFcgidPhpFpm' => 'Webový uživatel ve skupině zákazníků (pro FCGID/php-fpm)',
'subdomainLetsencrypt' => 'Hlavní domény bez SSL portu nemají žádné subdomény s aktivním přesměrováním SSL',
],
'logger' => [
'date' => 'Datum',
'type' => 'Typ',
'action' => 'Akce',
'user' => 'Uživatel',
'truncate' => 'Vyprázdnit protokol',
'reseller' => 'Překupník',
'admin' => 'Administrátor',
'cron' => 'Cronjob',
'login' => 'Přihlášení',
'intern' => 'Interní',
'unknown' => 'Neznámý',
],
'login' => [
'username' => 'Uživatelské jméno',
'password' => 'Heslo',
'language' => 'Jazyk',
'login' => 'Přihlásit se',
'logout' => 'Odhlásit se',
'profile_lng' => 'Jazyk profilu',
'welcomemsg' => 'Pro přístup k vašemu účtu se přihlaste.',
'forgotpwd' => 'Zapomněli jste heslo?',
'presend' => 'Obnovit heslo',
'email' => 'E-mailová adresa',
'remind' => 'Obnovit heslo',
'usernotfound' => 'Uživatel nebyl nalezen!',
'backtologin' => 'Zpět na přihlášení',
'combination_not_found' => 'Kombinace uživatele a e-mailové adresy nenalezena.',
'2fa' => 'Dvoufázové ověření (2FA)',
'2facode' => 'Zadejte prosím 2FA kód',
'2faremember' => 'Důvěřovat prohlížeči',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Dobrý den,\\n\\nváš e-mailový účet {EMAIL}\\nbyl úspěšně vytvořen.\\n\\nToto je automaticky vytvořený\\ne-mail, prosím neodpovídejte na něj!\\n\\nVáš správce',
'subject' => 'E-mailový účet byl úspěšně nastaven',
],
'createcustomer' => [
'mailbody' => 'Dobrýž den {SALUTATION},\\n\\nzde je váš účet:\\n\\nUživatelské jméno: {USERNAME}\\nHeslo: {PASSWORD}\\n\\nDěkujeme,\\nváš správce',
'subject' => 'Informace o účtu',
],
'pop_success_alternative' => [
'mailbody' => 'Dobrý den {SALUTATION},\\n\\nVáš e-mailový účet {EMAIL}\\nbyl úspěšně vytvořen.\\nVaše heslo je {PASSWORD}.\\n\\nToto je automaticky vytvořený e-mail\\n, prosím neodpovídejte na to!\\n\\nYours upřímně, váš správce',
'subject' => 'E-mailový účet byl úspěšně nastaven',
],
'password_reset' => [
'subject' => 'Obnovení hesla',
'mailbody' => 'Dobrý den, {SALUTATION},\\n\\nje zde váš odkaz pro nastavení nového hesla. Tento odkaz je platný po dobu následujících 24 hodin.\\n\\n{LINK}\\n\\nDěkujeme,\\nváš správce',
],
'new_database_by_customer' => [
'subject' => '[froxlor] Byla vytvořena nová databáze',
'mailbody' => 'Dobrý den {CUST_NAME},
jste právě přidali novou databázi. Zde jsou zadané informace:
Název databáze: {DB_NAME}
Heslo: {DB_PASS}
Popis: {DB_DESC}
Hostitel databáze: {DB_SRV}
phpMyAdmin: {PMA_URI}
S pozdravem Váš správce',
],
'new_ftpaccount_by_customer' => [
'subject' => 'Nový ftp uživatel vytvořen',
'mailbody' => 'Dobrý den {CUST_NAME},
jste právě přidali nového ftp uživatele. Zde jsou zadané informace:
Uživatelské jméno: {USR_NAME}
Heslo: {USR_PASS}
Cesta: {USR_PATH}
Ach upřímně, váš správce',
],
'trafficmaxpercent' => [
'mailbody' => 'Vážený/á {SALUTATION},\\n\\njste použili {TRAFFICUSED} z dostupného provozu {TRAFFIC}.\\nToto je více než {MAX_PERCENT}%%.\\n\\nVaše upřímně správce',
'subject' => 'Dosažení limitu provozu',
],
'diskmaxpercent' => [
'mailbody' => 'Vážený/á {SALUTATION},\\n\\njste použili {DISKUSED} ze svého dostupného {DISKAVAILABLE} disku.\\nToto je více než {MAX_PERCENT}%%.\\n\\nVaše upřímně správce',
'subject' => 'Dosažení limitu na disku',
],
'2fa' => [
'mailbody' => 'Dobrý den,\\n\\nváš 2FA přihlašovací kód je: {CODE}.\\n\\nToto je automaticky vytvořený\\ne-mail, prosím neodpovídejte na to!\\n\\nVáš správce',
'subject' => 'froxlor - 2FA kód',
],
],
'menue' => [
'main' => [
'main' => 'Hlavní',
'changepassword' => 'Změnit heslo',
'changelanguage' => 'Změnit jazyk',
'username' => 'Přihlášen jako: ',
'changetheme' => 'Změnit motiv',
'apihelp' => 'Nápověda API',
'apikeys' => 'API klíče',
],
'email' => [
'email' => 'Email',
'emails' => 'Adresy',
'webmail' => 'Webmail',
'emailsoverview' => 'Přehled e-mailových domén',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Databáze',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domény',
'settings' => 'Přehled domén',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Účty',
'webftp' => 'WebFTP',
'sshkeys' => 'SSH klíče',
],
'extras' => [
'extras' => 'Extra',
'directoryprotection' => 'Ochrana adresáře',
'pathoptions' => 'Možnosti cesty',
'export' => 'Export dat',
],
'traffic' => [
'traffic' => 'Provoz',
'current' => 'Aktuální měsíc',
'overview' => 'Celkový provoz',
],
'phpsettings' => [
'maintitle' => 'PHP konfigurace',
'fpmdaemons' => 'Verze PHP-FPM',
],
'logger' => [
'logger' => 'Systémový protokol',
],
],
'message' => [
'norecipients' => 'Nebyl odeslán žádný e-mail, protože v databázi nejsou žádní příjemci',
'success' => 'Zpráva byla úspěšně odeslána příjemcům %s',
],
'mysql' => [
'databasename' => 'Uživatel/Jméno databáze',
'databasedescription' => 'Popis databáze',
'database_create' => 'Vytvořit databázi',
'description' => 'Zde můžete vytvořit a změnit databáze MySQL. Změny jsou provedeny okamžitě a databáze může být použita okamžitě. V menu na levé straně najdete nástroj phpMyAdmin, pomocí kterého můžete snadno spravovat svou databázi.
Pro použití Vašich databází ve svých vlastních php-skriptech použijte následující nastavení: (Data kurzívou je třeba změnit na ekvivalenty, které jste zadali! Název hostitele: Uživatelské jméno: název databáze Heslo: heslo, které jste si vybrali databáze: databázový název',
'mysql_server' => 'Server MySQL',
'database_edit' => 'Upravit databázi',
'size' => 'Velikost',
'privileged_user' => 'Oprávněný databázový uživatel',
'privileged_passwd' => 'Heslo pro oprávněného uživatele',
'unprivileged_passwd' => 'Heslo pro neoprávněného uživatele',
'mysql_ssl_ca_file' => 'Certifikát SSL serveru',
'mysql_ssl_verify_server_certificate' => 'Ověřit certifikát SSL serveru',
'globaluserinfo' => 'Pro přístup k databázím můžete navíc použít vaše froxlor přihlášení (uživatel: %s), které má automaticky přístup ke všem databázím. Doporučujeme ne použít pro aplikace, pouze pro správu (např. přes phpMyAdmin).',
'edit_global_user' => 'Upravit administrátora',
],
'opcacheinfo' => [
'generaltitle' => 'Obecné informace',
'resetcache' => 'Resetovat OPcache',
'version' => 'Verze OPCache',
'phpversion' => 'Verze PHP',
'runtimeconf' => 'Spustitelná konfigurace',
'start' => 'Čas spuštění',
'lastreset' => 'Poslední restart',
'oomrestarts' => 'Počet restartů OOM',
'hashrestarts' => 'Počet restartů hash',
'manualrestarts' => 'Manuální počet restartů',
'hitsc' => 'Počet zásahů',
'missc' => 'Nevyužitý počet',
'blmissc' => 'Počet zmeškaných záznamů na černé listině',
'status' => 'Stav',
'never' => 'nikdy',
'enabled' => 'OPcache povoleno',
'cachefull' => 'Mezipaměť je plná',
'restartpending' => 'Čeká na restart',
'restartinprogress' => 'Probíhá restart',
'cachedscripts' => 'Počet skriptů v mezipaměti',
'memusage' => 'Využití paměti',
'totalmem' => 'Celková paměť',
'usedmem' => 'Využitá paměť',
'freemem' => 'Volná paměť',
'wastedmem' => 'Promarněná paměť',
'maxkey' => 'Maximální počet klíčů',
'usedkey' => 'Použité klíče',
'wastedkey' => 'Promarněné klíče',
'strinterning' => 'String interning',
'strcount' => 'Počet řetězců',
'keystat' => 'Statistika klíčů v mezipaměti',
'used' => 'Využito',
'free' => 'Volné',
'blacklist' => 'Černá listina',
'novalue' => 'žádná hodnota',
'true' => 'true',
'false' => 'false',
'funcsavail' => 'Dostupné funkce',
],
'panel' => [
'edit' => 'Upravit',
'delete' => 'Smazat',
'create' => 'Vytvořit',
'save' => 'Uložit',
'yes' => 'Ano',
'no' => 'Ne',
'emptyfornochanges' => 'prázdné pro žádné změny',
'emptyfordefault' => 'prázdné pro výchozí nastavení',
'path' => 'Cesta',
'toggle' => 'Přepínač',
'next' => 'Další',
'dirsmissing' => 'Nelze najít nebo přečíst adresář!',
'unlimited' => '∞',
'urloverridespath' => 'URL (přepsání cesty)',
'pathorurl' => 'Cesta nebo URL',
'ascending' => 'vzestupně',
'descending' => 'sestupně',
'search' => 'Vyhledat',
'used' => 'využito',
'translator' => 'Překladač',
'reset' => 'Zahodit změny',
'pathDescription' => 'Pokud složka neexistuje, bude vytvořena automaticky.',
'pathDescriptionEx' => '
Upozornění: Cesta / není povolena z důvodu administrativního nastavení, bude automaticky nastaveno na /chosen.subdomain.tld/ pokud není nastaveno na jiný adresář.',
'pathDescriptionSubdomain' => 'Pokud složka neexistuje, bude vytvořena automaticky.
Pokud chcete přesměrovat na jinou doménu, musí tento záznam začít http:// nebo https://.
Pokud URL končí / je považována za složku, pokud ne, je považována za soubor.',
'back' => 'Zpět',
'reseller' => 'překupník',
'admin' => 'admin',
'customer' => 'zákazník/zákazníci',
'send' => 'odeslat',
'nosslipsavailable' => 'V současné době neexistují žádné kombinace ssl ip/port pro tento server',
'backtooverview' => 'Zpět na přehled',
'dateformat' => 'RRRR-MM-DD',
'dateformat_function' => 'R-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Výchozí',
'never' => 'Nikdy',
'active' => 'Aktivní',
'please_choose' => 'Vyberte prosím',
'allow_modifications' => 'Povolit změny',
'megabyte' => 'MegaByte',
'not_supported' => 'Nepodporováno v: ',
'view' => 'zobrazení',
'toomanydirs' => 'Příliš mnoho podadresářů. Vraťte se zpět na manuální výběr cesty.',
'abort' => 'Přerušit',
'not_activated' => 'není aktivováno',
'off' => 'vyp.',
'options' => 'Možnosti',
'neverloggedin' => 'Dosud žádné přihlášení',
'descriptionerrordocument' => 'Může být adresa URL, cesta k souboru nebo jen řetězec zabalený kolem " " Ponechte prázdné pro použití výchozí hodnoty serveru.',
'unlock' => 'Odemknout',
'theme' => 'Motiv',
'variable' => 'Proměnná',
'description' => 'Popis',
'cancel' => 'Zrušit',
'ssleditor' => 'Nastavení SSL pro tuto doménu',
'ssleditor_infoshared' => 'V současné době používá certifikát rodičovské domény',
'ssleditor_infoglobal' => 'V současné době používá globální certifikát',
'dashboard' => 'Nástěnka',
'assigned' => 'Přiřazeno',
'available' => 'K dispozici',
'news' => 'Novinky',
'newsfeed_disabled' => 'Novinky jsou zakázány. Klepnutím na ikonu úpravy přejdete do nastavení.',
'ftpdesc' => 'Popis FTP',
'letsencrypt' => 'Používá Let\'s Encrypt',
'set' => 'Aplikovat',
'shell' => 'Konzole',
'sshkeydesc' => 'Popis klíče SSH',
'ftpuser' => 'FTP uživatel',
'sshpubkey' => 'Věřejný SSH klíč',
'sshpubkeyph' => "Začíná na „ssh-ed25519“, „ssh-rsa“, „ecdsa-sha2-nistp256“, „ecdsa-sha2-nistp384“, „ecdsa-sha2-nistp521“, „sk-ecdsa-sha2-nistp256@openssh.com“ nebo „sk-ssh-ed25519@openssh.com'",
'sshfingerprint' => 'Otisk',
'exportpath' => [
'title' => 'Cílová cesta pro exportovaná data',
'description' => 'Toto je cesta, kde bude exporotovaný archiv uložen. Pokud jsou webová data zahrnuta, všechny soubory z domovského adresáře jsou uloženy mimo složku zadanou zde.',
],
'export_pgp_public_key' => [
'title' => 'Veřejný PGP klíč pro šifrování',
'description' => 'Toto je veřejný PGP klíč, který bude použit k zašifrování exportu. Pokud necháte toto pole prázdné, export nebude zašifrován.',
],
'pgp_public_key' => 'Veřejný PGP klíč',
'none_value' => 'Žádná',
'viewlogs' => 'Zobrazit protokoly',
'not_configured' => 'Systém ještě není nakonfigurován. Klikněte zde pro přechod do konfigurace.',
'start_setup' => 'Spustit nastavení',
'ihave_configured' => 'Konfiguroval jsem služby',
'system_is_configured' => 'Systém je již nastaven jako konfigurovaný',
'settings_before_configuration' => 'Ujistěte se, že jste upravili nastavení před konfigurací služeb zde',
'image_field_delete' => 'Odstranit stávající obrázek',
'usage_statistics' => 'Využití zdrojů',
'security_question' => 'Bezpečnostní otázka',
'listing_empty' => 'Nebyly nalezeny žádné záznamy',
'unspecified' => 'nespecifikováno',
'settingsmode' => 'Režim',
'settingsmodebasic' => 'Základní',
'settingsmodeadvanced' => 'Rozšířený',
'settingsmodetoggle' => 'Režim přepínání',
'modalclose' => 'Zavřít',
'managetablecolumnsmodal' => [
'title' => 'Správa sloupců tabulky',
'description' => 'Zde si můžete přizpůsobit viditelné sloupce',
],
'mandatoryfield' => 'Pole je povinné',
'select_all' => 'Vybrat vše',
'unselect_all' => 'Odznačit vše',
'searchtablecolumnsmodal' => [
'title' => 'Hledat v polích',
'description' => 'Vyberte pole, ve kterém chcete vyhledat'
],
'upload_import' => 'Nahrát a importovat',
'profile' => 'Můj profil',
'use_checkbox_for_unlimited' => 'Hodnota „0“ deaktivuje tento prostředek. Zaškrtávací políčko vpravo umožňuje „neomezené“ použití.',
'use_checkbox_to_disable' => 'Chcete-li tuto funkci deaktivovat, zaškrtněte políčko napravo od textového pole.',
'distro_mismatch' => 'Zdá se, že jste provedli upgrade na novou distribuci. Nezapomeňte prosím odpovídajícím způsobem překonfigurovat služby.',
'set_new_distro' => 'Nastavit distribuci',
'dismiss' => 'Zavřít',
],
'phpfpm' => [
'vhost_httpuser' => 'Místní uživatel pro PHP-FPM (froxlor vHost)',
'vhost_httpgroup' => 'Místní skupina pro PHP-FPM (froxlor vHost)',
'ownvhost' => [
'title' => 'Povolit PHP-FPM pro froxlor vHost',
'description' => 'Pokud je povoleno, bude froxlor spuštěn také pod místním uživatelem',
],
'use_mod_proxy' => [
'title' => 'Použít mod_proxy / mod_proxy_fcgi',
'description' => 'Při používání Debianu 9.x (Stretch) nebo novějšíhomusí být povoleno použití php-fpm přes mod_proxy_fcgi. Vyžaduje alespoň apache-2.4.9',
],
'ini_flags' => 'Zadejte možný php_flag pro php.ini. Jeden záznam na řádek',
'ini_values' => 'Zadejte možnou php_value pro php.ini. Jeden záznam na řádek',
'ini_admin_flags' => 'Zadejte možný php_admin_flag pro php.ini. Jeden záznam na řádek',
'ini_admin_values' => 'Zadejte možnou php_value pro php.ini. Jeden záznam na řádek',
],
'privacy' => 'Zásady ochrany soukromí',
'pwdreminder' => [
'success' => 'Obnovení hesla bylo úspěšně požadováno. Postupujte podle pokynů v e-mailu, který jste obdrželi.',
'notallowed' => 'Neznámý uživatel nebo obnovení hesla je zakázáno',
'changed' => 'Vaše heslo bylo úspěšně aktualizováno. Nyní se můžete přihlásit pomocí nového hesla.',
'wrongcode' => 'Je nám líto, váš aktivační kód neexistuje nebo již vypršel.',
'choosenew' => 'Nastavit nové heslo',
],
'question' => [
'question' => 'Bezpečnostní otázka',
'admin_customer_reallydelete' => 'Opravdu chcete odstranit zákazníka %s? Tuto akci nelze vrátit zpět!',
'admin_domain_reallydelete' => 'Opravdu chcete odstranit doménu %s? POZNÁMKA: Všechny subdomény, ftp-účty a e-mailové adresy/účty spojené s touto doménou budou odstraněny!',
'admin_domain_reallydisablesecuritysetting' => 'Opravdu chcete zakázat toto nastavení zabezpečení OpenBasedir?',
'admin_admin_reallydelete' => 'Opravdu chcete odstranit správce %s? Každý zákazník a doména budou znovu přiřazeny k vašemu účtu.',
'admin_template_reallydelete' => 'Opravdu chcete odstranit šablonu\'%s\'?',
'domains_reallydelete' => 'Opravdu chcete odstranit doménu %s?',
'email_reallydelete' => 'Opravdu chcete odstranit e-mailovou adresu %s?',
'email_reallydelete_account' => 'Opravdu chcete smazat e-mailový účet %s?',
'email_reallydelete_forwarder' => 'Opravdu chcete odstranit přeposílatele %s?',
'email_reallydelete_sender' => 'Opravdu chcete odstranit povoleného odesílatele %s?',
'extras_reallydelete' => 'Opravdu chcete odstranit ochranu adresáře pro %s?',
'extras_reallydelete_pathoptions' => 'Opravdu chcete odstranit možnosti cesty pro %s?',
'extras_reallydelete_export' => 'Opravdu chcete přerušit plánovanou práci na exportu?',
'ftp_reallydelete' => 'Opravdu chcete odstranit FTP účet %s?',
'sshkey_reallydelete' => 'Opravdu chcete smazat ssh-klíč %s?',
'mysql_reallydelete' => 'Opravdu chcete odstranit databázi %s? Tuto akci nelze vrátit zpět!',
'admin_configs_reallyrebuild' => 'Opravdu chcete znovu sestavit všechny konfigurační soubory?',
'admin_customer_alsoremovefiles' => 'Odstranit také uživatelské soubory?',
'admin_customer_alsoremovemail' => 'Zcela odstranit e-mailová data ze souborového systému?',
'admin_customer_alsoremoveftphomedir' => 'Odebrat také domovský adresář FTP uživatele?',
'admin_ip_reallydelete' => 'Opravdu chcete odstranit IP adresu %s?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Jste si jisti, že chcete, aby kořen dokumentu pro tuto doménu nebyl v rámci kořene zákazníka?',
'admin_counters_reallyupdate' => 'Opravdu chcete přepočítat využití prostředků?',
'admin_cleartextmailpws_reallywipe' => 'Opravdu chcete vymazat všechna nešifrovaná hesla e-mailového účtu z tabulky mail_users? Tuto akci nelze vrátit zpět! Nastavení nešifrovaných e-mailových hesel bude také nastaveno na vypnutí',
'logger_reallytruncate' => 'Opravdu chcete zredukovat tabulku "%s"?',
'admin_quotas_reallywipe' => 'Opravdu chcete vymazat všechny kvóty v tabulce mail_users? Toto nelze vrátit zpět!',
'admin_quotas_reallyenforce' => 'Opravdu chcete vynutit výchozí kvótu pro všechny uživatele? Toto nelze vrátit zpět!',
'phpsetting_reallydelete' => 'Opravdu chcete odstranit tato nastavení? Všechny domény, které v současné době používají tato nastavení, budou změněny na výchozí nastavení.',
'fpmsetting_reallydelete' => 'Opravdu chcete smazat tato nastavení php-fpm? Všechny php konfigurace, které v současné době používají tato nastavení, budou změněny na výchozí nastavení.',
'customer_reallyunlock' => 'Opravdu chcete odemknout zákazníka %s?',
'admin_integritycheck_reallyfix' => 'Opravdu chcete zkusit automaticky opravit všechny problémy s integritou databáze?',
'plan_reallydelete' => 'Opravdu chcete odstranit plán hostování %s?',
'apikey_reallydelete' => 'Opravdu chcete odstranit tento api klíč?',
'apikey_reallyadd' => 'Opravdu chcete vytvořit nový api klíč?',
'dnsentry_reallydelete' => 'Opravdu chcete odstranit tento záznam zóny?',
'certificate_reallydelete' => 'Opravdu chcete odstranit tento certifikát?',
'cache_reallydelete' => 'Opravdu chcete vymazat mezipaměť?',
'please_enter_otp' => 'Zadejte prosím 2FA kód',
'admin_mysqlserver_reallydelete' => 'Opravdu chcete smazat tento MySQL-server?',
],
'redirect_desc' => [
'rc_default' => 'výchozí',
'rc_movedperm' => 'trvale přesunuto',
'rc_found' => 'nalezeno',
'rc_seeother' => 'viz ostatní',
'rc_tempred' => 'dočasné přesměrování',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Vypršení platnosti relace',
'description' => 'Jak dlouho musí být uživatel neaktivní, než bude relace neplatná (sekundy)?',
],
'accountprefix' => [
'title' => 'Prefix zákazníka',
'description' => 'Jaký prefix by měly mít zákaznické účty?',
],
'mysqlprefix' => [
'title' => 'SQL Prefix',
'description' => 'Jaký prefix by měl mít MySQL účty?Použijte "RANDOM" jako hodnotu k získání trojmístného náhodného prefixuPoužijte "DBNAME" jako hodnotu, pole názvu databáze je použito spolu s názvem zákazníka jako prefix.',
],
'ftpprefix' => [
'title' => 'FTP Prefix',
'description' => 'Jaký prefix by měly mít ftp účty? Pokud toto změníte, musíte také změnit Quota SQL Query v konfiguračním souboru FTP serveru, pokud jej používáte! ',
],
'documentroot_prefix' => [
'title' => 'Domovský adresář',
'description' => 'Kde by měly být uloženy všechny domovské adresáře?',
],
'logfiles_directory' => [
'title' => 'Adresář souborů protokolu',
'description' => 'Kde mají být uloženy všechny soubory protokolů?',
],
'logfiles_script' => [
'title' => 'Vlastní skript pro odesílání souborů protokolu do',
'description' => 'Zde můžete zadat skript a použít zástupné symboly {LOGFILE}, {DOMAIN} a {CUSTOMER} v případě potřeby. Pokud jej chcete použít, budete muset aktivovat také nastavení logů webserveru. Není zapotřebí žádný předem stanovený pipe-znak.',
],
'logfiles_format' => [
'title' => 'Formát přístupového protokolu',
'description' => 'Zde zadejte vlastní formát logu podle specifikací webových serverů, ponechte prázdný pro výchozí. V závislosti na vašem formátu musí být řetězec uveden. Pokud je použito s nginx, bude vypadat jako log_format frx_custom {CONFIGURED_VALUE}. Pokud je použito s Apache, bude vypadat jako LogFormat {CONFIGURED_VALUE} frx_custom. Pozornost: Kód nebude zkontrolován pro žádné chyby. Pokud obsahuje chyby, webový server nemusí znovu spustit!',
],
'logfiles_type' => [
'title' => 'Typ přístupového protokolu',
'description' => 'Zde si vyberte mezi combined nebo vhost_combined.',
],
'logfiles_piped' => [
'title' => 'Přesměrování souborů protokolu webového serveru do zadaného skriptu (viz výše)',
'description' => 'Používáte-li vlastní skript pro logy, musíte jej aktivovat, aby mohl být spuštěn',
],
'ipaddress' => [
'title' => 'IP adresa',
'description' => 'Jaká je hlavní IP adresa tohoto serveru?',
],
'hostname' => [
'title' => 'Název serveru',
'description' => 'Jaký je název hostitele tohoto serveru?',
],
'apachereload_command' => [
'title' => 'Příkaz pro opětovné načtení webového serveru',
'description' => 'Jaký je příkaz webového serveru pro opětovné načtení konfiguračních souborů?',
],
'bindenable' => [
'title' => 'Povolit nameserver',
'description' => 'Zde lze globálně povolit a zakázat nameserver.',
],
'bindconf_directory' => [
'title' => 'Konfigurační adresář serveru Dns',
'description' => 'Kde by měly být uloženy konfigurační soubory dns-serveru?',
],
'bindreload_command' => [
'title' => 'Příkaz pro opětovné načtení serveru DNS',
'description' => 'Jaký je příkaz pro znovunačtení dns serveru daemon?',
],
'vmail_uid' => [
'title' => 'UID-Mailů',
'description' => 'Které uživatelské Id by měly mít e-maily?',
],
'vmail_gid' => [
'title' => 'Mails-GID',
'description' => 'Jaké GroupID by měly mít e-maily?',
],
'vmail_homedir' => [
'title' => 'Domovský adresář pro emaily',
'description' => 'Kde by měly být uloženy všechny emaily?',
],
'adminmail' => [
'title' => 'Odesílatel',
'description' => 'Jaká je adresa odesílatele pro e-maily odeslané z panelu?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin URL',
'description' => 'Jaká je adresa URL na phpMyAdmin? (musí začít s http(s)://)',
],
'webmail_url' => [
'title' => 'Webmail URL',
'description' => 'Jaká je URL adresa webové pošty? (musí začít http(s)://)',
],
'webftp_url' => [
'title' => 'WebFTP URL',
'description' => 'Jaká je URL adresa na WebFTP? (musí začít http(s)://)',
],
'language' => [
'description' => 'Jaký je váš standardní jazyk serveru?',
],
'maxloginattempts' => [
'title' => 'Maximální počet pokusů o přihlášení',
'description' => 'Maximální počet pokusů o přihlášení, po kterých je účet zakázán.',
],
'deactivatetime' => [
'title' => 'Čas deaktivace',
'description' => 'Čas (sek.) je po příliš mnoha pokusech o přihlášení deaktivován účet.',
],
'pathedit' => [
'title' => 'Typ vstupu cesty',
'description' => 'Měla by být cesta vybrána v rozbalovacím menu nebo ve vstupním poli?',
],
'nameservers' => [
'title' => 'Nameservery',
'description' => 'Čárkou oddělený seznam obsahující jména všech nameserverů. První bude primární.',
],
'mxservers' => [
'title' => 'MX servery',
'description' => 'Čárkou oddělený seznam obsahující dvojici čísel a názvu hostitele oddělených mezerou (např. \'10 mx.example.com\') obsahující mx servery.',
],
'paging' => [
'title' => 'Počet položek na stránku',
'description' => 'Kolik záznamů se zobrazí na jedné stránce? (0 = zakázat stránkování)',
],
'defaultip' => [
'title' => 'Výchozí IP/port',
'description' => 'Vyberte všechny IP adresy, které chcete použít jako výchozí pro nové domény',
],
'defaultsslip' => [
'title' => 'Výchozí SSL IP/port',
'description' => 'Vyberte všechny ssl IP adresy, které chcete použít jako výchozí pro nové domény',
],
'phpappendopenbasedir' => [
'title' => 'Cesty, které se připojí do souboru OpenBasedir',
'description' => 'Tyto cesty (oddělené dvojtečkami) budou přidány do příkazu OpenBasedir v každém kontejneru vHost.',
],
'natsorting' => [
'title' => 'Použít přirozené lidské třídění v zobrazení seznamu',
'description' => 'Seřadí seznamy jako web1 -> web2 -> web11 místo web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Docroot pro deaktivované uživatele',
'description' => 'Pokud je uživatel deaktivován, použije se tato cesta jako docroot. Ponechte prázdné, pokud vůbec nechcete vytvářet vHost hostitele.',
],
'mailpwcleartext' => [
'title' => 'Také ukládat nešifrované hesla e-mailových účtů do databáze',
'description' => 'Pokud je toto nastaveno na Ano, všechna hesla budou také uložena v tabulce mail_users-table (nešifrovaný text, jednoduše čitelný pro všechny s přístupem k databázi). Aktivujte pouze pokud chcete použít SASL!',
],
'ftpdomain' => [
'title' => 'FTP účty @doména',
'description' => 'Zákazníci mohou vytvořit FTP účty uživatel@doménauživatele?',
],
'mod_fcgid' => [
'title' => 'Povolit FCGID',
'description' => 'Použijte pro spuštění PHP s odpovídajícím uživatelským účtem.
Toto vyžaduje speciální konfiguraci webového serveru pro Apache, viz FCGID - příručka',
'configdir' => [
'title' => 'Adresář konfigurace',
'description' => 'Kde by měly být uloženy všechny fcgid konfigurační soubory? Pokud nepoužíváte vlastní kompilovaný suexec binární, což je normální situace, tato cesta musí být pod /var/www/
POZNÁMKA: Obsah této složky je pravidelně smazán, aby se zabránilo ukládání dat v ní manuálně.
',
],
'tmpdir' => [
'title' => 'Dočasný adresář',
'description' => 'Kde by měly být uloženy dočasné adresáře',
],
'starter' => [
'title' => 'Procesy na doménu',
'description' => 'Kolik procesů by mělo být spuštěno/povoleno v dané doméně? Hodnota 0 je doporučená příčinou PHP pak bude velmi efektivně spravovat samotný počet procesů.',
],
'wrapper' => [
'title' => 'Wrapper v hostitelích Vhosts',
'description' => 'Jak by měl být wrapper zahrnut do Vhosts',
],
'peardir' => [
'title' => 'Globální adresáře PEAR',
'description' => 'Které globální adresáře PEAR by měly být nahrazeny v každém konfiguračním souboru php.ini? Různé adresáře musí být odděleny dvojtečkou.',
],
'maxrequests' => [
'title' => 'Maximální počet požadavků na doménu',
'description' => 'Kolik požadavků by mělo být povoleno na doménu?',
],
'defaultini' => 'Výchozí konfigurace PHP pro nové domény',
'defaultini_ownvhost' => 'Výchozí konfigurace PHP pro froxlor-vHost',
'idle_timeout' => [
'title' => 'Časový limit nečinnosti',
'description' => 'Časový limit nastavení Mod FastCGI.',
],
],
'sendalternativemail' => [
'title' => 'Použít alternativní e-mailovou adresu',
'description' => 'Poslat heslo na jinou adresu při vytváření e-mailu',
],
'apacheconf_vhost' => [
'title' => 'Konfigurační soubor/adresář webserveru',
'description' => 'Kde má být uložena konfigurace vHost? Zde můžete zadat buď soubor (všechny vHosty v jednom souboru), nebo adresář (každý vHost ve vlastním souboru).',
],
'apacheconf_diroptions' => [
'title' => 'Konfigurační soubor/název adresáře webového serveru diroptions',
'description' => 'Kde má být uložena konfigurace diroptions? Zde můžete zadat buď soubor (všechny dioptrie v jednom souboru), nebo adresář (každá dioptrie ve vlastním souboru).',
],
'apacheconf_htpasswddir' => [
'title' => 'Webserver htpasswd dirname',
'description' => 'Kde mají být soubory htpasswd pro ochranu adresáře uloženy?',
],
'mysql_access_host' => [
'title' => 'MySQL-Access-Hosts',
'description' => 'Čárkami oddělený seznam hostitelů, od kterých by měli mít uživatelé možnost se připojit k serveru MySQL-Server. Pro povolení podsítě je platná síťová maska nebo cidr.',
],
'webalizer_quiet' => [
'title' => 'Výstup Webalizátoru',
'description' => 'Verbosita webalizéru',
],
'logger' => [
'enable' => 'Logování povoleno/zakázáno',
'severity' => 'Úroveň protokolování',
'types' => [
'title' => 'Typ (typy) logů',
'description' => 'Zadejte typy logů. Chcete-li vybrat více typů, podržte CTRL při výběru. Dostupné typy logů jsou: syslog, soubor, mysql',
],
'logfile' => [
'title' => 'Název souboru pro log',
'description' => 'Používá se pouze v případě, že typ logu obsahuje "soubor". Tento soubor bude vytvořen v froxlor/logs/. Tato složka je chráněna před veřejným přístupem.',
],
'logcron' => 'Zaznamenávat cronjoby',
'logcronoption' => [
'never' => 'Nikdy',
'once' => 'Jednou',
'always' => 'Vždy',
],
],
'ssl' => [
'use_ssl' => [
'title' => 'Povolit využití SSL',
'description' => 'Zaškrtněte, pokud chcete použít SSL pro váš webový server',
],
'ssl_cert_file' => [
'title' => 'Cesta k SSL certifikátu',
'description' => 'Zadejte cestu včetně názvu souboru .crt nebo .pem (hlavní certifikát)',
],
'openssl_cnf' => 'Výchozí nastavení pro vytvoření Cert souboru',
'ssl_key_file' => [
'title' => 'Cesta k souboru klíče SSL',
'description' => 'Zadejte cestu včetně názvu souboru pro soukromý klíč (z většiny.key)',
],
'ssl_ca_file' => [
'title' => 'Cesta k SSL CA certifikátu (volitelné)',
'description' => 'Ověřování klienta, nastavte to pouze pokud víte, co je.',
],
'ssl_cipher_list' => [
'title' => 'Konfigurovat povolené SSL šifry',
'description' => 'Toto je seznam šifer, které chcete (nebo nechcete) použít při komunikaci SSL. Pro seznam šifer a způsob, jak je zahrnout/vyloučit viz oddíly "CIPHER LIST FORMAT" a "CIPHER STRINGS" na man-stránce pro šifry.
',
],
'apache24_ocsp_cache_path' => [
'title' => 'Apache 2.4: cesta k OCSP stapling cache',
'description' => 'Konfiguruje mezipaměť použitou k ukládání odpovědí OCSP, které jsou zahrnuty do TLS handshakes.',
],
'ssl_protocols' => [
'title' => 'Konfigurace verze protokolu TLS',
'description' => 'Toto je seznam ssl protokolů, které chcete (nebo nechcete) použít při použití SSL. Upozornění: Některé starší prohlížeče nemusí podporovat nejnovější verze protokolu.
Výchozí hodnota je:
TLSv1.2
',
],
'tlsv13_cipher_list' => [
'title' => 'Nakonfigurujte explicitní TLSv1.3 šifry, pokud jsou použity',
'description' => 'Toto je seznam šifrů, které chcete (nebo nechcete) použít při komunikaci TLSv1.3. Seznam šifr a jak je zahrnovat/vyloučit, viz dokumentace pro TLSv1..
Výchozí hodnota je prázdná',
],
],
'default_vhostconf' => [
'title' => 'Výchozí nastavení vHost-serveru',
'description' => 'Obsah tohoto pole bude přímo zahrnut do tohoto kontejneru s ip/portem. Můžete použít následující proměnné: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}{FPMSOCKET} (pokud existuje) Upozornění: Kód nebude zkontrolován na výskyt chyb. Pokud obsahuje chyby, webový server nemusí znovu spustit!',
],
'apache_globaldiropt' => [
'title' => 'Možnosti adresáře pro prefix zákazníka',
'description' => 'Obsah tohoto pole bude zahrnut do 05_froxlor_dirfix_nofcgid.conf apache config. Je-li prázdné, použije se výchozí hodnota:
apache >=2. Require all granted AllowOverride All
apache <=2. Order allow,deny allow from all',
],
'default_vhostconf_domain' => [
'description' => 'Obsah tohoto pole bude přímo zahrnut do vHhost kontejneru. Můžete použít následující proměnné: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}{FPMSOCKET} (pokud existuje) Upozornění: Kód nebude zkontrolován na obsah chyb. Pokud obsahuje chyby, webový server nemusí znovu spustit!',
],
'decimal_places' => 'Počet desetinných míst ve výstupu provozu/webového prostoru',
'selfdns' => [
'title' => 'Nastavení dns domény zákazníka',
],
'selfdnscustomer' => [
'title' => 'Umožnit zákazníkům upravit nastavení dns domény',
],
'unix_names' => [
'title' => 'Použít uživatelská jména kompatibilní s UNIX',
'description' => 'Umožňuje používat - a _ v uživatelských jménech, pokud Ne',
],
'allow_password_reset' => [
'title' => 'Povolit obnovení hesla zákazníkem',
'description' => 'Zákazníci mohou obnovit své heslo a aktivační odkaz bude odeslán na jejich e-mailovou adresu',
],
'allow_password_reset_admin' => [
'title' => 'Povolit obnovení hesla administrátorem',
'description' => 'Správci/prodejci mohou obnovit své heslo a na jejich e-mailovou adresu bude zaslán aktivační odkaz',
],
'mail_quota' => [
'title' => 'Kvóta pro poštovní schránku',
'description' => 'Výchozí kvóta pro nové vytvořené poštovní schránky (MegaByte).',
],
'mail_quota_enabled' => [
'title' => 'Použít kvóty pro poštovní schránku pro zákazníky',
'description' => 'Aktivujte pro použití kvót na mailboxech. Výchozí hodnota je Ne, protože to vyžaduje speciální nastavení.',
'removelink' => 'Klikněte zde pro vymazání všech kvót pro e-mailové účty.',
'enforcelink' => 'Klikněte zde pro vynucení výchozí kvóty na všechny uživatelské e-mailové účty.',
],
'mail_enable_allow_sender' => [
'title' => 'Povolit zákazníkům používání „povoleného odesílatele“',
'description' => 'Pokud je tato funkce povolena, mohou zákazníci určit „povoleného odesílatele“ pro e-mailové účty, ze kterých budou odesílat zprávy. Výchozí nastavení: vypnuto',
],
'mail_allow_external_domains' => [
'title' => 'Povolit externí domény pro „povolené odesílatele“"',
'description' => 'Pokud je tato možnost povolena, může zákazník zadat jako „povoleného odesílatele“ pro e-mailové účty libovolnou doménu (kromě domén, které tento systém nevlastní). Výchozí: vypnuto',
],
'session_allow_multiple_login' => [
'title' => 'Povolit vícenásobné přihlášení',
'description' => 'Pokud je uživatel aktivován, může se přihlásit vícekrát.',
],
'panel_allow_domain_change_admin' => [
'title' => 'Povolit přesouvání domén mezi správci',
'description' => 'Pokud je aktivováno, můžete změnit administrátora domény v nastavení domény. Upozornění: Pokud zákazník není přiřazen stejnému správci jako doména, administrátor může vidět všechny ostatní domény tohoto zákazníka!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Povolit přesouvání domén mezi zákazníky',
'description' => 'Pokud je aktivováno, můžete změnit zákazníka domény v nastavení domény. Upozornění: froxlor změní kořenový adresář dokumentu na výchozí domovský adresář nového zákazníka (+ doménová složka, pokud je aktivována)',
],
'specialsettingsforsubdomains' => [
'description' => 'Pokud je zvoleno ano, budou tato vlastní nastavení vHost přidána ke všem subdoménám; pokud ne, budou zvláštní nastavení subdomény odstraněna.',
],
'panel_password_min_length' => [
'title' => 'Minimální délka hesla',
'description' => 'Zde můžete nastavit minimální délku hesla. "0" znamená, že není vyžadována žádná minimální délka.',
],
'system_store_index_file_subs' => [
'title' => 'Uložit výchozí soubor indexu také do nových podsložek',
'description' => 'Pokud je povoleno, výchozí indexový soubor se ukládá do každé nově vytvořené subdoménové cesty (ne pokud složka již existuje!)',
],
'adminmail_return' => [
'title' => 'Odpovědět na adresu',
'description' => 'Definujte e-mailovou adresu jako odpověď na adresu pro emaily odeslané panelem.',
],
'adminmail_defname' => 'Jméno odesílatele e-mailu v panelu',
'stdsubdomainhost' => [
'title' => 'Zákaznická standardní subdoména',
'description' => 'Jaký název hostitele by měl být použit pro vytvoření standardních subdomén pro zákazníka. Pokud je prázdný, použije se systémový název hostitele.',
],
'awstats_path' => 'Cesta k AWStats \'awstats_buildstaticpages.pl\'',
'awstats_conf' => 'Cesta k konfiguraci AWStats',
'defaultttl' => 'TTL domény pro navázání v sekundách (výchozí \'604800\' = 1 týden)',
'defaultwebsrverrhandler_enabled' => 'Povolit výchozí chybové dokumenty pro všechny zákazníky',
'defaultwebsrverrhandler_err401' => [
'title' => 'Soubor/URL pro chybu 401',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'Soubor/URL pro chybu 403',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'Soubor/URL pro chybu 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'Soubor/URL pro chybu 500',
'description' => '',
],
'ftpserver' => [
'desc' => 'Pokud je zvolen pureftpd, soubory .ftpquota pro uživatelské kvóty jsou vytvářeny a denně aktualizovány',
],
'customredirect_enabled' => [
'title' => 'Povolit přesměrování zákazníků',
'description' => 'Umožnit zákazníkům vybrat kód pro http-status přesměrování, které budou použity',
],
'customredirect_default' => [
'title' => 'Výchozí přesměrování',
'description' => 'Nastavte výchozí kód přesměrování, který by se měl použít, pokud jej zákazník nenastaví sám',
],
'mail_also_with_mxservers' => 'Vytvořit mail-, imap-, pop3- a smtp-"A record" také s nastavením MX-serverů',
'froxlordirectlyviahostname' => 'Přístup k froxlor přímo prostřednictvím názvu hostitele',
'panel_password_regex' => [
'title' => 'Regulární výraz pro hesla',
'description' => 'Zde můžete nastavit regulární výraz pro složitost hesel. Prázdné = žádné specifické požadavky',
],
'mod_fcgid_ownvhost' => [
'title' => 'Povolit FCGID pro froxlor vHost',
'description' => 'Pokud je povoleno, bude froxlor spuštěn také pod místním uživatelem',
],
'perl' => [
'suexecworkaround' => [
'title' => 'Povolit SuExec workaround',
'description' => 'Povolit pouze v případě, že zákaznické docrooty nejsou v apache suexec cestě. Pokud je povoleno, froxlor vygeneruje symbolický odkaz od zákazníků perl-enabled adresáře + /cgi-bin/ k dané cestě. Všimněte si, že perl bude fungovat pouze v podadresáři složek /cgi-bin/ a ne ve složce samotné (jako to dělá bez této opravy!)',
],
'suexeccgipath' => [
'title' => 'Cesta pro symlinky adresářů zákazníka s povoleným perlem',
'description' => 'Toto je třeba nastavit pouze pokud je povolena SuExec-workaround. POZOR: Ujistěte se, že tato cesta je v rámci hlavní cesty, nebo jinak je toto řešení zbytečné',
],
],
'awstats_awstatspath' => 'Cesta k AWStats \'awstats.pl\'',
'awstats_icons' => [
'title' => 'Cesta ke složce ikon AWstats',
'description' => 'např. /usr/share/awstats/htdocs/icon/',
],
'login_domain_login' => 'Povolit přihlášení pomocí domén',
'perl_server' => [
'title' => 'Umístění soketu perl serveru',
'description' => 'Jednoduchý návod najdete na: nginx.com',
],
'nginx_php_backend' => [
'title' => 'Nginx PHP backend',
'description' => 'zde proces PHP naslouchá požadavkům z nginxu, může to být unixový soket s kombinací ip:port *Nepoužívá se s php-fpm',
],
'phpreload_command' => [
'title' => 'Příkaz pro opětovné načtení PHP',
'description' => 'toto se používá k obnovení PHP backendu, pokud je použit Výchozí: prázdný *NENÍ použito s php-fpm',
],
'phpfpm' => [
'title' => 'Povolit php-fpm',
'description' => 'To vyžaduje speciální konfiguraci webserveru viz PHP-FPM příručka',
],
'phpfpm_settings' => [
'configdir' => 'Adresář konfigurace php-fpm',
'aliasconfigdir' => 'Konfigurace adresáře aliasu php-fpm',
'reload' => 'php-fpm restart příkaz',
'pm' => 'Řízení správce procesu (pm)',
'max_children' => [
'title' => 'Počet podřízených procesů',
'description' => 'Počet podřízených procesů, které mají být vytvořeny, když je hodnota pm nastavena na \'static\' a maximální počet podřízených procesů, které mají být vytvořeny, když je hodnota pm nastavena na \'dynamic/ondemand\' ekvivalent hodnoty PHP_FCGI_CHILDREN',
],
'start_servers' => [
'title' => 'Počet podřízených procesů vytvořených při spuštění',
'description' => 'Poznámka: Používá se pouze v případě, že je pm nastaven na \'dynamické\'',
],
'min_spare_servers' => [
'title' => 'Požadovaný minimální počet procesů serveru v nečinnosti',
'description' => 'Poznámka: Používá se pouze při nastavení pm na \'dynamic\' Poznámka: Povinné při nastavení pm na \'dynamic\'',
],
'max_spare_servers' => [
'title' => 'Požadovaný maximální počet procesů serveru v nečinnosti',
'description' => 'Poznámka: Používá se pouze v případě, že je pm nastaven na \'dynamické\' Poznámka: Povinné, když je pm nastaven na \'dynamické\'',
],
'max_requests' => [
'title' => 'Požadavky na proces před znovu objevením',
'description' => 'Pro nekonečné zpracování požadavků zadejte \'0\'. Ekvivalentní do PHP_FCGI_MAX_REQUESTS.',
],
'idle_timeout' => [
'title' => 'Časový limit nečinnosti',
'description' => 'Nastavení časového limitu pro PHP FastCGI.',
],
'ipcdir' => [
'title' => 'FastCGI adresář IPC',
'description' => 'Adresář, kam bude webový server ukládat sockety php-fpm. Tento adresář musí být pro webový server čitelný',
],
'limit_extensions' => [
'title' => 'Povolené přípony',
'description' => 'Omezuje rozšíření hlavního skriptu, které FPM dovolí analyzovat. To může zabránit chybám v konfiguraci na straně webového serveru. Měli byste omezit FPM pouze na přípony .php, abyste zabránili škodlivým uživatelům používat jiné přípony ke spuštění kódu php. Výchozí hodnota: .php',
],
'envpath' => 'Cesty, které se přidají do prostředí PATH. Nechte prázdné, pokud proměnná prostředí PATH neexistuje',
'override_fpmconfig' => 'Přepsat nastavení FPM-daemon (pm, max_children atd.)',
'override_fpmconfig_addinfo' => ' Používá se pouze v případě, že "Přepsat nastavení FPM-daemon" je nastaveno na "Ano"',
'restart_note' => 'Upozornění: Konfigurace nebude zkontrolována na výskyt chyb. Pokud obsahuje chyby, PHP-FPM nemusí znovu spustit!',
'custom_config' => [
'title' => 'Vlastní konfigurace',
'description' => 'Přidejte vlastní konfiguraci pro každou instanci PHP-FPM verze, například pm.status_path = /status pro monitorování. Proměnné níže lze použít zde. Upozornění: Konfigurace nebude zkontrolována pro žádné chyby. Pokud obsahuje chyby, PHP-FPM nemusí znovu spustit!',
],
'allow_all_customers' => [
'title' => 'Přiřadit tuto konfiguraci všem aktuálně existujícím zákazníkům',
'description' => 'Nastavte tuto hodnotu na „true“, pokud chcete tuto konfiguraci přiřadit všem aktuálně existujícím zákazníkům, aby ji mohli používat. Toto nastavení není trvalé, ale lze jej spustit vícekrát.',
],
],
'report' => [
'report' => 'Povolit odesílání hlášení o používání webu a provozu',
'webmax' => [
'title' => 'Úroveň varování v procentech pro webový prostor',
'description' => 'Platné hodnoty jsou 0 až 150. Nastavením této hodnoty na 0 zakáže tuto zprávu.',
],
'trafficmax' => [
'title' => 'Úroveň varování v procentech pro provoz',
'description' => 'Platné hodnoty jsou 0 až 150. Nastavením této hodnoty na 0 zakáže tuto zprávu.',
],
'report_web_bccadmin' => [
'title' => 'BCC e-mail pro oznámení o webovém využití správci',
'description' => 'Pokud je tato funkce povolena, varování o využití místa na disku zasílané zákazníkovi se zasílá také příslušnému správci/prodejci (BCC).'
],
],
'dropdown' => 'Rozevírací nabídka',
'manual' => 'Manuální',
'default_theme' => 'Výchozí šablona',
'validate_domain' => 'Ověřit názvy domén',
'diskquota_enabled' => 'Kvóta aktivována?',
'diskquota_repquota_path' => [
'description' => 'Cesta k repquota',
],
'diskquota_quotatool_path' => [
'description' => 'Cesta k quotatool',
],
'diskquota_customer_partition' => [
'description' => 'Oddíl, na kterém jsou uloženy zákaznické soubory',
],
'vmail_maildirname' => [
'title' => 'Název maildir',
'description' => 'Maildir adresář do uživatelského účtu. Obvykle \'Maildir\', v některých implementacích \'.maildir\' a přímo do adresáře uživatele, pokud zůstane prázdný.',
],
'catchall_enabled' => [
'title' => 'Použít Catchall',
'description' => 'Chcete svým zákazníkům poskytnout funkci catchall?',
],
'apache_24' => [
'title' => 'Použít úpravy pro Apache 2.4',
'description' => 'POZOR: použijte, pouze pokud máte nainstalovanou apache verzi 2.4 nebo vyšší jinak nebude váš webserver moci spustit',
],
'nginx_fastcgiparams' => [
'title' => 'Cesta k souboru fastcgi_params',
'description' => 'Zadejte cestu k souboru fastcgi_params nginx včetně názvu souboru',
],
'documentroot_use_default_value' => [
'title' => 'Použít název domény jako výchozí hodnotu pro cestu kořenového adresáře dokumentu',
'description' => 'Pokud je povoleno a cesta DocumentRoot je prázdná, výchozí hodnotou bude název (sub)domény.
Příklady: /var/customers/webs/customer_name/example.com/ /var/customers/webs/customer_name/subdomain.example.com/',
],
'panel_phpconfigs_hidesubdomains' => [
'title' => 'Skrýt subdomény v PHP-konfiguračním přehledu',
'description' => 'Pokud je aktivováno, subdomény zákazníků nebudou zobrazeny v přehledu php-konfigurací, zobrazí se pouze počet subdomén.
Poznámka: Toto je viditelné pouze v případě, že jste povolili FCGID nebo PHP-FPM',
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Skrýt standardní subdomény v přehledu konfigurace PHP-',
'description' => 'Pokud je aktivováno, standardní subdomény pro zákazníky se nebudou zobrazovat v přehledu php-konfigurací
Poznámka: Toto je viditelné pouze v případě, že jste povolili FCGID nebo PHP-FPM',
],
'passwordcryptfunc' => [
'title' => 'Vyberte, která metoda šifrování hesla má být použita',
'description' => 'Vyberte, která metoda šifrování heslem má být použita. Pokud toto nastavení změníte, budou šifrována pouze nová hesla s novou metodou. Stávající hesla se nezmění.',
],
'systemdefault' => 'Výchozí systémové nastavení',
'panel_allow_theme_change_admin' => 'Povolit administrátorům změnit motiv',
'panel_allow_theme_change_customer' => 'Umožnit zákazníkům změnu motivu',
'axfrservers' => [
'title' => 'Servery AXFR',
'description' => 'Čárkami oddělený seznam IP adres, které mohou přenášet (AXFR) zóny.',
],
'powerdns_mode' => [
'title' => 'Operační režim PowerDNS',
'description' => 'Vyberte režim PoweDNS: Nativní pro žádnou replikaci (výchozí) / Master, pokud je potřeba DNS replikace.',
],
'customerssl_directory' => [
'title' => 'Adresář zákaznických certifikátů webových serverů',
'description' => 'Kde by měly být vytvořeny ssl-certifikáty zadané zákazníkem?
POZNÁMKA: Obsah této složky je pravidelně smazán, aby se zabránilo ukládání dat do této složky ručně.
',
],
'allow_error_report_admin' => [
'title' => 'Povolit správcům/prodejcům nahlásit chyby databáze froxlor',
'description' => 'Upozornění: Nikdy nám neposílejte žádné osobní (zákaznické)údaje!',
],
'allow_error_report_customer' => [
'title' => 'Umožnit zákazníkům nahlásit chyby databáze froxlor',
'description' => 'Upozornění: Nikdy nám neposílejte žádné osobní (zákaznické)údaje!',
],
'mailtraffic_enabled' => [
'title' => 'Analyzovat přenos pošty',
'description' => 'Povolit analýzu protokolů mailserveru pro výpočet provozu',
],
'mdaserver' => [
'title' => 'MDA typ',
'description' => 'Typ poštovního serveru',
],
'mdalog' => [
'title' => 'Protokol MDA',
'description' => 'Soubor protokolu serveru pro doručování pošty',
],
'mtaserver' => [
'title' => 'MTA typ',
'description' => 'Typ zprostředkovatele pro přenos pošty',
],
'mtalog' => [
'title' => 'Protokol MTA',
'description' => 'Soubor protokolu agenta pro přenos pošty',
],
'system_cronconfig' => [
'title' => 'Konfigurační soubor cronu',
'description' => 'Cesta ke konfiguračnímu souboru cron-service. Tento soubor bude pravidelně a automaticky aktualizován froxlorem. Poznámka: Ujistěte se, že používáte stejný název souboru jako pro hlavní froxlor cronjob (výchozí: /etc/cron.d/froxlor)!
Pokud používáte FreeBSD, zadejte zde /etc/crontab!',
],
'system_crondreload' => [
'title' => 'Příkaz pro opětovné načtení Cron-daemona',
'description' => 'Určete příkaz, který má být proveden, aby bylo možné znovu načíst systémy cron-daemon',
],
'system_croncmdline' => [
'title' => 'Příkaz pro provedení cronu (php-binary)',
'description' => 'Příkaz k provedení našich cronjobů. Změňte to pouze pokud víte, co děláte (výchozí: "/usr/bin/nice -n 5 /usr/bin/php -q")!',
],
'system_cron_allowautoupdate' => [
'title' => 'Povolit automatické aktualizace databáze',
'description' => '
POZOR:
Toto nastavení umožňuje cronjob obejít kontrolu verzí froxlor souborů a databáze a spustit aktualizace databáze v případě, že dojde k nesouladu verzí.
Automatická aktualizace vždy nastaví výchozí hodnoty pro nová nastavení nebo změny. Toto nemusí vždy vyhovovat vašemu systému. Před aktivací této možnosti
prosím dvakrát rozmyslete',
],
'dns_createhostnameentry' => 'Vytvořte bind-zone/config pro název hostitele systému',
'panel_password_alpha_lower' => [
'title' => 'Malé písmo',
'description' => 'Heslo musí obsahovat alespoň jedno malé písmeno (a-z).',
],
'panel_password_alpha_upper' => [
'title' => 'Velké písmeno',
'description' => 'Heslo musí obsahovat alespoň jedno velké písmeno (A-Z).',
],
'panel_password_numeric' => [
'title' => 'Čísla',
'description' => 'Heslo musí obsahovat alespoň jedno číslo (0-9).',
],
'panel_password_special_char_required' => [
'title' => 'Speciální znak',
'description' => 'Heslo musí obsahovat alespoň jeden z níže uvedených znaků.',
],
'panel_password_special_char' => [
'title' => 'Seznam speciálních znaků',
'description' => 'Jeden z těchto znaků je vyžadován, pokud je nastavena výše uvedená volba.',
],
'apache_itksupport' => [
'title' => 'Použít úpravy ITK-MPM Apache',
'description' => 'POZOR: použijte, pouze pokud máte opravdu povoleno apache itk-mpm jinak váš webserver nebude moci spustit',
],
'letsencryptca' => [
'title' => 'ACME prostředí',
'description' => 'Prostředí, které se má použít pro certifikáty Let\'s Encrypt / ZeroSSL.',
],
'letsencryptchallengepath' => [
'title' => 'Cesta k výzvám Let\'s Encrypt',
'description' => 'Adresář, ze kterého by měly být nabízeny výzvy Let\'s Encrypt prostřednictvím globálního aliasu.',
],
'letsencryptkeysize' => [
'title' => 'Velikost klíče pro nové Let\'s Encrypt certifikáty',
'description' => 'Velikost klíče v Bitech pro nové Let\'s Encrypt certifikáty.',
],
'letsencryptreuseold' => [
'title' => 'Znovu použít Let\'s Encrypt klíč',
'description' => 'Pokud je aktivován, bude při každém obnovení použit stejný klíč, jinak bude pokaždé vygenerován nový klíč.',
],
'leenabled' => [
'title' => 'Použít Let\'s Encrypt',
'description' => 'Pokud je aktivováno, zákazníci mohou nechat froxlor automaticky generovat a obnovit šifrovací certifikáty domén s ssl IP/portem.
Nezapomeňte, že musíte procházet konfigurací webserveru, pokud je povoleno, protože tato funkce vyžaduje speciální konfiguraci.',
],
'caa_entry' => [
'title' => 'Generovat CAA DNS záznamy',
'description' => 'Automaticky generuje CAA záznamy pro domény s podporou SSL, které používají Let\'s Encrypt',
],
'caa_entry_custom' => [
'title' => 'Další záznamy CAA DNS',
'description' => 'DNS Certification Authority autorizace (CAA) je mechanismus politiky bezpečnosti internetu, který držitelům doménových jmen umožňuje certifikovat autoritě , zda jsou oprávněni vydávat digitální certifikáty pro určitý název domény. To dělá pomocí nového zdrojového záznamu doménového systému "CAA" (DNS).
Obsah tohoto pole bude zahrnut do DNS zóny přímo (každý řádek vyústí v CAA záznam). Pokud je pro tuto doménu povoleno šifrování, tato položka bude vždy přidána automaticky a nemusí být přidána ručně: 0 problém "letsencrypt". rg" (Pokud doména je doména zástupných znaků, bude místo toho použita vydání). Chcete-li povolit hlášení incidentů, můžete přidat záznam iodef. Příklad pro odeslání zprávy na me@example. om bude: 0 iodef "mailto:me@example. om"
Upozornění: Kód nebude zkontrolován z důvodu chyb. Pokud obsahuje chyby, vaše CAA záznamy nemusí fungovat!',
],
'exportenabled' => [
'title' => 'Povolit export dat pro zákazníky',
'description' => 'Pokud je aktivováno, zákazník bude moci naplánovat úlohy pro export dat (cron-export), které generují archiv ve svém docrootu (podadresář vybraný zákazníkem)',
],
'dnseditorenable' => [
'title' => 'Povolit DNS editor',
'description' => 'Umožňuje administrátorům a zákazníkovi spravovat dns záznamy domén',
],
'dns_server' => [
'title' => 'Daemon DNS serveru',
'description' => 'Nezapomeňte, že "daemons" je třeba konfigurovat pomocí konfiguračních šablon froxloru',
],
'panel_customer_hide_options' => [
'title' => 'Skrytí položek nabídek a grafů návštěvnosti v zákaznickém panelu',
'description' => 'Vyberte položky, které chcete skrýt v panelu zákazníka. Chcete-li vybrat více možností, podržte CTRL při výběru.',
],
'allow_allow_customer_shell' => [
'title' => 'Umožnit zákazníkům povolit přístup přes shell pro uživatele ftp',
'description' => 'Upozornění: Přístup k Shell umožňuje uživateli spustit různé binární soubory ve vašem systému. Používejte s extrémní opatrností. Aktivujte prosím pouze pokud víte, co děláte!!!',
],
'available_shells' => [
'title' => 'Seznam dostupných příkazů',
'description' => 'Čárkami oddělený seznam shellů, z nichž si může zákazník vybrat pro své ftp uživatele.
Všimněte si, že výchozí shell /bin/false bude vždy na výběr (pokud je povolen), i když je toto nastavení prázdné. V každém případě je to výchozí hodnota proftp uživatele',
],
'le_froxlor_enabled' => [
'title' => 'Povolit Let\'s Encrypt pro hostitele froxlor',
'description' => 'Pokud je aktivováno, bude vhost froxloru automaticky zabezpečen pomocí Let\'s Encrypt certifikátu.',
],
'le_froxlor_redirect' => [
'title' => 'Povolit přesměrování SSL pro vhost froxloru',
'description' => 'Pokud je aktivováno, všechny požadavky http na váš froxlor budou přesměrovány na příslušný server SSL.',
],
'option_unavailable_websrv' => ' K dispozici pouze pro: %s',
'option_unavailable' => ' Možnost není dostupná kvůli jiným nastavením.',
'letsencryptacmeconf' => [
'title' => 'Cesta k snippetu acme.conf',
'description' => 'Název souboru v konfiguračním textovém bloku, který umožňuje webovému serveru obsluhovat výzvu acme.',
],
'mail_use_smtp' => 'Nastavte e-mail pro použití SMTP',
'mail_smtp_host' => 'Zadejte SMTP server',
'mail_smtp_usetls' => 'Povolit šifrování TLS',
'mail_smtp_auth' => 'Povolit ověřování SMTP',
'mail_smtp_port' => 'TCP port pro připojení k',
'mail_smtp_user' => 'SMTP uživatelské jméno',
'mail_smtp_passwd' => 'SMTP heslo',
'http2_support' => [
'title' => 'HTTP2 podpora',
'description' => 'povolit podporu HTTP2 pro ssl. POVOLTE POUZE POKUD VÁŠ SERVER TUTO FUNKCI PODPORUJE (nginx verze 1.9.5+, apache2 verze 2.4.17+)',
],
'http3_support' => [
'title' => 'HTTP3 podpora',
'description' => 'povolit podporu HTTP3 pro ssl. POVOLTE POUZE V PŘÍPADĚ, ŽE VÁŠ WEBOVÝ SERVER TUTO FUNKCI PODPORUJE (nginx verze 1.25.0+)',
],
'nssextrausers' => [
'title' => 'Použít libnss-extrauser místo libnss-mysql',
'description' => 'Nečíst uživatele z databáze, ale ze souborů. Aktivujte se, prosím, pouze pokud jste již prošli požadovanými kroky konfigurace (system -> libnss-extrausers). Pouze pro Debian/Ubuntu (nebo pokud jste sami zkompilovali libnss-extrauser!)',
],
'le_domain_dnscheck' => [
'title' => 'Ověřit DNS domén při použití Let\'s Encrypt',
'description' => 'Pokud je aktivováno, froxlor ověří, zda se doména, která žádá o certifikát, směřuje alespoň na jednu ze Ip adres systému.',
],
'le_domain_dnscheck_resolver' => [
'title' => 'Použít externí nameserver pro ověření DNS',
'description' => 'Je-li nastaveno, froxlor použije tuto DNS k ověření DNS domén při použití Let\'s Encrypt. Pokud je prázdné, bude použit výchozí překladač DNS systému.',
],
'phpsettingsforsubdomains' => [
'description' => 'Pokud ano, zvolený php-config bude aktualizován na všechny subdomény',
],
'leapiversion' => [
'title' => 'Zvolte si implementaci ACME pro Let\'s Encrypt',
'description' => 'V současné době je podporována pouze implementace ACME v2 pro Let\'s Encrypt.',
],
'enable_api' => [
'title' => 'Povolit externí použití API',
'description' => 'Chcete-li používat froxlor API, musíte aktivovat tuto možnost. Podrobnější informace naleznete v https://docs.froxlor.org/',
],
'api_customer_default' => '"Povolit přístup k API" pro nové zákazníky',
'dhparams_file' => [
'title' => 'Soubor DHParams (výměna klíčů Diffie-Hellman)',
'description' => 'Pokud je zde zadán soubor dhparams.pem, bude zahrnut do konfigurace webserveru. Ponechte prázdné pro vypnutí. Příklad: /etc/ssl/webserver/dhparams.
Pokud soubor neexistuje, bude vytvořen automaticky s následujícím příkazem: openssl dhparam -out /etc/ssl/webserver/dhparams. em 4096. Před zadáním souboru je doporučeno vytvořit soubor, protože vytvoření trvá docela dlouho a blokuje cronjob.',
],
'errorlog_level' => [
'title' => 'Úroveň protokolů chyb',
'description' => 'Zadejte úroveň protokolu chyb. Výchozí hodnota je "warn" pro apache-user a "error" pro nginx-usery.',
],
'letsencryptecc' => [
'title' => 'Vystavit certifikát ESC / certifikát ECDSA',
'description' => 'Je-li nastaveno na platnou velikost klíče, vystavený certifikát bude používat ECC / ECDSA',
],
'froxloraliases' => [
'title' => 'Aliasy domén pro froxlor vhost',
'description' => 'Čárkami oddělený seznam domén, které mají být přidány jako serverový alias do froxlor vhost',
],
'default_sslvhostconf' => [
'title' => 'Výchozí nastavení SSL vHost-serveru',
'description' => 'Obsah tohoto pole bude přímo zahrnut do tohoto kontejneru s ip/portem. Můžete použít následující proměnné: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}{FPMSOCKET} (pokud existuje) Upozornění: Kód nebude zkontrolován na výskyt chyb. Pokud obsahuje chyby, webový server nemusí znovu spustit!',
],
'includedefault_sslvhostconf' => 'Zahrnout ne-SSL vHost-nastavení v SSL-vHost',
'apply_specialsettings_default' => 'Výchozí hodnota pro "Použít speciální nastavení pro všechny subdomény (*.example.com)" při úpravě domény',
'apply_phpconfigs_default' => 'Výchozí hodnota pro nastavení "Použít php konfiguraci na všechny subdomény" při úpravě domény',
'awstats' => [
'logformat' => [
'title' => 'Nastavení LogFormat',
'description' => 'Pokud používáte vlastní logformat pro svůj webový server, musíte také změnit awstats LogFormat. Výchozí je 1. Pro více informací zkontrolujte dokumentaci zde.',
],
],
'hide_incompatible_settings' => 'Skrýt nekompatibilní nastavení',
'soaemail' => 'E-mailová adresa pro použití v SOA záznamech (výchozí adresa odesílatele z nastavení panelu, pokud je prázdná)',
'imprint_url' => [
'title' => 'Adresa URL k právním poznámkám / otisku',
'description' => 'Zadejte adresu URL svých právních poznámek / stránek s otisky. Odkaz bude viditelný na přihlašovací obrazovce a v zápatí po přihlášení.',
],
'terms_url' => [
'title' => 'URL k podmínkám použití',
'description' => 'Zadejte adresu URL k podmínkám používání. Odkaz bude viditelný na přihlašovací obrazovce a v zápatí při přihlášení.',
],
'privacy_url' => [
'title' => 'URL k zásadám ochrany osobních údajů',
'description' => 'Zadejte adresu URL své stránky se zásadami ochrany osobních údajů / stránky s otisky. Odkaz bude viditelný na přihlašovací obrazovce a v zápatí po přihlášení.',
],
'logo_image_header' => [
'title' => 'Obrázek loga (záhlaví)',
'description' => 'Nahrajte vlastní obrázek loga, který se zobrazí v záhlaví po přihlášení (doporučená výška 30px)',
],
'logo_image_login' => [
'title' => 'Obrázek loga (Přihlašovací obrazovka)',
'description' => 'Nahrajte vlastní obrázek loga, který se zobrazí během přihlášení',
],
'logo_overridetheme' => [
'title' => 'Přepíše logo definované v motivu pomocí "Logo Image" (hlavička a přihlašovací stránka, viz níže)',
'description' => 'Toto musí být nastaveno na "true", pokud máte v úmyslu použít nahrané logo_custom. Alternativně můžete stále používat "Logo custom. ng" a "logo_custom_login.png".',
],
'logo_overridecustom' => [
'title' => 'Přepsat vlastní logo (logo_custom.png a logo_custom_login.png) definované v šabloně "Obrázek loga" (hlavička a přihlášení, viz níže)',
'description' => 'Nastavte na "true" pokud chcete ignorovat vlastní loga pro záhlaví a přihlášení a použít "Logo Image"',
],
'createstdsubdom_default' => [
'title' => 'Předvolená hodnota pro "Vytvořit standardní subdoménu" při vytváření zákazníka',
'description' => '',
],
'froxlorusergroup' => [
'title' => 'Vlastní systémová skupina pro všechny zákazníky',
'description' => 'Použití libnss-extrauser (systémového nastavení) je vyžadováno. Vytváření prázdných hodnot přeskočí nebo odstraní existující skupinu.',
],
'acmeshpath' => [
'title' => 'Cesta k acme.sh',
'description' => 'Nastavte na místo, kde je acme.sh nainstalován, včetně skriptu acme.sh Výchozí je /root/.acme.sh/acme.sh',
],
'update_channel' => [
'title' => 'froxlor aktualizační-kanál',
'description' => 'Vyberte aktualizační kanál froxlor. Výchozí hodnota je "stabilní"',
],
'uc_stable' => 'stabilní',
'uc_testing' => 'testovací',
'uc_nightly' => 'nightly',
'traffictool' => [
'toolselect' => 'Analyzátor provozu',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
'goaccess' => 'goaccess'
],
'requires_reconfiguration' => 'Změna tohoto nastavení může vyžadovat změnu konfigurace následujících služeb: %s',
'req_limit_per_interval' => [
'title' => 'Počet HTTP požadavků na interval',
'description' => 'Omezit počet HTTP požadavků na interval (viz níže) pro froxlor, výchozí hodnota je "60"',
],
'req_limit_interval' => [
'title' => 'Interval omezení rychlosti',
'description' => 'Zadejte čas v sekundách pro počet HTTP požadavků. Výchozí hodnota je "60"',
],
'option_requires_otp' => 'Toto nastavení vyžaduje ověření přes OTP',
'panel_menu_collapsed' => [
'title' => 'Sbalit sekce menu',
'description' => 'Pokud dojde k deaktivaci, levé části menu budou vždy rozšířeny.',
],
'le_renew_services' => [
'title' => 'Pro tyto služby použijte certifikát froxloru Let\'s Encrypt',
'description' => 'Pokud je nastavena hodnota none (nebo je níže uvedený příkaz renew-hook prázdný), nebudou u vybraných služeb provedeny žádné úpravy konfigurace týkající se ssl.
Příkaz reload-command pro vybrané služby by měl být přidán do příkazu renew-hook, jinak se změny konfigurace nebo obnovené certifikáty nemusí správně použít.',
],
'le_renew_hook' => [
'title' => 'Příkaz renew-hook programu Let\'s Encrypt',
'description' => 'Nastavte příkaz, který restartuje výše vybrané služby, aby služba mohla obnovené certifikáty správně používat.',
],
],
'spf' => [
'use_spf' => [
'title' => 'Aktivovat SPF pro domény?',
'description' => 'Vyžaduje pro doménu určitou položku dns. Pokud nepoužíváte funkci nameserver, budete muset tyto položky ručně spravovat.',
],
'spf_entry' => 'SPF položka pro všechny domény',
],
'dmarc' => [
'use_dmarc' => [
'title' => 'Aktivovat DMARC pro domény?',
'description' => 'Vyžaduje pro doménu určitou položku dns. Pokud nepoužíváte funkci nameserver, budete muset tyto položky ručně spravovat.',
],
'dmarc_entry' => 'DMARC záznam pro všechny domény',
],
'ssl_certificates' => [
'certificate_for' => 'Certifikát pro',
'valid_from' => 'Platné od',
'valid_until' => 'Platné do',
'issuer' => 'Vydavatel',
],
'success' => [
'success' => 'Informace',
'clickheretocontinue' => 'Klikněte zde pro pokračování',
'settingssaved' => 'Nastavení bylo úspěšně uloženo.',
'rebuildingconfigs' => 'Úspěšně vložené úkoly pro obnovení konfiguračních souborů',
'domain_import_successfully' => 'Úspěšně importováno %s domén.',
'exportscheduled' => 'Vaše exportní úloha byla naplánována. Počkejte prosím na její zpracování',
'exportaborted' => 'Váš plánovaný export byl zrušen',
'dns_record_added' => 'Záznam byl úspěšně přidán',
'dns_record_deleted' => 'Záznam byl úspěšně odstraněn',
'testmailsent' => 'Testovací e-mail byl úspěšně odeslán',
'settingsimported' => 'Nastavení bylo úspěšně importováno',
'sent_error_report' => 'Hlášení o chybách bylo úspěšně odesláno. Děkujeme za váš příspěvek.',
],
'tasks' => [
'outstanding_tasks' => 'Nevyřízené úlohy',
'REBUILD_VHOST' => 'Obnovení konfigurace webserveru',
'CREATE_HOME' => 'Přidávání nového zákazníka %s',
'REBUILD_DNS' => 'Obnovení bind konfigurace',
'CREATE_FTP' => 'Vytváření adresáře pro nového uživatele ftp-user',
'DELETE_CUSTOMER_FILES' => 'Mazání zákaznických souborů %s',
'noneoutstanding' => 'V současné době nejsou žádné nevyřízené úkoly pro froxlor',
'DELETE_EMAIL_DATA' => 'Odstranit e-mailová data zákazníka.',
'DELETE_FTP_DATA' => 'Odstranit data ftp účtu.',
'REBUILD_RSPAMD' => 'Obnovení konfigurace antispamu.',
'CREATE_QUOTA' => 'Nastavit kvótu na souborovém systému',
'REBUILD_CRON' => 'Obnovení cron.d-souboru',
'CREATE_CUSTOMER_DATADUMP' => 'Úloha pro export dat pro zákazníka %s',
'DELETE_DOMAIN_PDNS' => 'Odstranit doménu %s z databáze PowerDNS',
'DELETE_DOMAIN_SSL' => 'Odstranit ssl soubory domény %s',
'UPDATE_LE_SERVICES' => 'Aktualizace systémových služeb pro Let\'s Encrypt',
],
'terms' => 'Podmínky použití',
'traffic' => [
'month' => 'Měsíc',
'day' => 'Den',
'months' => [
1 => 'Leden',
2 => 'Únor',
3 => 'Březen',
4 => 'Duben',
5 => 'Květen',
6 => 'Červen',
7 => 'Červenec',
8 => 'Srpen',
9 => 'Září',
10 => 'Říjen',
11 => 'Listopad',
12 => 'Prosinec',
'jan' => 'Led',
'feb' => 'Ún',
'mar' => 'Bře',
'apr' => 'Dub',
'may' => 'Kvě',
'jun' => 'Čvn',
'jul' => 'Čvc',
'aug' => 'Srp',
'sep' => 'Zář',
'oct' => 'Říj',
'nov' => 'Lis',
'dec' => 'Pro',
'total' => 'Celkem',
],
'mb' => 'Provoz',
'sumtotal' => 'Celkový provoz',
'sumhttp' => 'HTTP provoz',
'sumftp' => 'FTP provoz',
'summail' => 'Přenos e-mailů',
'customer' => 'Zákazník',
'domain' => 'Doména',
'trafficoverview' => 'Shrnutí provozu',
'bycustomers' => 'Provoz podle zákazníků',
'details' => 'Podrobnosti',
'http' => 'HTTP',
'ftp' => 'FTP',
'mail' => 'Mail',
'nocustomers' => 'Potřebujete alespoň jednoho zákazníka pro zobrazení statistik provozu.',
'top5customers' => 'Top 5 zákazníků',
'nodata' => 'Pro daný rozsah nebyla nalezena žádná data.',
'ranges' => [
'last24h' => 'posledních 24 hodin',
'last7d' => 'posledních 7 dní',
'last30d' => 'posledních 30 dní',
'cm' => 'Aktuální měsíc',
'last3m' => 'poslední 3 měsíce',
'last6m' => 'posledních 6 měsíců',
'last12m' => 'posledních 12 měsíců',
'cy' => 'Aktuální rok',
],
'byrange' => 'Určeno podle rozsahu',
],
'translator' => '',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'Byla nainstalována novější verze froxloru, ale ještě nebyla nastavena. Pouze správce se může přihlásit a dokončit aktualizaci.',
'update' => 'Aktualizace froxloru',
'proceed' => 'Pokračovat',
'update_information' => [
'part_a' => 'froxlor soubory byly aktualizovány na verzi %s. Nainstalovaná verze je %s.',
'part_b' => '
Zákazníci se nebudou moci přihlásit, dokud nebude aktualizace dokončena. Pokračovat?',
],
'noupdatesavail' => 'Již máte nejnovější verzi %sfroxlor nainstalovanou.',
'description' => 'Probíhá aktualizace databáze pro vaši instalaci froxlor',
'uc_newinfo' => 'K dispozici je novější verze %s: "%s" (Vaše aktuální verze je: %s)',
'notify_subject' => 'K dispozici je nová aktualizace',
'dbupdate_required' => 'froxlor soubory byly aktualizovány, je vyžadována aktualizace databáze',
],
'usersettings' => [
'custom_notes' => [
'title' => 'Vlastní poznámky',
'description' => 'Nebojte se zde vložit jakékoliv poznámky, které chcete/potřebujete. Zobrazí se v přehledu správce/zákazníka pro příslušného uživatele. Markdown je podporován, HTML bude odstraněno.',
'show' => 'Zobrazit své poznámky na nástěnce uživatele',
],
'api_allowed' => [
'title' => 'Povolit přístup k API',
'description' => 'Pokud je povoleno v nastavení, může tento uživatel vytvořit API klíče a přistupovat k froxlor API',
'notice' => 'Přístup k API není povolen pro váš účet.',
],
'shell_allowed' => [
'title' => 'Povolit přístup k shellu',
'description' => 'Pokud je tato možnost povolena v nastavení, může tento uživatel přiřadit přístup k shellu uživatelům ftp.',
],
'gui_access' => [
'title' => 'Povolit přihlášení do WebUI',
'description' => 'Pokud je zakázáno, uživatel se nemůže přihlásit do froxlor web-ui, ale všechny služby (web, ftp, mail, databáze, api-přístup atd.) budou fungovat normálně.',
],
],
'install' => [
'slogan' => 'panel pro správu serveru froxlor',
'preflight' => 'Kontrola systému',
'critical_error' => 'Kritická chyba',
'suggestions' => 'Není vyžadováno, ale doporučuje se',
'phpinfosuccess' => 'Váš systém běží s PHP %s',
'suggestionsnote' => 'Neexistují žádné kritické chyby, které by bránily instalaci, ale pro optimální fungování prosím postupujte podle níže uvedených doporučení.',
'phpinfowarn' => 'Váš systém běží na nižší verzi než PHP %s',
'phpinfoupdate' => 'Aktualizujte vaši aktuální verzi PHP z %s na %s nebo vyšší',
'start_installation' => 'Spustit instalaci',
'check_again' => 'Znovu načtěte a zkontrolujte',
'switchmode_advanced' => 'Zobrazit rozšířené možnosti',
'switchmode_basic' => 'Skrýt rozšířené možnosti',
'dependency_check' => [
'title' => 'Vítejte ve froxloru',
'description' => 'Zkontrolujeme závislost systému, abychom zajistili, že budou povolena všechna požadovaná php rozšíření a moduly, aby froxlor běžel správně.',
],
'database' => [
'top' => 'Databáze',
'title' => 'Vytvořit databázi a uživatele',
'description' => 'froxlor vyžaduje databázi a navíc privilegovaného uživatele, aby mohl vytvářet uživatele a databáze (volba GRANT). Daná databáze a neprivilegovaný databázový uživatel bude vytvořen v tomto procesu. Oprávněný uživatel musí existovat.',
'user' => 'Neoprávněný databázový uživatel',
'dbname' => 'Název databáze',
'force_create' => 'Zálohovat a přepsat databázi, pokud existuje?',
],
'admin' => [
'top' => 'Admin uživatel',
'title' => 'Pojďme vytvořit hlavního administrátora.',
'description' => 'Tomuto uživateli budou udělena všechna oprávnění pro úpravu nastavení a přidávání/aktualizace/mazání zdrojů, jako jsou zákazníci, domény, atd.',
'use_admin_email_as_sender' => 'Použijte výše uvedenou e-mailovou adresu jako adresu odesílatele. Pokud není zaškrtnuto, zadejte prosím níže uvedenou adresu odesílatele.',
'use_autogenerated_email_as_sender' => 'Ponechte prázdné pro výchozí: admin@názevserveru',
],
'system' => [
'top' => 'Systémové nastavení',
'title' => 'Podrobnosti o Vašem serveru',
'description' => 'Nastavte si své prostředí stejně jako data a možnosti související se serverem, aby se froxlor mohl dozvědět o vašem systému. Tyto hodnoty jsou klíčové pro konfiguraci a fungování systému.',
'ipv4' => 'Primární IPv4 adresa (použije-li se)',
'ipv6' => 'Primární IPv6 adresa (použije-li se)',
'servername' => 'Název serveru (FQDN, žádná ip-adresa)',
'phpbackend' => 'PHP backend',
'activate_newsfeed' => 'Povolit oficiální novinky (externí zdroj: https://inside.froxlor.org/news/)',
],
'install' => [
'top' => 'Dokončit nastavení',
'title' => 'Poslední krok...',
'description' => 'Níže uvedený příkaz stáhne, nainstaluje a nakonfiguruje požadované služby ve vašem systému podle údajů, které jste zadali v tomto instalačním procesu.
Nezapomeňte spustit následující příkaz jako root na shell/terminál serveru a uvědomte si, že tento příkaz přepíše jakoukoli existující konfiguraci pro použité služby (budou vytvořeny zálohy)!. Pokud nechcete přepsat žádné konfigurace, vyberte možnost Nakonfiguruji služby ručně v dolní části této stránky!',
'runcmd' => 'Spusťte následující příkaz pro dokončení instalace:',
'manual_config' => 'Služby nakonfiguruji ručně, stačí mě přesměrovat k přihlášení',
'waitforconfig' => 'Čekání na konfiguraci služeb...',
],
'errors' => [
'wrong_ownership' => 'Ujistěte se, že soubory froxlor jsou vlastněny %s:%s',
'missing_extensions' => 'Následující php rozšíření jsou vyžadována a nejsou nainstalována',
'suggestedextensions' => 'Následující php rozšíření se nepodařilo najít, ale jsou doporučeny',
'databaseexists' => 'Databáze již existuje, prosím nastavte možnost přepsání pro obnovu nebo zvolte jiný název',
'unabletocreatedb' => 'Nelze vytvořit testovací databázi',
'unabletodropdb' => 'Nelze zrušit zkušební databázi',
'mysqlusernameexists' => 'Uživatel určený pro uživatele bez oprávnění již existuje. Použijte prosím jiné uživatelské jméno, nebo jej odstraňte.',
'unabletocreateuser' => 'Nelze vytvořit testovacího uživatele',
'unabletodropuser' => 'Nelze zrušit testovací uživatele',
'unabletoflushprivs' => 'Zadaný privilegovaný uživatel nemůže vymazat oprávnění',
'nov4andnov6ip' => 'Musí být zadána adresa IPv4 nebo IPv6',
'servernameneedstobevalid' => 'Zadaný název serveru se nezdá být FQDN nebo hostname',
'websrvuserdoesnotexist' => 'Zdá se, že uživatel webového serveru v systému neexistuje',
'websrvgrpdoesnotexist' => 'Zdá se, že daná webserverová skupina v systému neexistuje',
'notyetconfigured' => 'Zdá se, že služby ještě nebyly nakonfigurovány (úspěšně). Proveďte prosím příkaz níže nebo zaškrtněte políčko pro pozdější zpracování.',
'mandatory_field_not_set' => 'Povinné pole "%s" není nastaveno!',
'unexpected_database_error' => 'Došlo k neočekávané výjimce databáze. %s',
'sql_import_failed' => 'Nepodařilo se importovat SQL data!',
'unprivileged_sql_connection_failed' => 'Nepodařilo se inicializovat neprivilegované SQL připojení!',
'privileged_sql_connection_failed' => 'Nepodařilo se inicializovat privilegované SQL připojení!',
'mysqldump_backup_failed' => 'Nelze vytvořit zálohu databáze, došlo k chybě mysqldump.',
'sql_backup_file_missing' => 'Nelze vytvořit zálohu databáze, záložní soubor neexistuje.',
'backup_binary_missing' => 'Nelze vytvořit zálohu databáze, ujistěte se, že jste nainstalovali mysqldump.',
'creating_configfile_failed' => 'Nelze vytvořit konfigurační soubory, nelze zapisovat do souboru.',
'database_already_exiting' => 'Našli jsme databázi a nebylo možné ji přepsat!'
]
],
'welcome' => [
'title' => 'Vítejte ve froxloru!',
'config_note' => 'Aby mohl froxlor správně komunikovat se zálohou, musíte ji nakonfigurovat.',
'config_now' => 'Nastavit nyní'
],
];
================================================
FILE: lng/de.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => 'Tschechisch',
'de' => 'Deutsch',
'en' => 'Englisch',
'fr' => 'Französisch',
'hu' => 'Ungarisch',
'it' => 'Italienisch',
'nl' => 'Niederländisch',
'pt' => 'Portugiesisch',
'se' => 'Schwedisch',
'sk' => 'Slowakisch',
'es' => 'Spanisch',
'ca' => 'Katalanisch',
'zh_CN' => 'Chinesisch (Vereinfacht)',
],
'2fa' => [
'2fa' => '2FA Optionen',
'2fa_enabled' => 'Aktiviere Zwei-Faktor Authentifizierung (2FA)',
'2fa_removed' => '2FA erfolgreich gelöscht',
'2fa_added' => '2FA erfolgreich aktiviert 2FA Details öffnen',
'2fa_add' => '2FA aktivieren',
'2fa_delete' => '2FA deaktivieren',
'2fa_verify' => 'Code verifizieren',
'2fa_overview_desc' => 'Hier kann für das Konto eine Zwei-Faktor-Authentisierung aktiviert werden.
Es kann entweder eine Authenticator-App (time-based one-time password / TOTP) genutzt werden oder ein Einmalpasswort, welches nach erfolgreichem Login an die hinterlegte E-Mail Adresse gesendet wird.',
'2fa_email_desc' => 'Das Konto ist eingerichtet, um Einmalpasswörter per E-Mail zu erhalten. Zum Deaktivieren, klicke auf "2FA deaktivieren"',
'2fa_ga_desc' => 'Das Konto ist eingerichtet, um zeitbasierte Einmalpasswörter via Authenticator-App zu erhalten. Um die gewünschte Authenticator-App einzurichten, scanne bitte den untenstehenden QR-Code. Zum Deaktivieren, klicke auf "2FA deaktivieren"',
'2fa_not_activated' => 'Zwei-Faktor Authentifizierung ist nicht aktiviert',
'2fa_not_activated_for_user' => 'Zwei-Faktor Authentifizierung ist für den aktuellen Benutzer nicht aktiviert',
'type_2fa' => '2FA Status',
],
'admin' => [
'overview' => 'Übersicht',
'ressourcedetails' => 'Verbrauchte Ressourcen',
'systemdetails' => 'Systemdetails',
'froxlordetails' => 'froxlor-Details',
'installedversion' => 'Installierte Version',
'latestversion' => 'Neueste Version',
'lookfornewversion' => [
'clickhere' => 'per Webservice abfragen - Hier klicken',
'error' => 'Fehler bei Abfrage',
],
'resources' => 'Ressourcen',
'customer' => 'Kunde',
'customers' => 'Kunden',
'customers_list_desc' => 'Kundenverwaltung',
'customer_add' => 'Kunden anlegen',
'customer_edit' => 'Kunden bearbeiten',
'username_default_msg' => 'Leer lassen für automatische Benutzername-Vergabe',
'password_default_msg' => 'Leer lassen für Passwortgenerierung',
'domains' => 'Domains',
'domain_add' => 'Domain anlegen',
'domain_edit' => 'Domain bearbeiten',
'subdomainforemail' => 'Subdomains als E-Mail-Domains erlauben',
'admin' => 'Admin',
'admins' => 'Admins',
'admin_add' => 'Admin anlegen',
'admin_edit' => 'Admin bearbeiten',
'customers_see_all' => 'Zugriff auf Resourcen anderer Admins/Reseller?',
'change_serversettings' => 'Kann Servereinstellungen bearbeiten?',
'serversettings' => 'Einstellungen',
'serversettings_desc' => 'Verwalte dein froxlor System',
'rebuildconf' => 'Configs neu schreiben',
'stdsubdomain' => 'Standardsubdomain',
'stdsubdomain_add' => 'Standardsubdomain anlegen',
'phpenabled' => 'PHP verfügbar',
'deactivated' => 'Gesperrt',
'deactivated_user' => 'Benutzer sperren',
'sendpassword' => 'Passwort zusenden',
'ownvhostsettings' => 'Eigene vHost-Einstellungen',
'configfiles' => [
'serverconfiguration' => 'Konfiguration',
'overview' => 'Übersicht',
'wizard' => 'Assistent',
'distribution' => 'Distribution',
'service' => 'Service',
'daemon' => 'Daemon',
'http' => 'Webserver (HTTP)',
'dns' => 'Nameserver (DNS)',
'mail' => 'Mailserver (IMAP/POP3)',
'smtp' => 'Mailserver (SMTP)',
'ftp' => 'FTP-Server',
'etc' => 'Sonstige (System)',
'choosedistribution' => '-- Distribution wählen --',
'chooseservice' => '-- Service wählen --',
'choosedaemon' => '-- Daemon wählen --',
'statistics' => 'Statistik',
'compactoverview' => 'Kompakt-Übersicht',
'legend' => '
Sie konfigurieren nun einen Service/Daemon.
',
'commands' => 'Kommandos: Die angezeigten Befehle müssen als Benutzer root in einer Shell ausgeführt werden. Es kann auch problemlos der ganze Block kopiert und in die Shell eingefügt werden.',
'files' => 'Konfigurationsdateien: Der Befehl direkt vor dem Textfeld sollte einen Editor mit der Zieldatei öffnen. Der Inhalt kann nun einfach kopiert und in den Editor eingefügt und die Datei gespeichert werden. Bitte beachten: Das MySQL-Passwort wurde aus Sicherheitsgründen nicht ersetzt. Bitte ersetzen Sie "FROXLOR_MYSQL_PASSWORD" manuell oder nutzen Sie das folgende Formular, um es temporär auf dieser Seite zu setzen. Falls das Passwort vergessen wurde, findet es sich in der Datei "lib/userdata.inc.php".',
'finishnote' => 'Parameter Datei erfolgreich erstellt. Folgende Befehle müssen als root ausgeführt werden:',
'description' => 'System-Dienste konfigurieren',
'minihowto' => 'Auf dieser Seite können die verschiedenen Konfigurationsvorlagen für jeden Dienst angezeigt werden, bestimmte Dienste bei Bedarf (erneut) konfiguriert oder die aktuelle Auswahl in eine JSON-Datei exportiert werden, um sie in den CLI-Skripten oder auf einem anderen Server zu verwenden.
Beachte, dass die hervorgehobenen Dienste nicht die auf dem Server genutzten Dienste widerspiegeln, sondern Anforderungen/Empfehlungen aus den aktuellen Einstellungswerten zeigen.',
'skipconfig' => 'Nicht (erneut) konfigurieren',
'recommendednote' => 'Empfohlene/benötigte Dienste anhand der aktuellen Systemeinstellungen',
'selectrecommended' => 'Empfohlene wählen',
'downloadselected' => 'Auswahl exportieren',
],
'templates' => [
'templates' => 'E-Mail-Vorlagen',
'template_add' => 'Vorlage hinzufügen',
'template_fileadd' => 'Dateivorlage hinzufügen',
'template_edit' => 'Vorlage bearbeiten',
'action' => 'Aktion',
'email' => 'E-Mail- & Dateivorlagen',
'subject' => 'Betreff',
'mailbody' => 'Mailtext',
'createcustomer' => 'Willkommensmail für neue Kunden',
'pop_success' => 'Willkommensmail für neue E-Mail-Konten',
'template_replace_vars' => 'Variablen, die in den Vorlagen ersetzt werden:',
'SALUTATION' => 'Wird mit einer korrekten Anrede des Kunden ersetzt.',
'FIRSTNAME' => 'Wird mit dem Vornamen des Kunden ersetzt.',
'NAME' => 'Wird mit dem Namen des Kunden ersetzt.',
'COMPANY' => 'Wird mit dem Firmennamen des Kunden ersetzt.',
'USERNAME' => 'Wird mit dem Benutzernamen des neuen Kundenkontos ersetzt.',
'PASSWORD' => 'Wird mit dem Passwort des neuen Kundenkontos ersetzt.',
'EMAIL' => 'Wird mit der Adresse des neuen E-Mail-Kontos ersetzt.',
'CUSTOMER_NO' => 'Wir mit der Kunden-Nummer ersetzt',
'TRAFFIC' => 'Wird mit Traffic, der dem Kunden zugewiesen wurde, ersetzt.',
'TRAFFICUSED' => 'Wird mit Traffic, der vom Kunden bereits verbraucht wurde, ersetzt.',
'pop_success_alternative' => 'Willkommensmail für neue E-Mail-Konten für die alternative E-Mail-Adresse',
'EMAIL_PASSWORD' => 'Wird mit dem Passwort des neuen POP3/IMAP Kontos ersetzt.',
'index_html' => 'index Datei für neu erzeugte Kundenverzeichnisse',
'unconfigured_html' => 'index Datei für unkonfigurierte/unbekannte Domains',
'unconfigured_content_fallback' => 'Diese Domain muss über das froxlor-Serververwaltungspanel konfiguriert werden, da sie derzeit keinem Kunden zugewiesen ist.',
'file_extension' => [
'description' => 'Die Dateiendung für die index Datei muss zwischen 1 und 6 Zeichen lang sein und darf nur aus den Zeichen a-z, A-Z und 0-9 bestehen
Standard: html',
'title' => 'Dateiendung für Datei Vorlage',
],
'SERVERNAME' => 'Wird mit dem Servernamen ersetzt.',
'CUSTOMER' => 'Wird mit dem Loginnamen des Kunden ersetzt. Nur für "index Datei für neu erzeugte Kundenverzeichnisse".',
'ADMIN' => 'Wird mit dem Loginnamen des Admins ersetzt. Nur für "index Datei für neu erzeugte Kundenverzeichnisse".',
'CUSTOMER_EMAIL' => 'Wird mit der E-Mail-Adresse des Kunden ersetzt. Nur für "index Datei für neu erzeugte Kundenverzeichnisse".',
'ADMIN_EMAIL' => 'Wird mit der E-Mail-Adresse des Admin ersetzt. Nur für "index Datei für neu erzeugte Kundenverzeichnisse".',
'filetemplates' => 'Dateivorlagen',
'filecontent' => 'Dateiinhalt',
'new_database_by_customer' => 'Kunden-Benachrichtigungs nach Erstellung einer neuen Datenbank',
'new_ftpaccount_by_customer' => 'Kunden-Benachrichtigung nach Erstellung eines neuen FTP-Benutzers',
'newdatabase' => 'Benachrichtigungs-Mails für neue Datenbank',
'newftpuser' => 'Benachrichtigungs-Mails für neuen FTP-Benutzer',
'CUST_NAME' => 'Kundenname',
'DB_NAME' => 'Datenbankname',
'DB_PASS' => 'Datenbankpasswort',
'DB_DESC' => 'Datenbankbeschreibung',
'DB_SRV' => 'Datenbankserver',
'PMA_URI' => 'URL zu phpMyAdmin (wenn angegeben)',
'USR_NAME' => 'FTP-Benutzername',
'USR_PASS' => 'FTP-Passwort',
'USR_PATH' => 'FTP-Heimatverzeichnis (relativ zum Kunden-Heimatverzeichnis)',
'forgotpwd' => 'Benachrichtigungs-Mails bei Zurücksetzen des Passworts',
'password_reset' => 'Kunden-Benachrichtigung nach Zurücksetzen des Passworts',
'trafficmaxpercent' => 'Hinweismail für Kunden, wenn sie die angegebenen Prozent des Traffics verbraucht haben',
'MAX_PERCENT' => 'Wird mit dem Webspace/Traffic-Limit, welches dem Kunden zugewiesen wurde, ersetzt.',
'USAGE_PERCENT' => 'Wird mit dem Webspace/Traffic, welcher vom Kunden bereits verbraucht wurde, ersetzt.',
'diskmaxpercent' => 'Hinweismail für Kunden, wenn sie die angegebenen Prozent des Webspaces verbraucht haben',
'DISKAVAILABLE' => 'Wird mit dem Webspace, der dem Kunden zugewiesen wurde, ersetzt.',
'DISKUSED' => 'Wird mit dem Webspace, welcher vom Kunden bereits verbraucht wurde, ersetzt.',
'LINK' => 'Wird mit dem Link zum Zurücksetzen des Passworts ersetzt.',
'SERVER_HOSTNAME' => 'Wird mit dem System-Hostname (URL zu froxlor) ersetzt',
'SERVER_IP' => 'Wird mit der Standard-System-IP-Adresse ersetzt',
'SERVER_PORT' => 'Wird mit dem Standard-Port ersetzt',
'DOMAINNAME' => 'Wird mit der Standardsubdomain des Kunden ersetzt (kann leer sein, wenn keine erstellt werden soll)',
],
'createzonefile' => 'DNS Zone für Domain erstellen',
'custombindzone' => 'Eigene / manuelle Zone',
'bindzonewarning' => 'Leer für Standardeinstellung. WARNUNG: Bei der Verwendung einer Zonendatei müssen alle benötigten Records aller Subdomains ebenfalls manuell verwaltet werden.',
'ipsandports' => [
'ipsandports' => 'IPs und Ports',
'add' => 'IP-Adresse/Port hinzufügen',
'edit' => 'IP-Adresse/Port bearbeiten',
'ipandport' => 'IP-Adresse/Port',
'ip' => 'IP-Adresse',
'ipnote' => '
Hinweis: Obwohl private IP Adressen erlaubt sind, kann es bei manchen Features wie DNS zu ungewolltem Verhalten kommen. Verwende private Adressen nur wenn du sicher bist.
',
'port' => 'Port',
'create_listen_statement' => 'Erstelle Listen-Eintrag',
'create_namevirtualhost_statement' => 'Erstelle NameVirtualHost-Eintrag',
'create_vhostcontainer' => 'Erstelle vHost-Container',
'create_vhostcontainer_servername_statement' => 'Erstelle ServerName-Eintrag im vHost-Container',
'enable_ssl' => 'Ist dies ein SSL-Port?',
'ssl_cert_file' => 'Pfad zum Zertifikat',
'webserverdefaultconfig' => 'Webserver-Standard-Konfiguration',
'webserverdomainconfig' => 'Webserver-Domain-Konfiguration',
'webserverssldomainconfig' => 'Webserver-SSL-Konfiguration',
'ssl_key_file' => 'Pfad zum SSL-Private-Key',
'ssl_ca_file' => 'Pfad zum SSL-CA-Zertifikat (optional)',
'default_vhostconf_domain' => 'Standard vHost-Einstellungen für jeden Domain-Container',
'ssl_cert_chainfile' => [
'title' => 'Pfad zu dem SSL-CertificateChainFile (optional)',
'description' => 'Meist CA_Bundle, o. Ä. Dies ist das Feld, das gesetzt werden sollte, wenn ein gekauftes SSL-Zertifikat vorliegt.',
],
'docroot' => [
'title' => 'Benutzerdefinierter Docroot (wenn leer, zeige auf froxlor)',
'description' => 'Hier kann ein benutzerdefinierter Document-Root (der Zielordner für einen Zugriff) für diese IP/Port Kombination gesetzt werden. ACHTUNG: Bitte überlege vorher, welchen Pfad du hier angibst!',
],
'ssl_paste_description' => 'Bitte den Inhalt der Zertifikatsdatei in das Textfeld kopieren.',
'ssl_cert_file_content' => 'Inhalt des SSL-Zertifikats (Certificate)',
'ssl_key_file_content' => 'Inhalt der Key-Datei (Private-Key)',
'ssl_ca_file_content' => 'Inhalt der SSL-CA-Datei (optional)',
'ssl_ca_file_content_desc' => '
Client Authentifizierung, dieses Feld sollte nur gesetzt werden, wenn es wirklich gebraucht wird.',
'ssl_cert_chainfile_content' => 'Inhalt des SSL-CertificateChainFile (optional)',
'ssl_cert_chainfile_content_desc' => '
Meist CA_Bundle, o. Ä. Dies ist das Feld, das gesetzt werden sollte, wenn ein gekauftes SSL-Zertifikat vorliegt.',
'ssl_default_vhostconf_domain' => 'Standard SSL vHost-Einstellungen für jeden Domain-Container',
],
'memorylimitdisabled' => 'Deaktiviert',
'valuemandatory' => 'Dieses Feld muss ausgefüllt werden.',
'valuemandatorycompany' => 'Entweder "Name" und "Vorname" oder "Firma" muss ausgefüllt werden.',
'serversoftware' => 'Webserver',
'phpversion' => 'PHP-Version',
'mysqlserverversion' => 'MySQL-Server-Version',
'webserverinterface' => 'Webserver-Interface',
'accountsettings' => 'Konteneinstellungen',
'panelsettings' => 'Panel-Einstellungen',
'systemsettings' => 'Systemeinstellungen',
'webserversettings' => 'Webserver-Einstellungen',
'mailserversettings' => 'Mailserver-Einstellungen',
'nameserversettings' => 'Nameserver-Einstellungen',
'updatecounters' => 'Ressourcenverbrauch',
'subcanemaildomain' => [
'never' => 'Nie',
'choosableno' => 'Wählbar, Standardwert: Nein',
'choosableyes' => 'Wählbar, Standardwert: Ja',
'always' => 'Immer',
],
'wipecleartextmailpwd' => 'Klartext-Passwörter leeren',
'webalizersettings' => 'Webalizereinstellungen',
'webalizer' => [
'normal' => 'Normal',
'quiet' => 'Leise',
'veryquiet' => 'Keine Ausgaben',
],
'domain_nocustomeraddingavailable' => 'Es können derzeit keine Domains angelegt werden. Sie müssen zuerst einen Kunden anlegen',
'loggersettings' => 'Log-Einstellungen',
'logger' => [
'normal' => 'Normal',
'paranoid' => 'Paranoid',
],
'emaildomain' => 'E-Mail-Domain',
'email_only' => 'Nur als E-Mail-Domain verwenden?',
'wwwserveralias' => 'Einen "www." ServerAlias hinzufügen',
'subject' => 'Betreff',
'recipient' => 'Empfänger',
'message' => 'Rundmail senden',
'text' => 'Nachricht',
'sslsettings' => 'SSL-Einstellungen',
'specialsettings_replacements' => 'Die folgenden Variablen können verwendet werden: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (wenn zutreffend) ',
'antispam_settings' => 'Antispam-Einstellungen',
'caneditphpsettings' => 'Kann PHP-bezogene Domaineinstellungen vornehmen?',
'allips' => 'Alle IP-Adressen',
'awstatssettings' => 'AWstats-Einstellungen',
'domain_dns_settings' => 'Domain-DNS-Einstellungen',
'activated' => 'Aktiviert',
'statisticsettings' => 'Statistik-Einstellungen',
'or' => 'oder',
'sysload' => 'System-Auslastung',
'noloadavailable' => 'nicht verfügbar',
'nouptimeavailable' => 'nicht verfügbar',
'nosubject' => '(Kein Betreff)',
'show_version_login' => [
'title' => 'Zeige froxlor Version beim Login',
'description' => 'Zeige froxlor Version in der Fußzeile der Loginseite',
],
'show_version_footer' => [
'title' => 'Zeige froxlor Version in Fußzeile',
'description' => 'Zeige froxlor Version in der Fußzeile aller anderen Seiten',
],
'froxlor_graphic' => [
'title' => 'Grafik im Kopfbereich des Panels',
'description' => 'Welche Grafik soll im Kopfbereich des Panels anstatt des froxlor Logos angezeigt werden?',
],
'phpsettings' => [
'title' => 'PHP-Konfiguration',
'description' => 'Kurzbeschreibung',
'actions' => 'Aktionen',
'activedomains' => 'In Verwendung für Domain(s)',
'notused' => 'Konfiguration wird nicht verwendet',
'editsettings' => 'PHP-Konfiguration bearbeiten',
'addsettings' => 'PHP-Konfiguration erstellen',
'viewsettings' => 'PHP-Konfiguration ansehen',
'phpinisettings' => 'php.ini-Einstellungen',
'addnew' => 'Neue PHP Konfiguration erstellen',
'binary' => 'PHP-Binary',
'fpmdesc' => 'PHP-FPM Config',
'file_extensions' => 'Dateiendungen',
'file_extensions_note' => '(ohne Punkt, durch Leerzeichen getrennt)',
'enable_slowlog' => 'FPM-slowlog pro Domain aktivieren',
'request_terminate_timeout' => 'request_terminate_timeout',
'request_slowlog_timeout' => 'request_slowlog_timeout',
'activephpconfigs' => 'In Verwendung für PHP-Konfiguration(en)',
'pass_authorizationheader' => 'Übergeben von HTTP AUTH BASIC/DIGEST-Headern von Apache an PHP',
],
'misc' => 'Sonstiges',
'fpmsettings' => [
'addnew' => 'Neue PHP Version erstellen',
'edit' => 'PHP version bearbeiten',
],
'phpconfig' => [
'template_replace_vars' => 'Variablen, die in den Konfigurationen ersetzt werden',
'pear_dir' => 'Wird mit dem globalen Wert für das Include Verzeichnis ersetzt.',
'open_basedir_c' => 'Wird mit einem ; (Semikolon) ersetzt, um open_basedir auszukommentieren/deaktivieren, wenn eingestellt.',
'open_basedir' => 'Wird mit der open_basedir-Einstellung der Domain ersetzt.',
'tmp_dir' => 'Wird mit der Einstellung für das temporäre Verzeichnis der Domain ersetzt.',
'open_basedir_global' => 'Wird mit der globalen Einstellung des Pfades ersetzt, der dem open_basedir hinzugefügt wird (siehe Webserver Einstellungen).',
'customer_email' => 'Wird mit der E-Mail-Adresse des Kunden ersetzt, dem die Domain gehört.',
'admin_email' => 'Wird mit der E-Mail-Adresse des Admins ersetzt, dem die Domain gehört.',
'domain' => 'Wird mit der Domain ersetzt.',
'customer' => 'Wird mit dem Loginnamen des Kunden ersetzt, dem die Domain gehört.',
'admin' => 'Wird mit dem Loginnamen des Admins ersetzt, dem die Domain gehört.',
'docroot' => 'Wird mit dem Heimatverzeichnis der Domain ersetzt.',
'homedir' => 'Wird mit dem Heimatverzeichnis des Kunden ersetzt.',
],
'know_what_youre_doing' => 'Ändern Sie diese Einstellungen nur, wenn Sie wissen was Sie tun!',
'security_settings' => 'Sicherheitseinstellungen',
'expert_settings' => 'Experteneinstellungen!',
'mod_fcgid_starter' => [
'title' => 'PHP-Prozesse für diese Domain (leer für Standardwert)',
],
'phpserversettings' => 'PHP-Einstellungen',
'mod_fcgid_maxrequests' => [
'title' => 'Maximale PHP-Requests für diese Domain (leer für Standardwert)',
],
'webserver' => 'Webserver',
'spfsettings' => 'Domain-SPF-Einstellungen',
'specialsettingsforsubdomains' => 'Übernehme Einstellungen für alle Subdomains (*.beispiel.de)',
'accountdata' => 'Benutzerdaten',
'contactdata' => 'Kontaktdaten',
'servicedata' => 'Dienstleistungsdaten',
'newerversionavailable' => 'Eine neuere Version von froxlor wurde veröffentlicht.',
'newerversiondetails' => 'Jetzt auf Version %s aktualisieren? (Aktuelle Version ist: %s)',
'extractdownloadedzip' => 'Heruntergeladenes Archiv "%s" entpacken?',
'cron' => [
'cronsettings' => 'Cronjob-Einstellungen',
'add' => 'Cronjob hinzufügen',
],
'cronjob_edit' => 'Cronjob bearbeiten',
'warning' => 'ACHTUNG - Wichtiger Hinweis!',
'lastlogin_succ' => 'Letzte Anmeldung',
'ftpserver' => 'FTP-Server',
'ftpserversettings' => 'FTP-Server-Einstellungen',
'webserver_user' => 'Benutzername Webserver',
'webserver_group' => 'Gruppenname Webserver',
'perlenabled' => 'Perl verfügbar',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Lokaler Benutzer für FCGID (froxlor Vhost)',
'mod_fcgid_group' => 'Lokale Gruppe für FCGID (froxlor Vhost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[nicht angegeben]',
'store_defaultindex' => 'Standard-Index-Datei im Kundenordner erstellen',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Traffic',
'traffic_sub' => 'Details der Traffic-Nutzung',
'customertraffic' => 'Kunden',
'assignedmax' => 'Zugewiesen / Max.',
'usedmax' => 'Benutzt / Max.',
'used' => 'Benutzt',
'speciallogwarning' => '
ACHTUNG: Durch diese Einstellungen werden Sie alle bisherige Statistiken dieser Domain verlieren.
',
'speciallogfile' => [
'title' => 'Eigene Log-Datei',
'description' => 'Aktivieren Sie diese Option, um für diese Domain eine eigene Access-Log Datei zu erhalten',
],
'domain_editable' => [
'title' => 'Erlaube Bearbeiten der Domain',
'desc' => 'Wenn ja, darf der Kunde verschiedene Einstellungen anpassen. Wenn nein, darf nichts durch den Kunden geändert werden.',
],
'writeaccesslog' => [
'title' => 'Zugriffslog schreiben',
'description' => 'Aktiviere diese Option, um für diese Domain eine Access-Log Datei zu erhalten',
],
'writeerrorlog' => [
'title' => 'Fehlerlog schreiben',
'description' => 'Aktiviere diese Option, um für diese Domain eine Error-Log Datei zu erhalten',
],
'phpfpm.ininote' => 'Nicht alle gewünschten Werte können in der php-fpm-pool-Konfiguration verwendet werden.',
'selectserveralias' => 'ServerAlias-Angabe für Domain',
'selectserveralias_desc' => 'Wählen Sie hier, ob für diese Domain ein Wildcard-Eintrag (*.domain.tld), ein www-Alias (www.domain.tld) oder gar kein Alias angelegt werden soll.',
'show_news_feed' => [
'title' => 'Zeige Newsfeed im Admin-Dashboard',
'description' => 'Aktivieren Sie diese Option, um das offizielle froxlor newsfeed (https://inside.froxlor.org/news/) auf deinem Dashboard anzuzeigen und verpasse keine wichtigen Informationen oder Release-Announcements.',
],
'cronsettings' => 'Cronjob-Einstellungen',
'integritycheck' => 'Datenbankprüfung',
'integrityname' => 'Name',
'integrityresult' => 'Ergebnis',
'integrityfix' => 'Probleme automatisch beheben',
'customer_show_news_feed' => 'Zeige Newsfeed im Kunden-Dashboard',
'customer_news_feed_url' => [
'title' => 'Benutzerdefiniertes RSS-Feed',
'description' => 'Hier kann ein eigenes RSS-Feed angegeben werden, welches den Kunden auf dem Dashboard angezeigt wird. Leerlassen um das offizielle froxlor Newsfeed (https://inside.froxlor.org/news/) zu verwenden.',
],
'movetoadmin' => 'Kunde verschieben',
'movecustomertoadmin' => [
'title' => 'Verschiebe den Kunden zum angegebenen Admin/Reseller',
'description' => 'Leerlassen für keine Änderung. Wird der gewünschte Admin/Reseller hier nicht aufgelistet, hat er sein Kunden-Kontigent erreicht.',
],
'note' => 'Hinweis',
'mod_fcgid_umask' => [
'title' => 'Umask (Standard: 022)',
],
'letsencrypt' => [
'title' => 'SSL Zertifikat erstellen (Let\'s Encrypt)',
'description' => 'Holt ein kostenloses Zertifikat von Let\'s Encrypt. Das Zertifikat wird automatisch erstellt und verlängert. ACHTUNG: Wenn Wildcards aktiviert sind, wird diese Option automatisch deaktiviert.',
],
'autoupdate' => 'Auto-Update',
'dnsenabled' => 'Zugriff auf DNS Editor',
'froxlorvhost' => 'froxlor VirtualHost Einstellungen',
'hostname' => 'Hostname',
'memory' => 'Speicherauslastung',
'webserversettings_ssl' => 'Webserver SSL-Einstellungen',
'domain_hsts_maxage' => [
'title' => 'HTTP Strict Transport Security (HSTS)',
'description' => '"max-age" Wert für den Strict-Transport-Security Header Der Wert 0 deaktiviert HSTS für diese Domain. Meist wird der Wert 31536000 gerne genutzt (ein Jahr).',
],
'domain_hsts_incsub' => [
'title' => 'Inkludiere HSTS für jede Subdomain',
'description' => 'Die optionale "includeSubDomains" Direktive, wenn vorhanden, signalisiert dem UA, dass die HSTS Regel für diese Domain und auch jede Subdomain dieser gilt.',
],
'domain_hsts_preload' => [
'title' => 'Füge Domain in die HSTS preload Liste hinzu',
'description' => 'Wenn die Domain in die HSTS preload Liste, verwaltet von Chrome (und genutzt von Firefox und Safari), hinzugefügt werden soll, dann aktivieren Sie diese Einstellung. Die preload-Direktive zu senden kann PERMANTENTE KONSEQUENZEN haben und dazu führen, dass Benutzer auf diese Domain und auch Subdomains nicht zugreifen können. Beachten Sie die Details unter https://hstspreload.org/#removal bevor ein Header mit "preload" gesendet wird.',
],
'domain_ocsp_stapling' => [
'title' => 'OCSP stapling',
'description' => 'Siehe Wikipedia für eine ausführliche Beschreibung von OCSP-Stapling',
'nginx_version_warning' => ' WARNUNG: Nginx unterstützt OCSP-Stapling erst ab Version 1.3.7. Wenn Ihre Version älter ist, wird der Webserver bei aktiviertem OCSP-Stapling NICHT korrekt starten.',
],
'domain_http2' => [
'title' => 'HTTP2 Unterstützung',
'description' => 'Siehe Wikipedia für eine ausführliche Beschreibung von HTTP2',
],
'domain_http3' => [
'title' => 'HTTP3 Unterstützung',
'description' => 'Siehe Wikipedia für eine ausführliche Beschreibung von HTTP3',
'nginx_version_warning' => ' WARNUNG: Nginx unterstützt HTTP/3 erst ab Version 1.25.0 und dem SSL-Protokoll TLSv1.3. Wenn Ihre Version älter ist, wird der Webserver bei aktiviertem HTTP/3 NICHT korrekt starten.',
],
'testmail' => 'SMTP Test',
'phpsettingsforsubdomains' => 'PHP-Config für alle Subdomains übernehmen:',
'plans' => [
'name' => 'Plan Name',
'description' => 'Beschreibung',
'last_update' => 'Zuletzt aktualisiert',
'plans' => 'Hosting Pläne',
'plan_details' => 'Plan Details',
'add' => 'Neuen Plan anlegen',
'edit' => 'Plan editieren',
'use_plan' => 'Plan übernehmen',
],
'notryfiles' => [
'title' => 'Keine generierte try_files Anweisung',
'description' => 'Wählen Sie "Ja", wenn eine eigene try_files Direktive in den "eigenen Vhost Einstellungen" angegeben werden soll (z.B. nötig für manche Wordpress Plugins).',
],
'logviewenabled' => 'Zugriff auf access/error-Logdateien',
'novhostcontainer' => '
Keine der IPs und Ports hat die Option "Erstelle vHost-Container" aktiviert, einige Einstellungen sind daher nicht verfügbar.',
'ownsslvhostsettings' => 'Eigene SSL vHost-Einstellungen',
'domain_override_tls' => 'Überschreibe System TLS Einstellungen',
'domain_override_tls_addinfo' => ' Nur verwendet wenn "Überschreibe System TLS Einstellungen" auf "Ja" gestellt ist',
'domain_sslenabled' => 'Aktiviere Nutzung von SSL',
'domain_honorcipherorder' => 'Bevorzuge die serverseitige Cipher Reihenfolge, Standardwert nein',
'domain_sessiontickets' => 'Aktiviere TLS Sessiontickets (RFC 5077), Standardwert ja',
'domain_sessionticketsenabled' => [
'title' => 'Aktiviere Nutzung von TLS Sessiontickets systemweit',
'description' => 'Standardwert yes Erfordert apache-2.4.11+ oder nginx-1.5.9+',
],
'domaindefaultalias' => 'Standard ServerAlias-Angabe für neue Domains',
'smtpsettings' => 'SMTP Einstellungen',
'smtptestaddr' => 'Test-Email senden an',
'smtptestnote' => 'Bitte beachten: Die untenstehenden Werte reflektieren die aktuellen Einstellungen und können auch nur dort angepasst werden (siehe Link in der oberen rechten Ecke)',
'smtptestsend' => 'Test-Email senden',
'mysqlserver' => [
'caption' => 'Beschreibung',
'user' => 'Privilegierter Benutzer',
'add' => 'MySQL Server hinzufügen',
'edit' => 'MySQL Server bearbeiten',
'password' => 'Passwort privilegierter Benutzer',
'password_emptynochange' => 'Neues Passwort, leer für keine Änderung',
'allowall' => [
'title' => 'Nutzung für aktuelle Kunden automatisch erlauben',
'description' => 'Ist diese Einstellung aktiv, wird die Verwendung dieses Datenbank-Servers automatisch allen aktuell existierenden Kunden-Accounts erlaubt. Diese Einstellung ist nicht permanent, kann aber mehrfach / nach Bedarf ausgeführt werden.',
],
'testconn' => 'Teste Verbindung beim Speichern',
'ssl' => 'Verwende SSL für die Verbindung zum Datenbank-Server',
'ssl_cert_file' => 'Dateipfad zur SSL certificate authority',
'verify_ca' => 'Aktiviere SSL Zertifikats-Verifikation',
],
'settings_importfile' => 'Wähle Import-Datei',
'documentation' => 'Dokumentation',
'adminguide' => 'Admin Guide',
'userguide' => 'User Guide',
'apiguide' => 'API Guide',
'domain_duplicate' => 'Domain duplizieren',
'domain_duplicate_named' => '%s duplizieren',
'emaildomainwarning' => '
ACHTUNG: Durch die Änderung dieser Einstellung löschen Sie alle bestehenden E-Mail-Adressen und -Konten unwiderruflich.
',
'webserver_serveradmin' => [
'setting' => 'ServerAdmin Angabe',
'customer' => 'Kunden E-Mail Adresse (standard)',
'admin' => 'Admin E-Mail Adresse',
'global' => 'Panel-Admin E-Mail Adresse',
'none' => 'Keine ServerAdmin Angabe'
]
],
'apikeys' => [
'no_api_keys' => 'Keine API Keys gefunden',
'key_add' => 'API Key hinzufügen',
'apikey_removed' => 'Der API Key mit der ID #%s wurde erfolgreich gelöscht.',
'apikey_added' => 'Der neue API Key wurde erfolgreich angelegt.',
'clicktoview' => 'Details anzeigen',
'allowed_from' => 'Erlaube Zugriff von',
'allowed_from_help' => 'Komma getrennte Liste von IPs oder Netzen. Standard ist leer (von überall erlaubt).',
'valid_until' => 'Gültig bis',
'valid_until_help' => 'Datum Gültigkeitsende, Format YYYY-MM-DDThh:mm',
],
'changepassword' => [
'old_password' => 'Altes Passwort',
'new_password' => 'Neues Passwort',
'new_password_confirm' => 'Neues Passwort bestätigen',
'new_password_ifnotempty' => 'Neues Passwort (leer für keine Änderung)',
'also_change_ftp' => 'Auch Passwort des Haupt-FTP-Zugangs ändern',
'also_change_stats' => ' Auch Passwort der Statistikseite ändern',
'also_change_global_mysql' => 'Auch Passwort des globalen MySQL-Zugangs ändern',
],
'cron' => [
'cronname' => 'Cronjob-Name',
'lastrun' => 'Zuletzt gestartet',
'interval' => 'Intervall',
'isactive' => 'Aktiv',
'description' => 'Beschreibung',
'changewarning' => 'Änderungen an diesen Werten können einen negativen Effekt auf das Verhalten von froxlor und seinen automatisierten Aufgaben haben. Ändern Sie hier bitte nur etwas, wenn Sie sich über die Folgen im Klaren sind.',
],
'crondesc' => [
'cron_unknown_desc' => 'Keine Beschreibung angegeben',
'cron_tasks' => 'Erstellen von Konfigurationsdateien',
'cron_legacy' => 'Legacy (alter) Cronjob',
'cron_traffic' => 'Traffic-Berechnung',
'cron_usage_report' => 'Webspace- und Trafficreport',
'cron_mailboxsize' => 'Berechnung der Mailbox-Größen',
'cron_letsencrypt' => 'Aktualisierung der Let\'s Encrypt Zertifikate',
'cron_export' => 'Ausstehende Datenexporte erstellen',
'cron_backup' => 'System- und Kunden-Sicherungen erstellen',
],
'cronjob' => [
'cronjobsettings' => 'Cronjob-Einstellungen',
'cronjobintervalv' => 'Laufzeit-Intervall Wert',
'cronjobinterval' => 'Laufzeit-Intervall',
],
'cronjobs' => [
'notyetrun' => 'Bisher nicht gestartet',
],
'cronmgmt' => [
'minutes' => 'Minuten',
'hours' => 'Stunden',
'days' => 'Tage',
'weeks' => 'Wochen',
'months' => 'Monate',
],
'customer' => [
'documentroot' => 'Heimatverzeichnis',
'name' => 'Name',
'firstname' => 'Vorname',
'lastname' => 'Nachname',
'company' => 'Firma',
'nameorcompany_desc' => 'Entweder Vorname/Name oder Firma ist erforderlich',
'street' => 'Straße',
'zipcode' => 'PLZ',
'city' => 'Ort',
'phone' => 'Telefon',
'fax' => 'Fax',
'email' => 'E-Mail-Adresse',
'customernumber' => 'Kundennummer',
'diskspace' => 'Webspace',
'traffic' => 'Traffic',
'mysqls' => 'MySQL-Datenbanken',
'emails' => 'E-Mail-Adressen',
'accounts' => 'E-Mail-Konten',
'forwarders' => 'E-Mail-Weiterleitungen',
'ftps' => 'FTP-Konten',
'subdomains' => 'Subdomain(s)',
'domains' => 'Domain(s)',
'title' => 'Titel',
'country' => 'Land',
'email_quota' => 'E-Mail-Kontingent',
'email_imap' => 'IMAP',
'email_pop3' => 'POP3',
'sendinfomail' => 'Daten per E-Mail an mich senden',
'generated_pwd' => 'Passwortvorschlag',
'usedmax' => 'Benutzt / Max.',
'services' => 'Dienste',
'letsencrypt' => [
'title' => 'SSL Zertifikat erstellen (Let\'s Encrypt)',
'description' => 'Holt ein kostenloses Zertifikat von Let\'s Encrypt. Das Zertifikat wird automatisch erstellt und verlängert.',
],
'selectserveralias_addinfo' => 'Diese Option steht beim Bearbeiten der Domain zur Verfügung. Als Initial-Wert wird die Einstellung der Hauptdomain vererbt.',
'total_diskspace' => 'Gesamtspeicherplatz',
'mysqlserver' => 'Erlaubte MySQL-Server',
],
'diskquota' => 'Quota',
'antispam' => [
'config_file' => [
'title' => 'Antispam Konfigurationsdatei',
'description' => 'Pfad + Dateiname der Antispam-Regel Konfigurationsdatei',
],
'reload_command' => [
'title' => 'Milter-Restart-Befehl',
'description' => 'Wie lautet der Befehl zum Neustarten des rspamd-Dienstes?',
],
'activated' => [
'title' => 'Antispam aktivieren?',
'description' => 'Aktivieren, um rspamd als Antispam Dienst zu verwenden.',
],
'dkim_keylength' => [
'title' => 'DKIM Schlüssel-Länge',
'description' => 'Achtung: Änderungen sind nur für neue Schlüssel gültig.
Erfordert einen speziellen DNS Eintrag für die Domain. Wenn das Nameserver-Feature nicht genutzt wird, muss dieser Eintrag manuell verwaltet werden.',
],
'spam_tag_level' => [
'title' => 'Spam Level',
'description' => 'Erforderliche Punktzahl zum Markieren einer E-Mail als Spam Standard: 7.0'
],
'rewrite_subject' => [
'title' => 'Betreff ändern',
'description' => 'Dem E-Mail Betreff ***SPAM*** hinzufügen, sofern zutreffend',
],
'spam_kill_level' => [
'title' => 'Ablehnungs Level',
'description' => 'Erforderliche Punktzahl für das Ablehnen einer E-Mail Standard: 14.0'
],
'bypass_spam' => [
'title' => 'Spamfilter umgehen',
'description' => 'Aktivieren, um den Spamfilter für diese Adresse zu umgehen/deaktivieren. Standard: Nein'
],
'policy_greylist' => [
'title' => 'Verwende greylisting',
'description' => 'Eingehende E-Mails mittels Greylisting schützen. Standard: Ja'
],
'required_spf_dns' => 'Erforderlicher SPF DNS Eintrag',
'required_dmarc_dns' => 'Erforderlicher DMARC DNS Eintrag',
'required_dkim_dns' => 'Erforderlicher DKIM DNS Eintrag',
'default_select' => [
'on_changeable' => 'Aktiviert, einstellbar',
'off_changeable' => 'Deaktiviert, einstellbar',
'on_unchangeable' => 'Aktiviert, nicht einstellbar',
'off_unchangeable' => 'Deaktiviert, nicht einstellbar',
],
'default_bypass_spam' => [
'title' => 'Standardwert: Spamfilter umgehen',
'description' => 'Wählen, ob bei neuen E-Mail-Konten "Spamfilter umgehen" standardmäßig aktiviert ist und ob diese Einstellung vom Kunden angepasst werden kann. Standard: Deaktiviert, einstellbar'
],
'default_spam_rewrite_subject' => [
'title' => 'Standardwert: Betreff ändern',
'description' => 'Wählen, ob bei neuen E-Mail-Konten "Betreff ändern" standardmäßig aktiviert ist und ob diese Einstellung vom Kunden angepasst werden kann. Standard: Aktiviert, einstellbar'
],
'default_policy_greylist' => [
'title' => 'Standardwert: Verwende greylisting',
'description' => 'Wählen, ob bei neuen E-Mail-Konten "Verwende greylisting" standardmäßig aktiviert ist und ob diese Einstellung vom Kunden angepasst werden kann. Standard: Aktiviert, einstellbar'
],
],
'dns' => [
'destinationip' => 'Domain-IP-Adresse(n)',
'standardip' => 'Server-Standard-IP-Adresse',
'a_record' => 'A-Eintrag (IPv6 optional)',
'cname_record' => 'CNAME-Eintrag',
'mxrecords' => 'MX Einträge definieren',
'standardmx' => 'Server Standard MX Eintrag',
'mxconfig' => 'Eigene MX Einträge',
'priority10' => 'Priorität 10',
'priority20' => 'Priorität 20',
'txtrecords' => 'TXT-Einträge definieren',
'txtexample' => 'Beispiel (SPF-Eintrag): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'howitworks' => 'Hier können DNS Einträge für die Domain verwaltet werden. Beachten Sie, dass froxlor automatisch NS/MX/A/AAAA Einträge generiert. Die benutzerdefinierten Einträge werden bevorzugt, nur fehlende Einträge werden automatisch generiert.',
'nis2note' => [
'title' => 'NIS2 Info',
'content' => 'DNS-Hosting/Authoritative DNS Services können nach EU-NIS2 als digitale Dienstleistung mit erhöhten Sicherheits- und Meldepflichten gelten. Bitte prüfe, ob dein Setup NIS2-betroffen ist und welche Maßnahmen erforderlich sind.'
],
],
'dnseditor' => [
'edit' => 'DNS editieren',
'records' => 'Einträge',
],
'domain' => [
'openbasedirpath' => 'OpenBasedir-Pfad',
'inherited' => 'Gleich wie Elterndomain',
'docroot' => 'Oben angegebener Pfad',
'homedir' => 'Heimverzeichnis',
'docparent' => 'Elternverzeichnis des oben angegebenen Pfads',
],
'domains' => [
'description' => 'Hier können Sie (Sub-)Domains erstellen und deren Pfade ändern. Nach jeder Änderung braucht das System etwas Zeit, um die Konfiguration neu einzulesen.',
'domainsettings' => 'Domaineinstellungen',
'domainname' => 'Domainname',
'subdomain_add' => 'Subdomain anlegen',
'subdomain_edit' => '(Sub-)Domain bearbeiten',
'wildcarddomain' => 'Als Wildcarddomain eintragen?',
'aliasdomain' => 'Alias für Domain',
'noaliasdomain' => 'Keine Aliasdomain',
'hasaliasdomains' => 'Hat Aliasdomain(s)',
'statstics' => 'Statistiken',
'isassigneddomain' => 'zugewiesene Domain',
'add_date' => 'Zu froxlor hinzugefügt',
'registration_date' => 'Registriert am',
'topleveldomain' => 'Top-Level-Domain',
'associated_with_domain' => 'Verbunden mit',
'aliasdomains' => 'Aliasdomains',
'redirectifpathisurl' => 'Redirect-Code (Standard: leer)',
'redirectifpathisurlinfo' => 'Der Redirect-Code kann gewählt werden, wenn der eingegebene Pfad eine URL ist. HINWEIS: Änderungen werden nur wirksam wenn der Pfad eine URL ist.',
'ipandport_multi' => [
'title' => 'IP-Adresse(n)',
'description' => 'Definieren Sie eine oder mehrere IP-Adresse(n) für diese Domain.
Hinweis: Die IP-Adressen können nicht geändert werden, sollte die Domain als Alias-Domain für eine andere Domain konfiguriert worden sein.
',
],
'ipandport_ssl_multi' => [
'title' => 'SSL-IP-Adresse(n)',
],
'ssl_redirect' => [
'title' => 'SSL-Weiterleitung',
'description' => 'Diese Option erstellt für alle Nicht-SSL-vHosts eine Weiterleitung (Redirect), so dass alle Anfragen an den SSL-vHost übermittelt werden (z. B. würde eine Anfrage an http://domain.tld/ weitergeleitet werden zu https://domain.tld/).',
],
'serveraliasoption_wildcard' => 'Wildcard (*.domain.tld)',
'serveraliasoption_www' => 'www (www.domain.tld)',
'serveraliasoption_none' => 'Kein Alias',
'domain_import' => 'Domains importieren',
'import_separator' => 'Trennzeichen',
'import_offset' => 'Versatz (offset)',
'import_file' => 'CSV-Datei',
'import_description' => 'Detaillierte Informationen über den Aufbau der Importdatei und einen erfolgreichen Import gibt es hier: https://docs.froxlor.org/latest/admin-guide/domain-import/ (englisch)',
'ssl_redirect_temporarilydisabled' => ' Die SSL-Umleitung ist, während ein neues Let\'s Encrypt - Zertifikat erstellt wird, temporär deaktiviert. Die Umleitung wird nach der Zertifikatserstellung wieder aktiviert.',
'termination_date' => 'Kündigungsdatum',
'termination_date_overview' => 'gekündigt zum ',
'ssl_certificates' => 'SSL Zertifikate',
'ssl_certificate_removed' => 'Das Zertifikat mit der ID #%s wurde erfolgreich gelöscht.',
'ssl_certificate_error' => 'Fehler beim Lesen des Zertifikats für die Domain: %s',
'no_ssl_certificates' => 'Es wurden keine SSL-Zertifikate gefunden',
'isaliasdomainof' => 'Ist Aliasdomain für %s',
'isbinddomain' => 'Erstelle DNS-Zone',
'dkimenabled' => 'DKIM aktiviert',
'openbasedirenabled' => 'Openbasedir Einschränkung',
'hsts' => 'HSTS aktiviert',
'aliasdomainid' => 'ID der Alias-Domain',
'nodomainsassignedbyadmin' => 'Diesem Account wurde noch keine (aktive) Domain zugewiesen. Bitte kontaktiere deinen Administrator, wenn du der Meinung bist, das ist nicht korrekt.',
'email_only' => 'Nur E-Mail',
],
'emails' => [
'description' => 'Hier können Sie Ihre E-Mail-Adressen einrichten. Ein Konto ist wie Ihr Briefkasten vor der Haustür. Wenn jemand eine E-Mail an Sie schreibt, wird diese in dieses Konto gelegt.
Die Zugangsdaten lauten wie folgt: (Die Angaben in kursiver Schrift sind durch die jeweiligen Einträge zu ersetzen)
Hostname: Domainname Benutzername: Kontoname / E-Mail-Adresse Passwort: das gewählte Passwort',
'emailaddress' => 'E-Mail-Adresse',
'emails_add' => 'E-Mail-Adresse anlegen',
'emails_edit' => 'E-Mail-Adresse ändern',
'catchall' => 'Catchall',
'iscatchall' => 'Als Catchall-Adresse definieren?',
'account' => 'Konto',
'account_add' => 'Konto anlegen',
'account_delete' => 'Konto löschen',
'from' => 'Von',
'to' => 'Nach',
'forwarders' => 'Weiterleitungen',
'forwarder_add' => 'Weiterleitung hinzufügen',
'alternative_emailaddress' => 'Alternative E-Mail-Adresse',
'quota' => 'Kontingent',
'noquota' => 'Kein Kontingent',
'updatequota' => 'Update Kontingent',
'quota_edit' => 'E-Mail-Kontingent ändern',
'noemaildomainaddedyet' => 'Sie haben bisher noch keine (E-Mail-)Domain in Ihrem Konto.',
'back_to_overview' => 'Zurück zur Domain-Übersicht',
'accounts' => 'Konten',
'emails' => 'Adressen',
'senders' => 'Erlaubte Absendeadressen',
'sender_add' => 'Absendeadressen hinzufügen',
'foreign_sender' => 'Erlaubte (externe) Sender-Adresse',
'allowed_sender_info' => 'Mit einer Erlaubten Absendeadresse erlauben Sie einem bestehenden Mailkonto, zusätzlich mit einer anderen Absenderadresse E-Mails zu versenden. Wichtig: Die hier eingetragene Adresse/Wildcard-Domain wird nicht automatisch ein Postfach – sie dient nur als zusätzliche, erlaubte Absenderkennungen.',
],
'error' => [
'error' => 'Fehlermeldung',
'directorymustexist' => 'Das Verzeichnis "%s" muss existieren. Legen Sie es bitte mit Ihrem FTP-Programm an.',
'filemustexist' => 'Die Datei "%s" muss existieren.',
'allresourcesused' => 'Sie haben bereits alle Ihnen zur Verfügung stehenden Ressourcen verbraucht.',
'domains_cantdeletemaindomain' => 'Sie können keine zugewiesene Domain löschen. ',
'domains_canteditdomain' => 'Sie können diese Domain nicht bearbeiten. Dies wurde durch den Admin verweigert.',
'domains_cantdeletedomainwithemail' => 'Sie können keine Domain löschen, die noch als E-Mail-Domain verwendet wird. Löschen Sie zuerst alle E-Mail-Adressen dieser Domain.',
'firstdeleteallsubdomains' => 'Sie müssen zuerst alle Subdomains löschen, bevor Sie eine Wildcarddomain anlegen können.',
'youhavealreadyacatchallforthisdomain' => 'Sie haben bereits eine E-Mail-Adresse als Catchall für diese Domain definiert.',
'ftp_cantdeletemainaccount' => 'Sie können Ihren Hauptaccount nicht löschen.',
'login' => 'Die Kombination aus Benutzername und Passwort ist ungültig.',
'login_blocked' => 'Dieser Account wurde aufgrund zu vieler Fehlversuche vorübergehend geschlossen. Bitte versuchen Sie es in "%s" Sekunden erneut.',
'notallreqfieldsorerrors' => 'Sie haben nicht alle Felder bzw. ein Feld mit fehlerhaften Angaben ausgefüllt.',
'oldpasswordnotcorrect' => 'Das alte Passwort ist nicht korrekt.',
'youcantallocatemorethanyouhave' => 'Sie können nicht mehr Ressourcen verteilen als Ihnen noch zur Verfügung stehen.',
'mustbeurl' => 'Sie müssen eine vollständige URL angeben (z. B. http://domain.de/error404.htm).',
'invalidpath' => 'Sie haben keine gültige URL angegeben (evtl. Probleme beim Verzeichnislisting?).',
'stringisempty' => 'Fehlende Eingabe im Feld',
'stringiswrong' => 'Falsche Eingabe im Feld',
'newpasswordconfirmerror' => 'Das neue Passwort und dessen Bestätigung sind nicht identisch.',
'mydomain' => '\'Domain\'',
'mydocumentroot' => '\'Documentroot\'',
'loginnameexists' => 'Der Login-Name "%s" existiert bereits.',
'emailiswrong' => 'Die E-Mail-Adresse "%s" enthält ungültige Zeichen oder ist nicht vollständig.',
'emailexists' => 'Die E-Mail-Adresse "%s" wird bereits von einem anderen Admin verwendet',
'emailexistsanon' => 'Die E-Mail-Adresse "%s" wird bereits verwendet',
'alternativeemailiswrong' => 'Die angegebene alternative E-Mail Adresse "%s", an welche die Zugangsdaten geschickt werden soll, scheint ungültig zu sein.',
'loginnameiswrong' => 'Der Login-Name "%s" enthält ungültige Zeichen.',
'loginnameiswrong2' => 'Der Login-Name enthält zu viele Zeichen, es sind maximal %s Zeichen erlaubt.',
'userpathcombinationdupe' => 'Die Kombination aus Benutzername und Pfad existiert bereits.',
'patherror' => 'Allgemeiner Fehler! Pfad darf nicht leer sein.',
'errordocpathdupe' => 'Option für Pfad "%s" existiert bereits.',
'adduserfirst' => 'Sie müssen zuerst einen Kunden anlegen.',
'domainalreadyexists' => 'Die Domain "%s" wurde bereits einem Kunden zugeordnet.',
'nolanguageselect' => 'Es wurde keine Sprache ausgewählt.',
'nosubjectcreate' => 'Sie müssen einen Betreff angeben.',
'nomailbodycreate' => 'Sie müssen einen E-Mail-Text eingeben.',
'templatenotfound' => 'Vorlage wurde nicht gefunden.',
'alltemplatesdefined' => 'Sie können keine weiteren Vorlagen anlegen, da bereits für alle Sprachen eine Vorlage existiert.',
'wwwnotallowed' => 'Ihre Subdomain darf nicht \'www\' heißen.',
'subdomainiswrong' => 'Die Subdomain "%s" enthält ungültige Zeichen.',
'domaincantbeempty' => 'Der Domainname darf nicht leer sein.',
'domainexistalready' => 'Die Domain "%s" existiert bereits.',
'domainisaliasorothercustomer' => 'Die ausgewählte Aliasdomain ist entweder selbst eine Aliasdomain, hat nicht die gleiche IP/Port-Kombination oder gehört einem anderen Kunden.',
'emailexistalready' => 'Die E-Mail-Adresse "%s" existiert bereits.',
'maindomainnonexist' => 'Die Hauptdomain "%s" existiert nicht.',
'maindomaindeactivated' => 'Die Hauptdomain "%s" ist deaktiviert.',
'destinationnonexist' => 'Bitte geben Sie Ihre Weiterleitungsadresse im Feld \'Nach\' ein.',
'destinationalreadyexistasmail' => 'Die Weiterleitung zu "%s" existiert bereits als aktive E-Mail-Adresse.',
'destinationalreadyexist' => 'Es existiert bereits eine Weiterleitung nach "%s".',
'destinationiswrong' => 'Die Weiterleitungsadresse "%s" enthält ungültige Zeichen oder ist nicht vollständig.',
'dumpfoldercannotbedocroot' => 'Der Ordner für Daten-Export darf nicht das Heimatverzeichnis sein, wählen Sie einen Ordner unterhalb des Heimatverzeichnisses, z.B. /dumps',
'templatelanguagecombodefined' => 'Die gewählte Kombination aus Sprache und Vorlage ist bereits definiert.',
'templatelanguageinvalid' => 'Die gewählte Sprache existiert nicht',
'ipstillhasdomains' => 'Die IP/Port-Kombination, die Sie löschen wollen, ist noch bei einer oder mehreren Domains eingetragen. Bitte ändern Sie die Domains vorher auf eine andere IP/Port-Kombination, um diese löschen zu können.',
'cantdeletedefaultip' => 'Sie können die Standard-IP/Port-Kombination für Reseller nicht löschen. Bitte setzen Sie eine andere IP/Port-Kombination als Standard, um diese löschen zu können.',
'cantdeletesystemip' => 'Sie können die letzte System-IP-Adresse nicht löschen. Entweder legen Sie eine neue IP/Port-Kombination an oder Sie ändern die System-IP-Adresse.',
'myipaddress' => '\'IP-Adresse\'',
'myport' => '\'Port\'',
'myipdefault' => 'Sie müssen eine IP/Port-Kombination auswählen, die den Standard definieren soll.',
'myipnotdouble' => 'Diese Kombination aus IP-Adresse und Port existiert bereits.',
'cantchangesystemip' => 'Sie können die letzte System-IP-Adresse nicht löschen. Entweder legen Sie eine neue IP/Port-Kombination an oder Sie ändern die System-IP-Adresse.',
'sessiontimeoutiswrong' => '"Session-Timeout" muss ein numerischer Wert sein.',
'maxloginattemptsiswrong' => '"Maximale Loginversuche" muss ein numerischer Wert sein.',
'deactivatetimiswrong' => '"Länge der Deaktivierung" muss numerisch sein.',
'accountprefixiswrong' => 'Das "Kundenpräfix" ist falsch.',
'mysqlprefixiswrong' => 'Das "MySQL-Präfix" ist falsch.',
'ftpprefixiswrong' => 'Das "FTP-Präfix" ist falsch.',
'ipiswrong' => 'Die "IP-Adresse" ist falsch. Bitte geben Sie eine gültige IP-Adresse an.',
'vmailuidiswrong' => 'Die "Mail-UID" ist falsch. Es ist nur eine numerische UID erlaubt.',
'vmailgidiswrong' => 'Die "Mail-GID" ist falsch. Es ist nur eine numerische GID erlaubt.',
'adminmailiswrong' => 'Die "Absenderadresse" ist fehlerhaft. Bitte geben Sie eine gültige E-Mail-Adresse an.',
'pagingiswrong' => 'Die "Einträge pro Seite"-Einstellung ist falsch. Es sind nur numerische Zeichen erlaubt.',
'phpmyadminiswrong' => 'Die "phpMyAdmin-URL" ist keine gültige URL.',
'webmailiswrong' => 'Die "Webmail-URL" ist keine gültige URL.',
'webftpiswrong' => 'Die "WebFTP-URL" ist keine gültige URL.',
'stringformaterror' => 'Der Wert des Feldes "%s" hat nicht das erwartete Format.',
'loginnameisusingprefix' => 'Sie können keinen Account anlegen, der mit "%s" beginnt, da dieser Prefix für die automatische Namensvergabe eingestellt ist. Bitte wählen Sie einen anderen Accountnamen.',
'loginnameissystemaccount' => 'Der Account "%s" existiert bereits auf dem System und kann daher nicht verwendet werden. Bitte wählen Sie einen anderen Accountnamen.',
'loginnameisreservedname' => 'Der Account-Name "%s" ist systemseitig reserviert und kann nicht verwenden werden.',
'youcantdeleteyourself' => 'Aus Sicherheitsgründen können Sie sich nicht selbst löschen.',
'youcanteditallfieldsofyourself' => 'Hinweis: Aus Sicherheitsgründen können Sie nicht alle Felder Ihres eigenen Accounts bearbeiten.',
'documentrootexists' => 'Es existiert noch ein Verzeichnis "%s" für diesen Kunden. Bitte löschen Sie dieses vorher.',
'norepymailiswrong' => 'Die "Noreply-Adresse" ist ungültig. Nur eine valide E-Mail Adresse kann akzeptiert werden.',
'logerror' => 'Log-Fehler: "%s"',
'nomessagetosend' => 'Keine Nachricht angegeben',
'norecipientsgiven' => 'Keine Empfänger angegeben',
'errorsendingmail' => 'Das Versenden der Nachricht an "%s" schlug fehl.',
'errorsendingmailpub' => 'Das Versenden der Nachricht an die angegebene E-Mail Adresse schlug fehl.',
'cannotreaddir' => 'Der Ordner "%s" kann nicht gelesen werden',
'invalidip' => 'Ungültige IP-Adresse: "%s"',
'invalidmysqlhost' => 'Ungültige MySQL-Host-Adresse: "%s"',
'cannotuseawstatsandwebalizeratonetime' => 'Webalizer und AWstats können nicht zur gleichen Zeit aktiviert werden, bitte wählen Sie eines aus.',
'cannotwritetologfile' => 'Logdatei "%s" konnte nicht für Schreiboperationen geöffnet werden.',
'vmailquotawrong' => 'Die Kontingent-Größe muss positiv sein.',
'allocatetoomuchquota' => 'Sie versuchen "%s" MB Kontingent zu zuweisen, haben aber nicht genug übrig.',
'missingfields' => 'Es wurden nicht alle Felder augefüllt.',
'requiredfield' => 'Dieses Feld ist ein Pflichtfeld.',
'accountnotexisting' => 'Der angegebene E-Mail-Account existiert nicht.',
'nopermissionsorinvalidid' => 'Entweder fehlen Ihnen die nötigen Rechte diese Einstellung zu ändern oder es wurde eine ungültige ID übergeben',
'phpsettingidwrong' => 'Eine PHP-Konfiguration mit dieser ID existiert nicht',
'descriptioninvalid' => 'Der Beschreibungstext ist zu kurz, zu lang oder enthält ungültige Zeichen',
'info' => 'Info',
'filecontentnotset' => 'Diese Datei darf nicht leer sein!',
'customerdoesntexist' => 'Der ausgewählte Kunde existiert nicht.',
'admindoesntexist' => 'Der ausgewählte Admin existiert nicht.',
'ipportdoesntexist' => 'Die gewählte IP/Port-Kombination existiert nicht.',
'hiddenfieldvaluechanged' => 'Der Wert des verborgenen Feldes "%s" hat sich während dem Ändern der Einstellungen geändert.
Dies ist im Grunde kein schwerwiegendes Problem, allerdings konnten so die Einstellungen nicht gespeichert werden.',
'notrequiredpasswordlength' => 'Das Passwort ist zu kurz. Bitte geben Sie mindestens "%s" Zeichen an.',
'overviewsettingoptionisnotavalidfield' => 'Hoppla, ein Feld, das als Option in der Konfigurationsübersicht angezeigt werden soll, hat nicht den erwarteten Wert. Sie können den Entwicklern die Schuld geben. Dies sollte nicht passieren!',
'usernamealreadyexists' => 'Der Benutzername "%s" existiert bereits.',
'plausibilitychecknotunderstood' => 'Die Antwort des Plausibilitätschecks wurde nicht verstanden',
'errorwhensaving' => 'Bei dem Speichern des Feldes "%s" trat ein Fehler auf',
'pathmaynotcontaincolon' => 'Der eingegebene Pfad sollte keinen Doppelpunkt (":") enthalten. Bitte geben Sie einen korrekten Wert für den Pfad ein.',
'invaliddocumentrooturl' => 'Die URL, die Sie für den Pfad eingegeben haben, ist ungültig. Bitte geben Sie eine korrekte URL oder einen Unix-Pfad ein.',
'notrequiredpasswordcomplexity' => 'Die vorgegebene Passwort-Komplexität wurde nicht erfüllt. Bitte kontaktieren Sie Ihren Administrator, wenn Sie Fragen zur Komplexitäts-Vorgabe haben.',
'invaliderrordocumentvalue' => 'Der angegebene Wert für das Fehlederdokument ist keine gültige Datei, URL oder Text-Zeile.',
'intvaluetoolow' => 'Die angegebene Zahl ist zu klein (Feld "%s")',
'intvaluetoohigh' => 'Die angegebene Zahl ist zu groß (Feld "%s")',
'phpfpmstillenabled' => 'PHP-FPM ist derzeit aktiviert. Bitte deaktivieren Sie es, um FCGID zu aktivieren',
'fcgidstillenabled' => 'FCGID ist derzeit aktiviert. Bitte deaktivieren Sie es, um PHP-FPM zu aktivieren',
'domains_cantdeletedomainwithaliases' => 'Sie können keine Domain löschen, die noch von Alias-Domains verwendet wird. Löschen Sie zuerst alle Alias-Domains dieser Domain.',
'user_banned' => 'Ihr Benutzerkonto wurde gesperrt. Bitte kontaktieren Sie Ihren Administrator für weitere Informationen.',
'admin_domain_emailsystemhostname' => 'Der System-Hostname kann nicht als Kundendomain verwendet werden.',
'session_timeout' => 'Wert zu niedrig',
'session_timeout_desc' => 'Der Wert der Session-Timeout sollte nicht unter einer Minute liegen.',
'invalidhostname' => 'Hostname muss eine gültige Domain sein. Er darf weder leer sein noch nur aus Leerzeichen bestehen',
'operationnotpermitted' => 'Diese Aktion ist nicht erlaubt!',
'featureisdisabled' => 'Die Funktion "%s" wurde deaktiviert. Kontaktieren Sie bitte Ihren Dienstleister.',
'usercurrentlydeactivated' => 'Der Benutzer "%s" ist derzeit deaktiviert',
'setlessthanalreadyused' => 'Es können nicht weniger Resourcen von "%s" gesetzt werden, als der Benutzer bereits vergeben hat ',
'stringmustntbeempty' => 'Der Wert für das Feld "%s" darf nicht leer sein',
'sslcertificateismissingprivatekey' => 'Für das Zertifikat muss eine Key-Datei (Private-Key) angegeben werden.',
'sslcertificatewrongdomain' => 'Das angegebene Zertifikat gilt nicht für die gewählte Domain.',
'sslcertificateinvalidcert' => 'Der angegebene Zertifikatsinhalt scheint kein gültiges Zertifikat zu sein.',
'sslcertificateinvalidcertkeypair' => 'Der angegebene Key (Private-Key) gehört nicht zum angegebenen Zertifikat.',
'sslcertificateinvalidca' => 'Das angegebene CA-Zertifikat scheint nicht gültig zu sein.',
'sslcertificateinvalidchain' => 'Das angegebene CertificateChainFile scheint nicht gültig zu sein.',
'givendirnotallowed' => 'Das angegebene Verzeichnis im Feld %s ist nicht erlaubt.',
'sslredirectonlypossiblewithsslipport' => 'Die Nutzung von Let\'s Encrypt ist nur möglich, wenn die Domain mindestens eine IP/Port - Kombination mit aktiviertem SSL zugewiesen hat.',
'fcgidstillenableddeadlock' => 'FCGID ist derzeit aktiviert. Bitte deaktiviere es, um einen anderen Webserver als Apache2 auswählen zu können.',
'send_report_title' => 'Fehler melden',
'send_report_desc' => 'Danke, dass Sie uns diesen Fehler melden und damit helfen froxlor zu verbessern. Folgender Bericht wird per Mail an das froxlor Entwickler Team gesendet.',
'send_report' => 'Fehlerbericht senden',
'send_report_error' => 'Fehler beim Senden des Berichts: %s',
'notallowedtouseaccounts' => 'Ihrem Konto ist die Nutzung von IMAP/POP3 nicht erlaubt, daher können keine E-Mail-Konten angelegt werden',
'cannotdeletehostnamephpconfig' => 'Diese PHP-Konfiguration ist dem froxlor-Vhost zugewiesen und kann daher nicht gelöscht werden.',
'cannotdeletedefaultphpconfig' => 'Diese PHP-Konfiguration ist als Standard hinterlegt und kann daher nicht gelöscht werden.',
'passwordshouldnotbeusername' => 'Das Passwort sollte nicht mit dem Benutzernamen übereinstimmen.',
'no_phpinfo' => 'Entschuldigung, es ist nicht möglich die phpinfo() auszulesen.',
'moveofcustomerfailed' => 'Das Verschieben des Kunden ist fehlgeschlagen. Alle übrigen Änderungen wurden durchgeführt und gespeichert.
Fehlermeldung: %s',
'domain_import_error' => 'Der folgende Fehler trat beim Importieren der Domains auf: %s',
'fcgidandphpfpmnogoodtogether' => 'FCGID und PHP-FPM können nicht gleichzeitig aktiviert werden.',
'no_apcuinfo' => 'Keine APCu Cache Informationen verfügbar. APCu scheint nicht installiert zu sein.',
'no_opcacheinfo' => 'Keine OPCache Informationen verfügbar. OPCache scheint nicht installiert zu sein.',
'inactive_opcacheinfo' => 'OPCache ist installiert, aber nicht aktiviert.',
'nowildcardwithletsencrypt' => 'Let\'s Encrypt kann mittels ACME Wildcard-Domains nur via DNS validieren, sorry. Bitte den ServerAlias auf WWW setzen oder deaktivieren',
'customized_version' => 'Es scheint als wäre die froxlor Installation angepasst worden. Kein Support, sorry.',
'autoupdate_0' => 'Unbekannter Fehler',
'autoupdate_1' => 'PHP Einstellung allow_url_fopen ist deaktiviert. Autoupdate benötigt diese Option, bitte in der php.ini aktivieren.',
'autoupdate_2' => 'PHP zip Erweiterung nicht gefunden, bitte prüfen, ob diese installiert und aktiviert ist.',
'autoupdate_4' => 'Das froxlor Archiv konnte nicht auf der Festplatte gespeichert werden :(',
'autoupdate_5' => 'version.froxlor.org gab ungültige Werte zurück :(',
'autoupdate_6' => 'Woops, keine (gültige) Version angegeben für den Download :(',
'autoupdate_7' => 'Das heruntergeladene Archiv konnte nicht gefunden werden :(',
'autoupdate_8' => 'Das Archiv konnte nicht entpackt werden :(',
'autoupdate_9' => 'Die heruntergeladene Datei konnte nicht verifiziert werden. Bitte erneut versuchen zu aktualisieren.',
'autoupdate_10' => 'Minimum unterstützte Version von PHP ist 7.4.0',
'autoupdate_11' => 'Webupdate ist deaktiviert',
'mailaccistobedeleted' => 'Ein vorheriges Konto mit dem gleichen Namen (%s) wird aktuell noch gelöscht und kann daher derzeit nicht angelegt werden',
'customerhasongoingexportjob' => 'Es gibt noch einen austehenden Daten-Export. Bitte haben Sie etwas Geduld.',
'exportfunctionnotenabled' => 'Die Datenexport-Funktion is nicht aktiviert',
'dns_domain_nodns' => 'DNS ist für diese Domain nicht aktiviert',
'dns_content_empty' => 'Keinen Inhalt angegeben',
'dns_content_invalid' => 'DNS Eintrag ungültig',
'dns_arec_noipv4' => 'Keine gültige IP-Adresse für A-Eintrag angegeben',
'dns_aaaarec_noipv6' => 'Keine gültige IP-Adresse für AAAA-Eintrag angegeben',
'dns_mx_prioempty' => 'Ungültige MX Priorität angegeben',
'dns_mx_needdom' => 'Der Wert des MX Eintrags muss ein gültiger Domainname sein',
'dns_mx_noalias' => 'Der MX Eintrag darf kein CNAME Eintrag sein.',
'dns_cname_invaliddom' => 'Ungültiger Domain-Name für CNAME Eintrag',
'dns_cname_nomorerr' => 'Es existiert bereits ein Eintrag mit dem gleichen Namen. Dieser Eintrag kann daher nicht für CNAME genutzt werden.',
'dns_other_nomorerr' => 'Es existiert bereits ein CNAME Eintrag mit dem gleichen Namen. Dieser Eintrag kann daher nicht für einen anderen genutzt werden.',
'dns_ns_invaliddom' => 'Ungültiger Domain-Name für NS Eintrag',
'dns_srv_prioempty' => 'Ungültige SRV Priorität angegeben',
'dns_srv_invalidcontent' => 'Ungültiger Wert des SRV Eintrags, dieser muss aus den Feldern weight, port und target, bestehen. Bsp.: 5 5060 sipserver.example.com.',
'dns_srv_needdom' => 'Der Wert des SRV Eintrags muss ein gültiger Domainname sein',
'dns_srv_noalias' => 'Der SRV Eintrag darf kein CNAME Eintrag sein.',
'dns_duplicate_entry' => 'Eintrag existiert bereits',
'dns_notfoundorallowed' => 'Domain nicht gefunden oder keine Berechtigung',
'dns_loc_invalid' => 'Ungültiger LOC Eintrag',
'dns_rp_invalid' => 'Ungültiger RP Eintrag',
'dns_sshfp_invalid' => 'Ungültiger SSHFP Eintrag',
'dns_tlsa_invalid' => 'Ungültiger TLSA Eintrag',
'dns_naptr_invalid' => 'Ungültiger NAPTR Eintrag',
'domain_nopunycode' => 'Die Eingabe von Punycode (IDNA) ist nicht notwendig. Die Domain wird automatisch konvertiert.',
'domain_noipaddress' => 'Eine IP-Adresse kann nicht als Domain angelegt werden',
'dns_record_toolong' => 'Records/Labels können maximal 63 Zeichen lang sein',
'noipportgiven' => 'Keine IP/Port angegeben',
'nosslippportgiven' => 'Wenn SSL aktiviert ist, muss eine SSL IP/Port angegeben werden',
'jsonextensionnotfound' => 'Diese Funktion benötigt die PHP json-Erweiterung.',
'cannotdeletesuperadmin' => 'Der erste Administrator kann nicht gelöscht werden.',
'no_wwwcnamae_ifwwwalias' => 'Es kann kein CNAME Eintrag für "www" angelegt werden, da die Domain einen www-Alias aktiviert hat. Ändere diese Einstellung auf "Kein Alias" oder "Wildcard Alias"',
'local_group_exists' => 'Die angegebene Gruppe existiert bereits auf dem System',
'local_group_invalid' => 'Der angegebene Gruppen-Name ist nicht gültig',
'local_user_invalid' => 'Der angegebene Benutzer-Name ist nicht gültig oder existiert nicht',
'local_user_isfroxloruser' => 'Der angegebene Benutzer-Name ist ein von froxlor verwalteter Benutzer und kann in diesem Kontext nicht verwendet werden.',
'invaliddnsforletsencrypt' => 'Die DNS-Einträge der Domain enthalten keine der gewählten IP Adressen. Let\'s Encrypt Zertifikats-Erstellung ist nicht möglich.',
'notallowedphpconfigused' => 'Nutzung einer PHP-Konfiguration welche nicht dem Kunden zugeordnet ist',
'pathmustberelative' => 'Der Benutzer hat nicht die benötigten Berechtigungen, um Pfade außerhalb des Kunden-Heimatverzeichnisses anzugeben. Bitte einen relativen Pfad angeben (kein führendes /).',
'mysqlserverstillhasdbs' => 'Datenbank-Server kann für den Kunden nicht entfernt werden, da sich dort noch Datenbanken befinden.',
'domaincannotbeedited' => 'Keine Berechtigung, um die Domain %s zu bearbeiten',
'invalidcronjobintervalvalue' => 'Cronjob Intervall muss einer der folgenden Werte sein: %s',
'phpgdextensionnotavailable' => 'Die PHP GD Extension ist nicht verfügbar. Bild-Daten können nicht validiert werden.',
'2fa_wrongcode' => 'Der angegebene Code ist nicht korrekt',
'gnupgextensionnotavailable' => 'Die PHP GnuPG Extension ist nicht verfügbar. PGP Schlüssel können nicht validiert werden.',
'invalidpgppublickey' => 'Der angegebene PGP Public Key ist ungültig',
'invalid_validtime' => 'Wert der valid_time in Sekunden muss zwischen 10 und 120 liegen.',
'customerphpenabledbutnoconfig' => 'Kunde hat PHP aktiviert aber keine PHP-Konfiguration wurde gewählt.',
'emaildomainstillhasaddresses' => 'Maildomain-Flag kann nicht deaktiviert werden, da für diese Domain noch E-Mail-Adressen vorhanden sind.',
'tls13requiredforhttp3' => 'Domain hat http3 Option aktiviert, aber SSL-Protokoll enthält nicht TLSv1.3',
'senderdomainnotowned' => 'Die angegebene Domain "%s" kann nicht genutzt werden.',
'emailhasnoaccount' => 'Die angegebene E-Mail-Adresse "%s" hat kein Konto. Eine Absenderadresse kann nicht hinzugefügt werden.',
],
'extras' => [
'description' => 'Hier können Sie zusätzliche Extras einrichten, wie zum Beispiel einen Verzeichnisschutz. Die Änderungen sind erst nach einer kurzen Zeit wirksam.',
'directoryprotection_add' => 'Verzeichnisschutz anlegen',
'view_directory' => 'Verzeichnis anzeigen',
'pathoptions_add' => 'Pfadoptionen hinzufügen',
'directory_browsing' => 'Verzeichnisinhalt anzeigen',
'pathoptions_edit' => 'Pfadoptionen bearbeiten',
'error404path' => '404',
'error403path' => '403',
'error500path' => '500',
'error401path' => '401',
'errordocument404path' => 'Fehlerdokument 404',
'errordocument403path' => 'Fehlerdokument 403',
'errordocument500path' => 'Fehlerdokument 500',
'errordocument401path' => 'Fehlerdokument 401',
'execute_perl' => 'Perl/CGI ausführen',
'htpasswdauthname' => 'Grund der Authentifizierung (AuthName)',
'directoryprotection_edit' => 'Verzeichnisschutz bearbeiten',
'export' => 'Datenexport erstellen',
'dump_web' => 'Web-Daten hinzufügen',
'dump_mail' => 'E-Mail Daten hinzufügen',
'dump_dbs' => 'Datenbanken hinzufügen',
'path_protection_label' => 'Wichtig',
'path_protection_info' => 'Wir raten dringend dazu den angegebenen Pfad zu schützen, siehe "Extras" -> "Verzeichnisschutz"',
],
'ftp' => [
'description' => 'Hier können Sie zusätzliche FTP-Konten einrichten. Die Änderungen sind sofort wirksam und die FTP-Konten sofort benutzbar.',
'account_add' => 'Benutzerkonto anlegen',
'account_edit' => 'FTP-Konto bearbeiten',
'editpassdescription' => 'Neues Passwort setzen oder leer für keine Änderung.',
'sshkey_add' => 'SSH-Key anlegen',
'sshkey_edit' => 'SSH-Key bearbeiten',
],
'gender' => [
'title' => 'Anrede',
'male' => 'Herr',
'female' => 'Frau',
'undef' => '',
],
'imprint' => 'Impressum',
'index' => [
'customerdetails' => 'Kundendaten',
'accountdetails' => 'Kontodaten',
],
'integrity_check' => [
'databaseCharset' => 'Characterset der Datenbank (sollte UTF-8 sein)',
'domainIpTable' => 'IP <‐> Domain Verknüpfung',
'subdomainSslRedirect' => 'Falsches SSL-redirect Flag bei nicht-SSL Domains',
'froxlorLocalGroupMemberForFcgidPhpFpm' => 'froxlor-Benutzer in Kunden-Gruppen (für FCGID/php-fpm)',
'webserverGroupMemberForFcgidPhpFpm' => 'Webserver-Benutzer in Kunden-Gruppen (für FCGID/php-fpm)',
'subdomainLetsencrypt' => 'Hauptdomains ohne zugewiesenen SSL-Port haben keine Subdomain mit aktiviertem SSL-Redirect',
],
'logger' => [
'date' => 'Datum',
'type' => 'Typ',
'action' => 'Aktion',
'user' => 'Benutzer',
'truncate' => 'Log leeren',
'reseller' => 'Reseller',
'admin' => 'Administrator',
'cron' => 'Cronjob',
'login' => 'Login',
'intern' => 'Intern',
'unknown' => 'Unbekannt',
],
'login' => [
'username' => 'Benutzername',
'password' => 'Passwort',
'language' => 'Sprache',
'login' => 'Anmelden',
'logout' => 'Abmelden',
'profile_lng' => 'Profilsprache',
'welcomemsg' => 'Bitte melden Sie sich an, um auf Ihr Konto zuzugreifen.',
'forgotpwd' => 'Passwort vergessen?',
'presend' => 'Passwort zurücksetzen',
'email' => 'E-Mail-Adresse',
'remind' => 'Passwort zurücksetzen',
'usernotfound' => 'Fehler: Unbekannter Benutzer!',
'backtologin' => 'Zurück zum Login',
'combination_not_found' => 'Kombination aus Benutzername und E-Mail Adresse stimmen nicht überein.',
'2fa' => 'Zwei-Faktor Authentifizierung (2FA)',
'2facode' => 'Bitte 2FA Code angeben',
'2faremember' => 'Browser vertrauen',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Hallo,\\n\\nIhr E-Mail-Konto {USERNAME}\\nwurde erfolgreich eingerichtet.\\n\\nDies ist eine automatisch generierte\\nE-Mail, bitte antworten Sie nicht auf\\ndiese Mitteilung.\\n\\nIhr Administrator',
'subject' => 'E-Mail-Konto erfolgreich eingerichtet',
],
'createcustomer' => [
'mailbody' => 'Hallo {SALUTATION},\\n\\nhier Ihre Accountinformationen:\\n\\nBenutzername: {USERNAME}\\nPasswort: {PASSWORD}\\n\\nVielen Dank,\\nIhr Administrator',
'subject' => 'Kontoinformationen',
],
'pop_success_alternative' => [
'mailbody' => 'Hallo {SALUTATION},\\n\\nihr E-Mail-Konto {USERNAME}\\nwurde erfolgreich eingerichtet.\\nIhr Passwort lautet {PASSWORD}.\\n\\nDies ist eine automatisch generierte\\neMail, bitte antworten Sie nicht auf\\ndiese Mitteilung.\\n\\nIhr Administrator',
'subject' => 'E-Mail-Konto erfolgreich eingerichtet',
],
'password_reset' => [
'subject' => 'Passwort zurückgesetzt',
'mailbody' => 'Hallo {SALUTATION},\\n\\nhiermit erhalten Sie den Link, um ein neues Passwort zu setzen. Dieser Link ist für die nächsten 24 Stunden gültig.\\n\\n{LINK}\\n\\nVielen Dank,\\nIhr Administrator',
],
'new_database_by_customer' => [
'subject' => '[froxlor] Neue Datenbank erstellt',
'mailbody' => 'Hallo {CUST_NAME},
du hast gerade eine neue Datenbank angelegt. Hier die angegebenen Informationen:
Datenbankname: {DB_NAME}
Passwort: {DB_PASS}
Beschreibung: {DB_DESC}
Datenbank-Server: {DB_SRV}
phpMyAdmin: {PMA_URI}
Vielen Dank, Ihr Administrator',
],
'new_ftpaccount_by_customer' => [
'subject' => 'Neuer FTP-Benutzer erstellt',
'mailbody' => 'Hallo {CUST_NAME},
du hast gerade einen neuen FTP-Benutzer angelegt. Hier die angegebenen Informationen:
Benutzername: {USR_NAME}
Passwort: {USR_PASS}
Pfad: {USR_PATH}
Vielen Dank, Ihr Administrator',
],
'trafficmaxpercent' => [
'mailbody' => 'Hallo {SALUTATION},\\n\\nSie haben bereits {TRAFFICUSED} von Ihren insgesamt {TRAFFIC} Traffic verbraucht.\\nDies sind mehr als {MAX_PERCENT}%%.\\n\\nVielen Dank,\\nIhr Administrator',
'subject' => 'Sie erreichen bald Ihr Traffic-Limit',
],
'diskmaxpercent' => [
'mailbody' => 'Hallo {SALUTATION},\\n\\nSie haben bereits {DISKUSED} von Ihren insgesamt {DISKAVAILABLE} Speicherplatz verbraucht.\\nDies sind mehr als {MAX_PERCENT}%%.\\n\\nVielen Dank,\\nIhr Administrator',
'subject' => 'Sie erreichen bald Ihr Speicherplatz-Limit',
],
'2fa' => [
'mailbody' => 'Hallo,\\n\\nihr 2FA-Login Code lautet: {CODE}\\n\\nDies ist eine automatisch generierte\\neMail, bitte antworten Sie nicht auf\\ndiese Mitteilung.\\n\\nIhr Administrator',
'subject' => 'froxlor - 2FA Code',
],
],
'menue' => [
'main' => [
'main' => 'Allgemein',
'changepassword' => 'Passwort ändern',
'changelanguage' => 'Sprache ändern',
'username' => 'Angemeldet als ',
'changetheme' => 'Theme wechseln',
'apihelp' => 'API Hilfe',
'apikeys' => 'API Keys',
],
'email' => [
'email' => 'E-Mail',
'emails' => 'Adressen',
'webmail' => 'Webmail',
'emailsoverview' => 'E-Mail Domain Übersicht',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Datenbanken',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domains',
'settings' => 'Übersicht Domains',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Benutzerkonten',
'webftp' => 'WebFTP',
'sshkeys' => 'SSH Keys',
],
'extras' => [
'extras' => 'Extras',
'directoryprotection' => 'Verzeichnisschutz',
'pathoptions' => 'Pfadoptionen',
'export' => 'Datenexport',
],
'traffic' => [
'traffic' => 'Traffic',
'current' => 'Aktueller Monat',
'overview' => 'Übersicht',
],
'phpsettings' => [
'maintitle' => 'PHP-Konfigurationen',
'fpmdaemons' => 'PHP-FPM Versionen',
],
'logger' => [
'logger' => 'System-Log',
],
],
'message' => [
'norecipients' => 'Es wurde keine E-Mail versendet, da sich keine Empfänger in der Datenbank befinden',
'success' => 'Nachricht erfolgreich an "%s" Empfänger gesendet',
],
'mysql' => [
'databasename' => 'Benutzer-/Datenbankname',
'databasedescription' => 'Datenbankbeschreibung',
'database_create' => 'Datenbank anlegen',
'description' => 'Hier können Sie MySQL-Datenbanken anlegen und löschen. Die Änderungen werden sofort wirksam und die Datenbanken sind sofort benutzbar. Im Menü finden Sie einen Link zu phpMyAdmin, mit dem Sie Ihre Datenbankinhalte komfortabel bearbeiten können.
Die Zugangsdaten sind wie folgt: (Die Angaben in kursiver Schrift sind durch die jeweiligen Einträge zu ersetzen) Hostname: Benutzername: Datenbankname Passwort: das gewählte Passwort Datenbank: Datenbankname',
'mysql_server' => 'MySQL-Server',
'database_edit' => 'Datenbank bearbeiten',
'size' => 'Datenbankgröße',
'privileged_user' => 'Privilegierter Datenbankbenutzer',
'privileged_passwd' => 'Passwort für privilegierten Benutzer',
'unprivileged_passwd' => 'Passwort für nicht privilegierten Benutzer',
'mysql_ssl_ca_file' => 'SSL-Serverzertifikat',
'mysql_ssl_verify_server_certificate' => 'Verifizieren des SSL-Serverzertifikats',
'globaluserinfo' => 'Um auf Datenbanken zuzugreifen, kann zusätzlich der froxlor-Login (Benutzer: %s) verwendet werden, dieser hat automatisch Zugriff auf alle Datenbanken. Es wird empfohlen diesen nicht für Applikationen zu nutzen, lediglich zur Administration (z.B. via phpMyAdmin).',
'edit_global_user' => 'Admin Benutzer bearbeiten',
],
'panel' => [
'edit' => 'bearbeiten',
'delete' => 'löschen',
'create' => 'anlegen',
'save' => 'Speichern',
'yes' => 'Ja',
'no' => 'Nein',
'emptyfornochanges' => 'leer für keine Änderung',
'emptyfordefault' => 'Leer für Standardeinstellung.',
'path' => 'Pfad',
'toggle' => 'Umschalten',
'next' => 'Weiter',
'dirsmissing' => 'Das angegebene Verzeichnis konnte nicht gefunden werden.',
'urloverridespath' => 'URL (überschreibt Pfad)',
'pathorurl' => 'Pfad oder URL',
'ascending' => 'aufsteigend',
'descending' => 'absteigend',
'search' => 'Suche',
'used' => 'genutzt',
'translator' => 'Übersetzung',
'reset' => 'Änderungen verwerfen',
'pathDescription' => 'Sollte das Verzeichnis nicht existieren, wird es automatisch erstellt.',
'pathDescriptionEx' => '
Bitte beachten: Der Pfad / ist nicht erlaubt aufgrund administrativer Einstellungen, er wird automatisch auf /gewaehlte.subdomain.tld/ gesetzt, sofern nicht ein anderer Ordner angegeben wird.',
'pathDescriptionSubdomain' => 'Sollte das Verzeichnis nicht existieren, wird es automatisch erstellt. Sollte eine Weiterleitung auf eine andere Domain gewünscht sein, muss der Eintrag mit http:// oder https:// beginnen. Endet die URL mit einem / (Slash) geht froxlor von einem Ordner aus, wenn nicht, wird es wie eine Datei behandelt.',
'back' => 'Zurück',
'reseller' => 'Reseller',
'admin' => 'Administrator',
'customer' => 'Kunde/n',
'send' => 'Versenden',
'nosslipsavailable' => 'Für diesen Server wurden noch keine SSL IP/Port Kombinationen eingetragen',
'backtooverview' => 'Zurück zur Übersicht',
'dateformat' => 'TT.MM.JJJJ',
'dateformat_function' => 'd.m.Y',
'timeformat_function' => 'H:i:s',
'default' => 'Standard',
'never' => 'Nie',
'active' => 'Aktiv',
'please_choose' => 'Bitte auswählen',
'allow_modifications' => 'Änderungen zulassen',
'megabyte' => 'Megabyte',
'not_supported' => 'Nicht unterstützt in: ',
'view' => 'ansehen',
'toomanydirs' => 'Zu viele Unterverzeichnisse. Weiche auf manuelle Verzeichniseingabe aus.',
'abort' => 'Abbrechen',
'not_activated' => 'Nicht aktiviert',
'off' => 'aus',
'options' => 'Optionen',
'neverloggedin' => 'Keine Anmeldung bisher',
'descriptionerrordocument' => 'Mögliche Werte sind: URL, Pfad zu einer Datei oder ein Text, umgeben von Anführungszeichen (" "). Leer für Server-Standardwert.',
'unlock' => 'entsperren',
'theme' => 'Theme',
'variable' => 'Variable',
'description' => 'Beschreibung',
'cancel' => 'Abbrechen',
'ssleditor' => 'SSL-Einstellungen für diese Domain',
'ssleditor_infoshared' => 'Aktuell Zertifikat der Elterndomain genutzt',
'ssleditor_infoglobal' => 'Aktuell globales Zertifikat genutzt',
'dashboard' => 'Dashboard',
'assigned' => 'zugewiesen',
'available' => 'verfügbar',
'news' => 'Neuigkeiten',
'newsfeed_disabled' => 'Das Newsfeed ist deaktiviert. Klicken Sie auf das Editier-Icon, um zu den Einstellungen zu gelangen.',
'ftpdesc' => 'FTP-Beschreibung',
'letsencrypt' => 'Benutzt Let\'s encrypt',
'set' => 'Setzen',
'sshkeydesc' => 'SSH-Key Beschreibung',
'ftpuser' => 'FTP Benutzer',
'sshpubkey' => 'Öffentlicher SSH Schlüssel',
'sshpubkeyph' => "Startet mit 'ssh-ed25519', 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'sk-ecdsa-sha2-nistp256@openssh.com', oder 'sk-ssh-ed25519@openssh.com'",
'exportpath' => [
'title' => 'Pfad zur Ablage des Exports',
'description' => 'In diesem Ordner werden die Export-Archive abgelegt. Wenn Web-Daten exportiert werden, werden alle Dateien aus dem Heimatverzeichnis gesichert, exklusive des hier angegebenen Ordners.',
],
'export_pgp_public_key' => [
'title' => 'Öffentlicher PGP-Schlüssel',
'description' => 'Der öffentliche PGP-Schlüssel, mit dem die Exporte verschlüsselt werden sollen. Wenn kein Schlüssel angegeben ist, werden die Exporte nicht verschlüsselt.',
],
'pgp_public_key' => 'Öffentlicher PGP-Schlüssel',
'none_value' => 'Keine',
'viewlogs' => 'Logdateien einsehen',
'not_configured' => 'Das System wurde noch nicht konfiguriert. Klicke auf den Button um die Installation zu starten.',
'start_setup' => 'Setup starten',
'ihave_configured' => 'Ich habe die Dienste konfiguriert',
'system_is_configured' => 'Das System ist bereits konfiguriert',
'settings_before_configuration' => 'Stelle sicher, dass die Einstellungen angepasst wurden bevor die Dienste konfiguriert werden.',
'image_field_delete' => 'Das momentan vorhandene Bild löschen',
'usage_statistics' => 'Resourcen-Verbrauch',
'security_question' => 'Sicherheitsabfrage',
'listing_empty' => 'Keine Einträge gefunden',
'unspecified' => 'keine Angabe',
'settingsmode' => 'Modus',
'settingsmodebasic' => 'Einfach',
'settingsmodeadvanced' => 'Erweitert',
'settingsmodetoggle' => 'Modus umschalten',
'modalclose' => 'Schließen',
'managetablecolumnsmodal' => [
'title' => 'Tabellenspalten verwalten',
'description' => 'Hier können die angezeigten Tabellenspalten angepasst werden',
],
'mandatoryfield' => 'Pflichtfeld',
'select_all' => 'Alle auswählen',
'unselect_all' => 'Alle abwählen',
'searchtablecolumnsmodal' => [
'title' => 'Feld-Suche',
'description' => 'Wähle das zu durchsuchende Feld aus'
],
'upload_import' => 'Hochladen und importieren',
'profile' => 'Mein Profil',
'use_checkbox_for_unlimited' => 'Der Wert "0" deaktiviert die Resource. Die Checkbox rechts erlaubt "unlimitierte" Nutzung.',
'use_checkbox_to_disable' => 'Zum Deaktivieren, klicke die Checkbox auf der rechten Seite des Eingabefeldes',
'distro_mismatch' => 'Anscheinend wurde auf eine neue Distribution aktualisiert. Bitte die Dienste entsprechend neu konfigurieren.',
'set_new_distro' => 'Distribution setzen',
'dismiss' => 'Ignorieren',
'confirmaction' => 'Vorgang bestätigen',
'confirmactiondesc' => 'Der Vorgang muss durch Angabe des aktuellen Benutzerpassworts bestätigt werden',
'authenticationfailed' => 'Authentifizierung fehlgeschlagen',
'noauthentication' => 'Fehlende Authentifizierung',
],
'phpfpm' => [
'vhost_httpuser' => 'Lokaler Benutzer für PHP-FPM (froxlor-Vhost)',
'vhost_httpgroup' => 'Lokale Gruppe für PHP-FPM (froxlor-Vhost)',
'ownvhost' => [
'title' => 'Verwende PHP-FPM im froxlor-Vhost',
'description' => 'Wenn verwendet, wird froxlor selbst unter einem lokalen Benutzer ausgeführt',
],
'use_mod_proxy' => [
'title' => 'Verwende mod_proxy / mod_proxy_fcgi',
'description' => 'Muss gesetzt sein bei Debian 9.x (Stretch) oder neuer. Diese Option kann aktiviert werden, um php-fpm via mod_proxy_fcgi einzubinden. Dies setzt mindestens apache-2.4.9 voraus',
],
'ini_flags' => 'Mögliche php_flags für die php.ini. Pro Zeile eine Direktive',
'ini_values' => 'Mögliche php_values für die php.ini. Pro Zeile eine Direktive',
'ini_admin_flags' => 'Mögliche php_admin_flags für die php.ini. Pro Zeile eine Direktive',
'ini_admin_values' => 'Mögliche php_admin_values für die php.ini. Pro Zeile eine Direktive',
],
'privacy' => 'Datenschutzerklärung',
'pwdreminder' => [
'success' => 'Das Zurücksetzen des Passworts wurde erfolgreich angefordert. Sie sollten nun eine E-Mail mit weiteren Anweisungen erhalten.',
'notallowed' => 'Unbekannter Benutzer oder Zurücksetzen des Passworts ist deaktiviert.',
'changed' => 'Ihr Passwort wurde erfolgreich geändert. Sie können sich nun damit anmelden.',
'wrongcode' => 'Der verwendete Aktivierungscode ist entweder nicht gültig oder bereits abgelaufen.',
'choosenew' => 'Neues Passwort auswählen',
],
'question' => [
'question' => 'Sicherheitsabfrage',
'admin_customer_reallydelete' => 'Wollen Sie den Kunden "%s" wirklich löschen? ACHTUNG! Alle Daten gehen unwiderruflich verloren! Nach dem Vorgang müssen die Daten manuell aus dem Dateisystem entfernt werden.',
'admin_domain_reallydelete' => 'Wollen Sie die Domain "%s" wirklich löschen? ACHTUNG: Alle Subdomains, FTP-Konten und E-Mail Adressen/Konten, welche mit dieser Domain verbunden sind, werden gelöscht!',
'admin_domain_reallydisablesecuritysetting' => 'Wollen Sie die wichtige Sicherheitseinstellung \'OpenBasedir\' wirklich deaktivieren?',
'admin_admin_reallydelete' => 'Wollen Sie den Admin "%s" wirklich löschen? Alle Kunden und Domains dieses Admins werden Ihnen zugeteilt.',
'admin_template_reallydelete' => 'Wollen Sie die Vorlage "%s" wirklich löschen?',
'domains_reallydelete' => 'Wollen Sie die Domain "%s" wirklich löschen?',
'email_reallydelete' => 'Wollen Sie die E-Mail-Adresse "%s" wirklich löschen?',
'email_reallydelete_account' => 'Wollen Sie das Konto von "%s" wirklich löschen?',
'email_reallydelete_forwarder' => 'Wollen Sie die Weiterleitung "%s" wirklich löschen?',
'email_reallydelete_sender' => 'Wollen Sie die Absendeadresse "%s" wirklich löschen?',
'extras_reallydelete' => 'Wollen Sie den Verzeichnisschutz für "%s" wirklich löschen?',
'extras_reallydelete_pathoptions' => 'Wollen Sie die Optionen für den Pfad "%s" wirklich löschen?',
'extras_reallydelete_export' => 'Wollen Sie den geplanten Daten-Export wirklich löschen?',
'ftp_reallydelete' => 'Wollen Sie das FTP-Benutzerkonto "%s" wirklich löschen?',
'sshkey_reallydelete' => 'Wollen Sie den SSH-Schlüssel "%s" wirklich löschen?',
'mysql_reallydelete' => 'Wollen Sie die Datenbank "%s" wirklich löschen? ACHTUNG! Alle Daten gehen unwiderruflich verloren!',
'admin_configs_reallyrebuild' => 'Wollen Sie wirklich alle Konfigurationsdateien neu erstellen lassen?',
'admin_customer_alsoremovefiles' => 'Kundendaten löschen?',
'admin_customer_alsoremovemail' => 'E-Mail-Daten auf dem Dateisystem löschen?',
'admin_customer_alsoremoveftphomedir' => 'Heimatverzeichnis des FTP-Benutzers löschen?',
'admin_ip_reallydelete' => 'Wollen Sie wirklich die IP-Adresse "%s" löschen?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Sind Sie sicher, dass der DocumentRoot dieser Domain außerhalb des Heimatverzeichnisses des Kunden liegen soll?',
'admin_counters_reallyupdate' => 'Wollen Sie den Ressourcenverbrauch neu berechnen?',
'admin_cleartextmailpws_reallywipe' => 'Wollen Sie wirklich alle unverschlüsselten Passwörter aus der Tabelle mail_users entfernen? Dieser Schritt kann nicht rückgängig gemacht werden! Die Einstellung für das Speichern der E-Mail-Konten-Passwörter in Klartext wird hierbei ebenfalls deaktiviert.',
'logger_reallytruncate' => 'Wollen Sie die Tabelle "%s" wirklich leeren?',
'admin_quotas_reallywipe' => 'Sind Sie sicher, dass alle E-Mail-Kontingente aus der Tabelle mail_users entfernt werden sollen? Dieser Schritt kann nicht rückgängig gemacht werden!',
'admin_quotas_reallyenforce' => 'Sind Sie sicher, dass Sie allen Benutzern das Default-Quota zuweisen wollen? Dies kann nicht rückgängig gemacht werden!',
'phpsetting_reallydelete' => 'Wollen Sie diese PHP-Einstellungen wirklich löschen? Alle Domains die diese Einstellungen bis jetzt verwendet haben, werden dann auf die Standardeinstellungen umgestellt.',
'fpmsetting_reallydelete' => 'Wollen Sie diese PHP-FPM Einstellungen wirklich löschen? Alle PHP Konfigurationen die diese Einstellungen bis jetzt verwendet haben, werden dann auf die Standardeinstellungen umgestellt.',
'customer_reallyunlock' => 'Wollen Sie den Kunden "%s" wirklich entsperren?',
'admin_integritycheck_reallyfix' => 'Möchten Sie wirklich versuchen sämtliche Datenbank-Integritätsprobleme automatisch zu beheben?',
'plan_reallydelete' => 'Wollen Sie den Hostingplan %s wirklich löschen?',
'apikey_reallydelete' => 'Wollen Sie den Api-Key wirklich löschen?',
'apikey_reallyadd' => 'Einen neuen Api-Key erstellen?',
'dnsentry_reallydelete' => 'Wollen Sie den DNS-Eintrag wirklich löschen?',
'certificate_reallydelete' => 'Wollen Sie diese Zertifikat wirklich löschen?',
'cache_reallydelete' => 'Wollen Sie den Cache wirklich leeren?',
'please_enter_otp' => 'Bitte 2FA Code eingeben',
'admin_mysqlserver_reallydelete' => 'Wollen Sie wirklich diesen MySQL-Server löschen?',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Session-Timeout',
'description' => 'Wie lange muss ein Benutzer inaktiv sein, damit die Session ungültig wird? (in Sekunden)',
],
'accountprefix' => [
'title' => 'Kundenpräfix',
'description' => 'Welchen Präfix sollen die Kundenaccounts haben?',
],
'mysqlprefix' => [
'title' => 'MySQL-Präfix',
'description' => 'Welchen Präfix sollen die MySQL-Benutzerkonten haben?Mit "RANDOM" als Wert wird ein 3-stelliger Zufallswert als Präfix verwendet.Mit "DBNAME" als Wert wird ein Feld Databankname zusammen mit dem Kundennamen als Präfix genutzt.',
],
'ftpprefix' => [
'title' => 'FTP-Präfix',
'description' => 'Welchen Präfix sollen die FTP-Benutzerkonten haben? Falls FTP-Quoatas verwendet werden, ist es notwendig das Quota-SQL-Query in der FTP-Server-Config ebenfalls zu ändern!',
],
'documentroot_prefix' => [
'title' => 'Heimatverzeichnis',
'description' => 'Wo sollen die Heimatverzeichnisse der Kunden liegen?',
],
'logfiles_directory' => [
'title' => 'Webserver-Logdateien-Verzeichnis',
'description' => 'Wo sollen die Logdateien des Webservers liegen?',
],
'logfiles_script' => [
'title' => 'Eigenes Script zu dem Log-Files übergeben werden',
'description' => 'Hier kann ein Script an das die Loginhalte übergeben werden hinterlegt und die Platzhalter {LOGFILE}, {DOMAIN} und {CUSTOMER} genutzt werden, sofern nötig. Falls ein Script angegeben wird, muss die Option Webserver Logdateien umleiten gesetzt werden',
],
'logfiles_format' => [
'title' => 'Access-Log Format',
'description' => 'Hier kann ein angepasstes Log-format entsprechend der Webserver-Dokumentation angegeben werden, leer lassen für Standard. Abhängig vom LogFormat muss die Angabe unter Anführungszeichen stehen. Wenn verwendet mit nginx, so kann es wie folgt aussehen: log_format frx_custom {EINGESTELLTES_FORMAT}. Wenn verwendet mit Apache, so kann es wie folgt aussehen: LogFormat {EINGESTELLTES_FORMAT} frx_custom. ACHTUNG: Der Code wird nicht auf Fehler geprüft. Etwaige Fehler werden auch übernommen und der Webserver könnte nicht mehr starten!',
],
'logfiles_type' => [
'title' => 'Access-Log Typ',
'description' => 'Wähle zwischen combined oder vhost_combined.',
],
'logfiles_piped' => [
'title' => 'Webserver Logdateien zu eigenem Script umleiten (siehe oben)',
'description' => 'Wenn ein Script für die Logdateien verwendet wird, muss diese Option aktiviert werden, damit der Webserver die Ausgabe an das Script weitergibt.',
],
'ipaddress' => [
'title' => 'IP-Adresse',
'description' => 'Welche Haupt-IP-Adresse hat der Server?',
],
'hostname' => [
'title' => 'Hostname',
'description' => 'Welchen Hostnamen hat der Server?',
],
'apachereload_command' => [
'title' => 'Webserver-Reload-Befehl',
'description' => 'Wie heißt das Skript zum Neuladen der Webserver-Konfigurationsdateien?',
],
'bindenable' => [
'title' => 'Nameserver aktivieren',
'description' => 'Hier können Sie den Nameserver global aktivieren bzw. deaktivieren.',
],
'bindconf_directory' => [
'title' => 'DNS-Server Konfigurationsordner',
'description' => 'Wo liegen die DNS-Server Konfigurationsdateien?',
],
'bindreload_command' => [
'title' => 'DNS-Server Reload-Befehl',
'description' => 'Wie heißt das Skript zum Neuladen der DNS-Server Konfigurationsdateien?',
],
'vmail_uid' => [
'title' => 'Mail-UID',
'description' => 'Welche UID sollen die E-Mails haben?',
],
'vmail_gid' => [
'title' => 'Mail-GID',
'description' => 'Welche GID sollen die E-Mails haben?',
],
'vmail_homedir' => [
'title' => 'Mail-Homedir',
'description' => 'Wo sollen die E-Mails liegen?',
],
'adminmail' => [
'title' => 'Absenderadresse',
'description' => 'Wie lautet die Absenderadresse für E-Mails aus dem Panel?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin-URL',
'description' => 'Wo liegt phpMyAdmin? (muss mit http(s):// beginnen)',
],
'webmail_url' => [
'title' => 'Webmail-URL',
'description' => 'Wo liegt der Webmail-Client? (muss mit http(s):// beginnen)',
],
'webftp_url' => [
'title' => 'WebFTP-URL',
'description' => 'Wo liegt der WebFTP-Client? (muss mit http(s):// beginnen)',
],
'language' => [
'description' => 'Welche Sprache ist Ihre Standardsprache?',
],
'maxloginattempts' => [
'title' => 'Maximale Loginversuche',
'description' => 'Maximale Anzahl an Loginversuchen bis der Account deaktiviert wird.',
],
'deactivatetime' => [
'title' => 'Länge der Deaktivierung',
'description' => 'Zeitraum (in Sekunden) für den der Account deaktiviert ist.',
],
'pathedit' => [
'title' => 'Pfad-Eingabemethode',
'description' => 'Soll ein Pfad via Auswahlliste ausgewählt oder manuell eingegeben werden können?',
],
'nameservers' => [
'title' => 'Nameserver',
'description' => 'Eine durch Komma getrennte Liste mit den Hostnamen aller Nameserver. Der Erste ist der Primäre.',
],
'mxservers' => [
'title' => 'MX-Server',
'description' => 'Eine durch Komma getrenne Liste, die ein Paar mit einer Nummer und den Hostnamen einen MX-Servers, getrennt durch ein Leerzeichen, enthält (z. B. \'10 mx.example.tld\').',
],
'paging' => [
'title' => 'Einträge pro Seite',
'description' => 'Wie viele Einträge sollen auf einer Seite angezeigt werden? (0 = Paging deaktivieren)',
],
'defaultip' => [
'title' => 'Standard-IP/Port-Kombination',
'description' => 'Welche IP/Port-Kombination sollen standardmäßig verwendet werden?',
],
'defaultsslip' => [
'title' => 'Standard SSL IP/Port-Kombination',
'description' => 'Welche ssl-fähigen IP/Port-Kombination sollen standardmäßig verwendet werden?',
],
'phpappendopenbasedir' => [
'title' => 'Anzuhängende Pfade bei OpenBasedir',
'description' => 'Diese (durch Doppelpunkte getrennten) Pfade werden dem OpenBasedir-Statement in jedem vHost-Container angehängt.',
],
'natsorting' => [
'title' => 'Natürliche Sortierung in der Listenansicht nutzen',
'description' => 'Sortiert die Liste in der Reihenfolge web1 -> web2 -> web11 statt web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Docroot für deaktivierte Benutzer',
'description' => 'Dieser Pfad wird als Docroot für deaktivierte Benutzer verwendet. Ist das Feld leer, wird kein vHost erstellt.',
],
'mailpwcleartext' => [
'title' => 'Passwörter der Mail-Konten auch im Klartext in der Datenbank speichern',
'description' => 'Wenn diese Einstellung auf Ja gesetzt wird, werden alle Passwörter auch unverschlüsselt (also im Klartext, für jeden mit Zugriff auf die froxlor-Datenbank sofort lesbar) in der mail_users-Tabelle gespeichert. Aktivieren Sie diese Option nur dann, wenn Sie SASL nutzen!',
],
'ftpdomain' => [
'title' => 'FTP-Benutzerkonten @domain',
'description' => 'Können Kunden FTP-Benutzerkonten user@domain anlegen?',
],
'mod_fcgid' => [
'title' => 'PHP über mod_fcgid/suexec einbinden',
'description' => 'PHP wird unter dem Benutzer des Kunden ausgeführt.
Dies benötigt eine spezielle Webserver-Konfiguration für Apache, siehe FCGID-Handbuch.',
'configdir' => [
'title' => 'Konfigurations-Verzeichnis',
'description' => 'Wo sollen alle Konfigurationsdateien von fcgid liegen? Wenn Sie keine selbst kompilierte suexec Binary benutzen, was in der Regel der Fall ist, muss dieser Pfad unter /var/www/ liegen.
ACHTUNG: Der Inhalt dieses Ordners wird regelmäßig geleert, daher sollten dort keinerlei Daten manuell abgelegt werden.
',
],
'tmpdir' => [
'title' => 'Temporäres Verzeichnis',
'description' => 'Wo sollen die temporären Verzeichnisse erstellt werden',
],
'starter' => [
'title' => 'Prozesse je Domain',
'description' => 'Wieviele PHP-Prozesse pro Domain sollen gestartet/erlaubt werden. Der Wert 0 wird empfohlen, da PHP die Anzahl dann selbst effizient verwaltet.',
],
'wrapper' => [
'title' => 'Wrappereinbindung in Vhosts',
'description' => 'Wie sollen die Wrapper in den Vhosts eingebunden werden',
],
'peardir' => [
'title' => 'Globale PEAR Verzeichnisse',
'description' => 'Welche globalen PEAR Verzeichnisse sollen in den php.ini-Einstellungen ersetzt werden? Einzelne Verzeichnisse sind mit einem Doppelpunkt zu trennen.',
],
'maxrequests' => [
'title' => 'Maximale Requests pro Domain',
'description' => 'Wieviele PHP-Requests pro Domain sollen erlaubt werden?',
],
'defaultini' => 'Voreingestellte PHP-Konfiguration für neue Domains',
'defaultini_ownvhost' => 'Voreingestellte PHP-Konfiguration für den froxlor-Vhost',
'idle_timeout' => [
'title' => 'Idle-Timeout',
'description' => 'Timeout-Einstellung für mod_FastCGI.',
],
],
'sendalternativemail' => [
'title' => 'Alternative E-Mail-Adresse benutzen',
'description' => 'Während des Erstellens eines Accounts das Passwort an eine andere E-Mail-Adresse senden',
],
'apacheconf_vhost' => [
'title' => 'Webserver vHost-Konfigurations-Datei/Verzeichnis-Name',
'description' => 'Wo sollen die vHost-Konfigurationen abgelegt werden? Sie können entweder eine Datei (also mit allen vHosts) oder einen Ordner (mit einer Datei pro vHost) angeben.',
],
'apacheconf_diroptions' => [
'title' => 'Webserver Verzeichnisoption-Konfigurations-Datei/Verzeichnis-Name',
'description' => 'Wo sollen die Verzeichnisoption-Konfigurationen abgelegt werden? Sie können entweder eine Datei (also mit allen vHosts) oder einen Ordner (mit einer Datei pro vHost) angeben.',
],
'apacheconf_htpasswddir' => [
'title' => 'Webserver htpasswd Verzeichnisname',
'description' => 'Wo sollen die htpasswd-Dateien für den Verzeichnisschutz abgelegt werden?',
],
'mysql_access_host' => [
'title' => 'MySQL-Access-Hosts',
'description' => 'Eine durch Komma getrennte Liste mit den Hostnamen aller Hostnames/IP-Adressen, von denen sich die Benutzer einloggen dürfen. Um ein Subnetz zu erlauben ist die Netzmaske oder CIDR Syntax erlaubt.',
],
'webalizer_quiet' => [
'title' => 'Webalizerausgabe',
'description' => 'Ausgabefreudigkeit des Webalizer-Programms',
],
'logger' => [
'enable' => 'Logging ja/nein',
'severity' => 'Logging Level',
'types' => [
'title' => 'Log-Art(en)',
'description' => 'Wählen Sie hier die gewünschten Logtypen. Für Mehrfachauswahl, halten Sie während der Auswahl STRG gedrückt Mögliche Logtypen sind: syslog, file, mysql',
],
'logfile' => [
'title' => 'Dateiname der Logdatei',
'description' => 'Wird nur verwendet, wenn die Log-Art "file" ausgewählt ist. Diese Datei wird unter froxlor/logs/ geschrieben. Dieser Ordner ist vor Webzugriff geschützt.',
],
'logcron' => 'Logge Cronjobs',
'logcronoption' => [
'never' => 'Nie',
'once' => 'Einmalig',
'always' => 'Immer',
],
],
'ssl' => [
'use_ssl' => [
'title' => 'Aktiviere SSL',
'description' => 'Erlaubt die Nutzung von SSL für den Webserver',
],
'ssl_cert_file' => [
'title' => 'Pfad zum SSL-Zertifikat',
'description' => 'Geben Sie den Pfad inklusive Dateinamen des Zertifikats an (meist .crt or .pem).',
],
'openssl_cnf' => 'Standardwerte zum Erstellen eines Zertifikats',
'ssl_key_file' => [
'title' => 'Pfad zum SSL Private-Key',
'description' => 'Geben Sie den Pfad inklusive Dateinamen der Schlüssel-Datei an (der private-key, meist .key).',
],
'ssl_ca_file' => [
'title' => 'Pfad zum SSL-CA-Zertifikat (optional)',
'description' => 'Client Authentifizierung, dieses Feld sollte nur gesetzt werden, wenn es wirklich gebraucht wird.',
],
'ssl_cipher_list' => [
'title' => 'Erlaubte SSL Ciphers festlegen',
'description' => 'Dies ist eine Liste von Ciphers, die genutzt werden sollen (oder auch nicht genutzt werden sollen), wenn eine SSL Verbindung besteht. Eine Liste aller Ciphers und wie diese hinzugefügt/ausgeschlossen werden ist in den Abschnitten "CIPHER LIST FORMAT" und "CIPHER STRINGS" in der man-page für Ciphers zu finden.
',
],
'apache24_ocsp_cache_path' => [
'title' => 'Apache 2.4: Pfad zum OCSP-Stapling-Cache',
'description' => 'Konfiguriert den Cache-Pfad zum Zwischenspeichern der OCSP-Antworten, die an TLS-Handshakes angehängt werden.',
],
'ssl_protocols' => [
'title' => 'SSL Protokollversion festlegen',
'description' => 'Dies ist eine Liste von SSL/TLS Protokollversionen die genutzt werden sollen (oder auch nicht genutzt werden sollen), wenn SSL verwendet wird. Hinweis: Ältere Browser sind möglicherweise nicht vollständig zum neusten Protokoll kompatibel.
Standard-Wert ist:
TLSv1.2
',
],
'tlsv13_cipher_list' => [
'title' => 'Explizite TLSv1.3 Ciphers, wenn genutzt',
'description' => 'Dies ist eine Liste von Ciphers, die genutzt werden sollen (oder auch nicht genutzt werden sollen), wenn eine TLSv1.3 Verbindung hergestellt werden soll. Eine Liste aller Ciphers und wie diese hinzugefügt/ausgeschlossen werden ist der Dokumentation für TLSv1.3 zu entnehmen.
Standard-Wert ist leer',
],
],
'default_vhostconf' => [
'title' => 'Standard vHost-Einstellungen',
'description' => 'Der Inhalt dieses Feldes wird direkt in den IP/Port-vHost-Container übernommen. Die folgenden Variablen können verwendet werden: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (wenn zutreffend)
ACHTUNG: Der Code wird nicht auf Fehler geprüft. Etwaige Fehler werden also auch übernommen. Der Webserver könnte nicht mehr starten!',
],
'default_vhostconf_domain' => [
'description' => 'Der Inhalt dieses Feldes wird direkt in jeden Domain-vHost-Container übernommen. Die folgenden Variablen können verwendet werden: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (wenn zutreffend) ACHTUNG: Der Code wird nicht auf Fehler geprüft. Etwaige Fehler werden also auch übernommen. Der Webserver könnte nicht mehr starten!',
],
'apache_globaldiropt' => [
'title' => 'Kunden-Prefix Ordner-Optionen',
'description' => 'Der Inhalt dieses Feldes wird in die 05_froxlor_dirfix_nofcgid.conf Apache Konfigurationsdatei eingefügt. Wenn leer werden folgende Standardwerte verwendet:
apache >=2.4 Require all granted AllowOverride All
apache <=2.2 Order allow,deny allow from all',
],
'decimal_places' => 'Nachkommastellen bei der Ausgabe von Traffic/Webspace',
'selfdns' => [
'title' => 'Manuelle DNS-Einstellungen für Domains',
],
'selfdnscustomer' => [
'title' => 'Erlaube Kunden eigene DNS-Einstellungen vorzunehmen.',
],
'unix_names' => [
'title' => 'Benutze UNIX-kompatible Benutzernamen.',
'description' => 'Erlaubt die Nutzung von - und _ in Benutzernamen wenn Nein.',
],
'allow_password_reset' => [
'title' => 'Erlaube das Zurücksetzen des Kundenpassworts.',
'description' => 'Kunden können ihr Passwort zurücksetzen und bekommen einen Aktivierungs-Link per E-Mail zugesandt',
],
'allow_password_reset_admin' => [
'title' => 'Erlaube das Zurücksetzen von Admin-/Reseller-Passwörtern.',
'description' => 'Admins/Reseller können ihr Passwort zurücksetzen und bekommen einen Aktivierungs-Link per E-Mail zugesandt',
],
'mail_quota' => [
'title' => 'Mailbox-Kontingent',
'description' => 'Standard-Kontingent für neu erstellte E-Mail-Benutzerkonten (Megabyte).',
],
'mail_quota_enabled' => [
'title' => 'Nutze E-Mail-Kontingent für Kunden',
'description' => 'Aktiviere Kontingent für E-Mail-Konten. Standard ist Nein, da dies eine spezielle Konfiguration voraussetzt.',
'removelink' => 'Hier klicken, um alle E-Mail-Kontingente zu entfernen',
'enforcelink' => 'Hier klicken, um allen Benutzern das Standard-Kontingent zu zuweisen.',
],
'mail_enable_allow_sender' => [
'title' => 'Aktiviere "Erlaubte Absendeadressen" Nutzung für Kunden',
'description' => 'Wenn aktiviert können Kunden für E-Mail-Konten alternative Absendeadressen festlegen. Standard: aus',
],
'mail_allow_external_domains' => [
'title' => 'Erlaube externe Domains für "Erlaubte Absendeadressen"',
'description' => 'Wenn aktiviert können Kunden beliebige Domains (außer diese auf diesem System, die nicht dem Kunden gehören) als "Erlaubte Absendeadressen" nutzen. Standard: aus',
],
'session_allow_multiple_login' => [
'title' => 'Erlaube gleichzeitigen Login',
'description' => 'Wenn diese Option aktiviert ist, können sich Nutzer mehrmals gleichzeitig anmelden.',
],
'panel_allow_domain_change_admin' => [
'title' => 'Erlaube Verschieben von Domains unter Admins',
'description' => 'Wenn diese Option aktiviert ist, kann unter Domaineinstellungen die Domain einem anderen Admin zugewiesen werden. Achtung: Wenn der Kunde einer Domain nicht dem gleichen Admin zugeordnet ist wie die Domain selbst, kann dieser Admin alle anderen Domains des Kunden sehen!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Erlaube Verschieben von Domains unter Kunden',
'description' => 'Wenn diese Option aktiviert ist, kann unter Domaineinstellungen die Domain einem anderen Kunden zugewiesen werden. Achtung: Der Dokumenten-Pfad der Domain wird auf den Heimatpfad (+ Domain-Ordner, sofern aktiviert) des neuen Kunden gesetzt.',
],
'specialsettingsforsubdomains' => [
'description' => 'Wenn ja, werden die individuellen Einstellungen für alle Subdomains übernommen. Wenn nein, werden Subdomain-Specialsettings entfernt.',
],
'panel_password_min_length' => [
'title' => 'Mindestlänge von Passwörtern',
'description' => 'Hier können Sie die Mindestlänge für Passwörter festlegen. \'0\' bedeutet: Keine Mindestlänge',
],
'system_store_index_file_subs' => [
'title' => 'Erstelle Index-Datei auch in neuen Unterordnern',
'description' => 'Wenn aktiviert, wird für jede Subdomain mit neuem Unterordner die Standard-Index Datei angelegt.',
],
'adminmail_return' => [
'title' => 'Antwort-Adresse',
'description' => 'Standard-Antwort-Adresse für E-Mails aus dem Panel.',
],
'adminmail_defname' => 'Panel-Absender-Name',
'stdsubdomainhost' => [
'title' => 'Kunden Standard-Subdomain',
'description' => 'Welcher Hostname soll für das Erstellen der Kunden-Standard-Subdomain verwendet werden? Falls leer wird der System-Hostname verwendet.',
],
'awstats_path' => 'Pfad zu AWStats \'awstats_buildstaticpages.pl\'',
'awstats_conf' => 'AWStats Konfigurations-Pfad',
'defaultttl' => 'Domain TTL für Bind in Sekunden (default \'604800\' = 1 Woche)',
'defaultwebsrverrhandler_enabled' => 'Verwende Standard-Fehlerdokumente für alle Kunden',
'defaultwebsrverrhandler_err401' => [
'title' => 'Datei/URL für Fehler 401',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'Datei/URL für Fehler 403',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'Datei/URL für Fehler 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'Datei/URL für Fehler 500',
'description' => '',
],
'ftpserver' => [
'desc' => 'Wenn pureftpd ausgewählt ist, werden die .ftpquota Dateien für das Quota erstellt und täglich aktualisiert.',
],
'customredirect_enabled' => [
'title' => 'Erlaube Kunden-Redirect',
'description' => 'Erlaubt es Kunden den HTTP-Status Code für einen Redirect zu wählen',
],
'customredirect_default' => [
'title' => 'Standard-Redirect',
'description' => 'Dieser Redirect wird immer genutzt, sofern der Kunde keinen anderen auswählt.',
],
'mail_also_with_mxservers' => 'Erstelle mail-, imap-, pop3- and smtp-"A Record" auch wenn MX-Server angegeben sind',
'froxlordirectlyviahostname' => 'froxlor direkt über den Hostnamen erreichbar machen',
'panel_password_regex' => [
'title' => 'Regulärer Ausdruck für Passwörter',
'description' => 'Hier können Sie einen regulären Ausdruck für Passwort-Komplexität festlegen. Leer = keine bestimmten Anforderungen',
],
'mod_fcgid_ownvhost' => [
'title' => 'Verwende FCGID im froxlor-Vhost',
'description' => 'Wenn verwendet, wird froxlor selbst unter einem lokalen Benutzer ausgeführt',
],
'perl' => [
'suexecworkaround' => [
'title' => 'Aktiviere SuExec-Workaround',
'description' => 'Aktivieren Sie den Workaround nur, wenn die Kunden-Heimatverzeichnisse sich nicht unterhalb des suexec-Pfades liegen. Wenn aktiviert erstellt froxlor eine Verknüpfung des vom Kunden für Perl aktiviertem Pfad + /cgi-bin/ im angegebenen suexec-Pfad. Bitte beachten Sie, dass Perl dann nur im Unterordner /cgi-bin/ des Kunden-Ordners funktioniert und nicht direkt in diesem Ordner (wie es ohne den Workaround wäre!)',
],
'suexeccgipath' => [
'title' => 'Pfad für Verknüpfungen zu Kunden-Perl-Verzeichnis',
'description' => 'Diese Einstellung wird nur benötigt, wenn der SuExec-Workaround aktiviert ist. ACHTUNG: Stellen Sie sicher, dass sich der angegebene Pfad innerhalb des Suexec-Pfades befindet ansonsten ist der Workaround nutzlos',
],
],
'awstats_awstatspath' => 'Pfad zu AWStats \'awstats.pl\'',
'awstats_icons' => [
'title' => 'Pfad zum AWstats-Icon-Ordner',
'description' => 'z. B. /usr/share/awstats/htdocs/icon/',
],
'login_domain_login' => 'Erlaube Anmeldung mit Domains',
'perl_server' => [
'title' => 'Perl Server-Socket',
'description' => 'Eine einfache Anleitung hier zu findet man unter nginx.com',
],
'nginx_php_backend' => [
'title' => 'Nginx-PHP-Backend',
'description' => 'Dies ist das Backend, auf dem PHP auf Anfragen von Nginx hört. Kann ein UNIX Socket oder eine IP:Port Kombination sein *NICHT relevant bei php-fpm',
],
'phpreload_command' => [
'title' => 'PHP-Reload-Befehl',
'description' => 'Dieser wird benötigt, um das PHP-Backend bei Bedarf durch den Cronjob neu zu laden. (Standard: leer) *NICHT relevant bei php-fpm',
],
'phpfpm' => [
'title' => 'Aktiviere PHP-FPM',
'description' => 'Dies benötigt eine spezielle Webserver-Konfiguration, siehe PHP-FPM Handbuch',
],
'phpfpm_settings' => [
'configdir' => 'Pfad zu php-fpm-Konfigurationen',
'aliasconfigdir' => 'Alias-Ordner der php-fpm Konfiguration',
'reload' => 'Kommando zum Neustarten von php-fpm',
'pm' => 'Prozess Manager Control (PM)',
'max_children' => [
'title' => 'Anzahl der Kind-Prozesse',
'description' => 'Die Anzahl der zu startenden Kind-Prozesse wenn PM auf \'static\' steht und die maximale Anzahl der Prozesse wenn PM auf \'dynamic/ondemand\' steht. Equivalent zu PHP_FCGI_CHILDREN',
],
'start_servers' => [
'title' => 'Anzahl der beim Starten zu erstellenden Kind-Prozesse',
'description' => 'Hinweis: Nur wenn PM auf \'dynamic\' steht',
],
'min_spare_servers' => [
'title' => 'Mindestanzahl der Idle-Prozesse',
'description' => 'Hinweis: Nur wenn PM auf \'dynamic\' steht Wichtig: Pflichtangabe wenn PM auf \'dynamic\' steht',
],
'max_spare_servers' => [
'title' => 'Maximale Anzahl der Idle-Prozesse',
'description' => 'Hinweis: Nur wenn PM auf \'dynamic\' steht Wichtig: Pflichtangabe wenn PM auf \'dynamic\' steht',
],
'max_requests' => [
'title' => 'Requests pro Kindprozess bevor Neuerstellung (respawning)',
'description' => 'Für keine Begrenzung \'0\' angeben. Equivalent zu PHP_FCGI_MAX_REQUESTS.',
],
'idle_timeout' => [
'title' => 'Idle-Timeout',
'description' => 'Timeout-Einstellung für PHP-FPM FastCGI.',
],
'ipcdir' => [
'title' => 'FastCGI IPC Verzeichnis',
'description' => 'In dieses Verzeichnis werden die php-fpm Sockets vom Webserver abgelegt. Das Verzeichnis muss für den Webserver lesbar sein.',
],
'limit_extensions' => [
'title' => 'Erlaubte Dateiendungen',
'description' => 'Beschränkt die Dateierweiterungen des Haupt-Skripts, das FPM zu parsen erlaubt. Dies kann Konfigurationsfehler auf der Webserverseite verhindern. Sie sollten FPM nur auf .php Erweiterungen beschränken, um zu verhindern, dass bösartige Nutzter andere Erweiterungen verwenden, um PHP Code auszuführen. Standardwert: .php',
],
'envpath' => 'Pfade für die PATH Umgebungsvariable. Leerlassen, um keine PATH Umgebungsvariable zu setzen.',
'override_fpmconfig' => 'Überschreibe FPM-Daemon Einstellungen (pm, max_children, etc.)',
'override_fpmconfig_addinfo' => ' Nur verwendet wenn "Überschreibe FPM-Daemon Einstellungen" auf "Ja" gestellt ist',
'restart_note' => 'Achtung: Der Code wird nicht auf Fehler geprüft. Bei etwaigen Fehlern könnte der PHP-FPM-Prozess nicht mehr starten!',
'custom_config' => [
'title' => 'Benutzerdefinierte Konfiguration',
'description' => 'Füge eine benutzerdefinierte Einstellungen zur PHP-FPM Instanz hinzu, beispielsweise pm.status_path = /status für Monitoring. Unten ersichtliche Variablen können verwendet werden. Achtung: Der Code wird nicht auf Fehler geprüft. Bei etwaigen Fehlern könnte der PHP-FPM-Prozess nicht mehr starten!',
],
'allow_all_customers' => [
'title' => 'Für aktuelle Kunden automatisch hinzufügen',
'description' => 'Ist diese Einstellung aktiv, wird die Konfiguration automatisch allen aktuell existierenden Kunden-Accounts zugewiesen. Diese Einstellung ist nicht permanent, kann aber mehrfach / nach Bedarf ausgeführt werden.',
],
],
'report' => [
'report' => 'Aktiviere das Senden von Reports über Webspace- und Trafficverbrauch',
'webmax' => [
'title' => 'Warn-Level in Prozent für Webspace',
'description' => 'Gültige Werte sind von 0 bis 150. Der Wert 0 deaktiviert diesen Report.',
],
'trafficmax' => [
'title' => 'Warn-Level in Prozent für Traffic',
'description' => 'Gültige Werte sind von 0 bis 150. Der Wert 0 deaktiviert diesen Report.',
],
'report_web_bccadmin' => [
'title' => 'BCC-E-Mail für Benachrichtigungen zur Webnutzung an den Administrator',
'description' => 'Wenn diese Option aktiviert ist, wird die an den Kunden gesendete Warnung bezüglich der Speicherplatznutzung auch an den entsprechenden Administrator/Reseller (BCC) gesendet.'
],
],
'dropdown' => 'Auswahlliste',
'manual' => 'Manuelle Eingabe',
'default_theme' => 'Standard-Theme',
'validate_domain' => 'Validiere Domainnamen',
'diskquota_enabled' => 'Quota aktiviert?',
'diskquota_repquota_path' => [
'description' => 'Pfad zu repquota',
],
'diskquota_quotatool_path' => [
'description' => 'Pfad zu quotatool',
],
'diskquota_customer_partition' => [
'description' => 'Partition, auf welcher die Kundendaten liegen',
],
'vmail_maildirname' => [
'title' => 'Maildir-(Unter-)Ordner',
'description' => 'Der Maildir-Ordner innerhalb des Kontos des Benutzers (normalerweise \'Maildir\', in manchen Fällen auch \'.maildir\'). Sollen die E-Mails direkt in das Verzeichnis, diese Option leer lassen.',
],
'catchall_enabled' => [
'title' => 'Catchall verwenden',
'description' => 'Möchten Sie Ihren Kunden die Funktion Catchall zur Verfügung stellen?',
],
'apache_24' => [
'title' => 'Anpassungen für Apache 2.4 verwenden',
'description' => '
Achtung: Bitte nur verwenden, wenn wirklich Apache mit Version 2.4 oder höher installiert ist, ansonsten wird der Webserver nicht starten.
',
],
'nginx_fastcgiparams' => [
'title' => 'Pfad zur fastcgi_params Datei',
'description' => 'Geben Sie den Pfad zu nginx\'s fastcgi_params Datei an. Inklusive Dateiname!',
],
'documentroot_use_default_value' => [
'title' => 'Verwende Domainnamen im Documentroot',
'description' => 'Wenn aktiviert wird dem standard Documentroot zusätzlich der Domain-Name angehängt.
Beispiel: /var/customers/webs/customer_name/example.tld/ /var/customers/webs/customer_name/subdomain.example.tld/',
],
'panel_phpconfigs_hidesubdomains' => [
'title' => 'Verstecke Subdomains in PHP-Konfigurations-Übersicht',
'description' => 'Wenn aktiviert, werden die Subdomains der Kunden nicht in der PHP-Konfigurations-Übersicht angezeigt, lediglich die Anzahl.
Hinweis: Nur relevant, wenn FCGID oder PHP-FPM aktiviert ist.',
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Verstecke Standard-Subdomains in PHP-Konfigurations-Übersicht',
'description' => 'Wenn aktiviert, werden die Standard-Subdomains der Kunden nicht mehr in der PHP-Konfigurations-Übersicht angezeigt.
Hinweis: Nur relevant, wenn FCGID oder PHP-FPM aktiviert ist.',
],
'passwordcryptfunc' => [
'title' => 'Wählen Sie die zu verwendende Passwort-Verschlüsselungsmethode',
'description' => 'Wählen Sie, welche Methode zur Verschlüsselung von Kennwörtern verwendet werden soll. Wenn Sie diese Einstellung ändern, werden nur neue Kennwörter mit der neuen Methode verschlüsselt. Bestehende Passwörter werden nicht geändert.'
],
'systemdefault' => 'Systemstandard',
'panel_allow_theme_change_admin' => 'Erlaube Admins das Theme zu wechseln',
'panel_allow_theme_change_customer' => 'Erlaube Kunden das Theme zu wechseln',
'axfrservers' => [
'title' => 'AXFR Server',
'description' => 'Eine durch Kommas getrennte Liste von IP Adressen, die DNS-Zonen transferieren dürfen (AXFR).',
],
'powerdns_mode' => [
'title' => 'PowerDNS Operation Mode',
'description' => 'Wählen Sie den PowerDNS-Modus: Native für keine DNS-Replikation (Standard) / Master wenn eine DNS-Replikation benötigt wird.',
],
'customerssl_directory' => [
'title' => 'Webserver-Kunden-SSL-Zertifikatsverzeichnis',
'description' => 'Wo sollen kundenspezifizierte SSL-Zertifikate erstellt werden?
ACHTUNG: Der Inhalt dieses Ordners wird regelmäßig geleert, daher sollten dort keinerlei Daten manuell abgelegt werden.
',
],
'allow_error_report_admin' => [
'title' => 'Erlaube Administrator/Reseller das Melden von Datenbankfehlern an froxlor',
'description' => 'Bitte beachten: Senden Sie zu keiner Zeit irgendwelche datenschutzrelevanten/persönlichen (Kunden-)Daten an uns!',
],
'allow_error_report_customer' => [
'title' => 'Erlaube Kunden das Melden von Datenbankfehlern an froxlor',
'description' => 'Bitte beachten: Senden Sie zu keiner Zeit irgendwelche datenschutzrelevanten/persönlichen (Kunden-)Daten an uns!',
],
'mailtraffic_enabled' => [
'title' => 'Analysiere Mailtraffic',
'description' => 'Aktiviere das Analysieren der Logdateien des Mailsystems, um den verbrauchten Traffic zu berechnen.',
],
'mdaserver' => [
'title' => 'Typ des MDA',
'description' => 'Der eingesetzte Mail Delivery Server',
],
'mdalog' => [
'title' => 'Logdatei des MDA',
'description' => 'Die Logdatei des Mail Delivery Server',
],
'mtaserver' => [
'title' => 'Typ des MTA',
'description' => 'Der eingesetzte Mail Transfer Agent',
],
'mtalog' => [
'title' => 'Logdatei des MTA',
'description' => 'Die Logdatei des Mail Transfer Agent',
],
'system_cronconfig' => [
'title' => 'Cron-Konfigurationsdatei',
'description' => 'Pfad zur Konfigurationsdatei des Cron-Dienstes. Diese Datei wird von froxlor automatisch aktualisiert. Hinweis: Bitte verwenden Sie exakt die gleiche Datei wie für den froxlor-Haupt-Cronjob (Standard: /etc/cron.d/froxlor)!
Wird FreeBSD verwendet, sollte hier /etc/crontab angegeben werden!',
],
'system_crondreload' => [
'title' => 'Cron-Daemon reload Befehl',
'description' => 'Geben Sie hier den Befehl zum Neuladen des Cron-Daemons an',
],
'system_croncmdline' => [
'title' => 'Cron Startbefehl (php Programm)',
'description' => 'Befehl zum Ausführen des Cronjobs. Ändern dieser Einstellung nur wenn nötig (Standard: "/usr/bin/nice -n 5 /usr/bin/php -q")!',
],
'system_cron_allowautoupdate' => [
'title' => 'Erlaube automatische Datenbank-Aktualisierungen',
'description' => 'WARNUNG: Diese Einstellung erlaubt es dem Cronjob die Prüfung der Dateien- und Datenbank-Version zu umgehen und bei einem Versions-Unterschied die Datenbank-Aktualisierungen automatisiert auszuführen.
Das automatische Update setzt für neue Einstellungen und Änderungen immer die default-Werte. Diese müssen nicht zwingend zu dem genutzten System passen. Bitte zwei mal nachdenken, bevor diese Option aktiviert wird.
',
],
'dns_createhostnameentry' => 'Erstelle bind-Zone/Konfiguration für den System-Hostnamen',
'panel_password_alpha_lower' => [
'title' => 'Kleinbuchstaben',
'description' => 'Das Passwort muss mindestens einen Kleinbuchstaben (a-z) enthalten.',
],
'panel_password_alpha_upper' => [
'title' => 'Großbuchstaben',
'description' => 'Das Passwort muss mindestens einen Großbuchstaben (A-Z) enthalten.',
],
'panel_password_numeric' => [
'title' => 'Zahlen',
'description' => 'Das Passwort muss mindestens eine Zahl (0-9) enthalten.',
],
'panel_password_special_char_required' => [
'title' => 'Sonderzeichen',
'description' => 'Das Passwort muss mindestens eines der untenstehenden Sonderzeichen enthalten',
],
'panel_password_special_char' => [
'title' => 'Sonderzeichen-Liste',
'description' => 'Mindestens eines dieser Sonderzeichen muss in dem Passwort vorkommen, sofern die Sonderzeichen-Option aktiviert ist.',
],
'apache_itksupport' => [
'title' => 'Anpassungen für Apache ITK-MPM verwenden',
'description' => '
Achtung: Bitte nur verwenden, wenn wirklich Apache itk-mpm verwendet wird, ansonsten wird der Webserver nicht starten.
',
],
'letsencryptca' => [
'title' => 'ACME Umgebung',
'description' => 'Umgebung, welche genutzt wird um Zertifikate zu bestellen.',
],
'letsencryptchallengepath' => [
'title' => 'Verzeichnis für Let\'s Encrypt challenges',
'description' => 'Let\'s Encrypt challenges werden aus diesem Verzeichnis über einen globalen Alias ausgeliefert.',
],
'letsencryptkeysize' => [
'title' => 'Schlüsselgröße für neue Let\'s Encrypt Zertifikate',
'description' => 'Größe des Schlüssels in Bit für neue Let\'s Encrypt Zertifikate.',
],
'letsencryptreuseold' => [
'title' => 'Let\'s Encrypt Schlüssel wiederverwenden',
'description' => 'Wenn dies aktiviert ist, wird der alte Schlüssel bei jeder Verlängerung verwendet, andernfalls wird ein neues Paar generiert.',
],
'leenabled' => [
'title' => 'Let\'s Encrypt verwenden',
'description' => 'Wenn dies aktiviert ist, können Kunden durch froxlor automatisch generierte und verlängerbare Let\'s Encrypt SSL-Zertifikate für Domains mit SSL IP/Port nutzen.
Bitte die Webserver-Konfiguration beachten wenn aktiviert, da dieses Feature eine spezielle Konfiguration benötigt.',
],
'caa_entry' => [
'title' => 'CAA DNS Einträge generieren',
'description' => 'Generiert CAA Einträge automatisch für alle Domains mit aktiviertem SSL und Let\'s Encrypt',
],
'caa_entry_custom' => [
'title' => 'Zusätzliche CAA DNS Einträge',
'description' => 'DNS Certification Authority Authorization (CAA) verwendet das Domain Name System, um dem Besitzer einer Domain die Möglichkeit zu bieten, gewisse Zertifizierungsstellen (CAs) dazu zu berechtigen, ein Zertifikat für die betroffene Domain auszustellen. CAA Records sollen verhindern, dass Zertifikate fälschlicherweise für eine Domain ausgestellt werden.
Der Inhalt dieses Feldes wird direkt in die DNS Zone übernommen (eine Zeile pro CAA Record). Wenn Let\'s Encrypt für eine Domain aktiviert wurde und die obige Option aktiviert wurde, wird immer automatisch dieser Eintrag angefügt und muss nicht selber angegeben werden: 0 issue "letsencrypt.org" (Wenn wildcard aktiviert ist, wird statdessen issuewild benutzt). Um Incident Reporting per Mail zu aktivieren, muss eine iodef Zeile angefügt werden. Ein Beispiel für einen Report an me@example.com wäre: 0 iodef "mailto:me@example.com"
ACHTUNG: Der Code wird nicht auf Fehler geprüft. Etwaige Fehler werden also auch übernommen. Die CAA finalen Einträge könnten daher falsch sein!',
],
'exportenabled' => [
'title' => 'Daten-Export für Kunden aktivieren',
'description' => 'Wenn dies aktiviert ist, kann der Kunde Daten-Exporte planen (cron-export) welche ein Archiv in sein Heimatverzeichnis ablegen (Unterordner vom Kunden wählbar)',
],
'dnseditorenable' => [
'title' => 'DNS Editor aktivieren',
'description' => 'Erlaubt es Admins und Kunden die DNS Einträge ihrer Domains zu verwalten.',
],
'dns_server' => [
'title' => 'DNS Server Dienst',
'description' => 'Dienste müssen mit den froxlor Konfigurationstemplates konfiguriert werden',
],
'panel_customer_hide_options' => [
'title' => 'Menüpunkte und Traffic-Charts im Kundenbereich ausblenden',
'description' => 'Wählen Sie hier die gewünschten Menüpunkte und Traffic-Charts aus, welche im Kundenbereich ausgeblendet werden sollen. Für Mehrfachauswahl, halten Sie während der Auswahl STRG gedrückt.',
],
'allow_allow_customer_shell' => [
'title' => 'Erlaube Kunden für FTP Benutzer eine Shell auszuwählen',
'description' => 'Bitte beachten: Shell Zugriff gestattet dem Benutzer verschiedene Programme auf Ihrem System auszuführen. Mit großer Vorsicht verwenden. Bitte aktiviere dies nur wenn WIRKLICH bekannt ist, was das bedeutet!!!',
],
'available_shells' => [
'title' => 'Liste der verfügbaren Shells',
'description' => 'Komma-getrennte Liste von Shells, die der Kunde für seine FTP-Konten wählen kann.
Hinweis: Die Standard-Shell /bin/false wird immer eine Auswahlmöglichkeit sein (wenn aktiviert), auch wenn diese Einstellung leer ist. Sie ist in jedem Fall der Standardwert für alle FTP-Konten.',
],
'le_froxlor_enabled' => [
'title' => 'Let\'s Encrypt für den froxlor Vhost verwenden',
'description' => 'Wenn dies aktiviert ist, erstellt froxlor für seinen vhost automatisch ein Let\'s Encrypt Zertifikat.',
],
'le_froxlor_redirect' => [
'title' => 'SSL-Weiterleitung für den froxlor Vhost aktivieren',
'description' => 'Wenn dies aktiviert ist, werden alle HTTP Anfragen an die entsprechende SSL Seite weitergeleitet.',
],
'option_unavailable_websrv' => ' Nur verfügbar für: %s',
'option_unavailable' => ' Option aufgrund anderer Einstellungen nicht verfügbar.',
'letsencryptacmeconf' => [
'title' => 'Pfad zu acme.conf',
'description' => 'Dateiname der Konfiguration, die dem Webserver erlaubt, die ACME-Challenges zu bedienen.',
],
'mail_use_smtp' => 'Nutze SMTP für das Senden von E-Mails',
'mail_smtp_host' => 'SMTP Server',
'mail_smtp_usetls' => 'Aktiviere TLS Verschlüsselung',
'mail_smtp_auth' => 'Nutze SMTP Authentifizierung',
'mail_smtp_port' => 'TCP Port für SMTP',
'mail_smtp_user' => 'SMTP Benutzer',
'mail_smtp_passwd' => 'SMTP Passwort',
'http2_support' => [
'title' => 'HTTP2 Unterstützung',
'description' => 'Aktiviere HTTP2 Unterstützung für SSL. NUR AKTIVIEREN, WENN DER WEBSERVER DIESE FUNKTION UNTERSTÜTZT (nginx version 1.9.5+, apache2 version 2.4.17+)',
],
'http3_support' => [
'title' => 'HTTP3 Unterstützung',
'description' => 'Aktiviere HTTP3 Unterstützung für SSL. NUR AKTIVIEREN, WENN DER WEBSERVER DIESE FUNKTION UNTERSTÜTZT (nginx version 1.25.0+)',
],
'nssextrausers' => [
'title' => 'Verwende libnss-extrausers anstatt libnss-mysql',
'description' => 'Lese Benutzer nicht direkt aus der Datenbank sondern über Dateien. Bitte nur aktivieren, wenn die entsprechende Konfiguration vorgenommen wurde (System -> libnss-extrausers). Nur für Debian/Ubuntu (oder wenn libnss-extrausers manuell kompiliert wurde!)',
],
'le_domain_dnscheck' => [
'title' => 'Validiere DNS der Domains wenn Let\'s Encrypt genutzt wird',
'description' => 'Wenn aktiviert wird froxlor überprüfen ob die DNS Einträge der Domains, welche ein Let\'s Encrypt Zertifikat beantragt, mindestens auf eine der System IP Adressen auflöst.',
],
'le_domain_dnscheck_resolver' => [
'title' => 'DNS Resolver für die DNS Überprüfung',
'description' => 'IP Adresse des DNS Servers, welcher für die DNS Überprüfung genutzt werden soll. Wenn leer, wird der Standard DNS Resolver des Systems genutzt.',
],
'phpsettingsforsubdomains' => [
'description' => 'Wenn ja, wird die gewählte PHP-Config für alle Subdomains übernommen',
],
'leapiversion' => [
'title' => 'Wählen Sie die Let\'s Encrypt ACME Implementierung',
'description' => 'Aktuell unterstützt froxlor lediglich die ACME v2 Implementierung von Let\'s Encrypt.',
],
'enable_api' => [
'title' => 'Aktiviere externe API Nutzung',
'description' => 'Um die froxlor API nutzen zu können, muss diese Option aktiviert sein. Für detaillierte Informationen siehe https://docs.froxlor.org/',
],
'api_customer_default' => '"Erlaube API Nutzung" Vorbelegung für neue Kunden',
'dhparams_file' => [
'title' => 'DHParams Datei (Diffie–Hellman key exchange)',
'description' => 'Wird eine dhparams.pem Datei hier angegeben, wir sie in die Webserver Konfiguration mit eingefügt. Beispiel: /etc/ssl/webserver/dhparams.pem
Existiert die Datei nicht, wird sie wie folgt erstellt: openssl dhparam -out /etc/ssl/webserver/dhparams.pem 4096. Es wird empfohlen die Datei zu erstellen, bevor sie hier angegeben wird, da die Erstellung längere Zeit in Anspruch nimmt und den Cronjob blockiert.',
],
'errorlog_level' => [
'title' => 'Ausführlichkeit des Fehlerprotokolls',
'description' => 'Steuert die Ausführlichkeit des Fehlerprotokolls. Voreinstellung ist "warn" bei Apache und "error" bei Nginx.',
],
'letsencryptecc' => [
'title' => 'ECC / ECDSA Zertifikate ausstellen',
'description' => 'Wenn eine Schlüsselgröße ausgewählt wird, werden ECC / ECDSA Zertifikate erstellt',
],
'froxloraliases' => [
'title' => 'Domain Aliase für froxlor Vhost',
'description' => 'Komma getrennte Liste von Domains, welche als Server Alias zum froxlor Vhost hinzugefügt werden',
],
'default_sslvhostconf' => [
'title' => 'Standard SSL vHost-Einstellungen',
'description' => 'Der Inhalt dieses Feldes wird direkt in den IP/Port-vHost-Container übernommen. Die folgenden Variablen können verwendet werden: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (wenn zutreffend)
ACHTUNG: Der Code wird nicht auf Fehler geprüft. Etwaige Fehler werden also auch übernommen. Der Webserver könnte nicht mehr starten!',
],
'includedefault_sslvhostconf' => 'Nicht-SSL vHost-Einstellungen in SSL-vHost inkludieren',
'apply_specialsettings_default' => 'Standardwert für "Übernehme Einstellungen für alle Subdomains (*.beispiel.de)" Einstellung beim Bearbeiten einer Domain',
'apply_phpconfigs_default' => 'Standardwert für "PHP-Config für alle Subdomains übernehmen:" Einstellung beim Bearbeiten einer Domain',
'awstats' => [
'logformat' => [
'title' => 'LogFormat Einstellung',
'description' => 'Wenn ein benutzerdefiniertes LogFormat beim Webserver verwendet wird, muss LogFormat von awstats ebenso angepasst werden. Standard ist 1. Für weitere Informationen siehe Dokumentation unter hier.',
],
],
'hide_incompatible_settings' => 'Inkompatible Einstellungen ausblenden',
'soaemail' => 'Mail-Adresse für SOA-Einträge (verwendet Panel-Absender-Name der Panel-Einstellungen falls leer)',
'imprint_url' => [
'title' => 'URL zum Impressum',
'description' => 'Die URL zur Impressums-Seite. Der Link ist auf der Login-Seite und wenn eingeloggt, in der Fußzeile sichtbar.',
],
'terms_url' => [
'title' => 'URL zu den AGB',
'description' => 'Die URL zur AGB-Seite. Der Link ist auf der Login-Seite und wenn eingeloggt, in der Fußzeile sichtbar.',
],
'privacy_url' => [
'title' => 'URL zur Datenschutzerklärung',
'description' => 'Die URL zur Datenschutzerklärungs-Seite. Der Link ist auf der Login-Seite und wenn eingeloggt, in der Fußzeile sichtbar.',
],
'logo_image_header' => [
'title' => 'Logo Bild (Header)',
'description' => 'Das hochgeladene Bild wird als Logo oben links nach dem Login angezeigt (empfohlene Höhe sind 30px)',
],
'logo_image_login' => [
'title' => 'Logo Bild (Login)',
'description' => 'Das hochgeladene Bild wird als Logo während des Logins angezeigt',
],
'logo_overridetheme' => [
'title' => 'Überschreibe Theme-Logo mit "Logo Bild" (Header und Login, siehe unten)',
'description' => 'Ist die Nutzung eines hochgeladenen Logos gewünscht, muss diese Einstellung auf "Ja" gesetzt werden. Alternativ kann weiterhin das Theme-basierte Überschreiben via "logo_custom.png" und "logo_custom_login.png" genutzt werden.',
],
'logo_overridecustom' => [
'title' => 'Überschreibe benutzerdefinierte Theme-Logos (logo_custom.png und logo_custom_login.png) mit "Logo Bild" (Header und Login, siehe unten)',
'description' => 'Ist diese Einstellung aktiv, werden benutzerdefinierte Logos im Theme-Ordner mit dem "Logo Bild" ersetzt',
],
'createstdsubdom_default' => [
'title' => 'Standardwert für "Standardsubdomain anlegen" bei Erstellung eines Kunden',
'description' => '',
],
'froxlorusergroup' => [
'title' => 'Benutzerdefinierte Gruppe für alle Kunden-Benutzer',
'description' => 'Voraussetzung hierfür ist die Nutzung von libnss-extrausers (System-Einstellungen). Ein leerer Wert bedeutet, es wird keine Gruppe erstellt, bzw. vorhandene Gruppe wird entfernt.',
],
'acmeshpath' => [
'title' => 'Pfad zu acme.sh',
'description' => 'Installationspfad zu acme.sh, inklusive acme.sh Script Standard ist /root/.acme.sh/acme.sh',
],
'update_channel' => [
'title' => 'froxlor Update Kanal',
'description' => 'Wähle den bevorzugten Update Kanal. Standard ist "stable"',
],
'traffictool' => [
'toolselect' => 'Traffic Analyzer',
],
'requires_reconfiguration' => 'Änderungen an dieser Einstellungen benötigen unter Umständen eine erneute Konfiguration der folgenden Dienste: %s',
'req_limit_per_interval' => [
'title' => 'Anzahl der HTTP-Anfragen pro Intervall',
'description' => 'Erlaubte Anzahl von HTTP-Anfragen pro Intervall (siehe unten) auf froxlor, Standard ist "60"',
],
'req_limit_interval' => [
'title' => 'Rate-Limit-Intervall',
'description' => 'Zeit in Sekunden für die maximale Anzahl von HTTP-Anfragen, Standard ist "60".',
],
'option_requires_otp' => 'Das Ändern dieser Einstellung erfordert OTP Validierung',
'panel_menu_collapsed' => [
'title' => 'Menüabschnitte einklappen',
'description' => 'Bei Deaktivierung werden die Menübereiche auf der linken Seite immer aufgeklappt angezeigt.',
],
'le_renew_services' => [
'title' => 'Verwende das froxlor Let\'s Encrypt Zertifikat für folgende Dienste',
'description' => 'Wenn auf "Keine" gesetzt (oder der Renew-Hook-Befehl unten leer ist), werden keine Konfigurationsanpassungen bezüglich SSL an den ausgewählten Diensten vorgenommen.
Der Reload-Befehl für die ausgewählten Dienste sollte im Renew-Hook-Befehl hinzugefügt werden, da sonst die Konfigurationsänderungen oder erneuerten Zertifikate möglicherweise nicht korrekt angewendet werden.',
],
'le_renew_hook' => [
'title' => 'Let\'s Encrypt Renew-Hook Befehl',
'description' => 'Lege den Befehl fest, der die oben ausgewählten Dienste neu startet, damit erneuerte Zertifikate vom Dienst ordnungsgemäß verwendet werden.',
],
],
'spf' => [
'use_spf' => [
'title' => 'Aktiviere SPF für Domains?',
'description' => 'Erfordert einen speziellen DNS Eintrag für die Domain. Wenn das Nameserver-Feature nicht genutzt wird, muss dieser Eintrag manuell verwaltet werden.',
],
'spf_entry' => 'SPF-Eintrag für alle Domains',
],
'dmarc' => [
'use_dmarc' => [
'title' => 'Aktiviere DMARC für Domains?',
'description' => 'Erfordert einen speziellen DNS Eintrag für die Domain. Wenn das Nameserver-Feature nicht genutzt wird, muss dieser Eintrag manuell verwaltet werden.',
],
'dmarc_entry' => 'DMARC-Eintrag für alle Domains',
],
'ssl_certificates' => [
'certificate_for' => 'Zertifikat für',
'valid_from' => 'Gültig ab',
'valid_until' => 'Gültig bis',
'issuer' => 'Aussteller',
],
'success' => [
'success' => 'Information',
'clickheretocontinue' => 'Hier klicken, um fortzufahren',
'settingssaved' => 'Die Einstellungen wurden erfolgreich gespeichert.',
'rebuildingconfigs' => 'Task für Neuerstellung der Konfigurationen wurde erfolgreich eingetragen',
'domain_import_successfully' => 'Erfolgreich %s Domains importiert.',
'exportscheduled' => 'Ihr Daten-Export wurde erfolgreich geplant. Bitte warten Sie nun, bis dieser bearbeitet wurde.',
'exportaborted' => 'Der geplante Daten-Export wurde abgebrochen',
'dns_record_added' => 'Eintrag erfolgreich hinzugefügt',
'dns_record_deleted' => 'Eintrag erfolgreich entfernt',
'testmailsent' => 'Test E-Mail erfolgreich gesendet',
'settingsimported' => 'Einstellungnen erfolgreich importiert',
'sent_error_report' => 'Fehlerbericht erfolgreich gesendet. Danke für die Unterstützung.',
],
'tasks' => [
'outstanding_tasks' => 'Ausstehende Cron-Aufgaben',
'REBUILD_VHOST' => 'Neuerstellung der Webserver-Konfiguration',
'CREATE_HOME' => 'Erstelle neuen Kunden %s',
'REBUILD_DNS' => 'Neuerstellung der Bind-Konfiguration',
'CREATE_FTP' => 'Erstelle Verzeichnis für neuen FTP-Benutzer',
'DELETE_CUSTOMER_FILES' => 'Löschen von Kunden-Dateien %s',
'noneoutstanding' => 'Zur Zeit gibt es keine ausstehenden Aufgaben für froxlor',
'DELETE_EMAIL_DATA' => 'E-Mail-Dateien des Kunden löschen',
'DELETE_FTP_DATA' => 'Kunden FTP-Konto Dateien löschen',
'REBUILD_RSPAMD' => 'Neuerstellung der Antispam-Konfiguration',
'CREATE_QUOTA' => 'Quota auf dem Dateisystem setzen',
'REBUILD_CRON' => 'Neuerstellung der cron.d-Datei',
'CREATE_CUSTOMER_DATADUMP' => 'Daten-Export für Kunde %s',
'DELETE_DOMAIN_PDNS' => 'Lösche Domain %s von PowerDNS Datenbank',
'DELETE_DOMAIN_SSL' => 'Lösche SSL Dateien von Domain %s',
'UPDATE_LE_SERVICES' => 'Aktualisiere Systemdienste für Let\'s Encrypt',
'REBUILD_NSSUSERS' => 'Neuerstellung der libnss-extrausers Dateien',
],
'terms' => 'AGB',
'traffic' => [
'month' => 'Monat',
'months' => [
1 => 'Januar',
2 => 'Februar',
3 => 'März',
4 => 'April',
5 => 'Mai',
6 => 'Juni',
7 => 'Juli',
8 => 'August',
9 => 'September',
10 => 'Oktober',
11 => 'November',
12 => 'Dezember',
'jan' => 'Jan',
'feb' => 'Feb',
'mar' => 'Mär',
'apr' => 'Apr',
'may' => 'Mai',
'jun' => 'Jun',
'jul' => 'Jul',
'aug' => 'Aug',
'sep' => 'Sep',
'oct' => 'Okt',
'nov' => 'Nov',
'dec' => 'Dez',
'total' => 'Gesamt',
],
'mb' => 'Traffic',
'day' => 'Tag',
'sumtotal' => 'Gesamt Traffic',
'sumhttp' => 'HTTP-Traffic',
'sumftp' => 'FTP-Traffic',
'summail' => 'Mail-Traffic',
'customer' => 'Kunde',
'trafficoverview' => 'Übersicht Traffic',
'bycustomers' => 'Traffic nach Kunden',
'details' => 'Details',
'http' => 'HTTP',
'ftp' => 'FTP',
'mail' => 'Mail',
'nocustomers' => 'Es wird mindestens ein Kunde benötigt um die Traffic Statistiken anzuzeigen.',
'top5customers' => 'Top 5 Kunden',
'nodata' => 'Keine Daten im angegebenen Zeitraum.',
'ranges' => [
'last24h' => 'die letzten 24 Std',
'last7d' => 'die letzten 7 Tage',
'last30d' => 'die letzten 30 Tage',
'cm' => 'Aktueller Monat',
'last3m' => 'die letzten 3 Monate',
'last6m' => 'die letzten 6 Monate',
'last12m' => 'die letzten 12 Monate',
'cy' => 'Aktuelles Jahr',
],
'byrange' => 'Nach angegebenem Zeitraum',
],
'translator' => '',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'Eine neuere Version von froxlor wurde installiert, aber noch nicht eingerichtet. Nur der Administrator kann sich anmelden und die Aktualisierung abschließen.',
'update' => 'froxlor Aktualisierung',
'proceed' => 'Ausführen',
'update_information' => [
'part_a' => 'Die froxlor-Dateien wurden aktualisiert. Neue Version ist %s. Die bisher installierte Version ist %s',
'part_b' => '
Ein Kunden-Login ist vor Abschluss des Aktualisierungsvorganges nicht möglich. Aktualisierung ausführen?',
],
'noupdatesavail' => 'Die genutzte %sVersion von froxlor ist aktuell.',
'description' => 'Aktualisierung der froxlor Datenbank',
'uc_newinfo' => 'Eine neuere %sVersion ist verfügbar: "%s" (Aktuell installierte Version: %s)',
'notify_subject' => 'Neues Update verfügbar',
'dbupdate_required' => 'froxlor-Dateien wurden aktualisiert, Datenbank-Aktualisierung notwendig',
],
'usersettings' => [
'custom_notes' => [
'title' => 'Eigene Notizen',
'description' => 'Hier können Notizen je nach Lust und Laune eingetragen werden. Diese werden in der Administrator/Kunden-Übersicht bei dem jeweiligen Benutzer angezeigt. Markdown ist unterstützt, HTML wird entfernt.',
'show' => 'Zeige die Notizen auf dem Dashboard des Benutzers',
],
'api_allowed' => [
'title' => 'Erlaube API Zugriff',
'description' => 'Wenn in den Einstellungen aktiviert, kann der Benutzer API Schlüssel erstellen und auf die froxlor API Zugreifen',
'notice' => 'API Zugriff ist für dieses Konto deaktiviert.',
],
'shell_allowed' => [
'title' => 'Erlaube Shell Zugriff',
'description' => 'Wenn in den Einstellungen aktiviert, kann der Benutzer seinen FTP-Konten Shell Zugriff erlauben',
],
'gui_access' => [
'title' => 'WebUI-Anmeldung zulassen',
'description' => 'Wenn diese Option deaktiviert ist, kann sich der Benutzer nicht bei der froxlor-Weboberfläche anmelden, aber alle Dienste (Web, FTP, E-Mail, Datenbanken, API-Zugriff, usw.) funktionieren normal.',
],
],
'install' => [
'preflight' => 'System-Prüfung',
'critical_error' => 'Kritischer Fehler',
'suggestions' => 'Nicht notwendig, aber emfohlen',
'phpinfosuccess' => 'Auf dem System ist PHP %s installiert',
'suggestionsnote' => 'Es liegen keine kritische Fehler vor, die eine Installation verhindern, allerdings beachten Sie bitte die Empfehlungen weiter unten für ein optimales Erlebnis.',
'phpinfowarn' => 'Die genutzte PHP Version ist kleiner als die geforderte Version %s',
'phpinfoupdate' => 'Aktualisierung von PHP Version %s auf %s oder höher notwendig',
'start_installation' => 'Installation starten',
'check_again' => 'Erneut prüfen...',
'switchmode_advanced' => 'Erweiterte Optionen anzeigen',
'switchmode_basic' => 'Erweiterte Optionen ausblenden',
'dependency_check' => [
'title' => 'Willkommen bei froxlor',
'description' => 'Das System wird auf Abhängigkeiten überprüft, um sicher zu stellen das alle erforderlichen PHP Erweiterungen vorhanden und aktiviert sind, so dass froxlor einwandfrei funktioniert.',
],
'database' => [
'top' => 'Datenbank',
'title' => 'Datenbank und Benutzer erstellen',
'description' => 'froxlor benötigt eine Datenbank und zusätzlich einen Benutzer mit privilegierten Rechten, welcher Benutzer und Datenbanken erstellen darf (GRANT Option). Die angegebene Datenbank und der unprivilegierte Benutzer werden automatisch in diesem Prozess erstellt. Der privilegierte Benutzer muss existieren.',
'user' => 'Unprivilegierter Datenbank Benutzer',
'dbname' => 'Datenbank Name',
'force_create' => 'Sichern und überschreiben, sofern Datenbank existiert?',
],
'admin' => [
'top' => 'Admin Konto',
'title' => 'Erstellen des Haupt-Administrators.',
'description' => 'Dieser Benutzer erhält alle Berechtigungen zur Anpassungen von Einstellungen und Erstellen/Bearbeiten/Löschen von Resourcen wie Kunden, Domains, etc.',
'use_admin_email_as_sender' => 'Verwende die oben angegebene E-Mail-Adresse als Absenderadresse. Wenn die Option deaktiviert ist, geben Sie unten bitte eine Absenderadresse an.',
'use_autogenerated_email_as_sender' => 'Leer lassen für Standard: admin@servername',
],
'system' => [
'top' => 'System Setup',
'title' => 'Detailangaben zum Server',
'description' => 'Gebe hier Informationen und relevante Daten zu dem Server an damit froxlor dein System kennt. Diese Angaben sind entscheidend für die Konfiguration und den Betrieb der Dienste.',
'ipv4' => 'Primäre IPv4 Adresse (sofern zutreffend)',
'ipv6' => 'Primäre IPv6 Adresse (sofern zutreffend)',
'servername' => 'Server Name (FQDN, keine IP Adresse)',
'phpbackend' => 'PHP Backend',
'activate_newsfeed' => 'Offizielles Newsfeed aktivieren (externe Quelle: https://inside.froxlor.org/news/)',
],
'install' => [
'top' => 'Abschluss',
'title' => 'Ein letzter Schritt...',
'description' => 'Der untenstehende Befehl lädt, installiert und konfiguriert die benötigten Dienste auf dem System aufgrund der Angaben die während des Installationsprozessen gesammelt wurden.
Führe die gezeigten Befehle als root in der Shell/Konsole des Servers aus. Beachte bitte das dieser Befehl vorhandene Konfigurationen überschreibt (Sicherungsdateien werden erstellt)! Sollte dies nicht gewünscht sein, wähle Ich werden die Dienste manuell konfigurieren am Ende dieser Seite.',
'runcmd' => 'Folgende Befehle ausführen, um die Installation abzuschließen:',
'manual_config' => 'Ich werden die Dienste manuell konfigurieren, direkt zum Login umleiten',
'waitforconfig' => 'Warte auf Abschluss der Dienstkonfiguration...',
],
'errors' => [
'wrong_ownership' => 'Die froxlor Dateien gehören nicht vollständig dem Benutzer %s:%s',
'missing_extensions' => 'Folgende PHP Erweiterungen werden zusätzlich benötigt',
'suggestedextensions' => 'Folgende PHP Erweiterungen werden empfohlen',
'databaseexists' => 'Datenbank existiert bereits, Uberschreiben-Option oder anderen Namen wählen.',
'unabletocreatedb' => 'Test-Datenbank konnte nicht erstellt werden',
'unabletodropdb' => 'Test-Datenbank konnte nicht gelöscht werden',
'mysqlusernameexists' => 'Der unprivilegierte Datenbank-Benutzer existiert bereits. Anderen Benutzername angeben oder vorhandenen Benutzer löschen.',
'unabletocreateuser' => 'Test-Benutzer konnte nicht erstellt werden',
'unabletodropuser' => 'Test-Benutzer konnte nicht gelöscht werden',
'unabletoflushprivs' => 'Der privilegierte Benutzer kann Berechtigungen nicht übernehmen (FLUSH PRIVILEGES)',
'nov4andnov6ip' => 'Es muss mindestens eine IPv4- oder IPv6-Adresse angegeben werden',
'servernameneedstobevalid' => 'Der angegebene Server-Name scheint kein gültiger FQDN oder Hostname zu sein',
'websrvuserdoesnotexist' => 'Der angegebene Webserver-Benutzer scheint auf dem System nicht zu existieren',
'websrvgrpdoesnotexist' => 'Die angegebene Webserver-Gruppe scheint auf dem System nicht zu existieren',
'notyetconfigured' => 'Es scheint als wären die Dienste (noch) nicht erfolgreich konfiguriert worden. Bitte den angezeigten Befehl ausführen oder überspringen (direkt zum Login)',
'mandatory_field_not_set' => 'Pflichtfeld "%s" ist nicht gesetzt!',
'unexpected_database_error' => 'Eine unerwarteter Datenbankfehler ist aufgetreten. %s',
'sql_import_failed' => 'Der Import von SQL-Daten ist fehlgeschlagen!',
'unprivileged_sql_connection_failed' => 'Unprivilegierte SQL-Verbindung konnte nicht initialisiert werden!',
'privileged_sql_connection_failed' => 'Initialisierung der privilegierten SQL-Verbindung fehlgeschlagen!',
'mysqldump_backup_failed' => 'Es kann keine Datenbanksicherung erstellt werden, wir haben einen Fehler von mysqldump erhalten.',
'sql_backup_file_missing' => 'Es kann keine Datenbanksicherung erstellt werden, die Sicherungsdatei ist nicht vorhanden.',
'backup_binary_missing' => 'Es kann keine Datenbanksicherung erstellen werden, stelle sicher, dass mysqldump installiert wurde.',
'creating_configfile_failed' => 'Konfigurationsdateien können nicht erstellt werden, Datei kann nicht geschrieben werden.',
'database_already_exiting' => 'Es existiert bereits eine Datenbank, diese darf aber nicht überschreiben werden!'
]
],
'welcome' => [
'title' => 'Willkommen bei froxlor!',
'config_note' => 'Damit froxlor mit dem Backend vernünftig kommunizieren kann, musst du dieses noch konfigurieren.',
'config_now' => 'Jetzt konfigurieren'
],
];
================================================
FILE: lng/en.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => 'Czech',
'de' => 'German',
'en' => 'English',
'fr' => 'French',
'hu' => 'Hungarian',
'it' => 'Italian',
'nl' => 'Dutch',
'pt' => 'Portuguese',
'se' => 'Swedish',
'sk' => 'Slovak',
'es' => 'Spanish',
'ca' => 'Catalan',
'zh_CN' => 'Chinese (Simplified)',
],
'2fa' => [
'2fa' => '2FA options',
'2fa_enabled' => 'Activate Two-factor authentication (2FA)',
'2fa_removed' => '2FA removed successfully',
'2fa_added' => '2FA activated successfully View 2FA details',
'2fa_add' => 'Activate 2FA',
'2fa_delete' => 'Deactivate 2FA',
'2fa_verify' => 'Verify code',
'2fa_overview_desc' => 'Here you can activate a two-factor authentication for your account.
You can either use an authenticator-app (time-based one-time password / TOTP) or let froxlor send you an email to your account-address after each successful login with a one-time password.',
'2fa_email_desc' => 'Your account is set up to use one-time passwords via e-mail. To deactivate, click on "Deactivate 2FA"',
'2fa_ga_desc' => 'Your account is set up to use time-based one-time passwords via authenticator-app. Please scan the QR code below with your desired authenticator app to generate the codes. To deactivate, click on "Deactivate 2FA"',
'2fa_not_activated' => 'Two-factor authentication is not enabled',
'2fa_not_activated_for_user' => 'Two-factor authentication is not enabled for the current user',
'type_2fa' => '2FA status',
],
'admin' => [
'overview' => 'Overview',
'ressourcedetails' => 'Used resources',
'systemdetails' => 'System details',
'froxlordetails' => 'froxlor details',
'installedversion' => 'Installed version',
'latestversion' => 'Latest version',
'lookfornewversion' => [
'clickhere' => 'Search via webservice',
'error' => 'Error while reading',
],
'resources' => 'Resources',
'customer' => 'Customer',
'customers' => 'Customers',
'customers_list_desc' => 'Manage your customers',
'customer_add' => 'Create customer',
'customer_edit' => 'Edit customer',
'username_default_msg' => 'Leave empty for autogenerated value',
'password_default_msg' => 'Autogenerated if empty',
'domains' => 'Domains',
'domain_add' => 'Create domain',
'domain_edit' => 'Edit domain',
'subdomainforemail' => 'Subdomains as email-domains',
'admin' => 'Admin',
'admins' => 'Admins',
'admin_add' => 'Create admin',
'admin_edit' => 'Edit admin',
'customers_see_all' => 'Can access other admins/resellers resources?',
'change_serversettings' => 'Can change server settings?',
'server' => 'System',
'serversettings' => 'Settings',
'serversettings_desc' => 'Manage your froxlor system',
'rebuildconf' => 'Rebuild config files',
'stdsubdomain' => 'Standard subdomain',
'stdsubdomain_add' => 'Create standard subdomain',
'phpenabled' => 'PHP enabled',
'deactivated' => 'Deactivated',
'deactivated_user' => 'Deactivate user',
'sendpassword' => 'Send password',
'ownvhostsettings' => 'Own vHost-settings',
'configfiles' => [
'serverconfiguration' => 'Configuration',
'overview' => 'Overview',
'wizard' => 'Wizard',
'distribution' => 'Distribution',
'service' => 'Service',
'daemon' => 'Daemon',
'http' => 'Webserver (HTTP)',
'dns' => 'Nameserver (DNS)',
'mail' => 'Mailserver (IMAP/POP3)',
'smtp' => 'Mailserver (SMTP)',
'ftp' => 'FTP-server',
'etc' => 'Others (System)',
'choosedistribution' => '-- Choose a distribution --',
'chooseservice' => '-- Choose a service --',
'choosedaemon' => '-- Choose a daemon --',
'statistics' => 'Statistics',
'compactoverview' => 'Compact-overview',
'legend' => '
You are about to configure a service/daemon
',
'commands' => 'Commands: These commands are to be executed line by line as root-user in a shell. It is safe to copy the whole block and paste it into the shell.',
'files' => 'Config files: The commands before the textfields should open an editor with the target file. Just copy and paste the contents into the editor and save the file. Please note: The MySQL-password has not been replaced for security reasons. Please replace "FROXLOR_MYSQL_PASSWORD" on your own or use the javascript form below to replace it on-site. If you forgot your MySQL-password you\'ll find it in "lib/userdata.inc.php"',
'importexport' => 'Import/Export',
'finishnote' => 'Parameter file generated successfully. Now run the following command as root:',
'description' => 'Configure the system services',
'minihowto' => 'On this page you can view the different configuration templates for each service, (re-)configure specific services if needed or export the current selection to a JSON file to use in the CLI scripts or on another server.
Note that the services highlighted do not reflect your current setup but show requirements/recommendations from your current setting values.',
'skipconfig' => 'Don\'t (re)configure',
'recommendednote' => 'Recommended/required services based on current system settings',
'selectrecommended' => 'Select recommended',
'downloadselected' => 'Export selected',
],
'templates' => [
'templates' => 'Email-templates',
'template_add' => 'Add template',
'template_fileadd' => 'Add file template',
'template_edit' => 'Edit template',
'action' => 'Action',
'email' => 'Email & file templates',
'subject' => 'Subject',
'mailbody' => 'Mail body',
'createcustomer' => 'Welcome mail for new customers',
'pop_success' => 'Welcome mail for new email accounts',
'template_replace_vars' => 'Variables to be replaced in the template:',
'SALUTATION' => 'Replaced with a correct salutation (name or company)',
'FIRSTNAME' => 'Replaced with the customer\'s first name.',
'NAME' => 'Replaced with the customers name.',
'COMPANY' => 'Replaces with the customer\'s company name',
'USERNAME' => 'Replaced with the customer\'s account username.',
'PASSWORD' => 'Replaced with the customer\'s account password.',
'EMAIL' => 'Replaced with the address of the POP3/IMAP account.',
'CUSTOMER_NO' => 'Replaces with the customer number',
'TRAFFIC' => 'Replaced with the traffic, which was assigned to the customer.',
'TRAFFICUSED' => 'Replaced with the traffic, which was exhausted by the customer.',
'pop_success_alternative' => 'Welcome mail for new email accounts sent to alternative address',
'EMAIL_PASSWORD' => 'Replaced with the POP3/IMAP account password.',
'index_html' => 'index file for newly created customer directories',
'unconfigured_html' => 'index file for unconfigured/unknown domains',
'unconfigured_content_fallback' => 'This domain requires configuration via the froxlor server management panel, as it is currently not assigned to any customer.',
'file_extension' => [
'description' => 'The file extension for the index file must be between 1 and 6 characters long. The extension can only contain characters like a-z, A-Z and 0-9
Default: html',
'title' => 'File extension for the file template',
],
'SERVERNAME' => 'Replaced with the servername.',
'CUSTOMER' => 'Replaced with the loginname of the customer. Only for "index file for newly created customer directories"',
'ADMIN' => 'Replaced with the loginname of the admin. Only for "index file for newly created customer directories"',
'CUSTOMER_EMAIL' => 'Replaced with the e-mail address of the customer. Only for "index file for newly created customer directories"',
'ADMIN_EMAIL' => 'Replaced with the e-mail address of the admin. Only for "index file for newly created customer directories"',
'filetemplates' => 'File templates',
'filecontent' => 'File content',
'new_database_by_customer' => 'Customer-notification when a database has been created',
'new_ftpaccount_by_customer' => 'Customer-notification when a ftp-user has been created',
'newdatabase' => 'Notification-mails for new databases',
'newftpuser' => 'Notification-mails for new ftp-user',
'CUST_NAME' => 'Customer name',
'DB_NAME' => 'Database name',
'DB_PASS' => 'Database password',
'DB_DESC' => 'Database description',
'DB_SRV' => 'Database server',
'PMA_URI' => 'URL to phpMyAdmin (if given)',
'USR_NAME' => 'FTP username',
'USR_PASS' => 'FTP password',
'USR_PATH' => 'FTP homedir (relative to customer-docroot)',
'forgotpwd' => 'Notification-mails for password-reset',
'password_reset' => 'Customer-notification for password-reset',
'trafficmaxpercent' => 'Notification mail for customers when given maximum of percent of traffic is exhausted',
'MAX_PERCENT' => 'Replaced with the diskusage/traffic limit for sending reports in percent.',
'USAGE_PERCENT' => 'Replaced with the diskusage/traffic, which was exhausted by the customer in percent.',
'diskmaxpercent' => 'Notification mail for customers when given maximum of percent of diskspace is exhausted',
'DISKAVAILABLE' => 'Replaced with the diskusage, which was assigned to the customer.',
'DISKUSED' => 'Replaced with the diskusage, which was exhausted by the customer.',
'LINK' => 'Replaced with the customers password reset link.',
'SERVER_HOSTNAME' => 'Replaces the system-hostname (URL to froxlor)',
'SERVER_IP' => 'Replaces the default server ip-address',
'SERVER_PORT' => 'Replaces the default server port',
'DOMAINNAME' => 'Replaces the customers standard-subdomain (can be empty if none is generated)',
],
'webserver' => 'Webserver',
'createzonefile' => 'Create dns zone for domain',
'custombindzone' => 'Custom / unmanaged zone file',
'bindzonewarning' => 'empty for defaults ATTENTION: If you use a zonefile you will have to manage all required records for all sub-zones manually as well.',
'ipsandports' => [
'ipsandports' => 'IPs and Ports',
'add' => 'Add IP/Port',
'edit' => 'Edit IP/Port',
'ipandport' => 'IP/Port',
'ip' => 'IP',
'ipnote' => '
Note: Although private ip addresses are allowed, some features like DNS might not behave correctly. Only use private ip addresses if you are sure.
',
'port' => 'Port',
'create_listen_statement' => 'Create Listen statement',
'create_namevirtualhost_statement' => 'Create NameVirtualHost statement',
'create_vhostcontainer' => 'Create vHost-Container',
'create_vhostcontainer_servername_statement' => 'Create ServerName statement in vHost-Container',
'enable_ssl' => 'Is this an SSL Port?',
'ssl_cert_file' => 'Path to the SSL Certificate',
'webserverdefaultconfig' => 'Webserver default config',
'webserverdomainconfig' => 'Webserver domain config',
'webserverssldomainconfig' => 'Webserver SSL config',
'ssl_key_file' => 'Path to the SSL Keyfile',
'ssl_ca_file' => 'Path to the SSL CA certificate',
'default_vhostconf_domain' => 'Default vHost-settings for every domain container',
'ssl_cert_chainfile' => [
'title' => 'Path to the SSL CertificateChainFile',
'description' => 'Mostly CA_Bundle, or similar, you probably want to set this if you bought a SSL certificate.',
],
'docroot' => [
'title' => 'Custom docroot (empty = point to froxlor)',
'description' => 'You can define a custom document-root (the destination for a request) for this ip/port combination here. ATTENTION: Please be careful with what you enter here!',
],
'ssl_paste_description' => 'Paste your complete certificate content in the textbox',
'ssl_cert_file_content' => 'Content of the ssl certificate',
'ssl_key_file_content' => 'Content of the ssl (private-) key file',
'ssl_ca_file_content' => 'Content of the ssl CA file (optional)',
'ssl_ca_file_content_desc' => '
Client authentication, set this only if you know what it is.',
'ssl_cert_chainfile_content' => 'Content of the certificate chain file (optional)',
'ssl_cert_chainfile_content_desc' => '
Mostly CA_Bundle, or similar, you probably want to set this if you bought a SSL certificate.',
'ssl_default_vhostconf_domain' => 'Default SSL vHost-settings for every domain container',
],
'memorylimitdisabled' => 'Disabled',
'valuemandatory' => 'This value is mandatory',
'valuemandatorycompany' => 'Either "name" and "firstname" or "company" must be filled',
'serversoftware' => 'Serversoftware',
'phpversion' => 'PHP-Version',
'mysqlserverversion' => 'MySQL server version',
'webserverinterface' => 'Webserver interface',
'accountsettings' => 'Account settings',
'panelsettings' => 'Panel settings',
'systemsettings' => 'System settings',
'webserversettings' => 'Webserver settings',
'mailserversettings' => 'Mailserver settings',
'nameserversettings' => 'Nameserver settings',
'updatecounters' => 'Recalculate resource usage',
'subcanemaildomain' => [
'never' => 'Never',
'choosableno' => 'Choosable, default no',
'choosableyes' => 'Choosable, default yes',
'always' => 'Always',
],
'wipecleartextmailpwd' => 'Clear plaintext passwords',
'webalizersettings' => 'Webalizer settings',
'webalizer' => [
'normal' => 'Normal',
'quiet' => 'Quiet',
'veryquiet' => 'No output',
],
'domain_nocustomeraddingavailable' => 'It\'s not possible to add a domain currently. You first need to add at least one customer.',
'loggersettings' => 'Log settings',
'logger' => [
'normal' => 'normal',
'paranoid' => 'paranoid',
],
'emaildomain' => 'Emaildomain',
'email_only' => 'Only email?',
'wwwserveralias' => 'Add a "www." ServerAlias',
'subject' => 'Subject',
'recipient' => 'Recipient',
'message' => 'Write a Message',
'text' => 'Message',
'sslsettings' => 'SSL settings',
'specialsettings_replacements' => 'You can use the following variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (if applicable) ',
'antispam_settings' => 'Antispam settings',
'caneditphpsettings' => 'Can change php-related domain settings?',
'allips' => 'All IP\'s',
'awstatssettings' => 'AWstats settings',
'domain_dns_settings' => 'Domain dns settings',
'activated' => 'Activated',
'statisticsettings' => 'Statistic settings',
'or' => 'or',
'sysload' => 'System load',
'noloadavailable' => 'not available',
'nouptimeavailable' => 'not available',
'nosubject' => '(No Subject)',
'security_settings' => 'Security Options',
'know_what_youre_doing' => 'Change only, if you know what you\'re doing!',
'show_version_login' => [
'title' => 'Show froxlor version on login',
'description' => 'Show the froxlor version in the footer on the login page',
],
'show_version_footer' => [
'title' => 'Show froxlor version in footer',
'description' => 'Show the froxlor version in the footer on the rest of the pages',
],
'froxlor_graphic' => [
'title' => 'Header graphic for froxlor',
'description' => 'What graphic should be shown in the header',
],
'phpsettings' => [
'title' => 'PHP Configuration',
'description' => 'Short description',
'actions' => 'Actions',
'activedomains' => 'In use for domain(s)',
'notused' => 'Configuration not in use',
'editsettings' => 'Change PHP settings',
'addsettings' => 'Create new PHP settings',
'viewsettings' => 'View PHP settings',
'phpinisettings' => 'php.ini settings',
'addnew' => 'Create new PHP configuration',
'binary' => 'PHP Binary',
'fpmdesc' => 'PHP-FPM config',
'file_extensions' => 'File extensions',
'file_extensions_note' => '(without dot, separated by spaces)',
'enable_slowlog' => 'Enable slowlog (per domain)',
'request_terminate_timeout' => 'Request terminate-timeout',
'request_slowlog_timeout' => 'Request slowlog-timeout',
'activephpconfigs' => 'In use for php-config(s)',
'pass_authorizationheader' => 'Passing HTTP AUTH BASIC/DIGEST headers from Apache to PHP',
],
'misc' => 'Miscellaneous',
'fpmsettings' => [
'addnew' => 'Create new PHP version',
'edit' => 'Change PHP version'
],
'phpconfig' => [
'template_replace_vars' => 'Variables that will be replaced in the configs',
'pear_dir' => 'Will be replaced with the global setting for the pear directory.',
'open_basedir_c' => 'Will insert a ; (semicolon) to comment-out/disable open_basedir when set',
'open_basedir' => 'Will be replaced with the open_basedir setting of the domain.',
'tmp_dir' => 'Will be replaced with the temporary directory of the domain.',
'open_basedir_global' => 'Will be replaced with the global value of the path which will be attached to the open_basedir (see webserver settings).',
'customer_email' => 'Will be replaced with the e-mail address of the customer who owns this domain.',
'admin_email' => 'Will be replaced with e-mail address of the admin who owns this domain.',
'domain' => 'Will be replaced with the domain.',
'customer' => 'Will be replaced with the loginname of the customer who owns this domain.',
'admin' => 'Will be replaced with the loginname of the admin who owns this domain.',
'docroot' => 'Will be replaced with the domain\'s document-root.',
'homedir' => 'Will be replaced with the customer\'s home-directory.',
],
'expert_settings' => 'Expert settings!',
'mod_fcgid_starter' => [
'title' => 'PHP Processes for this domain (empty for default value)',
],
'phpserversettings' => 'PHP Settings',
'mod_fcgid_maxrequests' => [
'title' => 'Maximum php requests for this domain (empty for default value)',
],
'spfsettings' => 'Domain SPF settings',
'specialsettingsforsubdomains' => 'Apply specialsettings to all subdomains (*.example.com)',
'accountdata' => 'Account Data',
'contactdata' => 'Contact Data',
'servicedata' => 'Service Data',
'newerversionavailable' => 'There is a newer version of froxlor available.',
'newerversiondetails' => 'Update to version %s now? (Your current version is: %s)',
'extractdownloadedzip' => 'Extract downloaded archive "%s"?',
'cron' => [
'cronsettings' => 'Cronjob settings',
'add' => 'Add cronjob',
],
'cronjob_edit' => 'Edit cronjob',
'warning' => 'WARNING - Please note!',
'lastlogin_succ' => 'Last login',
'ftpserver' => 'FTP Server',
'ftpserversettings' => 'FTP Server settings',
'webserver_user' => 'Webserver user-name',
'webserver_group' => 'Webserver group-name',
'perlenabled' => 'Perl enabled',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Local user to use for FCGID (froxlor vHost)',
'mod_fcgid_group' => 'Local group to use for FCGID (froxlor vHost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[not given]',
'store_defaultindex' => 'Store default index-file to customers docroot',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Traffic',
'traffic_sub' => 'Details on traffic usage',
'domaintraffic' => 'Domains',
'customertraffic' => 'Customers',
'assignedmax' => 'Assigned / Max',
'usedmax' => 'Used / Max',
'used' => 'Used',
'speciallogwarning' => '
WARNING: By changing this setting you will lose all your old statistics for this domain.
',
'speciallogfile' => [
'title' => 'Separate logfile',
'description' => 'Enable this to get a separate access-log file for this domain',
],
'domain_editable' => [
'title' => 'Allow editing of domain',
'desc' => 'If set to yes, the customer is allowed to change several domain-settings. If set to no, nothing can be changed by the customer.',
],
'writeaccesslog' => [
'title' => 'Write an access log',
'description' => 'Enable this to get an access-log file for this domain',
],
'writeerrorlog' => [
'title' => 'Write an error log',
'description' => 'Enable this to get an error-log file for this domain',
],
'phpfpm.ininote' => 'Not all values you may want to define can be used in the php-fpm pool configuration',
'phpinfo' => 'PHPinfo()',
'selectserveralias' => 'ServerAlias value for the domain',
'selectserveralias_desc' => 'Choose whether froxlor should create a wildcard-entry (*.domain.tld), a WWW-alias (www.domain.tld) or no alias at all',
'show_news_feed' => [
'title' => 'Show news-feed on admin-dashboard',
'description' => 'Enable this to show the official froxlor newsfeed (https://inside.froxlor.org/news/) on your dashboard and never miss important information or release-announcements.',
],
'cronsettings' => 'Cronjob settings',
'integritycheck' => 'Database validation',
'integrityname' => 'Name',
'integrityresult' => 'Result',
'integrityfix' => 'Fix problems automatically',
'customer_show_news_feed' => 'Show newsfeed on customer-dashboard',
'customer_news_feed_url' => [
'title' => 'Use custom RSS-feed',
'description' => 'Specify a custom RSS-feed that will be shown to your customers on their dashboard. Leave this empty to use the official froxlor newsfeed (https://inside.froxlor.org/news/).',
],
'movetoadmin' => 'Move customer',
'movecustomertoadmin' => [
'title' => 'Move customer to the selected admin/reseller',
'description' => 'Leave this empty for no change. If the desired admin does not show up in the list, his customer-limit has been reached.',
],
'note' => 'Note',
'mod_fcgid_umask' => [
'title' => 'Umask (default: 022)',
],
'apcuinfo' => 'APCu info',
'opcacheinfo' => 'OPcache Info',
'letsencrypt' => [
'title' => 'Use Let\'s Encrypt',
'description' => 'Get a free certificate from Let\'s Encrypt. The certificate will be created and renewed automatically. ATTENTION: If wildcards are enabled, this option will automatically be disabled.',
],
'autoupdate' => 'Auto-Update',
'server_php' => 'PHP',
'dnsenabled' => 'Enable DNS editor',
'froxlorvhost' => 'froxlor VirtualHost settings',
'hostname' => 'Hostname',
'memory' => 'Memory usage',
'webserversettings_ssl' => 'Webserver SSL settings',
'domain_hsts_maxage' => [
'title' => 'HTTP Strict Transport Security (HSTS)',
'description' => 'Specify the max-age value for the Strict-Transport-Security header The value 0 will disable HSTS for the domain. Most user set a value of 31536000 (one year).',
],
'domain_hsts_incsub' => [
'title' => 'Include HSTS for any subdomain',
'description' => 'The optional "includeSubDomains" directive, if present, signals the UA that the HSTS Policy applies to this HSTS Host as well as any subdomains of the host\'s domain name.',
],
'domain_hsts_preload' => [
'title' => 'Include domain in HSTS preload list',
'description' => 'If you would like this domain to be included in the HSTS preload list maintained by Chrome (and used by Firefox and Safari), then use activate this. Sending the preload directive from your site can have PERMANENT CONSEQUENCES and prevent users from accessing your site and any of its subdomains. Please read the details at https://hstspreload.org/#removal before sending the header with "preload".',
],
'domain_ocsp_stapling' => [
'title' => 'OCSP stapling',
'description' => 'See Wikipedia for a detailed explanation of OCSP stapling',
'nginx_version_warning' => ' WARNING: Nginx version 1.3.7 or above is required for OCSP stapling. If your version is older, the webserver will NOT start correctly while OCSP stapling is enabled!',
],
'domain_http2' => [
'title' => 'HTTP2 support',
'description' => 'See Wikipedia for a detailed explanation of HTTP2',
],
'domain_http3' => [
'title' => 'HTTP3 support',
'description' => 'See Wikipedia for a detailed explanation of HTTP3',
'nginx_version_warning' => ' WARNING: Nginx version 1.25.0 or above and ssl-protocol TLSv1.3 is required for HTTP/3. If your version is older, the webserver will NOT start correctly while HTTP/3 is enabled!',
],
'testmail' => 'SMTP test',
'phpsettingsforsubdomains' => 'Apply php-config to all subdomains:',
'plans' => [
'name' => 'Plan name',
'description' => 'Description',
'last_update' => 'Last updated',
'plans' => 'Hosting plans',
'plan_details' => 'Plan details',
'add' => 'Add new plan',
'edit' => 'Edit plan',
'use_plan' => 'Apply plan',
],
'notryfiles' => [
'title' => 'No autogenerated try_files',
'description' => 'Say yes here if you want to specify a custom try_files directive in specialsettings (needed for some wordpress plugins for example).',
],
'logviewenabled' => 'Enable access to access/error-logs',
'novhostcontainer' => '
None of the IPs and ports has the "Create vHost-Container" option enabled, many settings here will not be available',
'ownsslvhostsettings' => 'Own SSL vHost-settings',
'domain_override_tls' => 'Override system TLS settings',
'domain_override_tls_addinfo' => ' Only used if "Override system TLS settings" is set to "Yes"',
'domain_sslenabled' => 'Enable usage of SSL',
'domain_honorcipherorder' => 'Honor the (server) cipher order, default no',
'domain_sessiontickets' => 'Enable TLS sessiontickets (RFC 5077), default yes',
'domain_sessionticketsenabled' => [
'title' => 'Enable usage of TLS sessiontickets globally',
'description' => 'Default yes Requires apache-2.4.11+ or nginx-1.5.9+',
],
'domaindefaultalias' => 'Default ServerAlias value for new domains',
'smtpsettings' => 'SMTP settings',
'smtptestaddr' => 'Send test-mail to',
'smtptestnote' => 'Note that the values below reflect your current settings and can only be adjusted there (see link in top right corner)',
'smtptestsend' => 'Send test-mail',
'mysqlserver' => [
'mysqlserver' => 'MySQL Server',
'dbserver' => 'Server #',
'caption' => 'Description',
'host' => 'Hostname / IP',
'port' => 'Port',
'user' => 'Privileged user',
'add' => 'Add new MySQL server',
'edit' => 'Edit MySQL server',
'password' => 'Privileged user password',
'password_emptynochange' => 'New password, leave empty for no change',
'allowall' => [
'title' => 'Allow use of this server to all currently existing customers',
'description' => 'Set this to "true" if you want to allow use of this database-server to all currently existing customers so they can add databases on it. This setting is not permanent but can be run multiple times.',
],
'testconn' => 'Test connection when saving',
'ssl' => 'Use SSL for connection to database-server',
'ssl_cert_file' => 'The file path to the SSL certificate authority',
'verify_ca' => 'Enable verification of the server SSL certificate',
],
'settings_importfile' => 'Chose import file',
'documentation' => 'Documentation',
'adminguide' => 'Admin guide',
'userguide' => 'User guide',
'apiguide' => 'API guide',
'domain_duplicate' => 'Duplicate domain',
'domain_duplicate_named' => 'Duplicate %s',
'backups' => [
'backups' => 'Backups',
],
'emaildomainwarning' => '
WARNING: By changing this setting you will delete all existing e-mail addresses and -accounts permanently.
',
'webserver_serveradmin' => [
'setting' => 'ServerAdmin directive value',
'customer' => 'Customer email address (default)',
'admin' => 'Admin email address',
'global' => 'Panel admin email address',
'none' => 'No ServerAdmin'
]
],
'apcuinfo' => [
'clearcache' => 'Clear APCu cache',
'generaltitle' => 'General Cache Information',
'version' => 'APCu Version',
'phpversion' => 'PHP Version',
'host' => 'APCu Host',
'sharedmem' => 'Shared Memory',
'sharedmemval' => '%d Segment(s) with %s (%s memory)',
'start' => 'Start Time',
'uptime' => 'Uptime',
'upload' => 'File Upload Support',
'cachetitle' => 'Cache Information',
'cvar' => 'Cached Variables',
'hit' => 'Hits',
'miss' => 'Misses',
'reqrate' => 'Request Rate (hits, misses)',
'creqsec' => 'cache requests/second',
'hitrate' => 'Hit Rate',
'missrate' => 'Miss Rate',
'insrate' => 'Insert Rate',
'cachefull' => 'Cache full count',
'runtime' => 'Runtime Settings',
'memnote' => 'Memory Usage',
'total' => 'Total',
'free' => 'Free',
'used' => 'Used',
'hitmiss' => 'Hits & Misses',
'detailmem' => 'Detailed Memory Usage and Fragmentation',
'fragment' => 'Fragmentation',
'nofragment' => 'No fragmentation',
'fragments' => 'Fragments',
],
'apikeys' => [
'no_api_keys' => 'No API keys found',
'key_add' => 'Add new key',
'apikey_removed' => 'The api key with the id #%s has been removed successfully',
'apikey_added' => 'A new api key has been generated successfully',
'clicktoview' => 'Click to view',
'allowed_from' => 'Allowed from',
'allowed_from_help' => 'Comma separated list of ip addresses / networks. Default is empty (allow from all).',
'valid_until' => 'Valid until',
'valid_until_help' => 'Date until valid, format YYYY-MM-DDThh:mm',
],
'changepassword' => [
'old_password' => 'Old password',
'new_password' => 'New password',
'new_password_confirm' => 'Confirm password',
'new_password_ifnotempty' => 'New password (empty = no change)',
'also_change_ftp' => ' also change password of the main FTP account',
'also_change_stats' => ' also change password for the statistics page',
'also_change_global_mysql' => 'also change password for global MySQL account',
],
'cron' => [
'cronname' => 'cronjob-name',
'lastrun' => 'last run',
'interval' => 'interval',
'isactive' => 'enabled',
'description' => 'description',
'changewarning' => 'Changing these values can have a negative cause to the behavior of froxlor and its automated tasks. Please only change values here, if you are sure you know what you are doing.',
],
'crondesc' => [
'cron_unknown_desc' => 'no description given',
'cron_tasks' => 'Generating of configfiles',
'cron_legacy' => 'legacy (old) cronjob',
'cron_traffic' => 'Traffic calculation',
'cron_usage_report' => 'Web- and traffic-reports',
'cron_mailboxsize' => 'Mailbox-size calculation',
'cron_letsencrypt' => 'Let\'s Encrypt certificate updates',
'cron_export' => 'Process data-export jobs',
'cron_backup' => 'Process system- and customer backup jobs',
],
'cronjob' => [
'cronjobsettings' => 'Cronjob settings',
'cronjobintervalv' => 'Runtime interval value',
'cronjobinterval' => 'Runtime interval',
],
'cronjobs' => [
'notyetrun' => 'Not yet run',
],
'cronmgmt' => [
'minutes' => 'minutes',
'hours' => 'hours',
'days' => 'days',
'weeks' => 'weeks',
'months' => 'months',
],
'customer' => [
'documentroot' => 'Home directory',
'name' => 'Name',
'firstname' => 'First name',
'lastname' => 'Last name',
'company' => 'Company',
'nameorcompany_desc' => 'Either firstname/lastname or company is required',
'street' => 'Street',
'zipcode' => 'Zipcode',
'city' => 'City',
'phone' => 'Phone',
'fax' => 'Fax',
'email' => 'Email',
'customernumber' => 'Customer ID',
'diskspace' => 'Webspace',
'traffic' => 'Traffic',
'mysqls' => 'MySQL-databases',
'emails' => 'Email-addresses',
'accounts' => 'Email-accounts',
'forwarders' => 'Email-forwarders',
'ftps' => 'FTP-accounts',
'subdomains' => 'Subdomains',
'domains' => 'Domains',
'mib' => 'MiB',
'gib' => 'GiB',
'title' => 'Title',
'country' => 'Country',
'email_quota' => 'E-mail quota',
'email_imap' => 'E-mail IMAP',
'email_pop3' => 'E-mail POP3',
'sendinfomail' => 'Send data via email to me',
'generated_pwd' => 'Password suggestion',
'usedmax' => 'Used / Max',
'services' => 'Services',
'letsencrypt' => [
'title' => 'Use Let\'s Encrypt',
'description' => 'Get a free certificate from Let\'s Encrypt. The certificate will be created and renewed automatically.',
],
'selectserveralias_addinfo' => 'This option can be set when editing the domain. Its initial value is inherited from the parent-domain.',
'total_diskspace' => 'Total diskspace',
'mysqlserver' => 'Usable mysql-server',
],
'diskquota' => 'Quota',
'antispam' => [
'config_file' => [
'title' => 'Antispam settings file',
'description' => 'Please specify the filename for the email-antispam rules',
],
'reload_command' => [
'title' => 'Milter restart command',
'description' => 'Please specify the restart command for the rspamd service',
],
'activated' => [
'title' => 'Activate antispam?',
'description' => 'Would you like to use rspamd as antispam service?',
],
'dkim_keylength' => [
'title' => 'DKIM Key-length',
'description' => 'Attention: Changes will only apply for new keys
Requires a specific dns entry for the domain. If you are not using the nameserver feature, you will have to manually manage these entries.',
],
'spam_tag_level' => [
'title' => 'Spam tag level',
'description' => 'Score that is required to mark an email as spam Default: 7.0'
],
'rewrite_subject' => [
'title' => 'Rewrite subject',
'description' => 'Whether to add ***SPAM*** to the email subject if applicable',
],
'spam_kill_level' => [
'title' => 'Spam kill level',
'description' => 'Score that is required to discard an email entirely Default: 14.0'
],
'bypass_spam' => [
'title' => 'Bypass spamfilter',
'description' => 'Activate to bypass/disable spamfiltering for this address. Default: no'
],
'policy_greylist' => [
'title' => 'Use greylisting',
'description' => 'Incoming emails will be protected by greylisting. Default: yes'
],
'required_spf_dns' => 'Required SPF DNS entry',
'required_dmarc_dns' => 'Required DMARC DNS entry',
'required_dkim_dns' => 'Required DKIM DNS entry',
'default_select' => [
'on_changeable' => 'Activated, adjustable',
'off_changeable' => 'Deactivated, adjustable',
'on_unchangeable' => 'Activated, not adjustable',
'off_unchangeable' => 'Deactivated, not adjustable',
],
'default_bypass_spam' => [
'title' => 'Bypass spamfilter default value',
'description' => 'Whether new email accounts have "Bypass spamfilter" activated by default and whether this setting is adjustable by the customer. Default: Deactivated, adjustable'
],
'default_spam_rewrite_subject' => [
'title' => 'Rewrite subject default value',
'description' => 'Whether new email accounts have "Rewrite subject" activated by default and whether this setting is adjustable by the customer. Default: Activated, adjustable'
],
'default_policy_greylist' => [
'title' => 'Use greylisting default value',
'description' => 'Whether new email accounts have "Use greylisting" activated by default and whether this setting is adjustable by the customer. Default: Activated, adjustable'
],
],
'dns' => [
'destinationip' => 'Domain IP(s)',
'standardip' => 'Server standard IP',
'a_record' => 'A-Record (IPv6 optional)',
'cname_record' => 'CNAME-Record',
'mxrecords' => 'Define MX records',
'standardmx' => 'Server standard MX record',
'mxconfig' => 'Custom MX records',
'priority10' => 'Priority 10',
'priority20' => 'Priority 20',
'txtrecords' => 'Define TXT records',
'txtexample' => 'Example (SPF-entry): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'howitworks' => 'Here you can manage DNS entries for your domain. Note that froxlor will automatically generate NS/MX/A/AAAA records for you. The custom entries are preferred, only missing entries will be automatically generated.',
'nis2note' => [
'title' => 'NIS2 info',
'content' => 'DNS hosting/authoritative DNS services may be considered a digital service with increased security and reporting obligations under EU-NIS2. Please check whether your setup is affected by NIS2 and what measures are required.'
],
],
'dnseditor' => [
'edit' => 'edit DNS',
'records' => 'records',
'notes' => [
'A' => '32-bit IPv4 address, used to map hostnames to an IP address of the host.',
'AAAA' => '128-bit IPv6 address, used to map hostnames to an IP address of the host.',
'CAA' => 'The CAA resource record allows a DNS domain name holder to specify one or more Certification Authorities (CAs) authorized to issue certificates for that domain. Structure: flag tag[issue|issuewild|iodef|contactmail|contactphone] value Example: 0 issue "ca.example.net" 0 iodef "mailto:security@example.com"',
'CNAME' => 'Alias of the domain name, the DNS lookup will continue by retrying the lookup with the new name. Only possible for subdomains!',
'DNAME' => 'Creates an alias for an entire subtree of the domain name tree',
'LOC' => 'Geographic location information for a domain name. Structure: ( d1 [m1 [s1]] {"N"|"S"} d2 [m2 [s2]] {"E"|"W"} alt["m"] [siz["m"] [hp["m"] [vp["m"]]]] ) Description: d1: [0 .. 90] (degrees latitude)
d2: [0 .. 180] (degrees longitude)
m1, m2: [0 .. 59] (minutes latitude/longitude)
s1, s2: [0 .. 59.999] (seconds latitude/longitude)
alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)
siz, hp, vp: [0 .. 90000000.00] (size/precision in meters) Example: 52 22 23.000 N 4 53 32.000 E -2.00m 0.00m 10000m 10m',
'MX' => 'Mail exchange record, maps a domain name to a mailserver for that domain. Example: 10 mail.example.com Note: For priority, use field above',
'NS' => 'Delegates a DNS zone to use the given authoritative name servers.',
'RP' => 'Responsible Person record Structure: mailbox[replace @ with a dot] txt-record-name Example: team.froxlor.org. froxlor.org.',
'SRV' => 'Service location record, used for newer protocols instead of creating protocol-specific records such as MX. Structure: priority weight port target Example: 0 5 5060 sipserver.example.com. Note: For priority, use field above',
'SSHFP' => 'The SSHFP resource record is used to publish secure shell (SSH) key fingerprints in the DNS. Structure: algorithm type fingerprint Algorithms: 0: reserved, 1: RSA, 2: DSA, 3: ECDSA, 4: Ed25519, 6: Ed448 Types: 0: reserved, 1: SHA-1, 2: SHA-256 Example: 2 1 123456789abcdef67890123456789abcdef67890',
'TLSA' => 'TLSA (TLS Authentication) record is used to publish fingerprint of a TLS/SSL certificate. It is commonly used for DANE. TLSA records can only be trusted if DNSSEC is enabled on your domain. Structure: usage selector type fingerprint Certificate usage: 0: PKIX-T, 1: PKIX-EE, 2: DANE-TA, 3: DANE-EE Selector: 0: Use full certificate, 1: Use subject public key Matching type: 0: Full: No Hash, 1: SHA-256 Hash, 2:SHA-512 Hash Example: 3 1 1 123456789abcdef67890123456789abcdef123456789abcdef123456789abcde',
'TXT' => 'Free definable, descriptive text.'
]
],
'domain' => [
'openbasedirpath' => 'OpenBasedir-path',
'inherited' => 'Same as parent-domain',
'docroot' => 'Path from field above',
'homedir' => 'Home directory',
'docparent' => 'Parent-directory of path from field above',
'ssl_certificate_placeholder' => '---- BEGIN CERTIFICATE---' . PHP_EOL . '[...]' . PHP_EOL . '----END CERTIFICATE----',
'ssl_key_placeholder' => '---- BEGIN RSA PRIVATE KEY-----' . PHP_EOL . '[...]' . PHP_EOL . '-----END RSA PRIVATE KEY-----',
],
'domains' => [
'description' => 'Here you can create (sub-)domains and change their paths. The system will need some time to apply the new settings after every change.',
'domainsettings' => 'Domain settings',
'domainname' => 'Domain name',
'subdomain_add' => 'Create subdomain',
'subdomain_edit' => 'Edit (sub)domain',
'wildcarddomain' => 'Create as wildcarddomain?',
'aliasdomain' => 'Alias for domain',
'noaliasdomain' => 'No alias domain',
'hasaliasdomains' => 'Has alias domain(s)',
'statstics' => 'Usage Statistics',
'isassigneddomain' => 'Is assigned domain',
'add_date' => 'Added to froxlor',
'registration_date' => 'Added to registry',
'topleveldomain' => 'Top-Level-Domain',
'associated_with_domain' => 'Associated',
'aliasdomains' => 'Alias domains',
'redirectifpathisurl' => 'Redirect code (default: empty)',
'redirectifpathisurlinfo' => 'You only need to select one of these if you entered an URL as path NOTE: Changes are only applied if the given path is an URL.',
'ipandport_multi' => [
'title' => 'IP address(es)',
'description' => 'Specify one or more IP address for the domain.
NOTE: IP addresses cannot be changed when the domain is configured as alias-domain of another domain.
',
],
'ipandport_ssl_multi' => [
'title' => 'SSL IP address(es)',
],
'ssl_redirect' => [
'title' => 'SSL redirect',
'description' => 'This option creates redirects for non-ssl vhosts so that all requests are redirected to the SSL-vhost.
e.g. a request to http://domain.tld/ will redirect you to https://domain.tld/',
],
'serveraliasoption_wildcard' => 'Wildcard (*.domain.tld)',
'serveraliasoption_www' => 'WWW (www.domain.tld)',
'serveraliasoption_none' => 'No alias',
'domain_import' => 'Import Domains',
'import_separator' => 'Separator',
'import_offset' => 'Offset',
'import_file' => 'CSV-File',
'import_description' => 'Detailed information about the structure of the import-file and how to import successfully, please visit https://docs.froxlor.org/latest/admin-guide/domain-import/',
'ssl_redirect_temporarilydisabled' => ' The SSL redirect is temporarily deactivated while a new Let\'s Encrypt certificate is generated. It will be activated again after the certificate was generated.',
'termination_date' => 'Date of termination',
'termination_date_overview' => 'terminated as of ',
'ssl_certificates' => 'SSL certificates',
'ssl_certificate_removed' => 'The certificate with the id #%s has been removed successfully',
'ssl_certificate_error' => 'Error reading certificate for domain: %s',
'no_ssl_certificates' => 'There are no domains with SSL certificate',
'isaliasdomainof' => 'Is aliasdomain for %s',
'isbinddomain' => 'Create DNS zone',
'dkimenabled' => 'DKIM enabled',
'openbasedirenabled' => 'Openbasedir restiction',
'hsts' => 'HSTS enabled',
'aliasdomainid' => 'ID of alias domain',
'nodomainsassignedbyadmin' => 'Your account has currently no (active) domains assigned to it. Please contact your administrator if you think this is wrong.',
'email_only' => 'Email only',
],
'emails' => [
'description' => 'Here you can create and change your email addresses. An account is like your letterbox in front of your house. If someone sends you an email, it will be dropped into the account.
To download your emails use the following settings in your mailprogram: (The data in italics has to be changed to the equivalents you typed in!) Hostname: domainname Username: account name / e-mail address password: the password you\'ve chosen',
'emailaddress' => 'Email-address',
'emails_add' => 'Create email-address',
'emails_edit' => 'Edit email-address',
'catchall' => 'Catchall',
'iscatchall' => 'Define as catchall-address?',
'account' => 'Account',
'account_add' => 'Create account',
'account_delete' => 'Delete account',
'from' => 'Source',
'to' => 'Destination',
'forwarders' => 'Forwarders',
'forwarder_add' => 'Create forwarder',
'alternative_emailaddress' => 'Alternative e-mail-address',
'quota' => 'Quota',
'noquota' => 'No quota',
'updatequota' => 'Update Quota',
'quota_edit' => 'Change E-Mail Quota',
'noemaildomainaddedyet' => 'You do not have a (email-)domain in your account yet.',
'back_to_overview' => 'Back to domain overview',
'accounts' => 'Accounts',
'emails' => 'Addresses',
'senders' => 'Allowed sender',
'sender_add' => 'Add allowed sender',
'foreign_sender' => 'Allowed (external) sender',
'allowed_sender_info' => 'With an allowed sender, you allow an existing email account to send emails with a different sender address. Important: The address/wildcard-domain entered here does not automatically become a mailbox – it only serves as additional, permitted sender identifier.',
],
'error' => [
'error' => 'Error',
'directorymustexist' => 'The directory %s must exist. Please create it with your FTP client.',
'filemustexist' => 'The file %s must exist.',
'allresourcesused' => 'You have already used all of your resources.',
'domains_cantdeletemaindomain' => 'You cannot delete an assigned domain.',
'domains_canteditdomain' => 'You cannot edit this domain. It has been disabled by the admin.',
'domains_cantdeletedomainwithemail' => 'You cannot delete a domain which is used as an email-domain. Delete all email addresses first.',
'firstdeleteallsubdomains' => 'You have to delete all subdomains first before you can create a wildcard domain.',
'youhavealreadyacatchallforthisdomain' => 'You have already defined a catchall for this domain.',
'ftp_cantdeletemainaccount' => 'You cannot delete your main FTP account',
'login' => 'The username or password you typed in is wrong. Please try it again!',
'login_blocked' => 'This account has been suspended because of too many login errors. Please try again in %s seconds.',
'notallreqfieldsorerrors' => 'You have not filled in all or filled in some fields incorrectly.',
'oldpasswordnotcorrect' => 'The old password is not correct.',
'youcantallocatemorethanyouhave' => 'You cannot allocate more resources than you own for yourself.',
'mustbeurl' => 'You have not typed a valid or complete url (e.g. http://somedomain.com/error404.htm)',
'invalidpath' => 'You have not chosen a valid URL (maybe problems with the dirlisting?)',
'stringisempty' => 'Missing Input in Field',
'stringiswrong' => 'Wrong Input in Field',
'newpasswordconfirmerror' => 'New password and confirmation does not match',
'mydomain' => '\'Domain\'',
'mydocumentroot' => '\'Documentroot\'',
'loginnameexists' => 'Loginname %s already exists',
'emailiswrong' => 'Email-address %s contains invalid characters or is incomplete',
'emailexists' => 'Email-address %s already in use by another admin',
'emailexistsanon' => 'Email-address %s already in use.',
'alternativeemailiswrong' => 'The given alternative email address %s to send the credentials to seems to be invalid',
'loginnameiswrong' => 'Loginname "%s" contains illegal characters.',
'loginnameiswrong2' => 'Loginname contains too many characters. Only %s characters are allowed.',
'userpathcombinationdupe' => 'Combination of username and path already exists',
'patherror' => 'General Error! Path cannot be empty',
'errordocpathdupe' => 'Option for path %s already exists',
'adduserfirst' => 'Please create a customer first',
'domainalreadyexists' => 'The domain %s is already assigned to a customer',
'nolanguageselect' => 'No language selected.',
'nosubjectcreate' => 'You must define a topic for this mail template.',
'nomailbodycreate' => 'You must define a mail-text for this mail template.',
'templatenotfound' => 'Template was not found.',
'alltemplatesdefined' => 'You can\'t define more templates, all languages are supported already.',
'wwwnotallowed' => 'www is not allowed for subdomains.',
'subdomainiswrong' => 'The subdomain %s contains invalid characters.',
'domaincantbeempty' => 'The domain-name can not be empty.',
'domainexistalready' => 'The domain %s already exists.',
'domainisaliasorothercustomer' => 'The selected alias domain is either itself an alias domain, has a different ip/port combination or belongs to another customer.',
'emailexistalready' => 'The email-address %s already exists.',
'maindomainnonexist' => 'The main-domain %s does not exist.',
'maindomaindeactivated' => 'The main-domain %s is deactivated.',
'destinationnonexist' => 'Please create your forwarder in the field \'Destination\'.',
'destinationalreadyexistasmail' => 'The forwarder to %s already exists as active email-address.',
'destinationalreadyexist' => 'You have already defined a forwarder to "%s"',
'destinationiswrong' => 'The forwarder %s contains invalid character(s) or is incomplete.',
'dumpfoldercannotbedocroot' => 'The folder for data-dumps cannot be your homedir, please chose a folder within your homedir, e.g. /dumps',
'templatelanguagecombodefined' => 'The selected language/template combination has already been defined.',
'templatelanguageinvalid' => 'The selected language does not exist',
'ipstillhasdomains' => 'The IP/Port combination you want to delete still has domains assigned to it, please reassign those to other IP/Port combinations before deleting this IP/Port combination.',
'cantdeletedefaultip' => 'You cannot delete the default IP/Port combination, please make another IP/Port combination default for before deleting this IP/Port combination.',
'cantdeletesystemip' => 'You cannot delete the last system IP, either create a new IP/Port combination for the system IP or change the system IP.',
'myipaddress' => '\'IP\'',
'myport' => '\'Port\'',
'myipdefault' => 'You need to select an IP/Port combination that should become default.',
'myipnotdouble' => 'This IP/Port combination already exists.',
'admin_domain_emailsystemhostname' => 'The server-hostname cannot be used as customer-domain.',
'cantchangesystemip' => 'You cannot change the last system IP, either create another new IP/Port combination for the system IP or change the system IP.',
'sessiontimeoutiswrong' => 'Only numerical "session timeout" is allowed.',
'maxloginattemptsiswrong' => 'Only numerical "max login attempts" are allowed.',
'deactivatetimiswrong' => 'Only numerical "deactivation time" is allowed.',
'accountprefixiswrong' => 'The "customerprefix" is wrong.',
'mysqlprefixiswrong' => 'The "SQL prefix" is wrong.',
'ftpprefixiswrong' => 'The "FTP prefix" is wrong.',
'ipiswrong' => 'The "IP-address" is wrong. Only a valid IP-address is allowed.',
'vmailuidiswrong' => 'The "mails-uid" is wrong. Only a numerical UID is allowed.',
'vmailgidiswrong' => 'The "mails-gid" is wrong. Only a numerical GID is allowed.',
'adminmailiswrong' => 'The "sender-address" is wrong. Only a valid email-address is allowed.',
'pagingiswrong' => 'The "entries per page"-value is wrong. Only numerical characters are allowed.',
'phpmyadminiswrong' => 'The phpMyAdmin-link is not a valid link.',
'webmailiswrong' => 'The webmail-link is not a valid link.',
'webftpiswrong' => 'The WebFTP-link is not a valid link.',
'stringformaterror' => 'The value for the field "%s" is not in the expected format.',
'loginnameisusingprefix' => 'You cannot create accounts that begin with "%s", as this prefix is set to be used for the automatic account-naming. Please enter another account name.',
'loginnameissystemaccount' => 'The account "%s" already exists on the system and cannot be used. Please enter another account name.',
'loginnameisreservedname' => 'The account-name "%s" is reserved for system internals and cannot be used.',
'youcantdeleteyourself' => 'You cannot delete yourself for security reasons.',
'youcanteditallfieldsofyourself' => 'Note: You cannot edit all fields of your own account for security reasons.',
'documentrootexists' => 'The directory "%s" already exists for this customer. Please remove this before adding the customer again.',
'norepymailiswrong' => 'The "Noreply-address" is wrong. Only a valid email-address is allowed.',
'logerror' => 'Log-Error: %s',
'nomessagetosend' => 'You did not enter a message.',
'norecipientsgiven' => 'You did not specify any recipient',
'errorsendingmail' => 'The message to "%s" failed',
'errorsendingmailpub' => 'The message to the given email-address failed',
'cannotreaddir' => 'Unable to read directory "%s"',
'invalidip' => 'Invalid IP address: %s',
'invalidmysqlhost' => 'Invalid MySQL host address: %s',
'cannotuseawstatsandwebalizeratonetime' => 'You cannot enable Webalizer and AWstats at the same time, please chose one of them',
'cannotwritetologfile' => 'Cannot open logfile %s for writing',
'vmailquotawrong' => 'The quotasize must be positive number.',
'allocatetoomuchquota' => 'You tried to allocate %s MB Quota, but you do not have enough left.',
'missingfields' => 'Not all required fields were filled out.',
'requiredfield' => 'This field is required.',
'accountnotexisting' => 'The given email account doesn\'t exist.',
'nopermissionsorinvalidid' => 'You don\'t have enough permissions to change these settings or an invalid id was given.',
'phpsettingidwrong' => 'A PHP Configuration with this id doesn\'t exist',
'descriptioninvalid' => 'The description is too short, too long or contains illegal characters.',
'info' => 'Info',
'filecontentnotset' => 'The file cannot be empty!',
'customerdoesntexist' => 'The customer you have chosen doesn\'t exist.',
'admindoesntexist' => 'The admin you have chosen doesn\'t exist.',
'ipportdoesntexist' => 'The ip/port combination you have chosen doesn\'t exist.',
'usernamealreadyexists' => 'The username %s already exists.',
'plausibilitychecknotunderstood' => 'Answer of plausibility check not understood.',
'errorwhensaving' => 'An error occurred when saving the field %s',
'hiddenfieldvaluechanged' => 'The value for the hidden field "%s" changed while editing the settings.
This is usually not a big problem but the settings could not be saved because of this.',
'notrequiredpasswordlength' => 'The given password is too short. Please enter at least %s characters.',
'overviewsettingoptionisnotavalidfield' => 'Whoops, a field that should be displayed as an option in the settings-overview is not an excepted type. You can blame the developers for this. This should not happen!',
'pathmaynotcontaincolon' => 'The path you have entered should not contain a colon (":"). Please enter a correct path value.',
'invaliddocumentrooturl' => 'The URL you have entered for the documentroot is not valid. Please enter a correct URL or a unix-path.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'The specified password-complexity was not satisfied. Please contact your administrator if you have any questions about the complexity-specification',
'invaliderrordocumentvalue' => 'The value given as ErrorDocument does not seem to be a valid file, URL or string.',
'intvaluetoolow' => 'The given number is too low (field %s)',
'intvaluetoohigh' => 'The given number is too high (field %s)',
'phpfpmstillenabled' => 'PHP-FPM is currently active. Please deactivate it before activating FCGID',
'fcgidstillenabled' => 'FCGID is currently active. Please deactivate it before activating PHP-FPM',
'domains_cantdeletedomainwithaliases' => 'You cannot delete a domain which is used for alias-domains. You have to delete the aliases first.',
'user_banned' => 'Your account has been locked. Please contact your administrator for further information.',
'session_timeout' => 'Value too low',
'session_timeout_desc' => 'You should not set the session timeout lower than 1 minute.',
'invalidhostname' => 'Hostname needs to be a valid domain. It can\'t be empty nor can it consist only of whitespaces',
'operationnotpermitted' => 'Operation not permitted!',
'featureisdisabled' => 'Feature %s is disabled. Please contact your service provider.',
'usercurrentlydeactivated' => 'The user %s is currently deactivated',
'setlessthanalreadyused' => 'You cannot set less resources of \'%s\' than this user already used ',
'stringmustntbeempty' => 'The value for the field %s must not be empty',
'sslcertificateismissingprivatekey' => 'You need to specify a private key for your certificate',
'sslcertificatewrongdomain' => 'The given certificate does not belong to this domain',
'sslcertificateinvalidcert' => 'The given certificate-content does not seem to be a valid certificate',
'sslcertificateinvalidcertkeypair' => 'The given private-key does not belong to the given certificate',
'sslcertificateinvalidca' => 'The given CA certificate data does not seem to be a valid certificate',
'sslcertificateinvalidchain' => 'The given certificate chain data does not seem to be a valid certificate',
'givendirnotallowed' => 'The given directory in field %s is not allowed.',
'sslredirectonlypossiblewithsslipport' => 'Using Let\'s Encrypt is only possible when the domain has at least one ssl-enabled IP/port combination assigned.',
'fcgidstillenableddeadlock' => 'FCGID is currently active. Please deactivate it before switching to another webserver than Apache2',
'send_report_title' => 'Send error report',
'send_report_desc' => 'Thank you for reporting this error and helping us to improve froxlor. This is the email which will be sent to the froxlor developer team:',
'send_report' => 'Send report',
'send_report_error' => 'Error when sending report: %s',
'notallowedtouseaccounts' => 'Your account does not allow using IMAP/POP3. You cannot add email accounts.',
'cannotdeletehostnamephpconfig' => 'This PHP-configuration is used by the froxlor-vhost and cannot be deleted.',
'cannotdeletedefaultphpconfig' => 'This PHP-configuration is set as default and cannot be deleted.',
'passwordshouldnotbeusername' => 'The password should not be the same as the username.',
'no_phpinfo' => 'Sorry, unable to read phpinfo()',
'moveofcustomerfailed' => 'Moving the customer to the selected admin/reseller failed. Keep in mind that all other changes to the customer were applied successfully at this stage.
Error-message: %s',
'domain_import_error' => 'Following error occurred while importing domains: %s',
'fcgidandphpfpmnogoodtogether' => 'FCGID and PHP-FPM cannot be activated at the same time',
'no_apcuinfo' => 'No cache info available. APCu does not appear to be running.',
'no_opcacheinfo' => 'No OPCache info available. OPCache does not appear to be loaded.',
'inactive_opcacheinfo' => 'OPCache seems to be installed but not activated.',
'nowildcardwithletsencrypt' => 'Let\'s Encrypt cannot handle wildcard-domains using ACME in froxlor (requires dns-challenge), sorry. Please set the ServerAlias to WWW or disable it completely',
'customized_version' => 'It looks like your froxlor installation has been modified, no support sorry.',
'autoupdate_0' => 'Unknown error',
'autoupdate_1' => 'PHP setting allow_url_fopen is disabled. Autoupdate needs this setting to be enabled in php.ini',
'autoupdate_2' => 'PHP zip extension not found, please ensure it is installed and activated',
'autoupdate_4' => 'The froxlor archive could not be stored to the disk :(',
'autoupdate_5' => 'version.froxlor.org returned unacceptable values :(',
'autoupdate_6' => 'Whoops, there was no (valid) version given to download :(',
'autoupdate_7' => 'The downloaded archive could not be found :(',
'autoupdate_8' => 'The archive could not be extracted :(',
'autoupdate_9' => 'The downloaded file did not pass the integrity check. Please try to update again.',
'autoupdate_10' => 'Minimum supported version of PHP is 7.4.0',
'autoupdate_11' => 'Webupdate is disabled',
'mailaccistobedeleted' => 'Another account with the same name (%s) is currently being deleted and can therefore not be added at this moment.',
'customerhasongoingexportjob' => 'There is already a data export job waiting to be processed, please be patient.',
'exportfunctionnotenabled' => 'The export function is not enabled',
'dns_domain_nodns' => 'DNS is not enabled for this domain',
'dns_content_empty' => 'No content given',
'dns_content_invalid' => 'DNS content invalid',
'dns_arec_noipv4' => 'No valid IP address for A-record given',
'dns_aaaarec_noipv6' => 'No valid IP address for AAAA-record given',
'dns_mx_prioempty' => 'Invalid MX priority given',
'dns_mx_needdom' => 'The MX content value must be a valid domain-name',
'dns_mx_noalias' => 'The MX-content value cannot be an CNAME entry.',
'dns_cname_invaliddom' => 'Invalid domain-name for CNAME record',
'dns_cname_nomorerr' => 'There already exists a resource-record with the same record-name. It can not be used as CNAME.',
'dns_other_nomorerr' => 'There already exists a CNAME record with the same record-name. It can not be used for another type.',
'dns_ns_invaliddom' => 'Invalid domain-name for NS record',
'dns_srv_prioempty' => 'Invalid SRV priority given',
'dns_srv_invalidcontent' => 'Invalid SRV content, must contain of fields weight, port and target, e.g.: 5 5060 sipserver.example.com.',
'dns_srv_needdom' => 'The SRV target value must be a valid domain-name',
'dns_srv_noalias' => 'The SRV-target value cannot be an CNAME entry.',
'dns_duplicate_entry' => 'Record already exists',
'dns_notfoundorallowed' => 'Domain not found or no permission',
'dns_loc_invalid' => 'The LOC record has invalid content',
'dns_rp_invalid' => 'The RP record has invalid content',
'dns_sshfp_invalid' => 'The SSHFP record has invalid content',
'dns_tlsa_invalid' => 'The TLSA record has invalid content',
'dns_naptr_invalid' => 'The NAPTR record has invalid content',
'domain_nopunycode' => 'You must not specify punycode (IDNA). The domain will automatically be converted',
'domain_noipaddress' => 'Cannot add an IP address as domain',
'dns_record_toolong' => 'Records/labels can only be up to 63 characters',
'noipportgiven' => 'No IP/port given',
'nosslippportgiven' => 'When enabling SSL you need to select a SSL IP/port',
'jsonextensionnotfound' => 'This feature requires the php json-extension.',
'cannotdeletesuperadmin' => 'The first admin cannot be deleted.',
'no_wwwcnamae_ifwwwalias' => 'Cannot set CNAME record for "www" as domain is set to generate a www-alias. Please change settings to either "No alias" or "Wildcard alias"',
'local_group_exists' => 'The given group already exists on the system.',
'local_group_invalid' => 'The given group name is invalid',
'local_user_invalid' => 'The given user name is invalid or does not exist',
'local_user_isfroxloruser' => 'The given user name is a froxlor managed username and cannot be used in this context',
'invaliddnsforletsencrypt' => 'The domains DNS does not include any of the chosen IP addresses. Let\'s Encrypt certificate generation not possible.',
'notallowedphpconfigused' => 'Trying to use php-config which is not assigned to customer',
'pathmustberelative' => 'The user does not have the permission to specify directories outside the customers home-directory. Please specify a relative path (no leading /).',
'mysqlserverstillhasdbs' => 'Cannot remove database server from customers allow-list as there are still databases on it.',
'domaincannotbeedited' => 'You are not permitted to edit the domain %s',
'invalidcronjobintervalvalue' => 'Cronjob interval must be one of: %s',
'phpgdextensionnotavailable' => 'The PHP GD extension is not available. Unable to validate image-data',
'2fa_wrongcode' => 'The code entered is not valid',
'gnupgextensionnotavailable' => 'The PHP GnuPG extension is not available. Unable to validate PGP Public Key',
'invalidpgppublickey' => 'The PGP Public Key is not valid',
'invalid_validtime' => 'Valid time in seconds can only be between 10 and 120',
'customerphpenabledbutnoconfig' => 'Customer has PHP activated but no PHP-configuration was selected.',
'emaildomainstillhasaddresses' => 'Cannot deactivate mail-domain flag, as there are still email-addresses for this domain.',
'tls13requiredforhttp3' => 'Domain http3 flag enabled but ssl-protocols does not include TLSv1.3',
'senderdomainnotowned' => 'Given domain "%s" cannot be used.',
'emailhasnoaccount' => 'Given email address "%s" has no account, cannot add sender address.',
],
'extras' => [
'description' => 'Here you can add some extras, for example directory protection. The system will need some time to apply the new settings after every change.',
'directoryprotection_add' => 'Add directory protection',
'view_directory' => 'Display directory content',
'pathoptions_add' => 'Add path options',
'directory_browsing' => 'Directory content browsing',
'pathoptions_edit' => 'Edit path options',
'error404path' => '404',
'error403path' => '403',
'error500path' => '500',
'error401path' => '401',
'errordocument404path' => 'ErrorDocument 404',
'errordocument403path' => 'ErrorDocument 403',
'errordocument500path' => 'ErrorDocument 500',
'errordocument401path' => 'ErrorDocument 401',
'execute_perl' => 'Execute perl/CGI',
'htpasswdauthname' => 'Authentication reason (AuthName)',
'directoryprotection_edit' => 'Edit directory protection',
'export' => 'Create data dump',
'dump_web' => 'Include web-data',
'dump_mail' => 'Include mail-data',
'dump_dbs' => 'Include databases',
'path_protection_label' => 'Important',
'path_protection_info' => 'We strongly recommend protecting the given path, see "Extras" -> "Directory protection"',
],
'ftp' => [
'description' => 'Here you can create and change your FTP-accounts. The changes are made instantly and the accounts can be used immediately.',
'account_add' => 'Create account',
'account_edit' => 'Edit ftp account',
'editpassdescription' => 'Set new password or leave blank for no change.',
'sshkey_add' => 'Add ssh-key',
'sshkey_edit' => 'Edit ssh-key',
],
'gender' => [
'title' => 'Title',
'male' => 'Mr.',
'female' => 'Mrs.',
'undef' => '',
],
'imprint' => 'Legal notes',
'index' => [
'customerdetails' => 'Customer details',
'accountdetails' => 'Account details',
],
'integrity_check' => [
'databaseCharset' => 'Character set of database (should be UTF-8)',
'domainIpTable' => 'IP <‐> domain references',
'subdomainSslRedirect' => 'False SSL-redirect flag for non-ssl domains',
'froxlorLocalGroupMemberForFcgidPhpFpm' => 'froxlor-user in the customer groups (for FCGID/php-fpm)',
'webserverGroupMemberForFcgidPhpFpm' => 'Webserver-user in the customer groups (for FCGID/php-fpm)',
'subdomainLetsencrypt' => 'Main domains with no SSL-Port assigned don\'t have any subdomains with active SSL redirect',
],
'logger' => [
'date' => 'Date',
'type' => 'Type',
'action' => 'Action',
'user' => 'User',
'truncate' => 'Empty log',
'reseller' => 'Reseller',
'admin' => 'Administrator',
'cron' => 'Cronjob',
'login' => 'Login',
'intern' => 'Internal',
'unknown' => 'Unknown',
],
'login' => [
'username' => 'Username',
'password' => 'Password',
'language' => 'Language',
'login' => 'Login',
'logout' => 'Logout',
'profile_lng' => 'Profile language',
'welcomemsg' => 'Please log in to access your account.',
'forgotpwd' => 'Forgot your password?',
'presend' => 'Reset password',
'email' => 'E-mail address',
'remind' => 'Reset my password',
'usernotfound' => 'User not found!',
'backtologin' => 'Back to login',
'combination_not_found' => 'Combination of user and email address not found.',
'2fa' => 'Two-factor authentication (2FA)',
'2facode' => 'Please enter 2FA code',
'2faremember' => 'Trust browser'
],
'mails' => [
'pop_success' => [
'mailbody' => 'Hello,\\n\\nyour mail account {EMAIL}\\nwas set up successfully.\\n\\nThis is an automatically created\\ne-mail, please do not answer!\\n\\nYours sincerely, your administrator',
'subject' => 'Mail account set up successfully',
],
'createcustomer' => [
'mailbody' => 'Hello {SALUTATION},\\n\\nhere is your account information:\\n\\nUsername: {USERNAME}\\nPassword: {PASSWORD}\\n\\nThank you,\\nyour administrator',
'subject' => 'Account information',
],
'pop_success_alternative' => [
'mailbody' => 'Hello {SALUTATION},\\n\\nyour Mail account {EMAIL}\\nwas set up successfully.\\nYour password is {PASSWORD}.\\n\\nThis is an automatically created\\ne-mail, please do not answer!\\n\\nYours sincerely, your administrator',
'subject' => 'Mail account set up successfully',
],
'password_reset' => [
'subject' => 'Password reset',
'mailbody' => 'Hello {SALUTATION},\\n\\nhere is your link for setting a new password. This link is valid for the next 24 hours.\\n\\n{LINK}\\n\\nThank you,\\nyour administrator',
],
'new_database_by_customer' => [
'subject' => '[froxlor] New database created',
'mailbody' => 'Hello {CUST_NAME},
you have just added a new database. Here is the entered information:
Databasename: {DB_NAME}
Password: {DB_PASS}
Description: {DB_DESC}
DB-Hostname: {DB_SRV}
phpMyAdmin: {PMA_URI}
Yours sincerely, your administrator',
],
'new_ftpaccount_by_customer' => [
'subject' => 'New ftp-user created',
'mailbody' => 'Hello {CUST_NAME},
you have just added a new ftp-user. Here is the entered information:
Username: {USR_NAME}
Password: {USR_PASS}
Path: {USR_PATH}
Yours sincerely, your administrator',
],
'trafficmaxpercent' => [
'mailbody' => 'Dear {SALUTATION},\\n\\nyou used {TRAFFICUSED} of your available {TRAFFIC} of traffic.\\nThis is more than {MAX_PERCENT}%%.\\n\\nYours sincerely, your administrator',
'subject' => 'Reaching your traffic limit',
],
'diskmaxpercent' => [
'mailbody' => 'Dear {SALUTATION},\\n\\nyou used {DISKUSED} of your available {DISKAVAILABLE} of diskspace.\\nThis is more than {MAX_PERCENT}%%.\\n\\nYours sincerely, your administrator',
'subject' => 'Reaching your diskspace limit',
],
'2fa' => [
'mailbody' => 'Hello,\\n\\nyour 2FA login-code is: {CODE}.\\n\\nThis is an automatically created\\ne-mail, please do not answer!\\n\\nYours sincerely, your administrator',
'subject' => 'froxlor - 2FA Code',
],
],
'menue' => [
'main' => [
'main' => 'Main',
'changepassword' => 'Change password',
'changelanguage' => 'Change language',
'username' => 'Logged in as: ',
'changetheme' => 'Change theme',
'apihelp' => 'API help',
'apikeys' => 'API keys',
],
'email' => [
'email' => 'Email',
'emails' => 'Addresses',
'webmail' => 'Webmail',
'emailsoverview' => 'Email domains overview',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Databases',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domains',
'settings' => 'Domains overview',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Accounts',
'webftp' => 'WebFTP',
'sshkeys' => 'SSH keys',
],
'extras' => [
'extras' => 'Extras',
'directoryprotection' => 'Directory protection',
'pathoptions' => 'Path options',
'export' => 'Data export',
],
'traffic' => [
'traffic' => 'Traffic',
'current' => 'Current Month',
'overview' => 'Total traffic',
],
'phpsettings' => [
'maintitle' => 'PHP Configurations',
'fpmdaemons' => 'PHP-FPM versions',
],
'logger' => [
'logger' => 'System log',
],
],
'message' => [
'norecipients' => 'No e-mail has been sent because there are no recipients in the database',
'success' => 'Successfully sent message to %s recipients',
],
'mysql' => [
'databasename' => 'User/Database name',
'databasedescription' => 'Database description',
'database_create' => 'Create database',
'description' => 'Here you can create and change your MySQL-databases. The changes are made instantly and the database can be used immediately. At the menu on the left side you find the tool phpMyAdmin with which you can easily administer your database.
To use your databases in your own php-scripts use the following settings: (The data in italics have to be changed into the equivalents you typed in!) Hostname: Username: databasename Password: the password you\'ve chosen Database: databasename',
'mysql_server' => 'MySQL-Server',
'database_edit' => 'Edit database',
'size' => 'Size',
'privileged_user' => 'Privileged database user',
'privileged_passwd' => 'Password for privileged user',
'unprivileged_passwd' => 'Password for unprivileged user',
'mysql_ssl_ca_file' => 'SSL server certificate',
'mysql_ssl_verify_server_certificate' => 'Verify SSL server certificate',
'globaluserinfo' => 'To access your databases, you can additionally use your froxlor login (user: %s) which automatically has access to all your databases. It is recommended not to use this for applications, only for administration (e.g. via phpMyAdmin).',
'edit_global_user' => 'Edit admin user',
],
'opcacheinfo' => [
'generaltitle' => 'General Information',
'resetcache' => 'Reset OPcache',
'version' => 'OPCache version',
'phpversion' => 'PHP version',
'runtimeconf' => 'Runtime Configuration',
'start' => 'Start time',
'lastreset' => 'Last restart',
'oomrestarts' => 'OOM restart count',
'hashrestarts' => 'Hash restart count',
'manualrestarts' => 'Manual restart count',
'hitsc' => 'Hits count',
'missc' => 'Miss count',
'blmissc' => 'Blacklist miss count',
'status' => 'Status',
'never' => 'never',
'enabled' => 'OPcache Enabled',
'cachefull' => 'Cache full',
'restartpending' => 'Pending restart',
'restartinprogress' => 'Restart in progress',
'cachedscripts' => 'Cached scripts count',
'memusage' => 'Memory usage',
'totalmem' => 'Total memory',
'usedmem' => 'Used memory',
'freemem' => 'Free memory',
'wastedmem' => 'Wasted memory',
'maxkey' => 'Maximum keys',
'usedkey' => 'Used keys',
'wastedkey' => 'Wasted keys',
'strinterning' => 'String interning',
'strcount' => 'String count',
'keystat' => 'Cached keys statistic',
'used' => 'Used',
'free' => 'Free',
'blacklist' => 'Blacklist',
'novalue' => 'no value',
'true' => 'true',
'false' => 'false',
'funcsavail' => 'Available functions',
],
'panel' => [
'edit' => 'Edit',
'delete' => 'Delete',
'create' => 'Create',
'save' => 'Save',
'yes' => 'Yes',
'no' => 'No',
'emptyfornochanges' => 'empty for no changes',
'emptyfordefault' => 'empty for defaults',
'path' => 'Path',
'toggle' => 'Toggle',
'next' => 'Next',
'dirsmissing' => 'Can not find or read the directory!',
'unlimited' => '∞',
'urloverridespath' => 'URL (overrides path)',
'pathorurl' => 'Path or URL',
'ascending' => 'ascending',
'descending' => 'descending',
'search' => 'Search',
'used' => 'used',
'translator' => 'Translator',
'reset' => 'Discard changes',
'pathDescription' => 'If the directory doesn\'t exist, it will be created automatically.',
'pathDescriptionEx' => '
Please note: The path / is not allowed due to administrative settings, it will automatically be set to /chosen.subdomain.tld/ if not set to another directory.',
'pathDescriptionSubdomain' => 'If the directory doesn\'t exist, it will be created automatically.
If you want a redirect to another domain then this entry has to start with http:// or https://.
If the URL ends with / it is considered a folder, if not, it is treated as file.',
'back' => 'Back',
'reseller' => 'reseller',
'admin' => 'admin',
'customer' => 'customer/s',
'send' => 'send',
'nosslipsavailable' => 'There are currently no ssl ip/port combinations for this server',
'backtooverview' => 'Back to overview',
'dateformat' => 'YYYY-MM-DD',
'dateformat_function' => 'Y-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Default',
'never' => 'Never',
'active' => 'Active',
'please_choose' => 'Please choose',
'allow_modifications' => 'Allow modifications',
'megabyte' => 'MegaByte',
'not_supported' => 'Not supported in: ',
'view' => 'view',
'toomanydirs' => 'Too many subdirectories. Falling back to manual path-select.',
'abort' => 'Abort',
'not_activated' => 'not activated',
'off' => 'off',
'options' => 'Options',
'neverloggedin' => 'No login yet',
'descriptionerrordocument' => 'Can be an URL, path to a file or just a string wrapped around " " Leave empty to use server default value.',
'unlock' => 'Unlock',
'theme' => 'Theme',
'variable' => 'Variable',
'description' => 'Description',
'cancel' => 'Cancel',
'ssleditor' => 'SSL settings for this domain',
'ssleditor_infoshared' => 'Currently using certificate of parentdomain',
'ssleditor_infoglobal' => 'Currently using global certificate',
'dashboard' => 'Dashboard',
'assigned' => 'Assigned',
'available' => 'Available',
'news' => 'News',
'newsfeed_disabled' => 'The newsfeed is disabled. Click the edit icon to go to the settings.',
'ftpdesc' => 'FTP description',
'letsencrypt' => 'Using Let\'s encrypt',
'set' => 'Apply',
'shell' => 'Shell',
'sshkeydesc' => 'SSH-key description',
'ftpuser' => 'FTP user',
'sshpubkey' => 'SSH public key',
'sshpubkeyph' => "Starts with 'ssh-ed25519', 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'sk-ecdsa-sha2-nistp256@openssh.com', or 'sk-ssh-ed25519@openssh.com'",
'sshfingerprint' => 'Fingerprint',
'exportpath' => [
'title' => 'Destination path for the exported data',
'description' => 'This is the path where the export-archive will be stored. If web-data is being included, all files from the homedir are stored excluding the folder specified here.',
],
'export_pgp_public_key' => [
'title' => 'Public PGP key for encryption',
'description' => 'This is the public PGP key which will be used to encrypt the export. If you leave this field empty, the export will not be encrypted.',
],
'pgp_public_key' => 'Public PGP key',
'none_value' => 'None',
'viewlogs' => 'View logfiles',
'not_configured' => 'System not configured yet. Click here to go to configurations.',
'start_setup' => 'Start setup',
'ihave_configured' => 'I have configured the services',
'system_is_configured' => 'System is already set as configured',
'settings_before_configuration' => 'Please be sure you adjusted the settings prior to configuring the services here',
'image_field_delete' => 'Delete the existing current image',
'usage_statistics' => 'Resource usage',
'security_question' => 'Security question',
'listing_empty' => 'No entries found',
'unspecified' => 'unspecified',
'settingsmode' => 'Mode',
'settingsmodebasic' => 'Basic',
'settingsmodeadvanced' => 'Advanced',
'settingsmodetoggle' => 'Click to toggle mode',
'modalclose' => 'Close',
'managetablecolumnsmodal' => [
'title' => 'Manage table columns',
'description' => 'Here you can customize the visible columns',
],
'mandatoryfield' => 'Field is mandatory',
'select_all' => 'Select all',
'unselect_all' => 'Unselect all',
'searchtablecolumnsmodal' => [
'title' => 'Search in fields',
'description' => 'Select the field you want to search in'
],
'upload_import' => 'Upload and import',
'profile' => 'My profile',
'use_checkbox_for_unlimited' => 'The value "0" deactivates this resource. The checkbox on the right allows "unlimited" usage.',
'use_checkbox_to_disable' => 'To disable, activate the checkbox on the right of the input field',
'distro_mismatch' => 'It seems that you have upgraded to a new distribution. Please remember to reconfigure services accordingly.',
'set_new_distro' => 'Set distribution',
'dismiss' => 'Dismiss',
'confirmaction' => 'Confirm action',
'confirmactiondesc' => 'Please confirm this action by entering your current account password',
'authenticationfailed' => 'Authentication failed',
'noauthentication' => 'Missing authentication',
],
'phpfpm' => [
'vhost_httpuser' => 'Local user to use for PHP-FPM (froxlor vHost)',
'vhost_httpgroup' => 'Local group to use for PHP-FPM (froxlor vHost)',
'ownvhost' => [
'title' => 'Enable PHP-FPM for the froxlor vHost',
'description' => 'If enabled, froxlor will also be running under a local user',
],
'use_mod_proxy' => [
'title' => 'Use mod_proxy / mod_proxy_fcgi',
'description' => 'Must be enabled when using Debian 9.x (Stretch) or newer. Activate to use php-fpm via mod_proxy_fcgi. Requires at least apache-2.4.9',
],
'ini_flags' => 'Enter possible php_flags for php.ini. One entry per line',
'ini_values' => 'Enter possible php_values for php.ini. One entry per line',
'ini_admin_flags' => 'Enter possible php_admin_flags for php.ini. One entry per line',
'ini_admin_values' => 'Enter possible php_admin_values for php.ini. One entry per line',
],
'privacy' => 'Privacy policy',
'pwdreminder' => [
'success' => 'Password reset successfully requested. Please follow the instructions in the email you received.',
'notallowed' => 'Unknown user or password reset is disabled',
'changed' => 'Your password has been updated successfully. You can now login with your new password.',
'wrongcode' => 'Sorry, your activation-code does not exist or has already expired.',
'choosenew' => 'Set new password',
],
'question' => [
'question' => 'Security question',
'admin_customer_reallydelete' => 'Do you really want to delete the customer %s? This cannot be undone!',
'admin_domain_reallydelete' => 'Do you really want to delete the domain %s? NOTE: All subdomains, ftp-accounts and email-addresses/accounts connected to this domain will be removed!',
'admin_domain_reallydisablesecuritysetting' => 'Do you really want to disable this security setting OpenBasedir?',
'admin_admin_reallydelete' => 'Do you really want to delete the admin %s? Every customer and domain will be reassigned to your account.',
'admin_template_reallydelete' => 'Do you really want to delete the template \'%s\'?',
'domains_reallydelete' => 'Do you really want to delete the domain %s?',
'email_reallydelete' => 'Do you really want to delete the email-address %s?',
'email_reallydelete_account' => 'Do you really want to delete the email-account of %s?',
'email_reallydelete_forwarder' => 'Do you really want to delete the forwarder %s?',
'email_reallydelete_sender' => 'Do you really want to delete the allowed sender %s?',
'extras_reallydelete' => 'Do you really want to delete the directory protection for %s?',
'extras_reallydelete_pathoptions' => 'Do you really want to delete the path options for %s?',
'extras_reallydelete_export' => 'Do you really want to abort the planned export job?',
'ftp_reallydelete' => 'Do you really want to delete the FTP-account %s?',
'sshkey_reallydelete' => 'Do you really want to delete the ssh-key %s?',
'mysql_reallydelete' => 'Do you really want to delete the database %s? This cannot be undone!',
'admin_configs_reallyrebuild' => 'Do you really want to rebuild all config files?',
'admin_customer_alsoremovefiles' => 'Remove user files too?',
'admin_customer_alsoremovemail' => 'Completely remove email data from filesystem?',
'admin_customer_alsoremoveftphomedir' => 'Also remove FTP-user homedir?',
'admin_ip_reallydelete' => 'Do you really want to delete the IP address %s?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Are you sure, you want the document root for this domain, not being within the customer root of the customer?',
'admin_counters_reallyupdate' => 'Do you really want to recalculate resource usage?',
'admin_cleartextmailpws_reallywipe' => 'Do you really want to wipe all unencrypted mail account passwords from the table mail_users? This cannot be reverted! The setting to store email passwords unencrypted will also be set to OFF',
'logger_reallytruncate' => 'Do you really want to truncate the table "%s"?',
'admin_quotas_reallywipe' => 'Do you really want to wipe all quotas on table mail_users? This cannot be reverted!',
'admin_quotas_reallyenforce' => 'Do you really want to enforce the default quota to all Users? This cannot be reverted!',
'phpsetting_reallydelete' => 'Do you really want to delete these settings? All domains which use these settings currently will be changed to the default config.',
'fpmsetting_reallydelete' => 'Do you really want to delete these php-fpm settings? All php configurations which use these settings currently will be changed to the default config.',
'customer_reallyunlock' => 'Do you really want to unlock customer %s?',
'admin_integritycheck_reallyfix' => 'Do you really want to try fixing all database integrity problems automatically?',
'plan_reallydelete' => 'Do you really want to delete the hosting plan %s?',
'apikey_reallydelete' => 'Do you really want to delete this api-key?',
'apikey_reallyadd' => 'Do you really want to create a new api-key?',
'dnsentry_reallydelete' => 'Do you really want to delete this zone entry?',
'certificate_reallydelete' => 'Do you really want to delete this certificate?',
'cache_reallydelete' => 'Do you really want to clear the cache?',
'please_enter_otp' => 'Please enter 2FA code',
'admin_mysqlserver_reallydelete' => 'Do you really want to delete this MySQL-server?',
],
'redirect_desc' => [
'rc_default' => 'default',
'rc_movedperm' => 'moved permanently',
'rc_found' => 'found',
'rc_seeother' => 'see other',
'rc_tempred' => 'temporary redirect',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Session Timeout',
'description' => 'How long does a user have to be inactive before a session gets invalid (seconds)?',
],
'accountprefix' => [
'title' => 'Customer prefix',
'description' => 'Which prefix should customer accounts have?',
],
'mysqlprefix' => [
'title' => 'SQL Prefix',
'description' => 'Which prefix should MySQL accounts have?Use "RANDOM" as value to get a 3-digit random prefixUse "DBNAME" as the value, a database name field is used together with the customer name as a prefix.',
],
'ftpprefix' => [
'title' => 'FTP Prefix',
'description' => 'Which prefix should ftp accounts have? If you change this you also have to change the Quota SQL Query in your FTP Server config file in case you use it! ',
],
'documentroot_prefix' => [
'title' => 'Home directory',
'description' => 'Where should all home directories be stored?',
],
'logfiles_directory' => [
'title' => 'Logfiles directory',
'description' => 'Where should all log files be stored?',
],
'logfiles_script' => [
'title' => 'Custom script to pipe log-files to',
'description' => 'You can specify a script here and use the placeholders {LOGFILE}, {DOMAIN} and {CUSTOMER} if needed. In case you want to use it you will need to activate the Pipe webserver logfiles option too. No prefixed pipe-character is needed.',
],
'logfiles_format' => [
'title' => 'Access-log format',
'description' => 'Enter a custom log-format here according to your webservers specifications, leave empty for default. Depending on your format the string must be quoted. If used with nginx, it will look like log_format frx_custom {CONFIGURED_VALUE}. If used with Apache, it will look like LogFormat {CONFIGURED_VALUE} frx_custom. Attention: The code won\'t be checked for any errors. If it contains errors, webserver might not start again!',
],
'logfiles_type' => [
'title' => 'Access-log type',
'description' => 'Choose between combined or vhost_combined here.',
],
'logfiles_piped' => [
'title' => 'Pipe webserver logfiles to specified script (see above)',
'description' => 'When using a custom script for the logfiles you need to activate this in order for it to be executed',
],
'ipaddress' => [
'title' => 'IP-address',
'description' => 'What\'s the main IP-address of this server?',
],
'hostname' => [
'title' => 'Hostname',
'description' => 'What\'s the Hostname of this server?',
],
'apachereload_command' => [
'title' => 'Webserver reload command',
'description' => 'What\'s the webserver command to reload configfiles?',
],
'bindenable' => [
'title' => 'Enable Nameserver',
'description' => 'Here the Nameserver can be enabled and disabled globally.',
],
'bindconf_directory' => [
'title' => 'Dns server config directory',
'description' => 'Where should dns-server config files be saved?',
],
'bindreload_command' => [
'title' => 'DNS server reload command',
'description' => 'What\'s the command to reload the dns server daemon?',
],
'vmail_uid' => [
'title' => 'Mails-UID',
'description' => 'Which UserID should mails have?',
],
'vmail_gid' => [
'title' => 'Mails-GID',
'description' => 'Which GroupID should mails have?',
],
'vmail_homedir' => [
'title' => 'Mails-homedir',
'description' => 'Where should all mails be stored?',
],
'adminmail' => [
'title' => 'Sender',
'description' => 'What\'s the sender address for emails sent from the Panel?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin URL',
'description' => 'What\'s the URL to phpMyAdmin? (has to start with http(s)://)',
],
'webmail_url' => [
'title' => 'Webmail URL',
'description' => 'What\'s the URL to webmail? (has to start with http(s)://)',
],
'webftp_url' => [
'title' => 'WebFTP URL',
'description' => 'What\'s the URL to WebFTP? (has to start with http(s)://)',
],
'language' => [
'description' => 'What\'s your standard server language?',
],
'maxloginattempts' => [
'title' => 'Max Login Attempts',
'description' => 'Maximum login attempts after which the account gets disabled.',
],
'deactivatetime' => [
'title' => 'Deactivation Time',
'description' => 'Time (sec.) an account gets disabled after too many login tries.',
],
'pathedit' => [
'title' => 'Type of path input',
'description' => 'Should a path be selected by a dropdown menu or by an input field?',
],
'nameservers' => [
'title' => 'Nameservers',
'description' => 'A comma separated list containing the hostnames of all nameservers. The first one will be the primary one.',
],
'mxservers' => [
'title' => 'MX servers',
'description' => 'A comma separated list containing a pair of a number and a hostname separated by whitespace (e.g. \'10 mx.example.com\') containing the mx servers.',
],
'paging' => [
'title' => 'Entries per page',
'description' => 'How many entries shall be shown on one page? (0 = disable paging)',
],
'defaultip' => [
'title' => 'Default IP/Port',
'description' => 'Select all IP-addresses you want to use as default for new domains',
],
'defaultsslip' => [
'title' => 'Default SSL IP/Port',
'description' => 'Select all ssl-enabled IP-addresses you want to use as default for new domains',
],
'phpappendopenbasedir' => [
'title' => 'Paths to append to OpenBasedir',
'description' => 'These paths (separated by colons) will be added to the OpenBasedir-statement in every vHost-container.',
],
'natsorting' => [
'title' => 'Use natural human sorting in list view',
'description' => 'Sorts lists as web1 -> web2 -> web11 instead of web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Docroot for deactivated users',
'description' => 'When a user is deactivated this path is used as his docroot. Leave empty for not creating a vHost at all.',
],
'mailpwcleartext' => [
'title' => 'Also save passwords of mail accounts unencrypted in database',
'description' => 'If this is set to yes, all passwords will also be saved unencrypted (clear text, plain readable for everyone with database access) in the mail_users-table. Only activate this if you intend to use SASL!',
],
'ftpdomain' => [
'title' => 'FTP accounts @domain',
'description' => 'Customers can create FTP accounts user@customerdomain?',
],
'mod_fcgid' => [
'title' => 'Enable FCGID',
'description' => 'Use this to run PHP with the corresponding user account.
This needs a special webserver configuration for Apache, see FCGID - handbook',
'configdir' => [
'title' => 'Configuration directory',
'description' => 'Where should all fcgid-configuration files be stored? If you don\'t use a self compiled suexec binary, which is the normal situation, this path must be under /var/www/
NOTE: This folder\'s content gets deleted regularly so avoid storing data in there manually.
',
],
'tmpdir' => [
'title' => 'Temp directory',
'description' => 'Where should the temp directories be stored',
],
'starter' => [
'title' => 'Processes per domain',
'description' => 'How many processes should be started/allowed per domain? The value 0 is recommended cause PHP will then manage the amount of processes itself very efficiently.',
],
'wrapper' => [
'title' => 'Wrapper in Vhosts',
'description' => 'How should the wrapper be included in the Vhosts',
],
'peardir' => [
'title' => 'Global PEAR directories',
'description' => 'Which global PEAR directories should be replaced in every php.ini config? Different directories must be separated by a colon.',
],
'maxrequests' => [
'title' => 'Maximum Requests per domain',
'description' => 'How many requests should be allowed per domain?',
],
'defaultini' => 'Default PHP configuration for new domains',
'defaultini_ownvhost' => 'Default PHP configuration for froxlor-vHost',
'idle_timeout' => [
'title' => 'Idle Timeout',
'description' => 'Timeout setting for Mod FastCGI.',
],
],
'sendalternativemail' => [
'title' => 'Use alternative email-address',
'description' => 'Send the password-email to a different address during email-account-creation',
],
'apacheconf_vhost' => [
'title' => 'Webserver vHost configuration file/dirname',
'description' => 'Where should the vHost configuration be stored? You could either specify a file (all vHosts in one file) or directory (each vHost in his own file) here.',
],
'apacheconf_diroptions' => [
'title' => 'Webserver diroptions configuration file/dirname',
'description' => 'Where should the diroptions configuration be stored? You could either specify a file (all diroptions in one file) or directory (each diroption in his own file) here.',
],
'apacheconf_htpasswddir' => [
'title' => 'Webserver htpasswd dirname',
'description' => 'Where should the htpasswd files for directory protection be stored?',
],
'mysql_access_host' => [
'title' => 'MySQL-Access-Hosts',
'description' => 'A comma separated list of hosts from which users should be allowed to connect to the MySQL-Server. To allow a subnet the netmask or cidr syntax is valid.',
],
'webalizer_quiet' => [
'title' => 'Webalizer output',
'description' => 'Verbosity of the webalizer-program',
],
'logger' => [
'enable' => 'Logging enabled/disabled',
'severity' => 'Logging level',
'types' => [
'title' => 'Log-type(s)',
'description' => 'Specify logtypes. To select multiple types, hold down CTRL while selecting. Available logtypes are: syslog, file, mysql',
],
'logfile' => [
'title' => 'Filename for log',
'description' => 'Only used if log-type includes "file". This file will be created in froxlor/logs/. This folder is protected against public access.',
],
'logcron' => 'Log cronjobs',
'logcronoption' => [
'never' => 'Never',
'once' => 'Once',
'always' => 'Always',
],
],
'ssl' => [
'use_ssl' => [
'title' => 'Enable SSL usage',
'description' => 'Check this if you want to use SSL for your webserver',
],
'ssl_cert_file' => [
'title' => 'Path to the SSL certificate',
'description' => 'Specify the path including the filename of the .crt or .pem file (main certificate)',
],
'openssl_cnf' => 'Defaults for creating the Cert file',
'ssl_key_file' => [
'title' => 'Path to the SSL Keyfile',
'description' => 'Specify the path including the filename for the private-key file (.key mostly)',
],
'ssl_ca_file' => [
'title' => 'Path to the SSL CA certificate (optional)',
'description' => 'Client authentication, set this only if you know what it is.',
],
'ssl_cipher_list' => [
'title' => 'Configure the allowed SSL ciphers',
'description' => 'This is a list of ciphers that you want (or don\'t want) to use when talking SSL. For a list of ciphers and how to include/exclude them, see sections "CIPHER LIST FORMAT" and "CIPHER STRINGS" on the man-page for ciphers.
',
],
'apache24_ocsp_cache_path' => [
'title' => 'Apache 2.4: path to the OCSP stapling cache',
'description' => 'Configures the cache used to store OCSP responses which get included in TLS handshakes.',
],
'ssl_protocols' => [
'title' => 'Configure the TLS protocol version',
'description' => 'This is a list of ssl protocols that you want (or don\'t want) to use when using SSL. Notice: Some older browsers may not support the newest protocol versions.
Default value is:
TLSv1.2
',
],
'tlsv13_cipher_list' => [
'title' => 'Configure explicit TLSv1.3 ciphers if used',
'description' => 'This is a list of ciphers that you want (or don\'t want) to use when talking TLSv1.3. For a list of ciphers and how to include/exclude them, see the docs for TLSv1.3.
Default value is empty',
],
],
'default_vhostconf' => [
'title' => 'Default vHost-settings',
'description' => 'The content of this field will be included into this ip/port vHost container directly. You can use the following variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (if applicable) Attention: The code won\'t be checked for any errors. If it contains errors, webserver might not start again!',
],
'apache_globaldiropt' => [
'title' => 'Directory options for customer-prefix',
'description' => 'The content of this field will be included into the 05_froxlor_dirfix_nofcgid.conf apache config. If empty, the default value is used:
apache >=2.4 Require all granted AllowOverride All
apache <=2.2 Order allow,deny allow from all',
],
'default_vhostconf_domain' => [
'description' => 'The content of this field will be included into the domain vHost container directly. You can use the following variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (if applicable) Attention: The code won\'t be checked for any errors. If it contains errors, webserver might not start again!',
],
'decimal_places' => 'Number of decimal places in traffic/webspace output',
'selfdns' => [
'title' => 'Customer domain dns settings',
],
'selfdnscustomer' => [
'title' => 'Allow customers to edit domain dns settings',
],
'unix_names' => [
'title' => 'Use UNIX compatible usernames',
'description' => 'Allows you to use - and _ in usernames if No',
],
'allow_password_reset' => [
'title' => 'Allow password reset by customers',
'description' => 'Customers can reset their password and an activation link will be sent to their e-mail address',
],
'allow_password_reset_admin' => [
'title' => 'Allow password reset by admins',
'description' => 'Admins/reseller can reset their password and an activation link will be sent to their e-mail address',
],
'mail_quota' => [
'title' => 'Mailbox-quota',
'description' => 'The default quota for a new created mailboxes (MegaByte).',
],
'mail_quota_enabled' => [
'title' => 'Use mailbox-quota for customers',
'description' => 'Activate to use quotas on mailboxes. Default is No since this requires a special setup.',
'removelink' => 'Click here to wipe all quotas for mail accounts.',
'enforcelink' => 'Click here to enforce default quota to all User mail accounts.',
],
'mail_enable_allow_sender' => [
'title' => 'Allow "allowed sender" to be used by customers',
'description' => 'If enabled, customers can specify "allowed sender" for email accounts to send with. Default: off',
],
'mail_allow_external_domains' => [
'title' => 'Allow external domains for "allowed sender"',
'description' => 'If enabled, customer can enter any domain (except not owned domains on this system) as "allowed sender" for email accounts. Default: off',
],
'session_allow_multiple_login' => [
'title' => 'Allow multiple login',
'description' => 'If activated a user could login multiple times.',
],
'panel_allow_domain_change_admin' => [
'title' => 'Allow moving domains between admins',
'description' => 'If activated you can change the admin of a domain at domainsettings. Attention: If a customer isn\'t assigned to the same admin as the domain, the admin can see every other domain of that customer!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Allow moving domains between customers',
'description' => 'If activated you can change the customer of a domain at domainsettings. Attention: froxlor changes the documentroot to the new customer\'s default homedir (+ domain-folder if activated)',
],
'specialsettingsforsubdomains' => [
'description' => 'If yes these custom vHost-settings will be added to all subdomains; if no subdomain-specialsettings are being removed.',
],
'panel_password_min_length' => [
'title' => 'Minimum password length',
'description' => 'Here you can set a minimum length for passwords. \'0\' means: no minimum length required.',
],
'system_store_index_file_subs' => [
'title' => 'Store default index file also to new subfolders',
'description' => 'If enabled, the default index-file is being stored to every subdomain-path newly created (not if the folder already exists!)',
],
'adminmail_return' => [
'title' => 'Reply-To address',
'description' => 'Define an e-mail address as reply-to-address for mails sent by the panel.',
],
'adminmail_defname' => 'Panel e-mail sender name',
'stdsubdomainhost' => [
'title' => 'Customer standard subdomain',
'description' => 'What hostname should be used to create standard subdomains for customer. If empty, the system-hostname is used.',
],
'awstats_path' => 'Path to AWStats \'awstats_buildstaticpages.pl\'',
'awstats_conf' => 'AWStats configuration path',
'defaultttl' => 'Domain TTL for bind in seconds (default \'604800\' = 1 week)',
'defaultwebsrverrhandler_enabled' => 'Enable default errordocuments for all customers',
'defaultwebsrverrhandler_err401' => [
'title' => 'File/URL for error 401',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'File/URL for error 403',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'File/URL for error 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'File/URL for error 500',
'description' => '',
],
'ftpserver' => [
'desc' => 'If pureftpd is selected the .ftpquota files for user quotas are created and updated daily',
],
'customredirect_enabled' => [
'title' => 'Allow customer redirects',
'description' => 'Allow customers to choose the http-status code for redirects which will be used',
],
'customredirect_default' => [
'title' => 'Default redirect',
'description' => 'Set the default redirect-code which should be used if the customer does not set it himself',
],
'mail_also_with_mxservers' => 'Create mail-, imap-, pop3- and smtp-"A record" also with MX-Servers set',
'froxlordirectlyviahostname' => 'Access froxlor directly via the hostname',
'panel_password_regex' => [
'title' => 'Regular expression for passwords',
'description' => 'Here you can set a regular expression for passwords-complexity. Empty = no specific requirement',
],
'mod_fcgid_ownvhost' => [
'title' => 'Enable FCGID for the froxlor vHost',
'description' => 'If enabled, froxlor will also be running under a local user',
],
'perl' => [
'suexecworkaround' => [
'title' => 'Enable SuExec workaround',
'description' => 'Enable only if customer docroots are not within the apache suexec path. If enabled, froxlor will generate a symlink from the customers perl-enabled directory + /cgi-bin/ to the given path. Note that perl will then only work in the folders subdirectory /cgi-bin/ and not in the folder itself (as it does without this fix!)',
],
'suexeccgipath' => [
'title' => 'Path for customer perl-enabled directory symlinks',
'description' => 'You only need to set this if the SuExec-workaround is enabled. ATTENTION: Be sure this path is within the suexec path or else this workaround is useless',
],
],
'awstats_awstatspath' => 'Path to AWStats \'awstats.pl\'',
'awstats_icons' => [
'title' => 'Path to AWstats icons folder',
'description' => 'e.g. /usr/share/awstats/htdocs/icon/',
],
'login_domain_login' => 'Allow login with domains',
'perl_server' => [
'title' => 'Perl server socket location',
'description' => 'A simple guide can be found at: nginx.com',
],
'nginx_php_backend' => [
'title' => 'Nginx PHP backend',
'description' => 'this is where the PHP process is listening for requests from nginx, can be a unix socket of ip:port combination *NOT used with php-fpm',
],
'phpreload_command' => [
'title' => 'PHP reload command',
'description' => 'this is used to reload the PHP backend if any is used Default: blank *NOT used with php-fpm',
],
'phpfpm' => [
'title' => 'Enable php-fpm',
'description' => 'This needs a special webserver configuration see PHP-FPM handbook',
],
'phpfpm_settings' => [
'configdir' => 'Configuration directory of php-fpm',
'aliasconfigdir' => 'Configuration Alias-directory of php-fpm',
'reload' => 'php-fpm restart command',
'pm' => 'Process manager control (pm)',
'max_children' => [
'title' => 'The number of child processes',
'description' => 'The number of child processes to be created when pm is set to \'static\' and the maximum number of child processes to be created when pm is set to \'dynamic/ondemand\' Equivalent to the PHP_FCGI_CHILDREN',
],
'start_servers' => [
'title' => 'The number of child processes created on startup',
'description' => 'Note: Used only when pm is set to \'dynamic\'',
],
'min_spare_servers' => [
'title' => 'The desired minimum number of idle server processes',
'description' => 'Note: Used only when pm is set to \'dynamic\' Note: Mandatory when pm is set to \'dynamic\'',
],
'max_spare_servers' => [
'title' => 'The desired maximum number of idle server processes',
'description' => 'Note: Used only when pm is set to \'dynamic\' Note: Mandatory when pm is set to \'dynamic\'',
],
'max_requests' => [
'title' => 'Requests per child before respawning',
'description' => 'For endless request processing specify \'0\'. Equivalent to PHP_FCGI_MAX_REQUESTS.',
],
'idle_timeout' => [
'title' => 'Idle Timeout',
'description' => 'Timeout setting for PHP FPM FastCGI.',
],
'ipcdir' => [
'title' => 'FastCGI IPC directory',
'description' => 'The directory where the php-fpm sockets will be stored by the webserver. This directory has to be readable for the webserver',
],
'limit_extensions' => [
'title' => 'Allowed extensions',
'description' => 'Limits the extensions of the main script FPM will allow to parse. This can prevent configuration mistakes on the web server side. You should only limit FPM to .php extensions to prevent malicious users to use other extensions to execute php code. Default value: .php',
],
'envpath' => 'Paths to add to the PATH environment. Leave empty for no PATH environment variable',
'override_fpmconfig' => 'Override FPM-daemon settings (pm, max_children, etc.)',
'override_fpmconfig_addinfo' => ' Only used if "Override FPM-daemon settings" is set to "Yes"',
'restart_note' => 'Attention: The config won\'t be checked for any errors. If it contains errors, PHP-FPM might not start again!',
'custom_config' => [
'title' => 'Custom configuration',
'description' => 'Add custom configuration to each PHP-FPM version instance, for example pm.status_path = /status for monitoring. Variables below can be used here. Attention: The config won\'t be checked for any errors. If it contains errors, PHP-FPM might not start again!',
],
'allow_all_customers' => [
'title' => 'Assign this configuration to all currently existing customers',
'description' => 'Set this to "true" if you want to assign this configuration to all currently existing customers so it can be used by them. This setting is not permanent but can be run multiple times.',
],
],
'report' => [
'report' => 'Enable sending of reports about web- and traffic-usage',
'webmax' => [
'title' => 'Warning-level in percent for webspace',
'description' => 'Valid values are 0 up to 150. Setting this value to 0 disables this report.',
],
'trafficmax' => [
'title' => 'Warning-level in percent for traffic',
'description' => 'Valid values are 0 up to 150. Setting this value to 0 disables this report.',
],
'report_web_bccadmin' => [
'title' => 'BCC email for web-usage notification to admin',
'description' => 'If enabled, the warning about disk-space usage sent to the customer is also being sent to the corresponding admin/reseller (BCC)'
],
],
'dropdown' => 'Dropdown',
'manual' => 'Manual',
'default_theme' => 'Default theme',
'validate_domain' => 'Validate domain names',
'diskquota_enabled' => 'Quota activated?',
'diskquota_repquota_path' => [
'description' => 'Path to repquota',
],
'diskquota_quotatool_path' => [
'description' => 'Path to quotatool',
],
'diskquota_customer_partition' => [
'description' => 'Partition, on which the customer files are stored',
],
'vmail_maildirname' => [
'title' => 'Maildir name',
'description' => 'Maildir directory into user\'s account. Normally \'Maildir\', in some implementations \'.maildir\', and directly into user\'s directory if left blank.',
],
'catchall_enabled' => [
'title' => 'Use Catchall',
'description' => 'Do you want to provide your customers the catchall-feature?',
],
'apache_24' => [
'title' => 'Use modifications for Apache 2.4',
'description' => 'ATTENTION: use only if you actually have apache version 2.4 or higher installed otherwise your webserver will not be able to start',
],
'nginx_fastcgiparams' => [
'title' => 'Path to fastcgi_params file',
'description' => 'Specify the path to nginx\'s fastcgi_params file including filename',
],
'documentroot_use_default_value' => [
'title' => 'Use domain name as default value for DocumentRoot path',
'description' => 'If enabled and DocumentRoot path is empty, default value will be the (sub)domain name.
Examples: /var/customers/webs/customer_name/example.com/ /var/customers/webs/customer_name/subdomain.example.com/',
],
'panel_phpconfigs_hidesubdomains' => [
'title' => 'Hide subdomains in PHP-configuration overview',
'description' => 'If activated the subdomains of customers will not be listed in the php-configurations overview, only the number of subdomains is shown.
Note: This is only visible if you have enabled FCGID or PHP-FPM',
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Hide standard-subdomains in PHP-configuration overview',
'description' => 'If activated the standard-subdomains for customers will not be displayed in the php-configurations overview
Note: This is only visible if you have enabled FCGID or PHP-FPM',
],
'passwordcryptfunc' => [
'title' => 'Choose which password-crypt method is to be used',
'description' => 'Choose which password-crypt method is to be used. If you change this setting, only new passwords will be encrypted with the new method. Existing passwords will not be changed.',
],
'systemdefault' => 'System default',
'panel_allow_theme_change_admin' => 'Allow admins to change the theme',
'panel_allow_theme_change_customer' => 'Allow customers to change the theme',
'axfrservers' => [
'title' => 'AXFR servers',
'description' => 'A comma separated list of IP addresses allowed to transfer (AXFR) dns zones.',
],
'powerdns_mode' => [
'title' => 'PowerDNS Operation Mode',
'description' => 'Select the PoweDNS mode: Native for no replication (Default) / Master if DNS replication is needed.',
],
'customerssl_directory' => [
'title' => 'Webserver customer-ssl certificates-directory',
'description' => 'Where should customer-specified ssl-certificates be created?
NOTE: This folder\'s content gets deleted regularly so avoid storing data in there manually.
',
],
'allow_error_report_admin' => [
'title' => 'Allow administrators/resellers to report database-errors to froxlor',
'description' => 'Please note: Never send any personal (customer-)data to us!',
],
'allow_error_report_customer' => [
'title' => 'Allow customers to report database-errors to froxlor',
'description' => 'Please note: Never send any personal (customer-)data to us!',
],
'mailtraffic_enabled' => [
'title' => 'Analyse mail traffic',
'description' => 'Enable analysing of mailserver logs to calculate the traffic',
],
'mdaserver' => [
'title' => 'MDA type',
'description' => 'Type of the Mail Delivery Server',
],
'mdalog' => [
'title' => 'MDA log',
'description' => 'Logfile of the Mail Delivery Server',
],
'mtaserver' => [
'title' => 'MTA type',
'description' => 'Type of the Mail Transfer Agent',
],
'mtalog' => [
'title' => 'MTA log',
'description' => 'Logfile of the Mail Transfer Agent',
],
'system_cronconfig' => [
'title' => 'Cron configuration file',
'description' => 'Path to the cron-service configuration-file. This file will be updated regularly and automatically by froxlor. Note: Please be sure to use the same filename as for the main froxlor cronjob (default: /etc/cron.d/froxlor)!
If you are using FreeBSD, please specify /etc/crontab here!',
],
'system_crondreload' => [
'title' => 'Cron-daemon reload command',
'description' => 'Specify the command to execute in order to reload your systems cron-daemon',
],
'system_croncmdline' => [
'title' => 'Cron execution command (php-binary)',
'description' => 'Command to execute our cronjobs. Change this only if you know what you are doing (default: "/usr/bin/nice -n 5 /usr/bin/php -q")!',
],
'system_cron_allowautoupdate' => [
'title' => 'Allow automatic database updates',
'description' => '
ATTENTION:
This settings allows the cronjob to bypass the version-check of froxlors files and database and runs the database-updates in case a version-mismatch occurs.
Auto-update will always set default values for new settings or changes. This might not always suite your system. Please think twice before activating this option
',
],
'dns_createhostnameentry' => 'Create bind-zone/config for system hostname',
'panel_password_alpha_lower' => [
'title' => 'Lowercase character',
'description' => 'Password must contain at least one lowercase letter (a-z).',
],
'panel_password_alpha_upper' => [
'title' => 'Uppercase character',
'description' => 'Password must contain at least one uppercase letter (A-Z).',
],
'panel_password_numeric' => [
'title' => 'Numbers',
'description' => 'Password must contain at least one number (0-9).',
],
'panel_password_special_char_required' => [
'title' => 'Special character',
'description' => 'Password must contain at least one of the characters defined below.',
],
'panel_password_special_char' => [
'title' => 'Special characters list',
'description' => 'One of these characters is required if the above option is set.',
],
'apache_itksupport' => [
'title' => 'Use modifications for Apache ITK-MPM',
'description' => 'ATTENTION: use only if you actually have apache itk-mpm enabled otherwise your webserver will not be able to start',
],
'letsencryptca' => [
'title' => 'ACME environment',
'description' => 'Environment to be used for Let\'s Encrypt / ZeroSSL certificates.',
],
'letsencryptchallengepath' => [
'title' => 'Path for Let\'s Encrypt challenges',
'description' => 'Directory where the Let\'s Encrypt challenges should be offered from via a global alias.',
],
'letsencryptkeysize' => [
'title' => 'Key size for new Let\'s Encrypt certificates',
'description' => 'Size of the key in Bits for new Let\'s Encrypt certificates.',
],
'letsencryptreuseold' => [
'title' => 'Re-use Let\'s Encrypt key',
'description' => 'If activated, the same key will be used for every renew, otherwise a new key will be generated every time.',
],
'leenabled' => [
'title' => 'Enable Let\'s Encrypt',
'description' => 'If activated, customers are able to let froxlor automatically generate and renew Let\'s Encrypt ssl-certificates for domains with a ssl IP/port.
Please remember that you need to go through the webserver-configuration when enabled because this feature needs a special configuration.',
],
'caa_entry' => [
'title' => 'Generate CAA DNS records',
'description' => 'Automatically generates CAA records for SSL-enabled domains that are using Let\'s Encrypt',
],
'caa_entry_custom' => [
'title' => 'Additional CAA DNS records',
'description' => 'DNS Certification Authority Authorization (CAA) is an Internet security policy mechanism which allows domain name holders to indicate to certificate authorities whether they are authorized to issue digital certificates for a particular domain name. It does this by means of a new "CAA" Domain Name System (DNS) resource record.
The content of this field will be included into the DNS zone directly (each line results in a CAA record). If Let\'s Encrypt is enabled for this domain, this entry will always be added automatically and does not need to be added manually: 0 issue "letsencrypt.org" (If domain is a wildcard domain, issuewild will be used instead). To enable Incident Reporting, you can add an iodef record. An example for sending such report to me@example.com would be: 0 iodef "mailto:me@example.com"
Attention: The code won\'t be checked for any errors. If it contains errors, your CAA records might not work!',
],
'exportenabled' => [
'title' => 'Enable data export for customers',
'description' => 'If activated, the customer will be able to schedule data export jobs (cron-export) which generates an archive within his docroot (subdirectory chosable by customer)',
],
'dnseditorenable' => [
'title' => 'Enable DNS editor',
'description' => 'Allows admins and customer to manage domain dns entries',
],
'dns_server' => [
'title' => 'DNS server daemon',
'description' => 'Remember that daemons have to be configured using froxlors configuration templates',
],
'panel_customer_hide_options' => [
'title' => 'Hide menu items and traffic charts in customer panel',
'description' => 'Select items to hide in customer panel. To select multiple options, hold down CTRL while selecting.',
],
'allow_allow_customer_shell' => [
'title' => 'Allow customers to enable shell access for ftp-users',
'description' => 'Please note: Shell access allows the user to execute various binaries on your system. Use with extrem caution. Please only activate this if you REALLY know what you are doing!!!',
],
'available_shells' => [
'title' => 'List of available shells',
'description' => 'Comma separated list of shells that are available for the customer to chose from for their ftp-users.
Note that the default shell /bin/false will always be a choice (if enabled), even if this setting is empty. It is the default value for ftp-users in any case.',
],
'le_froxlor_enabled' => [
'title' => 'Enable Let\'s Encrypt for the froxlor vhost',
'description' => 'If activated, the froxlor vhost will automatically be secured using a Let\'s Encrypt certificate.',
],
'le_froxlor_redirect' => [
'title' => 'Enable SSL-redirect for the froxlor vhost',
'description' => 'If activated, all http requests to your froxlor will be redirected to the corresponding SSL site.',
],
'option_unavailable_websrv' => ' Available only for: %s',
'option_unavailable' => ' Option not available due to other settings.',
'letsencryptacmeconf' => [
'title' => 'Path to the acme.conf snippet',
'description' => 'File name of the config snippet which allows the web server to serve the acme challenge.',
],
'mail_use_smtp' => 'Set mailer to use SMTP',
'mail_smtp_host' => 'Specify SMTP server',
'mail_smtp_usetls' => 'Enable TLS encryption',
'mail_smtp_auth' => 'Enable SMTP authentication',
'mail_smtp_port' => 'TCP port to connect to',
'mail_smtp_user' => 'SMTP username',
'mail_smtp_passwd' => 'SMTP password',
'http2_support' => [
'title' => 'HTTP2 Support',
'description' => 'enable HTTP2 support for ssl. ENABLE ONLY IF YOUR WEBSERVER SUPPORTS THIS FEATURE (nginx version 1.9.5+, apache2 version 2.4.17+)',
],
'http3_support' => [
'title' => 'HTTP3 Support',
'description' => 'enable HTTP3 support for ssl. ENABLE ONLY IF YOUR WEBSERVER SUPPORTS THIS FEATURE (nginx version 1.25.0+)',
],
'nssextrausers' => [
'title' => 'Use libnss-extrausers instead of libnss-mysql',
'description' => 'Do not read users from the database but from files. Please only activate if you have already gone through the required configuration steps (system -> libnss-extrausers). For Debian/Ubuntu only (or if you have compiled libnss-extrausers yourself!)',
],
'le_domain_dnscheck' => [
'title' => 'Validate DNS of domains when using Let\'s Encrypt',
'description' => 'If activated, froxlor will validate whether the domain which requests a Let\'s Encrypt certificate resolves to at least one of the system ip addresses.',
],
'le_domain_dnscheck_resolver' => [
'title' => 'Use a external nameserver for DNS validation',
'description' => 'If set, froxlor will use this DNS to validate the DNS of domains when using Let\'s Encrypt. If empty, the system\'s default DNS resolver will be used.',
],
'phpsettingsforsubdomains' => [
'description' => 'If yes the chosen php-config will be updated to all subdomains',
],
'leapiversion' => [
'title' => 'Choose Let\'s Encrypt ACME implementation',
'description' => 'Currently only ACME v2 implementation for Let\'s Encrypt is supported.',
],
'enable_api' => [
'title' => 'Enable external API usage',
'description' => 'In order to use the froxlor API you need to activate this option. For more detailed information see https://docs.froxlor.org/',
],
'api_customer_default' => '"Allow API access" default value for new customers',
'dhparams_file' => [
'title' => 'DHParams file (Diffie–Hellman key exchange)',
'description' => 'If a dhparams.pem file is specified here it will be included in the webserver configuration. Leave empty to disable. Example: /etc/ssl/webserver/dhparams.pem
If the file does not exist, it will be created automatically with the following command: openssl dhparam -out /etc/ssl/webserver/dhparams.pem 4096. It is recommended to create the file prior to specifying it here as the creation takes quite a while and blocks the cronjob.',
],
'errorlog_level' => [
'title' => 'Error log-level',
'description' => 'Specify the error log level. Default is "warn" for apache-users and "error" for nginx-users.',
],
'letsencryptecc' => [
'title' => 'Issue ECC / ECDSA certificate',
'description' => 'If set to a valid key-size the certificate issued will use ECC / ECDSA',
],
'froxloraliases' => [
'title' => 'Domain aliases for froxlor vhost',
'description' => 'Comma separated list of domains to add as server alias to the froxlor vhost',
],
'default_sslvhostconf' => [
'title' => 'Default SSL vHost-settings',
'description' => 'The content of this field will be included into this ip/port vHost container directly. You can use the following variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (if applicable) Attention: The code won\'t be checked for any errors. If it contains errors, webserver might not start again!',
],
'includedefault_sslvhostconf' => 'Include non-SSL vHost-settings in SSL-vHost',
'apply_specialsettings_default' => 'Default value for "Apply specialsettings to all subdomains (*.example.com)" setting when editing a domain',
'apply_phpconfigs_default' => 'Default value for "Apply php-config to all subdomains" setting when editing a domain',
'awstats' => [
'logformat' => [
'title' => 'LogFormat setting',
'description' => 'If you use customized logformat for your webserver, you need change the awstats LogFormat too. Default is 1. For more information check documentation here.',
],
],
'hide_incompatible_settings' => 'Hide incompatible settings',
'soaemail' => 'Mail address to use in SOA records (defaults to sender address from panel settings if empty)',
'imprint_url' => [
'title' => 'URL to legal notes / imprint',
'description' => 'Specify an URL to your legal notes / imprint site. The link will be visible on the login screen and on the footer when logged in.',
],
'terms_url' => [
'title' => 'URL to terms of use',
'description' => 'Specify an URL to your terms of use site. The link will be visible on the login screen and on the footer when logged in.',
],
'privacy_url' => [
'title' => 'URL to privacy policy',
'description' => 'Specify an URL to your privacy policy site / imprint site. The link will be visible on the login screen and on the footer when logged in.',
],
'logo_image_header' => [
'title' => 'Logo Image (Header)',
'description' => 'Upload your own logo image to be shown in the header after login (recommended height 30px)',
],
'logo_image_login' => [
'title' => 'Logo Image (Login)',
'description' => 'Upload your own logo image to be shown during login',
],
'logo_overridetheme' => [
'title' => 'Overwrites logo defined in theme by "Logo Image" (Header and Login, see below)',
'description' => 'This needs to be set to "true" if you intend to use your uploaded logo; alternatively you can still use the theme-based "logo_custom.png" and "logo_custom_login.png" possibility.',
],
'logo_overridecustom' => [
'title' => 'Overwrite custom logo (logo_custom.png and logo_custom_login.png) defined in theme by "Logo Image" (Header and Login, see below)',
'description' => 'Set this to "true" if you want to ignore theme-specific custom logos for header and login and use "Logo Image"',
],
'createstdsubdom_default' => [
'title' => 'Preselected value for "Create standard subdomain" when creating a customer',
'description' => '',
],
'froxlorusergroup' => [
'title' => 'Custom system group for all customer users',
'description' => 'Usage of libnss-extrausers (system-settings) is required for this to take effect. An empty value skips creation or removes existing group.',
],
'acmeshpath' => [
'title' => 'Path to acme.sh',
'description' => 'Set this to where acme.sh is installed to, including the acme.sh script Default is /root/.acme.sh/acme.sh',
],
'update_channel' => [
'title' => 'froxlor update-channel',
'description' => 'Select the update channel of froxlor. Default is "stable"',
],
'uc_stable' => 'stable',
'uc_testing' => 'testing',
'uc_nightly' => 'nightly',
'traffictool' => [
'toolselect' => 'Traffic analyzer',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
'goaccess' => 'goaccess'
],
'requires_reconfiguration' => 'Changing this settings might require a reconfiguration of the following services: %s',
'req_limit_per_interval' => [
'title' => 'Number of HTTP requests per interval',
'description' => 'Limit the number of HTTP requests per interval (see below) to froxlor, default is "60"',
],
'req_limit_interval' => [
'title' => 'Rate-limit interval',
'description' => 'Specify the time in seconds for the number of HTTP requests, default is "60"',
],
'option_requires_otp' => 'This setting requires an OTP validation',
'panel_menu_collapsed' => [
'title' => 'Collapse menu-sections',
'description' => 'If deactivated, the left-side menu sections will always be expanded.',
],
'le_renew_services' => [
'title' => 'Use froxlor Let\'s Encrypt certificate for these services',
'description' => 'If set to none (or the renew-hook command below is empty), no configuration adjustments regarding ssl will be made to the selected services.
The reload-command for the services selected should be added in the renew-hook command or the configuration changes or renewed certificates may not be applied correctly.',
],
'le_renew_hook' => [
'title' => 'Let\'s Encrypt renew-hook command',
'description' => 'Set this to a command that restarts the services selected above in order for renewed certificates to be used correctly by the service.',
],
],
'spf' => [
'use_spf' => [
'title' => 'Activate SPF for domains?',
'description' => 'Requires a specific dns entry for the domain. If you are not using the nameserver feature, you will have to manually manage these entries.',
],
'spf_entry' => 'SPF entry for all domains',
],
'dmarc' => [
'use_dmarc' => [
'title' => 'Activate DMARC for domains?',
'description' => 'Requires a specific dns entry for the domain. If you are not using the nameserver feature, you will have to manually manage these entries.',
],
'dmarc_entry' => 'DMARC entry for all domains',
],
'ssl_certificates' => [
'certificate_for' => 'Certificate for',
'valid_from' => 'Valid from',
'valid_until' => 'Valid until',
'issuer' => 'Issuer',
],
'success' => [
'success' => 'Information',
'clickheretocontinue' => 'Click here to continue',
'settingssaved' => 'The settings have been successfully saved.',
'rebuildingconfigs' => 'Successfully inserted tasks for rebuild configfiles',
'domain_import_successfully' => 'Successfully imported %s domains.',
'exportscheduled' => 'Your export job has been scheduled. Please wait for it to be processed',
'exportaborted' => 'Your scheduled export has been cancelled',
'dns_record_added' => 'Record added successfully',
'dns_record_deleted' => 'Record deleted successfully',
'testmailsent' => 'Test mail sent successfully',
'settingsimported' => 'Settings imported successfully',
'sent_error_report' => 'Succesfully sent error report. Thank you for your contribution.',
],
'tasks' => [
'outstanding_tasks' => 'Pending cron-tasks',
'REBUILD_VHOST' => 'Rebuilding webserver-configuration',
'CREATE_HOME' => 'Adding new customer %s',
'REBUILD_DNS' => 'Rebuilding bind-configuration',
'CREATE_FTP' => 'Creating directory for new ftp-user',
'DELETE_CUSTOMER_FILES' => 'Deleting customer-files %s',
'noneoutstanding' => 'There are currently no outstanding tasks for froxlor',
'DELETE_EMAIL_DATA' => 'Delete customer e-mail data.',
'DELETE_FTP_DATA' => 'Delete customer ftp-account data.',
'REBUILD_RSPAMD' => 'Rebuilding antispam-configuration.',
'CREATE_QUOTA' => 'Set quota on filesystem',
'REBUILD_CRON' => 'Rebuilding the cron.d-file',
'CREATE_CUSTOMER_DATADUMP' => 'Data export job for customer %s',
'DELETE_DOMAIN_PDNS' => 'Delete domain %s from PowerDNS database',
'DELETE_DOMAIN_SSL' => 'Delete ssl files of domain %s',
'UPDATE_LE_SERVICES' => 'Updating system services for Let\'s Encrypt',
'REBUILD_NSSUSERS' => 'Rebuilding libnss-extrausers files',
],
'terms' => 'Terms of use',
'traffic' => [
'month' => 'Month',
'day' => 'Day',
'months' => [
1 => 'January',
2 => 'February',
3 => 'March',
4 => 'April',
5 => 'May',
6 => 'June',
7 => 'July',
8 => 'August',
9 => 'September',
10 => 'October',
11 => 'November',
12 => 'December',
'jan' => 'Jan',
'feb' => 'Feb',
'mar' => 'Mar',
'apr' => 'Apr',
'may' => 'May',
'jun' => 'Jun',
'jul' => 'Jul',
'aug' => 'Aug',
'sep' => 'Sep',
'oct' => 'Oct',
'nov' => 'Nov',
'dec' => 'Dec',
'total' => 'Total',
],
'mb' => 'Traffic',
'sumtotal' => 'Total traffic',
'sumhttp' => 'HTTP traffic',
'sumftp' => 'FTP traffic',
'summail' => 'Mail traffic',
'customer' => 'Customer',
'domain' => 'Domain',
'trafficoverview' => 'Traffic summary',
'bycustomers' => 'Traffic by customers',
'details' => 'Details',
'http' => 'HTTP',
'ftp' => 'FTP',
'mail' => 'Mail',
'nocustomers' => 'You need at least one customer to view the traffic reports.',
'top5customers' => 'Top 5 customers',
'nodata' => 'No data for given range found.',
'ranges' => [
'last24h' => 'last 24 hours',
'last7d' => 'last 7 days',
'last30d' => 'last 30 days',
'cm' => 'Current month',
'last3m' => 'last 3 months',
'last6m' => 'last 6 months',
'last12m' => 'last 12 months',
'cy' => 'Current year',
],
'byrange' => 'Specified by range',
],
'translator' => '',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'A newer version of froxlor has been installed but not yet set up. Only the administrator can log in and finish the update.',
'update' => 'froxlor update',
'proceed' => 'Proceed',
'update_information' => [
'part_a' => 'The froxlor files have been updated to version %s. The installed version is %s.',
'part_b' => '
Customers will not be able to log in until the update has been finished. Proceed?',
],
'noupdatesavail' => 'You already have the latest %sversion of froxlor installed.',
'description' => 'Running database updates for your froxlor installation',
'uc_newinfo' => 'There is a newer %sversion available: "%s" (Your current version is: %s)',
'notify_subject' => 'New update available',
'dbupdate_required' => 'froxlor files have been updated, database update required',
],
'usersettings' => [
'custom_notes' => [
'title' => 'Custom notes',
'description' => 'Feel free to put any notes you want/need in here. They will show up in the admin/customer overview for the corresponding user. Markdown is supported, HTML will be removed.',
'show' => 'Show your notes on the dashboard of the user',
],
'api_allowed' => [
'title' => 'Allow API access',
'description' => 'When enabled in the settings, this user can create API keys and access the froxlor API',
'notice' => 'API access is not allowed for your account.',
],
'shell_allowed' => [
'title' => 'Allow shell access',
'description' => 'When enabled in the settings, this user can assign shell access to ftp users',
],
'gui_access' => [
'title' => 'Allow WebUI login',
'description' => 'When disabled, the user cannot log in to the froxlor web-ui but all the services (web, ftp, mail, databases, api-access, etc.) will work normally.',
],
],
'install' => [
'slogan' => 'froxlor Server Management Panel',
'preflight' => 'System check',
'critical_error' => 'Critical error',
'suggestions' => 'Not required but recommended',
'phpinfosuccess' => 'Your system is running with PHP %s',
'suggestionsnote' => 'There are no critical errors that prevent installation, but please follow the recommendations below for an optimal experience.',
'phpinfowarn' => 'Your system is running a lower version than PHP %s',
'phpinfoupdate' => 'Update your current PHP version from %s to %s or higher',
'start_installation' => 'Start installation',
'check_again' => 'Reload to check again',
'switchmode_advanced' => 'Show advanced options',
'switchmode_basic' => 'Hide advanced options',
'dependency_check' => [
'title' => 'Welcome to froxlor',
'description' => 'We check the system for dependencies to ensure that all required php extensions and modules are enabled so that froxlor runs properly.',
],
'database' => [
'top' => 'Database',
'title' => 'Create database and user',
'description' => 'froxlor requires a database and additionally a privileged user to be able to create users and databases (GRANT option). The given database and unprivileged database-user will be created in this process. The privileged user must exist.',
'user' => 'Unprivileged database user',
'dbname' => 'Database name',
'force_create' => 'Backup and overwrite database if exists?',
],
'admin' => [
'top' => 'Admin user',
'title' => 'Let\'s create the main administrator user.',
'description' => 'This user will be granted all privileges to adjust settings and add/update/delete resources like customers, domains, etc.',
'use_admin_email_as_sender' => 'Use the email address above as sender address. If unchecked, please specify a sender address below.',
'use_autogenerated_email_as_sender' => 'Leave empty for default: admin@servername',
],
'system' => [
'top' => 'System setup',
'title' => 'Details about your server',
'description' => 'Set your environment as well as server relevant data and options here to let froxlor know about your system. These values are crucial for the system configuration and operating.',
'ipv4' => 'Primary IPv4 address (if applicable)',
'ipv6' => 'Primary IPv6 address (if applicable)',
'servername' => 'Server name (FQDN, no ip-address)',
'phpbackend' => 'PHP backend',
'activate_newsfeed' => 'Enable the official newsfeed (external source: https://inside.froxlor.org/news/)',
],
'install' => [
'top' => 'Finish setup',
'title' => 'One last step...',
'description' => 'The command below will download, install and configure required services on your system according to the data you have given in this installation process.
Be sure to run the following command as root on the server\'s shell/terminal and be aware that this command will overwrite any existing configuration for the used services (backups will be created)!. If you do not want to overwrite any configurations, select I will manually configure the services at the bottom of this page!',
'runcmd' => 'Run the following command to finish the installation:',
'manual_config' => 'I will manually configure the services, just take me to the login',
'waitforconfig' => 'Waiting for services to be configured...',
],
'errors' => [
'wrong_ownership' => 'Make sure the froxlor files are owned by %s:%s',
'missing_extensions' => 'The following php extensions are required and not installed',
'suggestedextensions' => 'The following php extensions could not be found but are recommended',
'databaseexists' => 'Database already exist, please set override option to rebuild or chose another name',
'unabletocreatedb' => 'Test database could not be created',
'unabletodropdb' => 'Test database could not be dropped',
'mysqlusernameexists' => 'The user specified for unprivileged user already exist. Please use another username or delete it first.',
'unabletocreateuser' => 'Test user could not be created',
'unabletodropuser' => 'Test user could not be dropped',
'unabletoflushprivs' => 'Given privileged user is unable to flush privileges',
'nov4andnov6ip' => 'Either IPv4- or IPv6-address must be given',
'servernameneedstobevalid' => 'Given servername does not seem to be a FQDN or hostname',
'websrvuserdoesnotexist' => 'Given webserver-user does not seem to exist on the system',
'websrvgrpdoesnotexist' => 'Given webserver-group does not seem to exist on the system',
'notyetconfigured' => 'It seems that the services were not yet configured (successfully). Please either run the command shown below or check the box to do it later.',
'mandatory_field_not_set' => 'Mandatory field "%s" is not set!',
'unexpected_database_error' => 'Unexpected database exception occurred. %s',
'sql_import_failed' => 'Failed to import SQL data!',
'unprivileged_sql_connection_failed' => 'Failed to initialize unprivileged SQL connection!',
'privileged_sql_connection_failed' => 'Failed to initialize privileged SQL connection!',
'mysqldump_backup_failed' => 'Cannot create a database backup, we got an error from mysqldump.',
'sql_backup_file_missing' => 'Cannot create a database backup, the backup file does not exist.',
'backup_binary_missing' => 'Cannot create a database backup, make sure you installed mysqldump.',
'creating_configfile_failed' => 'Cannot create config files, unable to write file.',
'database_already_exiting' => 'We found a database and were not allow to override it!'
]
],
'welcome' => [
'title' => 'Welcome to froxlor!',
'config_note' => 'In order for froxlor to be able to communicate properly with the backend, you have to configure it.',
'config_now' => 'Configure now'
],
];
================================================
FILE: lng/es.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => 'Checo',
'de' => 'Alemán',
'en' => 'Inglés',
'fr' => 'Francés',
'it' => 'Italia',
'nl' => 'Holandés',
'pt' => 'Portugués',
'se' => 'Sueco',
'sk' => 'Eslovaco',
'es' => 'Español',
'zh_CN' => 'Chino (Simplificado)',
],
'2fa' => [
'2fa' => 'Opciones 2FA',
'2fa_enabled' => 'Activar la autenticación de dos factores (2FA)',
'2fa_removed' => '2FA eliminado correctamente',
'2fa_added' => '2FA activado correctamente Ver detalles de 2FA',
'2fa_add' => 'Activar 2FA',
'2fa_delete' => 'Desactivar 2FA',
'2fa_verify' => 'Verificar código',
'2fa_overview_desc' => 'Aquí puede activar una autenticación de dos factores para su cuenta.
Puede utilizar una aplicación de autenticación (contraseña de un solo uso basada en el tiempo / TOTP) o dejar que froxlor le envíe un correo electrónico a la dirección de su cuenta después de cada inicio de sesión correcto con una contraseña de un solo uso.',
'2fa_email_desc' => 'Su cuenta está configurada para utilizar contraseñas de un solo uso por correo electrónico. Para desactivarla, haga clic en "Desactivar 2FA".',
'2fa_ga_desc' => 'Su cuenta está configurada para utilizar contraseñas de un solo uso basadas en el tiempo a través de una aplicación de autenticación. Escanee el código QR que aparece a continuación con la aplicación de autenticación que desee para generar los códigos. Para desactivar, haga clic en "Desactivar 2FA".'
],
'admin' => [
'overview' => 'Visión general',
'ressourcedetails' => 'Recursos usados',
'systemdetails' => 'Detalles del sistema',
'froxlordetails' => 'Detalles de froxlor',
'installedversion' => 'Versión instalada',
'latestversion' => 'Última versión',
'lookfornewversion' => [
'clickhere' => 'Búsqueda mediante webservice',
'error' => 'Error de lectura'
],
'resources' => 'Recursos',
'customer' => 'Cliente',
'customers' => 'Clientes',
'customers_list_desc' => 'Gestione sus clientes',
'customer_add' => 'Crear cliente',
'customer_edit' => 'Editar cliente',
'username_default_msg' => 'Dejar vacío para el valor autogenerado',
'domains' => 'Dominios',
'domain_add' => 'Crear dominio',
'domain_edit' => 'Editar dominio',
'subdomainforemail' => 'Subdominios como dominios de correo electrónico',
'admin' => 'Administrador',
'admins' => 'Admins',
'admin_add' => 'Crear administrador',
'admin_edit' => 'Editar admin',
'customers_see_all' => '¿Puede acceder a los recursos de otros administradores/revendedores?',
'change_serversettings' => '¿Puede cambiar la configuración del servidor?',
'server' => 'Sistema',
'serversettings' => 'Ajustes',
'serversettings_desc' => 'Administrar su sistema froxlor',
'rebuildconf' => 'Reconstruir archivos de configuración',
'stdsubdomain' => 'Subdominio estándar',
'stdsubdomain_add' => 'Crear subdominio estándar',
'phpenabled' => 'PHP habilitado',
'deactivated' => 'Desactivado',
'deactivated_user' => 'Desactivar usuario',
'sendpassword' => 'Enviar contraseña',
'ownvhostsettings' => 'Configuración vHost propia',
'configfiles' => [
'serverconfiguration' => 'Configuración',
'overview' => 'Visión general',
'wizard' => 'Asistente',
'distribution' => 'Distribución',
'service' => 'Servicio',
'daemon' => 'Daemon',
'http' => 'Servidor web (HTTP)',
'dns' => 'Servidor de nombres (DNS)',
'mail' => 'Servidor de correo (IMAP/POP3)',
'smtp' => 'Servidor de correo (SMTP)',
'ftp' => 'Servidor FTP',
'etc' => 'Otros (Sistema)',
'choosedistribution' => '-- Elija una distribución --',
'chooseservice' => '-- Elija un servicio --',
'choosedaemon' => '-- Elija un demonio --',
'statistics' => 'Estadísticas',
'compactoverview' => 'Vista general compacta',
'legend' => '
Está a punto de configurar un servicio/demonio
',
'commands' => 'Comandos: Estos comandos deben ser ejecutados línea por línea como usuario root en un shell. Es seguro copiar todo el bloque y pegarlo en el shell.',
'files' => 'Archivos de configuración: Los comandos antes de los campos de texto deben abrir un editor con el archivo de destino. Sólo tienes que copiar y pegar el contenido en el editor y guardar el archivo. Nota: La contraseña MySQL no ha sido reemplazada por razones de seguridad. Por favor, reemplaza "FROXLOR_MYSQL_PASSWORD" por tu cuenta o utiliza el formulario javascript de abajo para reemplazarla in situ. Si olvidaste tu contraseña MySQL la encontrarás en "lib/userdata.inc.php".',
'importexport' => 'Importar/Exportar',
'finishnote' => 'Archivo de parámetros generado correctamente. Ahora ejecute el siguiente comando como root:',
'description' => 'Configurar los servicios del sistema',
'minihowto' => 'En esta página puede ver las diferentes plantillas de configuración para cada servicio, (re)configurar servicios específicos si es necesario o exportar la selección actual a un archivo JSON para utilizarlo en los scripts CLI o en otro servidor.
Tenga en cuenta que los servicios resaltados no reflejan su configuración actual, sino que muestran requisitos/recomendaciones de sus valores de configuración actuales.',
'skipconfig' => 'No (re)configurar',
'recommendednote' => 'Servicios recomendados/requeridos según la configuración actual del sistema',
'selectrecommended' => 'Seleccionar recomendados',
'downloadselected' => 'Exportar seleccionado'
],
'templates' => [
'templates' => 'Plantillas de correo electrónico',
'template_add' => 'Añadir plantilla',
'template_fileadd' => 'Añadir plantilla de archivo',
'template_edit' => 'Editar plantilla',
'action' => 'Acción',
'email' => 'Plantillas de correo electrónico y archivos',
'subject' => 'Asunto',
'mailbody' => 'Cuerpo del correo',
'createcustomer' => 'Correo de bienvenida para nuevos clientes',
'pop_success' => 'Correo de bienvenida para nuevas cuentas de correo electrónico',
'template_replace_vars' => 'Variables a sustituir en la plantilla:',
'SALUTATION' => 'Sustituido por un saludo correcto (nombre o empresa)',
'FIRSTNAME' => 'Sustituido por el nombre del cliente.',
'NAME' => 'Se sustituye por el nombre del cliente.',
'COMPANY' => 'Se sustituye por el nombre de la empresa del cliente.',
'USERNAME' => 'Se sustituye por el nombre de usuario de la cuenta del cliente.',
'PASSWORD' => 'Se sustituye por la contraseña de la cuenta del cliente.',
'EMAIL' => 'Se sustituye por la dirección de la cuenta POP3/IMAP.',
'CUSTOMER_NO' => 'Sustituido por el número de cliente',
'TRAFFIC' => 'Se sustituye por el tráfico asignado al cliente.',
'TRAFFICUSED' => 'Sustituido por el tráfico, que fue agotado por el cliente.',
'pop_success_alternative' => 'Correo de bienvenida para nuevas cuentas de correo electrónico enviado a la dirección alternativa',
'EMAIL_PASSWORD' => 'Sustituido por la contraseña de la cuenta POP3/IMAP.',
'index_html' => 'Archivo de índice para directorios de clientes recién creados',
'SERVERNAME' => 'Sustituido por el nombre del servidor.',
'CUSTOMER' => 'Sustituido por el nombre de usuario del cliente.',
'ADMIN' => 'Se sustituye por el nombre de usuario del administrador.',
'CUSTOMER_EMAIL' => 'Se sustituye por la dirección de correo electrónico del cliente.',
'ADMIN_EMAIL' => 'Se sustituye por la dirección de correo electrónico del administrador.',
'filetemplates' => 'Plantillas de archivos',
'filecontent' => 'Contenido del fichero',
'new_database_by_customer' => 'Notificación al cliente de la creación de una base de datos',
'new_ftpaccount_by_customer' => 'Notificación al cliente de la creación de un usuario ftp',
'newdatabase' => 'Correos de notificación para nuevas bases de datos',
'newftpuser' => 'Correos de notificación para nuevos usuarios ftp',
'CUST_NAME' => 'Nombre del cliente',
'DB_NAME' => 'Nombre de la base de datos',
'DB_PASS' => 'Contraseña de la base de datos',
'DB_DESC' => 'Descripción de la base de datos',
'DB_SRV' => 'Servidor de base de datos',
'PMA_URI' => 'URL de phpMyAdmin (si se indica)',
'USR_NAME' => 'Nombre de usuario FTP',
'USR_PASS' => 'Contraseña FTP',
'USR_PATH' => 'FTP homedir (relativo a customer-docroot)',
'forgotpwd' => 'Correos de notificación de restablecimiento de contraseña',
'password_reset' => 'Notificación al cliente de restablecimiento de contraseña',
'trafficmaxpercent' => 'Correo de notificación para los clientes cuando se agota un determinado porcentaje máximo de tráfico',
'MAX_PERCENT' => 'Sustituido por el límite de diskusage/tráfico para el envío de informes en porcentaje.',
'USAGE_PERCENT' => 'Reemplazado con el diskusage/tráfico agotado por el cliente en porcentaje.',
'diskmaxpercent' => 'Correo de notificación a los clientes cuando se agota el porcentaje máximo de espacio en disco.',
'DISKAVAILABLE' => 'Sustituido por el uso de disco asignado al cliente.',
'DISKUSED' => 'Reemplazado por el uso de disco, que fue agotado por el cliente.',
'LINK' => 'Sustituido por el enlace de restablecimiento de contraseña del cliente.',
'SERVER_HOSTNAME' => 'Reemplaza el system-hostname (URL a froxlor)',
'SERVER_IP' => 'Reemplaza la dirección IP del servidor por defecto',
'SERVER_PORT' => 'Reemplaza el puerto por defecto del servidor',
'DOMAINNAME' => 'Reemplaza el subdominio estándar del cliente (puede estar vacío si no se genera ninguno)'
],
'webserver' => 'Servidor web',
'createzonefile' => 'Crear zona dns para el dominio',
'custombindzone' => 'Archivo de zona personalizado / no gestionado',
'bindzonewarning' => 'vacío por defecto ATENCIÓN: Si utiliza un archivo de zonas, tendrá que gestionar también manualmente todos los registros necesarios para todas las subzonas.',
'ipsandports' => [
'ipsandports' => 'IPs y Puertos',
'add' => 'Añadir IP/Puerto',
'edit' => 'Editar IP/Puerto',
'ipandport' => 'IP/Puerto',
'ip' => 'IP',
'ipnote' => '
Nota: Aunque las direcciones IP privadas están permitidas, algunas características como DNS podrían no comportarse correctamente. Sólo use direcciones IP privadas si está seguro.
',
'port' => 'Puerto',
'create_listen_statement' => 'Crear sentencia Listen',
'create_namevirtualhost_statement' => 'Crear sentencia NameVirtualHost',
'create_vhostcontainer' => 'Crear vHost-Container',
'create_vhostcontainer_servername_statement' => 'Crear sentencia ServerName en vHost-Container',
'enable_ssl' => '¿Se trata de un puerto SSL?',
'ssl_cert_file' => 'Ruta al certificado SSL',
'webserverdefaultconfig' => 'Configuración por defecto del servidor web',
'webserverdomainconfig' => 'Configuración de dominio del servidor web',
'webserverssldomainconfig' => 'Configuración SSL del servidor web',
'ssl_key_file' => 'Ruta al archivo de claves SSL',
'ssl_ca_file' => 'Ruta al certificado SSL CA',
'default_vhostconf_domain' => 'Configuración vHost por defecto para cada contenedor de dominio',
'ssl_cert_chainfile' => [
'title' => 'Ruta al archivo SSL CertificateChainFile',
'description' => 'Mayormente CA_Bundle, o similar, probablemente quieras configurar esto si has comprado un certificado SSL.'
],
'docroot' => [
'title' => 'Docroot personalizado (vacío = apunta a froxlor)',
'description' => 'Aquí puedes definir un document-root personalizado (el destino de una petición) para esta combinación ip/puerto. ATENCIÓN: ¡Por favor, ten cuidado con lo que introduces aquí!'
],
'ssl_paste_description' => 'Pegue el contenido completo de su certificado en el cuadro de texto',
'ssl_cert_file_content' => 'Contenido del certificado ssl',
'ssl_key_file_content' => 'Contenido del archivo de clave ssl (privada)',
'ssl_ca_file_content' => 'Contenido del archivo ssl CA (opcional)',
'ssl_ca_file_content_desc' => '
Autenticación del cliente, configure esto sólo si sabe lo que es.',
'ssl_cert_chainfile_content' => 'Contenido del archivo de cadena de certificados (opcional)',
'ssl_cert_chainfile_content_desc' => '
Principalmente CA_Bundle, o similar, probablemente quiera establecer esto si compró un certificado SSL.',
'ssl_default_vhostconf_domain' => 'Configuración SSL vHost por defecto para cada contenedor de dominio'
],
'memorylimitdisabled' => 'Desactivado',
'valuemandatory' => 'Este valor es obligatorio',
'valuemandatorycompany' => 'O bien "nombre" y "nombre" o "empresa" debe ser llenado',
'serversoftware' => 'Serversoftware',
'phpversion' => 'Versión PHP',
'mysqlserverversion' => 'Versión del servidor MySQL',
'webserverinterface' => 'Interfaz del servidor web',
'accountsettings' => 'Configuración de la cuenta',
'panelsettings' => 'Configuración del panel',
'systemsettings' => 'Configuración del sistema',
'webserversettings' => 'Configuración del servidor web',
'mailserversettings' => 'Configuración del servidor de correo',
'nameserversettings' => 'Configuración del servidor de nombres',
'updatecounters' => 'Recalcular el uso de recursos',
'subcanemaildomain' => [
'never' => 'Nunca',
'choosableno' => 'Seleccionable, por defecto no',
'choosableyes' => 'Seleccionable, por defecto sí',
'always' => 'Siempre'
],
'wipecleartextmailpwd' => 'Borrar contraseñas en texto plano',
'webalizersettings' => 'Configuración de Webalizer',
'webalizer' => [
'normal' => 'Normal',
'quiet' => 'Silencioso',
'veryquiet' => 'Sin salida'
],
'domain_nocustomeraddingavailable' => 'Actualmente no es posible añadir un dominio. Primero debe añadir al menos un cliente.',
'loggersettings' => 'Configuración del registro',
'logger' => [
'normal' => 'normal',
'paranoid' => 'paranoico'
],
'emaildomain' => 'Emaildomain',
'email_only' => '¿Sólo correo electrónico?',
'wwwserveralias' => 'Añada un "www." ServerAlias',
'subject' => 'Asunto',
'recipient' => 'Destinatario',
'message' => 'Escribir un mensaje',
'text' => 'Mensaje',
'sslsettings' => 'Configuración SSL',
'specialsettings_replacements' => 'Puede utilizar las siguientes variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (si procede) ',
'dkimsettings' => 'Configuración de DomainKey',
'caneditphpsettings' => '¿Puede cambiar los ajustes de dominio relacionados con php?',
'allips' => 'Todas las IP',
'awstatssettings' => 'Configuración de AWstats',
'domain_dns_settings' => 'Configuración dns del dominio',
'activated' => 'Activado',
'statisticsettings' => 'Configuración de estadísticas',
'or' => 'o',
'sysload' => 'Carga del sistema',
'noloadavailable' => 'no disponible',
'nouptimeavailable' => 'no disponible',
'nosubject' => '(Sin asunto)',
'security_settings' => 'Opciones de seguridad',
'know_what_youre_doing' => 'Cambiar sólo, ¡si sabes lo que haces!',
'show_version_login' => [
'title' => 'Mostrar la versión de froxlor en el login',
'description' => 'Mostrar la versión de froxlor en el pie de página en la página de inicio de sesión'
],
'show_version_footer' => [
'title' => 'Mostrar la versión de froxlor en el pie de página',
'description' => 'Mostrar la versión de froxlor en el pie de página del resto de páginas'
],
'froxlor_graphic' => [
'title' => 'Gráfico de cabecera para froxlor',
'description' => 'Qué gráfico debe mostrarse en la cabecera'
],
'phpsettings' => [
'title' => 'Configuración PHP',
'description' => 'Breve descripción',
'actions' => 'Acciones',
'activedomains' => 'En uso para dominio(s)',
'notused' => 'Configuración no en uso',
'editsettings' => 'Cambiar configuración PHP',
'addsettings' => 'Crear nueva configuración PHP',
'viewsettings' => 'Ver configuración PHP',
'phpinisettings' => 'Configuración php.ini',
'addnew' => 'Crear nueva configuración PHP',
'binary' => 'PHP Binario',
'fpmdesc' => 'Configuración PHP-FPM',
'file_extensions' => 'Extensiones de archivos',
'file_extensions_note' => '(sin punto, separadas por espacios)',
'enable_slowlog' => 'Activar slowlog (por dominio)',
'request_terminate_timeout' => 'Solicitar terminate-timeout',
'request_slowlog_timeout' => 'Solicitar slowlog-timeout',
'activephpconfigs' => 'En uso para php-config(s)',
'pass_authorizationheader' => 'Añade "-pass-header Authorization" / "CGIPassAuth On" a vhosts'
],
'misc' => 'Varios',
'fpmsettings' => [
'addnew' => 'Crear nueva versión PHP',
'edit' => 'Cambiar versión PHP'
],
'phpconfig' => [
'template_replace_vars' => 'Variables que serán reemplazadas en las configs',
'pear_dir' => 'Será reemplazada con la configuración global para el directorio pear.',
'open_basedir_c' => 'Se insertará un ; (punto y coma) para comentar/desactivar open_basedir cuando se establezca',
'open_basedir' => 'Se sustituirá por la configuración open_basedir del dominio.',
'tmp_dir' => 'Será reemplazado por el directorio temporal del dominio.',
'open_basedir_global' => 'Se sustituirá por el valor global de la ruta que se adjuntará a open_basedir (ver configuración del servidor web).',
'customer_email' => 'Se sustituirá por la dirección de correo electrónico del cliente propietario del dominio.',
'admin_email' => 'Se sustituirá por la dirección de correo electrónico del administrador propietario del dominio.',
'domain' => 'Se sustituirá por el dominio.',
'customer' => 'Se sustituirá por el nombre de usuario del cliente propietario del dominio.',
'admin' => 'Se sustituirá por el nombre de usuario del administrador propietario del dominio.',
'docroot' => 'Se sustituirá por la raíz del documento del dominio.',
'homedir' => 'Se sustituirá por el directorio raíz del cliente.'
],
'expert_settings' => 'Configuración experta',
'mod_fcgid_starter' => [
'title' => 'Procesos PHP para este dominio (vacío por defecto)'
],
'phpserversettings' => 'Configuración PHP',
'mod_fcgid_maxrequests' => [
'title' => 'Peticiones php máximas para este dominio (vacío por defecto)'
],
'spfsettings' => 'Configuración SPF del dominio',
'specialsettingsforsubdomains' => 'Aplicar configuración especial a todos los subdominios (*.ejemplo.com)',
'accountdata' => 'Datos de la cuenta',
'contactdata' => 'Datos de contacto',
'servicedata' => 'Datos de servicio',
'newerversionavailable' => 'Hay una nueva versión de froxlor disponible.',
'newerversiondetails' => '¿Actualice ahora a la versión %s? (Su versión actual es: %s)',
'extractdownloadedzip' => '¿Extraer el archivo descargado "%s"?',
'cron' => [
'cronsettings' => 'Configuración de Cronjob',
'add' => 'Añadir cronjob'
],
'cronjob_edit' => 'Editar cronjob',
'warning' => 'ADVERTENCIA - ¡Tenga en cuenta!',
'lastlogin_succ' => 'Último acceso',
'ftpserver' => 'Servidor FTP',
'ftpserversettings' => 'Configuración del servidor FTP',
'webserver_user' => 'Nombre de usuario del servidor web',
'webserver_group' => 'Nombre de grupo del servidor web',
'perlenabled' => 'Perl activado',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Usuario local a utilizar para FCGID (froxlor vHost)',
'mod_fcgid_group' => 'Grupo local a utilizar para FCGID (froxlor vHost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[No indicado]',
'store_defaultindex' => 'Almacenar el archivo de índice por defecto en el docroot del cliente',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Tráfico',
'traffic_sub' => 'Detalles sobre el uso del tráfico',
'domaintraffic' => 'Dominios',
'customertraffic' => 'Clientes',
'assignedmax' => 'Asignado / Max',
'usedmax' => 'Usado / Max',
'used' => 'Usado',
'speciallogwarning' => '
ADVERTENCIA: Al cambiar esta configuración perderá todas sus antiguas estadísticas para este dominio.
',
'speciallogfile' => [
'title' => 'Archivo de registro separado',
'description' => 'Active esta opción para obtener un archivo de registro de acceso independiente para este dominio.'
],
'domain_editable' => [
'title' => 'Permitir editar el dominio',
'desc' => 'Si se establece en sí, el cliente puede cambiar varios ajustes del dominio. Si se establece en no, el cliente no puede cambiar nada.'
],
'writeaccesslog' => [
'title' => 'Escribir un registro de acceso',
'description' => 'Active esta opción para obtener un archivo de registro de acceso para este dominio.'
],
'writeerrorlog' => [
'title' => 'Escribir un registro de errores',
'description' => 'Active esta opción para obtener un archivo de registro de errores para este dominio.'
],
'phpfpm.ininote' => 'No todos los valores que quiera definir pueden ser usados en la configuración del pool php-fpm',
'phpinfo' => 'PHPinfo()',
'selectserveralias' => 'Valor ServerAlias para el dominio',
'selectserveralias_desc' => 'Elija si froxlor debe crear una entrada comodín (*.dominio.tld), un alias WWW (www.domain.tld) o ningún alias.',
'show_news_feed' => [
'title' => 'Mostrar noticias en el panel de administración',
'description' => 'Activa esta opción para mostrar las noticias oficiales de froxlor (https://inside.froxlor.org/news/) en tu panel de control y no perderte nunca información importante o anuncios de lanzamientos.'
],
'cronsettings' => 'Configuración de Cronjob',
'integritycheck' => 'Validación de la base de datos',
'integrityname' => 'Nombre',
'integrityresult' => 'Resultado',
'integrityfix' => 'Solución automática de problemas',
'customer_show_news_feed' => 'Mostrar noticias en el panel del cliente',
'customer_news_feed_url' => [
'title' => 'Utilizar un canal RSS personalizado',
'description' => 'Especifique un canal RSS personalizado que se mostrará a sus clientes en su panel de control. Deje este campo vacío para utilizar el canal de noticias oficial de froxlor (https://inside.froxlor.org/news/).'
],
'movetoadmin' => 'Mover cliente',
'movecustomertoadmin' => 'Mueve el cliente al administrador/revendedor seleccionado Deja esto vacío para no hacer cambios. Si el administrador deseado no aparece en la lista, su límite de clientes ha sido alcanzado.',
'note' => 'Nota',
'mod_fcgid_umask' => [
'title' => 'Máscara (por defecto: 022)'
],
'apcuinfo' => 'Información APCu',
'opcacheinfo' => 'Información OPcache',
'letsencrypt' => [
'title' => 'Usar Let\'s Encrypt',
'description' => 'Obtenga un certificado gratuito de Let\'s Encrypt. El certificado se creará y renovará automáticamente. ATENCIÓN: Si los comodines están activados, esta opción se desactivará automáticamente.'
],
'autoupdate' => 'Actualizar automáticamente',
'server_php' => 'PHP',
'dnsenabled' => 'Habilitar editor DNS',
'froxlorvhost' => 'Configuración de froxlor VirtualHost',
'hostname' => 'Nombre de host',
'memory' => 'Uso de memoria',
'webserversettings_ssl' => 'Configuración SSL del servidor web',
'domain_hsts_maxage' => [
'title' => 'Seguridad estricta de transporte HTTP (HSTS)',
'description' => 'Especifique el valor max-age para la cabecera Strict-Transport-Security El valor 0 desactivará HSTS para el dominio. La mayoría de los usuarios establecen un valor de 31536000 (un año).'
],
'domain_hsts_incsub' => [
'title' => 'Incluir HSTS para cualquier subdominio',
'description' => 'La directiva opcional "includeSubDomains", si está presente, indica a la UA que la Política HSTS se aplica a este Host HSTS así como a cualquier subdominio del nombre de dominio del host.'
],
'domain_hsts_preload' => [
'title' => 'Incluir dominio en la lista de precarga HSTS',
'description' => 'Si desea que este dominio se incluya en la lista de precarga HSTS mantenida por Chrome (y utilizada por Firefox y Safari), active esta opción. El envío de la directiva de precarga desde su sitio puede tener CONSECUENCIAS PERMANENTES e impedir que los usuarios accedan a su sitio y a cualquiera de sus subdominios. Por favor, lea los detalles en https://hstspreload.org/#removal antes de enviar la cabecera con "preload".'
],
'domain_ocsp_stapling' => [
'title' => 'Engrapado OCSP',
'description' => 'Consulte Wikipedia para una explicación detallada del grapado OCSP',
'nginx_version_warning' => ' ADVERTENCIA: Se requiere la versión 1.3.7 o superior de Nginx para el grapado OCSP. Si su versión es anterior, ¡el servidor web NO se iniciará correctamente mientras el grapado OCSP esté activado!'
],
'domain_http2' => [
'title' => 'Soporte HTTP2',
'description' => 'Consulte Wikipedia para una explicación detallada de HTTP2'
],
'testmail' => 'Prueba SMTP',
'phpsettingsforsubdomains' => 'Aplicar php-config a todos los subdominios:',
'plans' => [
'name' => 'Nombre del plan',
'description' => 'Descripción',
'last_update' => 'Última actualización',
'plans' => 'Planes de alojamiento',
'plan_details' => 'Detalles del plan',
'add' => 'Añadir nuevo plan',
'edit' => 'Editar plan',
'use_plan' => 'Aplicar plan'
],
'notryfiles' => [
'title' => 'No autogenerated try_files',
'description' => 'Diga sí aquí si desea especificar una directiva try_files personalizada en specialsettings (necesaria para algunos plugins de wordpress, por ejemplo).'
],
'logviewenabled' => 'Habilitar acceso a access/error-logs',
'novhostcontainer' => '
Ninguna de las IPs y puertos tiene activada la opción "Crear vHost-Container", muchos ajustes aquí no estarán disponibles',
'ownsslvhostsettings' => 'Configuración propia de SSL vHost',
'domain_override_tls' => 'Anular la configuración TLS del sistema',
'domain_override_tls_addinfo' => ' Sólo se utiliza si la opción "Override system TLS settings" está configurada como "Yes".',
'domain_sslenabled' => 'Habilitar el uso de SSL',
'domain_honorcipherorder' => 'Respetar el orden de cifrado (servidor), por defecto no',
'domain_sessiontickets' => 'Habilitar TLS sessiontickets (RFC 5077), por defecto sí',
'domain_sessionticketsenabled' => [
'title' => 'Habilitar el uso de TLS sessiontickets globalmente',
'description' => 'Por defecto sí Requiere apache-2.4.11+ o nginx-1.5.9+'
],
'domaindefaultalias' => 'Valor por defecto de ServerAlias para nuevos dominios',
'smtpsettings' => 'Configuración SMTP',
'smtptestaddr' => 'Enviar correo de prueba a',
'smtptestnote' => 'Tenga en cuenta que los valores siguientes reflejan su configuración actual y sólo pueden ajustarse allí (véase el enlace en la esquina superior derecha)',
'smtptestsend' => 'Enviar correo de prueba',
'mysqlserver' => [
'mysqlserver' => 'Servidor MySQL',
'dbserver' => 'Servidor',
'caption' => 'Descripción',
'host' => 'Nombre de host / IP',
'port' => 'Puerto',
'user' => 'Usuario privilegiado',
'add' => 'Añadir nuevo servidor MySQL',
'edit' => 'Editar servidor MySQL',
'password' => 'Contraseña de usuario privilegiado',
'password_emptynochange' => 'Nueva contraseña, dejar vacío para ningún cambio',
'allowall' => [
'title' => 'Permitir el uso de este servidor a todos los clientes existentes actualmente',
'description' => 'Establezca esta opción en "true" si desea permitir el uso de este servidor de base de datos a todos los clientes existentes para que puedan añadir bases de datos en él. Esta configuración no es permanente, pero se puede ejecutar varias veces.'
],
'testconn' => 'Probar la conexión al guardar',
'ssl' => 'Utilizar SSL para la conexión al servidor de base de datos',
'ssl_cert_file' => 'La ruta del archivo a la autoridad del certificado SSL',
'verify_ca' => 'Habilitar la verificación del certificado SSL del servidor'
],
'settings_importfile' => 'Elegir archivo de importación',
'documentation' => 'Documentación',
'adminguide' => 'Guía del administrador',
'userguide' => 'Guía del usuario',
'apiguide' => 'Guía de la API'
],
'apcuinfo' => [
'clearcache' => 'Borrar caché de APCu',
'generaltitle' => 'Información general sobre la caché',
'version' => 'Versión de APCu',
'phpversion' => 'Versión PHP',
'host' => 'Host APCu',
'sharedmem' => 'Memoria compartida',
'sharedmemval' => '%d Segmento(s) con %s (%s memoria)',
'start' => 'Hora de inicio',
'uptime' => 'Tiempo de actividad',
'upload' => 'Soporte de carga de archivos',
'cachetitle' => 'Información de la caché',
'cvar' => 'Variables en caché',
'hit' => 'Aciertos',
'miss' => 'Fallos',
'reqrate' => 'Tasa de peticiones (aciertos, fallos)',
'creqsec' => 'Peticiones de caché/segundo',
'hitrate' => 'Tasa de aciertos',
'missrate' => 'Porcentaje de fallos',
'insrate' => 'Tasa de inserciones',
'cachefull' => 'Recuento de caché llena',
'runtime' => 'Configuración de tiempo de ejecución',
'memnote' => 'Uso de memoria',
'total' => 'Total',
'free' => 'Libre',
'used' => 'Usado',
'hitmiss' => 'Aciertos y errores',
'detailmem' => 'Uso detallado de memoria y fragmentación',
'fragment' => 'Fragmentación',
'nofragment' => 'Sin fragmentación',
'fragments' => 'Fragmentos'
],
'apikeys' => [
'no_api_keys' => 'No se han encontrado claves API',
'key_add' => 'Añadir nueva clave',
'apikey_removed' => 'La clave api con el id #%s ha sido eliminada con éxito',
'apikey_added' => 'Se ha generado correctamente una nueva clave api',
'clicktoview' => 'Haga clic para ver',
'allowed_from' => 'Permitido desde',
'allowed_from_help' => 'Lista separada por comas de direcciones IP / redes. Por defecto está vacío (permitir desde todos).',
'valid_until' => 'Válido hasta',
'valid_until_help' => 'Fecha hasta la que es válido, formato AAAA-MM-DDThh:mm'
],
'changepassword' => [
'old_password' => 'Contraseña antigua',
'new_password' => 'Nueva contraseña',
'new_password_confirm' => 'Confirme la contraseña',
'new_password_ifnotempty' => 'Nueva contraseña (vacía = sin cambios)',
'also_change_ftp' => ' cambie también la contraseña de la cuenta FTP principal',
'also_change_stats' => ' cambie también la contraseña de la página de estadísticas'
],
'cron' => [
'cronname' => 'cronjob-name',
'lastrun' => 'última ejecución',
'interval' => 'intervalo',
'isactive' => 'activado',
'description' => 'descripción',
'changewarning' => 'Cambiar estos valores puede tener una causa negativa en el comportamiento de froxlor y sus tareas automatizadas. Por favor, sólo cambie los valores aquí, si está seguro de lo que está haciendo.'
],
'crondesc' => [
'cron_unknown_desc' => 'no description given',
'cron_tasks' => 'Generación de archivos de configuración',
'cron_legacy' => 'cronjob heredado (antiguo)',
'cron_traffic' => 'Cálculo de tráfico',
'cron_usage_report' => 'Informes web y de tráfico',
'cron_mailboxsize' => 'Cálculo del tamaño del buzón',
'cron_letsencrypt' => 'Actualización de certificados Let\'s Encrypt',
'cron_backup' => 'Procesar tareas de copia de seguridad'
],
'cronjob' => [
'cronjobsettings' => 'Configuración de Cronjob',
'cronjobintervalv' => 'Valor del intervalo de tiempo de ejecución',
'cronjobinterval' => 'Intervalo de ejecución'
],
'cronjobs' => [
'notyetrun' => 'Aún no ejecutado'
],
'cronmgmt' => [
'minutes' => 'minutos',
'hours' => 'horas',
'days' => 'días',
'weeks' => 'semanas',
'months' => 'meses'
],
'customer' => [
'documentroot' => 'Directorio de inicio',
'name' => 'Nombre',
'firstname' => 'Nombre de pila',
'lastname' => 'Apellidos',
'company' => 'Empresa',
'nameorcompany_desc' => 'Se requiere nombre/apellido o empresa',
'street' => 'Calle',
'zipcode' => 'Código postal',
'city' => 'Ciudad',
'phone' => 'Teléfono',
'fax' => 'Fax',
'email' => 'Correo electrónico',
'customernumber' => 'ID de cliente',
'diskspace' => 'Espacio web',
'traffic' => 'Tráfico',
'mysqls' => 'Bases de datos MySQL',
'emails' => 'Direcciones de correo electrónico',
'accounts' => 'Cuentas de correo electrónico',
'forwarders' => 'Remitentes de correo electrónico',
'ftps' => 'Cuentas FTP',
'subdomains' => 'Subdominios',
'domains' => 'Dominios',
'mib' => 'MiB',
'gib' => 'GiB',
'title' => 'Título',
'country' => 'País',
'email_quota' => 'Cuota de correo electrónico',
'email_imap' => 'Correo IMAP',
'email_pop3' => 'Correo electrónico POP3',
'sendinfomail' => 'Enviarme datos por correo electrónico',
'generated_pwd' => 'Sugerencia de contraseña',
'usedmax' => 'Usado / Max',
'services' => 'Servicios',
'letsencrypt' => [
'title' => 'Usar Let\'s Encrypt',
'description' => 'Obtenga un certificado gratuito de Let\'s Encrypt. El certificado se creará y renovará automáticamente.'
],
'selectserveralias_addinfo' => 'Esta opción se puede configurar al editar el dominio. Su valor inicial se hereda del dominio padre.',
'total_diskspace' => 'Espacio total en disco',
'mysqlserver' => 'Servidor mysql utilizable'
],
'diskquota' => 'Cuota',
'dns' => [
'destinationip' => 'IP(s) del dominio',
'standardip' => 'IP estándar del servidor',
'a_record' => 'Registro A (IPv6 opcional)',
'cname_record' => 'Registro CNAME',
'mxrecords' => 'Definir registros MX',
'standardmx' => 'Registro MX estándar del servidor',
'mxconfig' => 'Registros MX personalizados',
'priority10' => 'Prioridad 10',
'priority20' => 'Prioridad 20',
'txtrecords' => 'Definir registros TXT',
'txtexample' => 'Ejemplo (SPF-entry): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'howitworks' => 'Aquí puedes gestionar las entradas DNS para tu dominio. Ten en cuenta que froxlor generará automáticamente los registros NS/MX/A/AAAA por ti. Las entradas personalizadas son preferibles, sólo las entradas que falten serán generadas automáticamente.'
],
'dnseditor' => [
'edit' => 'editar DNS',
'records' => 'Registros',
'notes' => [
'A' => 'Dirección IPv4 de 32 bits, usada para mapear nombres de host a una dirección IP del host.',
'AAAA' => 'Dirección IPv6 de 128 bits, utilizada para asignar nombres de host a una dirección IP del host.',
'CAA' => 'El registro de recursos CAA permite al titular de un nombre de dominio DNS especificar una o varias Autoridades de Certificación (CA) autorizadas a emitir certificados para ese dominio. Estructura: flag tag[issue|issuewild|iodef|contactmail|contactphone] value Ejemplo: 0 issue "ca.example.net" 0 iodef "mailto:security@example.com"',
'CNAME' => 'Alias del nombre de dominio, la búsqueda DNS continuará reintentando la búsqueda con el nuevo nombre. Sólo es posible para subdominios.',
'DNAME' => 'Crea un alias para todo un subárbol del árbol de nombres de dominio',
'LOC' => 'Información sobre la ubicación geográfica de un nombre de dominio. Estructura: ( d1 [m1 [s1]] { d2 [m2 [s2]] { alt["m"] [siz["m"] [hp["m"] [vp["m"]]]] ) Descripción: d1: [0 . . 90] (grados de latitud)
d2: [0 .. 180] (grados de longitud)
m1, m2: [0 .. 59] (minutos latitud/longitud)
s1, s2: [0 .. 59,999] (segundos latitud/longitud)
alt: [-100000.00 .. 42849672.95] POR .01 (altitud en metros)
siz, hp, vp: [0 .. 90000000.00] (tamaño/precisión en metros) Ejemplo: 52 22 23.000 N 4 53 32.000 E -2.00m 0.00m 10000m 10m',
'MX' => 'Registro de intercambio de correo, asigna un nombre de dominio a un servidor de correo para ese dominio. Ejemplo: 10 mail.example.com Nota: Para la prioridad, utilice el campo anterior.',
'NS' => 'Delega una zona DNS para que utilice los servidores de nombres autoritativos indicados.',
'RP' => 'Registro de persona responsable Estructura: mailbox[sustituir @ por un punto] txt-record-name Ejemplo: team.froxlor.org. froxlor.org.',
'SRV' => 'Registro de ubicación de servicio, utilizado para protocolos más recientes en lugar de crear registros específicos de protocolo como MX. Estructura: priority weight port target Ejemplo: 0 5 5060 sipserver.example.com. Nota: Para la prioridad, utilice el campo anterior.',
'SSHFP' => 'El registro de recursos SSHFP se utiliza para publicar huellas digitales de claves de shell seguro (SSH) en el DNS. Estructura: tipo de algoritmo huella digital Algoritmos: 0: reservado , 1: RSA, 2: DSA, 3: ECDSA, 4: Ed25519, 6: Ed448 Tipos: 0 : reservado, 1: SHA-1, 2: SHA-256 Ejemplo: 2 1 123456789abcdef67890123456789abcdef67890',
'TXT' => 'Texto descriptivo de libre definición.'
]
],
'domain' => [
'openbasedirpath' => 'Ruta OpenBasedir',
'docroot' => 'Ruta del campo anterior',
'homedir' => 'Directorio de inicio',
'docparent' => 'Directorio padre de la ruta del campo anterior',
'ssl_certificate_placeholder' => '---- BEGIN CERTIFICATE---' . PHP_EOL . '[...]' . PHP_EOL . '----END CERTIFICATE----',
'ssl_key_placeholder' => '---- BEGIN RSA PRIVATE KEY-----' . PHP_EOL . '[...]' . PHP_EOL . '-----END RSA PRIVATE KEY-----',
],
'domains' => [
'description' => 'Aquí puede crear (sub)dominios y cambiar sus rutas. El sistema necesitará algún tiempo para aplicar la nueva configuración después de cada cambio.',
'domainsettings' => 'Configuración del dominio',
'domainname' => 'Nombre de dominio',
'subdomain_add' => 'Crear subdominio',
'subdomain_edit' => 'Editar (sub)dominio',
'wildcarddomain' => '¿Crear como dominio comodín?',
'aliasdomain' => 'Alias para dominio',
'noaliasdomain' => 'Sin alias de dominio',
'hasaliasdomains' => 'Tiene dominio(s) alias',
'statstics' => 'Estadísticas de uso',
'isassigneddomain' => 'Dominio asignado',
'add_date' => 'Añadido a froxlor',
'registration_date' => 'Añadido al registro',
'topleveldomain' => 'Top-Level-Dominio',
'associated_with_domain' => 'Asociado',
'aliasdomains' => 'Alias dominios',
'redirectifpathisurl' => 'Código de redirección (por defecto: vacío)',
'redirectifpathisurlinfo' => 'Sólo tiene que seleccionar una de estas opciones si ha introducido una URL como ruta NOTA: Los cambios sólo se aplican si la ruta indicada es una URL.',
'ipandport_multi' => [
'title' => 'Direcciones IP',
'description' => 'Especifique una o más direcciones IP para el dominio.
NOTA: Las direcciones IP no pueden cambiarse cuando el dominio está configurado como alias-dominio de otro dominio.
'
],
'ipandport_ssl_multi' => [
'title' => 'Dirección(es) IP SSL'
],
'ssl_redirect' => [
'title' => 'Redirección SSL',
'description' => 'Esta opción crea redireccionamientos para vhosts no SSL de forma que todas las peticiones son redirigidas al vhost SSL.
p.e. una petición a http://domain.tld/ le redirigirá a https://domain.tld/'
],
'serveraliasoption_wildcard' => 'Comodín (*.dominio.tld)',
'serveraliasoption_www' => 'WWW (www.domain.tld)',
'serveraliasoption_none' => 'Sin alias',
'domain_import' => 'Importar dominios',
'import_separator' => 'Separador',
'import_offset' => 'Desplazamiento',
'import_file' => 'Archivo CSV',
'import_description' => 'Para obtener información detallada sobre la estructura del archivo de importación y sobre cómo realizar la importación correctamente, visite https://docs.froxlor.org/latest/admin-guide/domain-import/.',
'ssl_redirect_temporarilydisabled' => ' La redirección SSL se desactiva temporalmente mientras se genera un nuevo certificado Let\'s Encrypt. Se volverá a activar una vez generado el certificado.',
'termination_date' => 'Fecha de terminación',
'termination_date_overview' => 'terminado a partir de ',
'ssl_certificates' => 'Certificados SSL',
'ssl_certificate_removed' => 'El certificado con el id #%s ha sido eliminado con éxito',
'ssl_certificate_error' => 'Error al leer el certificado para el dominio: %s',
'no_ssl_certificates' => 'No hay dominios con certificado SSL',
'isaliasdomainof' => 'Es aliasdomain para %s',
'isbinddomain' => 'Crear zona DNS',
'dkimenabled' => 'DKIM activado',
'openbasedirenabled' => 'Restricción de Openbasedir',
'hsts' => 'HSTS habilitado',
'aliasdomainid' => 'ID de aliasdominio'
],
'emails' => [
'description' => 'Aquí puedes crear y modificar tus direcciones de correo electrónico. Una cuenta es como el buzón que tienes delante de casa. Si alguien le envía un correo electrónico, éste caerá en la cuenta.
Para descargar sus correos electrónicos utilice la siguiente configuración en su programa de correo: (¡Los datos en cursiva deben cambiarse por los equivalentes que haya escrito!) Hostname: nombre del dominio Username: nombre de la cuenta / dirección de correo electrónico password: la contraseña que haya elegido',
'emailaddress' => 'Dirección de correo electrónico',
'emails_add' => 'Crear dirección de correo electrónico',
'emails_edit' => 'Editar dirección de correo electrónico',
'catchall' => 'Catchall',
'iscatchall' => '¿Definir como dirección "catchall"?',
'account' => 'Cuenta',
'account_add' => 'Crear cuenta',
'account_delete' => 'Eliminar cuenta',
'from' => 'Fuente',
'to' => 'Destino',
'forwarders' => 'Transitarios',
'forwarder_add' => 'Crear expedidor',
'alternative_emailaddress' => 'Dirección de correo electrónico alternativa',
'quota' => 'Cuota',
'noquota' => 'Sin cuota',
'updatequota' => 'Actualizar cuota',
'quota_edit' => 'Modificar cuota de correo electrónico',
'noemaildomainaddedyet' => 'Aún no tiene un dominio (de correo electrónico) en su cuenta.',
'back_to_overview' => 'Volver a la vista general de dominios',
'accounts' => 'Cuentas',
'emails' => 'Direcciones'
],
'error' => [
'error' => 'Error',
'directorymustexist' => 'El directorio %s debe existir. Por favor, créalo con tu cliente FTP.',
'filemustexist' => 'El archivo %s debe existir.',
'allresourcesused' => 'Ya ha utilizado todos sus recursos.',
'domains_cantdeletemaindomain' => 'No puede eliminar un dominio asignado.',
'domains_canteditdomain' => 'No puede editar este dominio. Ha sido desactivado por el administrador.',
'domains_cantdeletedomainwithemail' => 'No puede eliminar un dominio que se utiliza como dominio de correo electrónico. Elimine primero todas las direcciones de correo electrónico.',
'firstdeleteallsubdomains' => 'Antes de crear un dominio comodín, debe eliminar todos los subdominios.',
'youhavealreadyacatchallforthisdomain' => 'Ya ha definido un dominio comodín para este dominio.',
'ftp_cantdeletemainaccount' => 'No puede eliminar su cuenta FTP principal',
'login' => 'El nombre de usuario o la contraseña que has introducido son incorrectos. Inténtalo de nuevo.',
'login_blocked' => 'Esta cuenta ha sido suspendida debido a demasiados errores de inicio de sesión. Por favor, inténtelo %s nuevo en segundos.',
'notallreqfieldsorerrors' => 'No ha rellenado todos los campos o ha rellenado algunos incorrectamente.',
'oldpasswordnotcorrect' => 'La contraseña antigua no es correcta.',
'youcantallocatemorethanyouhave' => 'No puede asignarse más recursos de los que posee.',
'mustbeurl' => 'No has escrito una url válida o completa (por ejemplo http://somedomain.com/error404.htm)',
'invalidpath' => 'No ha elegido una URL válida (¿quizás problemas con la lista de direcciones?)',
'stringisempty' => 'Falta información en el campo',
'stringiswrong' => 'Campo incorrecto',
'newpasswordconfirmerror' => 'La nueva contraseña y la confirmación no coinciden',
'mydomain' => 'Dominio',
'mydocumentroot' => 'Documentroot',
'loginnameexists' => 'Loginname %s ya existe',
'emailiswrong' => 'Email-address %s contiene caracteres no válidos o está incompleto',
'alternativeemailiswrong' => 'Las %s dirección de correo electrónico alternativas dadas para enviar las credenciales parecen no ser válidas',
'loginnameiswrong' => 'Loginname "%s" contiene caracteres ilegales.',
'loginnameiswrong2' => 'Loginname contiene demasiados caracteres. Sólo se permiten caracteres de %s.',
'userpathcombinationdupe' => 'La combinación de nombre de usuario y ruta ya existe',
'patherror' => 'Error general La ruta no puede estar vacía',
'errordocpathdupe' => 'La opción para la %s la ruta ya existe',
'adduserfirst' => 'Por favor, cree primero un cliente',
'domainalreadyexists' => 'El %s dominio ya está asignado a un cliente',
'nolanguageselect' => 'No se ha seleccionado ningún idioma.',
'nosubjectcreate' => 'Debe definir un asunto para esta plantilla de correo.',
'nomailbodycreate' => 'Debe definir un texto de correo para esta plantilla de correo.',
'templatenotfound' => 'No se ha encontrado la plantilla.',
'alltemplatesdefined' => 'No puede definir más plantillas, todos los idiomas ya están soportados.',
'wwwnotallowed' => 'www no está permitido para subdominios.',
'subdomainiswrong' => 'La %s del subdominio contiene caracteres no válidos.',
'domaincantbeempty' => 'El nombre de dominio no puede estar vacío.',
'domainexistalready' => 'El dominio %s ya existe.',
'domainisaliasorothercustomer' => 'El dominio alias seleccionado es en sí mismo un dominio alias, tiene una combinación ip/puerto diferente o pertenece a otro cliente.',
'emailexistalready' => 'La dirección de correo electrónico %s ya existe.',
'maindomainnonexist' => 'El dominio principal %s no existe.',
'destinationnonexist' => 'Por favor, cree su redireccionador en el campo "Destino".',
'destinationalreadyexistasmail' => 'El remitente a %s ya existe como dirección de correo electrónico activa.',
'destinationalreadyexist' => 'Ya ha definido un reenviador para "%s".',
'destinationiswrong' => 'La %s la redirección contiene caracteres no válidos o está incompleta.',
'templatelanguagecombodefined' => 'La combinación idioma/plantilla seleccionada ya ha sido definida.',
'templatelanguageinvalid' => 'El idioma seleccionado no existe.',
'ipstillhasdomains' => 'La combinación IP/Puerto que desea eliminar todavía tiene dominios asignados, por favor reasígnelos a otras combinaciones IP/Puerto antes de eliminar esta combinación IP/Puerto.',
'cantdeletedefaultip' => 'No puede borrar la combinación IP/Puerto por defecto, por favor haga otra combinación IP/Puerto por defecto para antes de borrar esta combinación IP/Puerto.',
'cantdeletesystemip' => 'No puede borrar la última IP del sistema, cree una nueva combinación IP/Puerto para la IP del sistema o cambie la IP del sistema.',
'myipaddress' => 'IP',
'myport' => 'Puerto',
'myipdefault' => 'Debe seleccionar una combinación IP/Puerto que se convierta en predeterminada.',
'myipnotdouble' => 'Esta combinación IP/Puerto ya existe.',
'admin_domain_emailsystemhostname' => 'El nombre de host del servidor no se puede utilizar como dominio del cliente.',
'cantchangesystemip' => 'No puede cambiar la última IP del sistema, cree otra nueva combinación IP/Puerto para la IP del sistema o cambie la IP del sistema.',
'sessiontimeoutiswrong' => 'Sólo se permite un "tiempo de espera de sesión" numérico.',
'maxloginattemptsiswrong' => 'Sólo se permiten "intentos de inicio de sesión máximos" numéricos.',
'deactivatetimiswrong' => 'Sólo se permite "tiempo de desactivación" numérico.',
'accountprefixiswrong' => 'El "customerprefix" es incorrecto.',
'mysqlprefixiswrong' => 'El "prefijo SQL" es incorrecto.',
'ftpprefixiswrong' => 'El "prefijo FTP" es incorrecto.',
'ipiswrong' => 'La "dirección IP" es incorrecta. Sólo se permite una dirección IP válida.',
'vmailuidiswrong' => 'El "mails-uid" es incorrecto. Sólo se permite un UID numérico.',
'vmailgidiswrong' => 'El "mails-gid" es incorrecto. Sólo se permite un GID numérico.',
'adminmailiswrong' => 'La dirección del remitente es incorrecta. Sólo se permite una dirección de correo electrónico válida.',
'pagingiswrong' => 'El valor "entries per page" es incorrecto. Sólo se permiten caracteres numéricos.',
'phpmyadminiswrong' => 'El enlace phpMyAdmin no es un enlace válido.',
'webmailiswrong' => 'El enlace webmail no es un enlace válido.',
'webftpiswrong' => 'El enlace WebFTP no es un enlace válido.',
'stringformaterror' => 'El valor del campo "%s" no tiene el formato esperado.',
'loginnameisusingprefix' => 'No puede crear cuentas que empiecen por "%s", ya que este prefijo está configurado para ser utilizado en la asignación automática de nombres de cuenta. Por favor, introduzca otro nombre de cuenta.',
'loginnameissystemaccount' => 'La cuenta "%s" ya existe en el sistema y no se puede utilizar. Por favor, introduzca otro nombre de cuenta.',
'youcantdeleteyourself' => 'No puede borrarse por razones de seguridad.',
'youcanteditallfieldsofyourself' => 'Nota: No puede editar todos los campos de su propia cuenta por razones de seguridad.',
'documentrootexists' => 'El directorio "%s" ya existe para este cliente. Por favor, elimínelo antes de añadir el cliente de nuevo.',
'norepymailiswrong' => 'La dirección "Noreply-address" es incorrecta. Sólo se permite una dirección de correo electrónico válida.',
'logerror' => 'Log-Error: %s',
'nomessagetosend' => 'No ha introducido ningún mensaje.',
'norecipientsgiven' => 'No ha especificado ningún destinatario',
'errorsendingmail' => 'El mensaje a "%s" ha fallado',
'errorsendingmailpub' => 'El mensaje a la dirección de correo electrónico indicada ha fallado',
'cannotreaddir' => 'No se ha podido leer el directorio "%s".',
'invalidip' => 'Dirección IP no válida: %s',
'invalidmysqlhost' => 'Dirección de host MySQL no válida: %s',
'cannotuseawstatsandwebalizeratonetime' => 'No puede activar Webalizer y AWstats al mismo tiempo, por favor elija uno de ellos.',
'cannotwritetologfile' => 'No se puede abrir el archivo de registro %s para escribir',
'vmailquotawrong' => 'El quotasize debe ser un número positivo.',
'allocatetoomuchquota' => 'Ha intentado asignar la cuota %s MB, pero no tiene suficiente.',
'missingfields' => 'No se han rellenado todos los campos obligatorios.',
'requiredfield' => 'Este campo es obligatorio.',
'accountnotexisting' => 'La cuenta de correo electrónico indicada no existe.',
'nopermissionsorinvalidid' => 'No tiene permisos suficientes para cambiar esta configuración o se ha introducido un identificador no válido.',
'phpsettingidwrong' => 'No existe una configuración PHP con este id.',
'descriptioninvalid' => 'La descripción es demasiado corta, demasiado larga o contiene caracteres ilegales.',
'info' => 'Información',
'filecontentnotset' => 'El archivo no puede estar vacío.',
'index_file_extension' => 'La extensión del fichero índice debe tener entre 1 y 6 caracteres. La extensión sólo puede contener caracteres como a-z, A-Z y 0-9',
'customerdoesntexist' => 'El cliente seleccionado no existe.',
'admindoesntexist' => 'El administrador elegido no existe.',
'ipportdoesntexist' => 'La combinación ip/puerto que ha elegido no existe.',
'usernamealreadyexists' => 'El nombre de usuario %s ya existe.',
'plausibilitychecknotunderstood' => 'No se ha entendido la respuesta de la comprobación de plausibilidad.',
'errorwhensaving' => 'Se ha producido un error al guardar la %s campos',
'hiddenfieldvaluechanged' => 'El valor del campo oculto "%s" ha cambiado al editar la configuración.
Esto no suele ser un gran problema, pero la configuración no se ha podido guardar por este motivo.',
'notrequiredpasswordlength' => 'La contraseña introducida es demasiado corta. Por favor, introduzca al menos caracteres de %s.',
'overviewsettingoptionisnotavalidfield' => 'Ups, un campo que debería mostrarse como una opción en la vista de configuración no es un tipo exceptuado. Puedes culpar a los desarrolladores por esto. Esto no debería ocurrir.',
'pathmaynotcontaincolon' => 'La ruta introducida no debe contener dos puntos (":"). Por favor, introduzca un valor de ruta correcto.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'La complejidad de la contraseña especificada no se ha cumplido. Póngase en contacto con su administrador si tiene alguna duda sobre la complejidad especificada.',
'invaliderrordocumentvalue' => 'El valor dado como ErrorDocument no parece ser un archivo, URL o cadena válidos.',
'intvaluetoolow' => 'El número dado es demasiado bajo (campo %s))',
'intvaluetoohigh' => 'El número dado es demasiado alto (campo %s)',
'phpfpmstillenabled' => 'PHP-FPM está actualmente activo. Desactívelo antes de activar FCGID.',
'fcgidstillenabled' => 'FCGID está actualmente activo. Desactívelo antes de activar PHP-FPM.',
'domains_cantdeletedomainwithaliases' => 'No se puede eliminar un dominio que se utiliza para alias. Primero debe eliminar los alias.',
'user_banned' => 'Su cuenta ha sido bloqueada. Por favor, contacte con su administrador para más información.',
'session_timeout' => 'Valor demasiado bajo',
'session_timeout_desc' => 'El tiempo de espera de la sesión no debe ser inferior a 1 minuto.',
'invalidhostname' => 'El nombre de host debe ser un dominio válido. No puede estar vacío ni estar formado sólo por espacios en blanco.',
'operationnotpermitted' => 'Operación no permitida',
'featureisdisabled' => 'La función de %s está desactivada. Póngase en contacto con su proveedor de servicios.',
'usercurrentlydeactivated' => 'El usuario %s está actualmente desactivado',
'setlessthanalreadyused' => 'No puede establecer menos recursos de \'%s\' de los que este usuario ya ha utilizado ',
'stringmustntbeempty' => 'El valor del campo %s no debe estar vacío',
'sslcertificateismissingprivatekey' => 'Necesita especificar una clave privada para su certificado',
'sslcertificatewrongdomain' => 'El certificado indicado no pertenece a este dominio',
'sslcertificateinvalidcert' => 'El contenido del certificado indicado no parece ser un certificado válido.',
'sslcertificateinvalidcertkeypair' => 'La clave privada indicada no pertenece al certificado en cuestión.',
'sslcertificateinvalidca' => 'Los datos del certificado de la CA no parecen ser un certificado válido.',
'sslcertificateinvalidchain' => 'Los datos de la cadena del certificado no parecen ser un certificado válido.',
'givendirnotallowed' => 'El directorio indicado en el campo %s no está permitido.',
'sslredirectonlypossiblewithsslipport' => 'El uso de Let\'s Encrypt sólo es posible cuando el dominio tiene asignada al menos una combinación IP/puerto habilitada para ssl.',
'fcgidstillenableddeadlock' => 'FCGID está actualmente activo. Por favor, desactívelo antes de cambiar a otro servidor web que no sea Apache2',
'send_report_title' => 'Enviar informe de error',
'send_report_desc' => 'Gracias por informar de este error y ayudarnos a mejorar froxlor. Este es el correo electrónico que se enviará al equipo de desarrolladores de froxlor:',
'send_report' => 'Enviar informe',
'send_report_error' => 'Error al enviar el informe: %s',
'notallowedtouseaccounts' => 'Tu cuenta no permite usar IMAP/POP3. No puedes añadir cuentas de correo.',
'cannotdeletehostnamephpconfig' => 'Esta configuración PHP es usada por el froxlor-vhost y no puede ser borrada.',
'cannotdeletedefaultphpconfig' => 'Esta configuración PHP está establecida por defecto y no puede ser borrada.',
'passwordshouldnotbeusername' => 'La contraseña no debe ser la misma que el nombre de usuario.',
'no_phpinfo' => 'Lo sentimos, no puedo leer phpinfo()',
'moveofcustomerfailed' => 'El cambio del cliente al administrador/revendedor seleccionado ha fallado. Tenga en cuenta que todos los demás cambios en el cliente se aplicaron con éxito en esta etapa.
Mensaje de error: %s',
'domain_import_error' => 'Se ha producido el siguiente error al importar dominios: %s',
'fcgidandphpfpmnogoodtogether' => 'FCGID y PHP-FPM no pueden ser activados al mismo tiempo',
'no_apcuinfo' => 'No hay información de caché disponible. APCu no parece estar ejecutándose.',
'no_opcacheinfo' => 'No hay información de caché disponible. OPCache no parece estar ejecutándose.',
'nowildcardwithletsencrypt' => 'Let\'s Encrypt no puede manejar dominios comodín usando ACME en froxlor (requiere dns-challenge), lo siento. Por favor, establezca el ServerAlias a WWW o desactívelo completamente.',
'customized_version' => 'Parece que tu instalación de froxlor ha sido modificada, no hay soporte, lo sentimos.',
'autoupdate_0' => 'Error desconocido',
'autoupdate_1' => 'El ajuste de PHP allow_url_fopen está desactivado. Autoupdate necesita que este ajuste esté habilitado en php.ini',
'autoupdate_2' => 'Extensión PHP zip no encontrada, por favor asegúrese de que está instalada y activada',
'autoupdate_4' => 'El archivo froxlor no pudo ser almacenado en el disco :(',
'autoupdate_5' => 'version.froxlor.org devolvió valores inaceptables :(',
'autoupdate_6' => 'Whoops, no había una versión (válida) dada para descargar :(',
'autoupdate_7' => 'No se pudo encontrar el archivo descargado :(',
'autoupdate_8' => 'No se ha podido extraer el archivo :(',
'autoupdate_9' => 'El archivo descargado no ha pasado la comprobación de integridad. Por favor, intente actualizar de nuevo.',
'autoupdate_10' => 'La versión mínima soportada de PHP es 7.4.0',
'autoupdate_11' => 'Webupdate está desactivado',
'mailaccistobedeleted' => 'Otra cuenta con el mismo nombre (%s) está siendo eliminada y por lo tanto no puede ser añadida en este momento.',
'dns_domain_nodns' => 'DNS no está habilitado para este dominio',
'dns_content_empty' => 'No hay contenido',
'dns_content_invalid' => 'El contenido DNS no es válido',
'dns_arec_noipv4' => 'No se ha proporcionado una dirección IP válida para el registro A.',
'dns_aaaarec_noipv6' => 'No se ha indicado una dirección IP válida para el registro AAAA',
'dns_mx_prioempty' => 'Prioridad MX no válida',
'dns_mx_needdom' => 'El valor de contenido MX debe ser un nombre de dominio válido.',
'dns_mx_noalias' => 'El valor de contenido MX no puede ser una entrada CNAME.',
'dns_cname_invaliddom' => 'Nombre de dominio no válido para el registro CNAME',
'dns_cname_nomorerr' => 'Ya existe un resource-record con el mismo nombre de registro. No se puede utilizar como CNAME.',
'dns_other_nomorerr' => 'Ya existe un registro CNAME con el mismo nombre de registro. No se puede utilizar para otro tipo.',
'dns_ns_invaliddom' => 'Nombre de dominio no válido para el registro NS',
'dns_srv_prioempty' => 'Prioridad SRV no válida',
'dns_srv_invalidcontent' => 'Contenido SRV no válido, debe contener los campos weight, port y target, p.ej: 5 5060 sipserver.ejemplo.com.',
'dns_srv_needdom' => 'El valor SRV target debe ser un nombre de dominio válido',
'dns_srv_noalias' => 'El valor SRV-target no puede ser una entrada CNAME.',
'dns_duplicate_entry' => 'El registro ya existe',
'dns_notfoundorallowed' => 'Dominio no encontrado o sin permiso',
'domain_nopunycode' => 'No debe especificar punycode (IDNA). El dominio se convertirá automáticamente',
'dns_record_toolong' => 'Los registros/etiquetas sólo pueden tener un máximo de 63 caracteres',
'noipportgiven' => 'No se ha especificado IP/puerto',
'jsonextensionnotfound' => 'Esta función requiere la extensión php json.',
'cannotdeletesuperadmin' => 'El primer administrador no puede ser eliminado.',
'no_wwwcnamae_ifwwwalias' => 'No se puede establecer un registro CNAME para "www" porque el dominio está configurado para generar un alias www. Cambie la configuración a "Sin alias" o "Alias comodín".',
'local_group_exists' => 'El grupo indicado ya existe en el sistema.',
'local_group_invalid' => 'El nombre del grupo no es válido',
'invaliddnsforletsencrypt' => 'El DNS del dominio no incluye ninguna de las direcciones IP seleccionadas. La generación del certificado Let\'s Encrypt no es posible.',
'notallowedphpconfigused' => 'Intentando usar php-config que no está asignado al cliente',
'pathmustberelative' => 'El usuario no tiene permiso para especificar directorios fuera del directorio personal del cliente. Por favor, especifique una ruta relativa (sin /).',
'mysqlserverstillhasdbs' => 'No se puede eliminar el servidor de base de datos de la lista de clientes permitidos, ya que todavía hay bases de datos en él.',
'domaincannotbeedited' => 'No se le permite editar la %s dominio.',
'invalidcronjobintervalvalue' => 'El intervalo de Cronjob debe ser uno de los siguientes: %s'
],
'extras' => [
'description' => 'Aquí puede añadir algunos extras, por ejemplo protección de directorios. El sistema necesitará algún tiempo para aplicar la nueva configuración después de cada cambio.',
'directoryprotection_add' => 'Añadir protección de directorio',
'view_directory' => 'Mostrar el contenido del directorio',
'pathoptions_add' => 'Añadir opciones de ruta',
'directory_browsing' => 'Exploración del contenido del directorio',
'pathoptions_edit' => 'Editar opciones de ruta',
'error404path' => '404',
'error403path' => '403',
'error500path' => '500',
'error401path' => '401',
'errordocument404path' => 'DocumentoError 404',
'errordocument403path' => 'DocumentoError 403',
'errordocument500path' => 'DocumentoError 500',
'errordocument401path' => 'DocumentoError 401',
'execute_perl' => 'Ejecutar perl/CGI',
'htpasswdauthname' => 'Razón de autenticación (AuthName)',
'directoryprotection_edit' => 'Editar protección de directorio',
'path_protection_label' => 'Importante',
'path_protection_info' => 'Le recomendamos encarecidamente que proteja la ruta indicada, consulte "Extras" -> "Protección de directorios".'
],
'ftp' => [
'description' => 'Aquí puede crear y modificar sus cuentas FTP. Los cambios se realizan al instante y las cuentas pueden utilizarse inmediatamente.',
'account_add' => 'Crear cuenta',
'account_edit' => 'Editar cuenta ftp',
'editpassdescription' => 'Establezca una nueva contraseña o déjela en blanco para no cambiarla.'
],
'gender' => [
'title' => 'Título',
'male' => 'Sr.',
'female' => 'Sra.',
'undef' => ''
],
'imprint' => 'Aviso legal',
'index' => [
'customerdetails' => 'Datos del cliente',
'accountdetails' => 'Datos de la cuenta'
],
'integrity_check' => [
'databaseCharset' => 'Juego de caracteres de la base de datos (debe ser UTF-8)',
'domainIpTable' => 'Referencias IP <-> dominio',
'subdomainSslRedirect' => 'Bandera falsa SSL-redirect para dominios no SSL',
'froxlorLocalGroupMemberForFcgidPhpFpm' => 'froxlor-usuario en los grupos de clientes (para FCGID/php-fpm)',
'webserverGroupMemberForFcgidPhpFpm' => 'Webserver-user en los grupos de clientes (para FCGID/php-fpm)',
'subdomainLetsencrypt' => 'Los dominios principales sin puerto SSL asignado no tienen subdominios con redirección SSL activa'
],
'logger' => [
'date' => 'Fecha',
'type' => 'Tipo',
'action' => 'Acción',
'user' => 'Usuario',
'truncate' => 'Registro vacío',
'reseller' => 'Revendedor',
'admin' => 'Administrador',
'cron' => 'Cronjob',
'login' => 'Inicio de sesión',
'intern' => 'Interno',
'unknown' => 'Desconocido'
],
'login' => [
'username' => 'Nombre de usuario',
'password' => 'Contraseña',
'language' => 'Idioma',
'login' => 'Inicio de sesión',
'logout' => 'Cierre de sesión',
'profile_lng' => 'Idioma del perfil',
'welcomemsg' => 'Inicie sesión para acceder a su cuenta.',
'forgotpwd' => '¿Ha olvidado su contraseña?',
'presend' => 'Restablecer contraseña',
'email' => 'Correo electrónico',
'remind' => 'Restablecer mi contraseña',
'usernotfound' => 'Usuario no encontrado',
'backtologin' => 'Volver al inicio de sesión',
'combination_not_found' => 'No se ha encontrado la combinación de usuario y dirección de correo electrónico.',
'2fa' => 'Autenticación de dos factores (2FA)',
'2facode' => 'Introduzca el código 2FA'
],
'mails' => [
'pop_success' => [
'mailbody' => 'Hola,\\nsu cuenta de correo {EMAIL} configurado correctamente.\\nEste es un correo creado\\nautomáticamente, ¡por favor no conteste!\\nSu atentamente, su administrador',
'subject' => 'Cuenta de correo configurada correctamente'
],
'createcustomer' => [
'mailbody' => 'Hola {SALUTATION}, aquí están los datos de su cuenta: Nombre de usuario: {USERNAME}: {PASSWORD}, su administrador.',
'subject' => 'Información de la cuenta'
],
'pop_success_alternative' => [
'mailbody' => 'Hola {SALUTATION}, su cuenta de correo {EMAIL} se ha configurado correctamente. Su contraseña es {PASSWORD}. Este es un correo creado automáticamente, por favor no conteste. Atentamente, su administrador.',
'subject' => 'Cuenta de correo configurada correctamente'
],
'password_reset' => [
'subject' => 'Restablecer contraseña',
'mailbody' => 'Hola {SALUTATION}, aquí está su enlace para establecer una nueva contraseña. Este enlace es válido durante las próximas 24 horas. {LINK}, su administrador.'
],
'new_database_by_customer' => [
'subject' => '[Nueva base de datos creada',
'mailbody' => 'Hola {CUST_NAME},
acabas de añadir una nueva base de datos. Aquí está la información introducida:
Nombre de base de datos: {DB_NAME}
Contraseña: {DB_PASS}
Descripción: {DB_DESC}
Nombre de host de base de datos: {DB_SRV}
phpMyAdmin: {PMA_URI}
Atentamente, su administrador'
],
'new_ftpaccount_by_customer' => [
'subject' => 'Nuevo usuario ftp creado',
'mailbody' => 'Hola {CUST_NAME}
acabas de añadir un nuevo usuario ftp. Aquí está la información introducida:
Nombre de usuario: {USR_NAME}
Contraseña: {USR_PASS}
Ruta: {USR_PATH}
Atentamente, su administrador'
],
'trafficmaxpercent' => [
'mailbody' => 'Estimado {SALUTATION}, ha utilizado {TRAFFICUSED} del {MAX_PERCENT} de su {TRAFFIC} disponible de tráfico.',
'subject' => 'Alcanzando su límite de tráfico'
],
'diskmaxpercent' => [
'mailbody' => 'Estimado {SALUTATION}, ha utilizado el {DISKUSED} de su {DISKAVAILABLE} disponible de espacio en disco. Esto es más del {MAX_PERCENT}.',
'subject' => 'Alcanzando el límite de espacio en disco'
],
'2fa' => [
'mailbody' => 'Hola, su código de acceso 2FA es..: {CODE}. Este es un correo creado automáticamente, por favor no responda. Atentamente, su administrador.',
'subject' => 'froxlor - Código 2FA'
]
],
'menue' => [
'main' => [
'main' => 'Principal',
'changepassword' => 'Cambiar contraseña',
'changelanguage' => 'Cambiar idioma',
'username' => 'Iniciar sesión como ',
'changetheme' => 'Cambiar tema',
'apihelp' => 'Ayuda API',
'apikeys' => 'Claves de la API'
],
'email' => [
'email' => 'Correo electrónico',
'emails' => 'Direcciones',
'webmail' => 'Correo web',
'emailsoverview' => 'Vista general de dominios de correo electrónico'
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Bases de datos',
'phpmyadmin' => 'phpMyAdmin'
],
'domains' => [
'domains' => 'Dominios',
'settings' => 'Vista general de dominios'
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Cuentas',
'webftp' => 'WebFTP'
],
'extras' => [
'extras' => 'Extras',
'directoryprotection' => 'Protección de directorios',
'pathoptions' => 'Opciones de ruta',
'export' => 'Exportación de datos'
],
'traffic' => [
'traffic' => 'Tráfico',
'current' => 'Mes en curso',
'overview' => 'Tráfico total'
],
'phpsettings' => [
'maintitle' => 'Configuraciones PHP',
'fpmdaemons' => 'Versiones de PHP-FPM'
],
'logger' => [
'logger' => 'Registro del sistema'
]
],
'message' => [
'norecipients' => 'No se ha enviado ningún correo electrónico porque no hay destinatarios en la base de datos',
'success' => 'Mensaje enviado correctamente a los destinatarios de %s',
],
'mysql' => [
'databasename' => 'Usuario/Nombre de la base de datos',
'databasedescription' => 'Descripción de la base de datos',
'database_create' => 'Crear base de datos',
'description' => 'Aquí puede crear y modificar sus bases de datos MySQL. Los cambios se realizan al instante y la base de datos se puede utilizar inmediatamente. En el menú de la izquierda encontrará la herramienta phpMyAdmin con la que puede administrar fácilmente su base de datos.
Para utilizar sus bases de datos en sus propios scripts php utilice los siguientes ajustes: (¡Los datos en cursiva tienen que cambiarse por los equivalentes que haya escrito!) Nombre de host: Nombre de usuario: databasename Contraseña: la contraseña que hayas elegido Base de datos: databasename',
'mysql_server' => 'Servidor MySQL',
'database_edit' => 'Editar base de datos',
'size' => 'Tamaño',
'privileged_user' => 'Usuario privilegiado de la base de datos',
'privileged_passwd' => 'Contraseña para usuario privilegiado',
'unprivileged_passwd' => 'Contraseña para usuario sin privilegios',
'mysql_ssl_ca_file' => 'Certificado del servidor SSL',
'mysql_ssl_verify_server_certificate' => 'Verificar certificado de servidor SSL'
],
'opcacheinfo' => [
'generaltitle' => 'Información general',
'resetcache' => 'Restablecer OPcache',
'version' => 'Versión de OPCache',
'phpversion' => 'Versión PHP',
'runtimeconf' => 'Configuración de tiempo de ejecución',
'start' => 'Hora de inicio',
'lastreset' => 'Último reinicio',
'oomrestarts' => 'Recuento de reinicios OOM',
'hashrestarts' => 'Recuento de reinicios Hash',
'manualrestarts' => 'Recuento de reinicios manuales',
'hitsc' => 'Número de aciertos',
'missc' => 'Faltas',
'blmissc' => 'Lista negra',
'status' => 'Estado',
'never' => 'nunca',
'enabled' => 'OPcache activado',
'cachefull' => 'Caché llena',
'restartpending' => 'Reinicio pendiente',
'restartinprogress' => 'Reinicio en curso',
'cachedscripts' => 'Recuento de scripts en caché',
'memusage' => 'Uso de memoria',
'totalmem' => 'Memoria total',
'usedmem' => 'Memoria utilizada',
'freemem' => 'Memoria libre',
'wastedmem' => 'Memoria desperdiciada',
'maxkey' => 'Teclas máximas',
'usedkey' => 'Teclas usadas',
'wastedkey' => 'Teclas desperdiciadas',
'strinterning' => 'Intercalación de cadenas',
'strcount' => 'Recuento de cadenas',
'keystat' => 'Estadística de claves en caché',
'used' => 'Usado',
'free' => 'Libre',
'blacklist' => 'Lista negra',
'novalue' => 'sin valor',
'true' => 'verdadero',
'false' => 'falso',
'funcsavail' => 'Funciones disponibles'
],
'panel' => [
'edit' => 'Editar',
'delete' => 'Eliminar',
'create' => 'Crear',
'save' => 'Guardar',
'yes' => 'Sí',
'no' => 'No',
'emptyfornochanges' => 'vacío para ningún cambio',
'emptyfordefault' => 'vacío para valores por defecto',
'path' => 'Ruta',
'toggle' => 'Conmutar',
'next' => 'Siguiente',
'dirsmissing' => '¡No se puede encontrar o leer el directorio!',
'unlimited' => '∞',
'urloverridespath' => 'URL (anula la ruta)',
'pathorurl' => 'Ruta o URL',
'ascending' => 'ascendente',
'descending' => 'descendente',
'search' => 'Buscar en',
'used' => 'utilizada',
'translator' => 'Traductor',
'reset' => 'Descartar cambios',
'pathDescription' => 'Si el directorio no existe, se creará automáticamente.',
'pathDescriptionEx' => '
Nota: La ruta / no está permitida debido a la configuración administrativa, se establecerá automáticamente en /elegido.subdominio.tld/ si no se establece en otro directorio.',
'pathDescriptionSubdomain' => 'Si el directorio no existe, se creará automáticamente.
Si desea una redirección a otro dominio, esta entrada debe empezar por http:// o https://.
Si la URL termina en / se considera una carpeta, si no, se trata como archivo.',
'back' => 'Volver',
'reseller' => 'revendedor',
'admin' => 'admin',
'customer' => 'cliente/s',
'send' => 'enviar',
'nosslipsavailable' => 'Actualmente no hay combinaciones ip/puerto ssl para este servidor',
'backtooverview' => 'Volver a la vista general',
'dateformat' => 'AAAA-MM-DD',
'dateformat_function' => 'Y-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Por defecto',
'never' => 'Nunca',
'active' => 'Activo',
'please_choose' => 'Seleccione una opción',
'allow_modifications' => 'Permitir modificaciones',
'megabyte' => 'MegaByte',
'not_supported' => 'No soportado en: ',
'view' => 'ver',
'toomanydirs' => 'Demasiados subdirectorios. Volver a la selección manual de ruta.',
'abort' => 'Abortar',
'not_activated' => 'no activado',
'off' => 'desactivado',
'options' => 'Opciones',
'neverloggedin' => 'Aún no se ha iniciado sesión',
'descriptionerrordocument' => 'Puede ser una URL, la ruta a un archivo o simplemente una cadena rodeada de " " Déjelo vacío para utilizar el valor predeterminado del servidor.',
'unlock' => 'Desbloquear',
'theme' => 'Tema',
'variable' => 'Variable',
'description' => 'Descripción',
'cancel' => 'Cancelar',
'ssleditor' => 'Configuración SSL para este dominio',
'ssleditor_infoshared' => 'Actualmente usando el certificado del dominio padre',
'ssleditor_infoglobal' => 'Actualmente usando certificado global',
'dashboard' => 'Panel de control',
'assigned' => 'Asignado',
'available' => 'Disponible',
'news' => 'Noticias',
'newsfeed_disabled' => 'La fuente de noticias está desactivada. Haga clic en el icono de edición para ir a la configuración.',
'ftpdesc' => 'Descripción de FTP',
'letsencrypt' => 'Usando Let\'s encrypt',
'set' => 'Aplicar',
'shell' => 'Shell',
'backuppath' => [
'title' => 'Ruta de destino de la copia de seguridad',
'description' => 'Esta es la ruta donde se almacenarán las copias de seguridad. Si se selecciona la copia de seguridad de los datos web, todos los archivos de la carpeta de inicio se almacenan excluyendo la carpeta de copia de seguridad especificada aquí.'
],
'none_value' => 'Ninguno',
'viewlogs' => 'Ver archivos de registro',
'not_configured' => 'El sistema aún no está configurado. Pulse aquí para ir a la configuración.',
'ihave_configured' => 'He configurado los servicios',
'system_is_configured' => 'El sistema ya está configurado',
'settings_before_configuration' => 'Por favor, asegúrese de ajustar la configuración antes de configurar los servicios aquí',
'image_field_delete' => 'Borrar la imagen actual existente',
'usage_statistics' => 'Uso de recursos',
'security_question' => 'Cuestión de seguridad',
'listing_empty' => 'No se han encontrado entradas',
'unspecified' => 'sin especificar',
'settingsmode' => 'Modo',
'settingsmodebasic' => 'Básico',
'settingsmodeadvanced' => 'Avanzado',
'settingsmodetoggle' => 'Haga clic para cambiar el modo',
'modalclose' => 'Cerrar',
'managetablecolumnsmodal' => [
'title' => 'Administrar columnas de la tabla',
'description' => 'Aquí puede personalizar las columnas visibles'
],
'mandatoryfield' => 'Campo obligatorio',
'select_all' => 'Seleccionar todo',
'unselect_all' => 'Deseleccionar todo',
'searchtablecolumnsmodal' => [
'title' => 'Buscar en campos',
'description' => 'Seleccione el campo en el que desea buscar'
],
'upload_import' => 'Cargar e importar'
],
'phpfpm' => [
'vhost_httpuser' => 'Usuario local a usar para PHP-FPM (froxlor vHost)',
'vhost_httpgroup' => 'Grupo local a usar para PHP-FPM (froxlor vHost)',
'ownvhost' => [
'title' => 'Habilitar PHP-FPM para el vHost de froxlor',
'description' => 'Si está habilitado, froxlor también se ejecutará bajo un usuario local'
],
'use_mod_proxy' => [
'title' => 'Usar mod_proxy / mod_proxy_fcgi',
'description' => 'Debe activarse cuando se use Debian 9.x (Stretch) o posterior. Activar para usar php-fpm via mod_proxy_fcgi. Requiere al menos apache-2.4.9'
],
'ini_flags' => 'Introduzca posibles php_flagspara php.ini. Una entrada por línea',
'ini_values' => 'Introduzca posibles php_valuespara php.ini. Una entrada por línea',
'ini_admin_flags' => 'Introduzca posibles php_admin_flagspara php.ini. Una entrada por línea',
'ini_admin_values' => 'Introduzca posibles php_admin_valuespara php.ini. Una entrada por línea'
],
'privacy' => 'Política de privacidad',
'pwdreminder' => [
'success' => 'Restablecimiento de contraseña solicitado con éxito. Por favor, siga las instrucciones del correo electrónico que ha recibido.',
'notallowed' => 'Usuario desconocido o el restablecimiento de contraseña está desactivado',
'changed' => 'Su contraseña se ha actualizado correctamente. Ya puede iniciar sesión con su nueva contraseña.',
'wrongcode' => 'Lo sentimos, su código de activación no existe o ya ha caducado.',
'choosenew' => 'Establecer nueva contraseña'
],
'question' => [
'question' => 'Cuestión de seguridad',
'admin_customer_reallydelete' => '¿Realmente desea eliminar el cliente %s? No se puede deshacer.',
'admin_domain_reallydelete' => '¿Realmente quieres borrar el dominio %s?',
'admin_domain_reallydisablesecuritysetting' => '¿Realmente quieres desactivar esta configuración de seguridad OpenBasedir?',
'admin_admin_reallydelete' => '¿Realmente quieres borrar el admin %s? Todos los clientes y dominios serán reasignados a tu cuenta.',
'admin_template_reallydelete' => '¿Realmente quieres borrar la plantilla \'%s\'?',
'domains_reallydelete' => '¿Realmente quieres borrar el dominio %s?',
'email_reallydelete' => '¿Realmente quieres borrar la dirección de email %s?',
'email_reallydelete_account' => '¿Realmente quieres borrar la cuenta de correo de %s?',
'email_reallydelete_forwarder' => '¿Realmente quieres borrar el forwarder %s?',
'extras_reallydelete' => '¿Realmente quieres borrar la protección de directorio de %s?',
'extras_reallydelete_pathoptions' => '¿Realmente quieres borrar las opciones de ruta de %s?',
'ftp_reallydelete' => '¿Realmente quieres borrar la cuenta FTP %s?',
'mysql_reallydelete' => '¿Realmente quieres borrar la base de datos %s? Esto no se puede deshacer.',
'admin_configs_reallyrebuild' => '¿Realmente quieres reconstruir todos los archivos de configuración?',
'admin_customer_alsoremovefiles' => '¿Quitar también los archivos de usuario?',
'admin_customer_alsoremovemail' => '¿Eliminar completamente los datos de correo electrónico del sistema de archivos?',
'admin_customer_alsoremoveftphomedir' => '¿Quitar también el directorio del usuario FTP?',
'admin_ip_reallydelete' => '¿Realmente quieres borrar la dirección IP %s?',
'admin_domain_reallydocrootoutofcustomerroot' => '¿Estás seguro de que quieres que la raíz del documento para este dominio no esté dentro de la raíz del cliente?',
'admin_counters_reallyupdate' => '¿Realmente quiere recalcular el uso de recursos?',
'admin_cleartextmailpws_reallywipe' => '¿Realmente quiere borrar todas las contraseñas no encriptadas de las cuentas de correo de la tabla mail_users? Esto no se puede revertir. La opción de almacenar las contraseñas de correo electrónico sin cifrar también se desactivará.',
'logger_reallytruncate' => '¿Realmente quieres truncar la tabla "%s"?',
'admin_quotas_reallywipe' => '¿Realmente desea borrar todas las cuotas de la tabla mail_users? Esto no se puede revertir.',
'admin_quotas_reallyenforce' => '¿Realmente desea aplicar la cuota por defecto a todos los usuarios? Esto no se puede revertir.',
'phpsetting_reallydelete' => '¿Realmente desea eliminar esta configuración? Todos los dominios que usen esta configuración serán cambiados a la configuración por defecto.',
'fpmsetting_reallydelete' => '¿Realmente desea eliminar esta configuración de php-fpm? Todas las configuraciones de php que utilicen estos ajustes se cambiarán a la configuración por defecto.',
'customer_reallyunlock' => '¿Realmente quieres desbloquear al cliente %s?',
'admin_integritycheck_reallyfix' => '¿Realmente quieres intentar arreglar todos los problemas de integridad de la base de datos automáticamente?',
'plan_reallydelete' => '¿De verdad quieres eliminar el plan de alojamiento %s?',
'apikey_reallydelete' => '¿Realmente quieres borrar esta api-key?',
'apikey_reallyadd' => '¿Realmente quieres crear una nueva api-key?',
'dnsentry_reallydelete' => '¿Realmente desea eliminar esta entrada de zona?',
'certificate_reallydelete' => '¿Realmente quieres borrar este certificado?',
'cache_reallydelete' => '¿Realmente quieres borrar la caché?'
],
'redirect_desc' => [
'rc_default' => 'por defecto',
'rc_movedperm' => 'movido permanentemente',
'rc_found' => 'encontrado',
'rc_seeother' => 'ver otro',
'rc_tempred' => 'redirección temporal'
],
'serversettings' => [
'session_timeout' => [
'title' => 'Tiempo de espera de la sesión',
'description' => '¿Cuánto tiempo tiene que estar inactivo un usuario para que se invalide la sesión (segundos)?'
],
'accountprefix' => [
'title' => 'Prefijo de cliente',
'description' => '¿Qué prefijo deben tener las cuentas de cliente?'
],
'mysqlprefix' => [
'title' => 'Prefijo SQL',
'description' => '¿Qué prefijo deben tener las cuentas MySQL? Utilice "RANDOM" como valor para obtener un prefijo aleatorio de 3 dígitos Utilice "DBNAME" como valor, se utiliza un campo de nombre de base de datos junto con el nombre del cliente como prefijo.'
],
'ftpprefix' => [
'title' => 'Prefijo FTP',
'description' => '¿Qué prefijo deben tener las cuentas ftp? Si cambias esto, también tendrás que cambiar la consulta SQL Quota en el archivo de configuración del servidor FTP en caso de que lo utilices. '
],
'documentroot_prefix' => [
'title' => 'Directorio de inicio',
'description' => '¿Dónde deben almacenarse todos los directorios de inicio?'
],
'logfiles_directory' => [
'title' => 'Directorio Logfiles',
'description' => '¿Dónde deben almacenarse todos los archivos de registro?'
],
'logfiles_script' => [
'title' => 'Script personalizado al que enviar los archivos de registro',
'description' => 'Puede especificar un script aquí y utilizar los marcadores de posición {LOGFILE}, {DOMAIN} y {CUSTOMER} si es necesario. En caso de que desee utilizarlo, deberá activar también la opción Pipe webserver logfiles. No es necesario el prefijo pipe.'
],
'logfiles_format' => [
'title' => 'Formato de registro de acceso',
'description' => 'Introduzca aquí un formato de registro personalizado de acuerdo con las especificaciones de su servidor web, deje vacío por defecto. Dependiendo de su formato, la cadena debe estar entre comillas. Si se utiliza con nginx, se verá como log_formatfrx_custom {CONFIGURED_VALUE}. Si se utiliza con Apache, se verá como LogFormat {CONFIGURED_VALUE} frx_custom. Atención: No se comprobará si el código contiene errores. Si contiene errores, ¡el servidor web podría no volver a arrancar!'
],
'logfiles_type' => [
'title' => 'Tipo de registro de acceso',
'description' => 'Elija aquí entre combinado o vhost_combinado.'
],
'logfiles_piped' => [
'title' => 'Canalizar los archivos de registro del servidor web al script especificado (ver arriba)',
'description' => 'Si utiliza un script personalizado para los archivos de registro, deberá activarlo para que se ejecute.'
],
'ipaddress' => [
'title' => 'Dirección IP',
'description' => '¿Cuál es la dirección IP principal de este servidor?'
],
'hostname' => [
'title' => 'Nombre de host',
'description' => '¿Cuál es el nombre de host de este servidor?'
],
'apachereload_command' => [
'title' => 'Comando de recarga del servidor web',
'description' => '¿Cuál es el comando del servidor web para recargar los archivos de configuración?'
],
'bindenable' => [
'title' => 'Habilitar servidor de nombres',
'description' => 'Aquí se puede habilitar y deshabilitar globalmente el servidor de nombres.'
],
'bindconf_directory' => [
'title' => 'Directorio de configuración del servidor DNS',
'description' => '¿Dónde deben guardarse los archivos de configuración del servidor DNS?'
],
'bindreload_command' => [
'title' => 'Comando de recarga del servidor DNS',
'description' => '¿Cuál es el comando para recargar el demonio del servidor DNS?'
],
'vmail_uid' => [
'title' => 'Mails-UID',
'description' => '¿Qué UserID deben tener los correos?'
],
'vmail_gid' => [
'title' => 'Mails-GID',
'description' => '¿Qué GroupID debe tener Mails?'
],
'vmail_homedir' => [
'title' => 'Mails-homedir',
'description' => '¿Dónde deberían almacenarse todos los correos?'
],
'adminmail' => [
'title' => 'Remitente',
'description' => '¿Cuál es la dirección del remitente para los emails enviados desde el Panel?'
],
'phpmyadmin_url' => [
'title' => 'URL de phpMyAdmin',
'description' => '¿Cuál es la URL de phpMyAdmin? (debe empezar por http(s)://)'
],
'webmail_url' => [
'title' => 'URL de Webmail',
'description' => '¿Cuál es la URL de webmail? (debe empezar por http(s)://)'
],
'webftp_url' => [
'title' => 'URL de WebFTP',
'description' => '¿Cuál es la URL de WebFTP? (debe empezar por http(s)://)'
],
'language' => [
'description' => '¿Cuál es el lenguaje estándar de su servidor?'
],
'maxloginattempts' => [
'title' => 'Número máximo de intentos de inicio de sesión',
'description' => 'Número máximo de intentos de inicio de sesión tras los cuales se desactiva la cuenta.'
],
'deactivatetime' => [
'title' => 'Tiempo de desactivación',
'description' => 'Tiempo (seg.) que se desactiva una cuenta después de demasiados intentos de inicio de sesión.'
],
'pathedit' => [
'title' => 'Tipo de entrada de ruta',
'description' => '¿Debe seleccionarse una ruta mediante un menú desplegable o mediante un campo de entrada?'
],
'nameservers' => [
'title' => 'Servidores de nombres',
'description' => 'Una lista separada por comas que contiene los nombres de host de todos los servidores de nombres. El primero será el principal.'
],
'mxservers' => [
'title' => 'Servidores MX',
'description' => 'Una lista separada por comas que contiene un par de un número y un nombre de host separados por espacios en blanco (por ejemplo, \'10 mx.ejemplo.com\') que contiene los servidores mx.'
],
'paging' => [
'title' => 'Entradas por página',
'description' => '¿Cuántas entradas se mostrarán en una página? (0 = desactivar la paginación)'
],
'defaultip' => [
'title' => 'IP/Puerto por defecto',
'description' => 'Seleccione todas las direcciones IP que desee utilizar como predeterminadas para los nuevos dominios.'
],
'defaultsslip' => [
'title' => 'IP/Puerto SSL por defecto',
'description' => 'Seleccione todas las direcciones IP con ssl habilitado que desee utilizar por defecto para los nuevos dominios'
],
'phpappendopenbasedir' => [
'title' => 'Rutas a añadir a OpenBasedir',
'description' => 'Estas rutas (separadas por dos puntos) se añadirán a la declaración OpenBasedir en cada contenedor vHost.'
],
'natsorting' => [
'title' => 'Usar ordenación humana natural en la vista de lista',
'description' => 'Ordena las listas como web1 -> web2 -> web11 en lugar de web1 -> web11 -> web2.'
],
'deactivateddocroot' => [
'title' => 'Docroot para usuarios desactivados',
'description' => 'Cuando un usuario es desactivado esta ruta es usada como su docroot. Dejar vacío para no crear ningún vHost.'
],
'mailpwcleartext' => [
'title' => 'Guardar también las contraseñas de las cuentas de correo sin cifrar en la base de datos',
'description' => 'Si esta opción está activada, todas las contraseñas serán guardadas sin encriptar (texto claro, legible para cualquiera con acceso a la base de datos) en la tabla mail_users. Active esta opción sólo si desea utilizar SASL.'
],
'ftpdomain' => [
'title' => 'Cuentas FTP @dominio',
'description' => 'Los clientes pueden crear cuentas FTP user@customerdomain?'
],
'mod_fcgid' => [
'title' => 'Activar FCGID',
'description' => 'Use esto para ejecutar PHP con la cuenta de usuario correspondiente.
Esto necesita una configuración especial del servidor web para Apache, vea FCGID - manual',
'configdir' => [
'title' => 'Directorio de configuración',
'description' => '¿Dónde deben guardarse todos los archivos de configuración fcgid? Si no utiliza un binario suexec autocompilado, que es la situación normal, esta ruta debe estar bajo /var/www/
NOTA: El contenido de esta carpeta se borra regularmente, así que evite almacenar datos allí manualmente.
'
],
'tmpdir' => [
'title' => 'Directorio temporal',
'description' => 'Dónde deben almacenarse los directorios temporales'
],
'starter' => [
'title' => 'Procesos por dominio',
'description' => '¿Cuántos procesos deberían iniciarse/permitirse por dominio? Se recomienda el valor 0 porque PHP gestionará entonces la cantidad de procesos por sí mismo de forma muy eficiente.'
],
'wrapper' => [
'title' => 'Wrapper en Vhosts',
'description' => 'Cómo debe incluirse el wrapper en los Vhosts'
],
'peardir' => [
'title' => 'Directorios globales de PEAR',
'description' => '¿Qué directorios globales de PEAR deben ser reemplazados en cada configuración php.ini? Los diferentes directorios deben estar separados por dos puntos.'
],
'maxrequests' => [
'title' => 'Número máximo de peticiones por dominio',
'description' => '¿Cuántas peticiones deben permitirse por dominio?'
],
'defaultini' => 'Configuración PHP por defecto para nuevos dominios',
'defaultini_ownvhost' => 'Configuración PHP por defecto para froxlor-vHost',
'idle_timeout' => [
'title' => 'Tiempo de espera',
'description' => 'Configuración de tiempo de espera para Mod FastCGI.'
]
],
'sendalternativemail' => [
'title' => 'Utilizar una dirección de correo electrónico alternativa',
'description' => 'Enviar la contraseña a una dirección diferente durante la creación de la cuenta de correo electrónico.'
],
'apacheconf_vhost' => [
'title' => 'Archivo/nombre de directorio de configuración del servidor web vHost',
'description' => '¿Dónde debe guardarse la configuración del vHost? Puede especificar aquí un archivo (todos los vHosts en un archivo) o un directorio (cada vHost en su propio archivo).'
],
'apacheconf_diroptions' => [
'title' => 'Archivo/nombre de directorio de configuración de diropciones del servidor web',
'description' => '¿Dónde debe almacenarse la configuración de diroptions? Puede especificar un archivo (todas las diropciones en un archivo) o directorio (cada diropción en su propio archivo) aquí.'
],
'apacheconf_htpasswddir' => [
'title' => 'Webserver htpasswd dirname',
'description' => '¿Dónde deben guardarse los archivos htpasswd para la protección de directorios?'
],
'mysql_access_host' => [
'title' => 'MySQL-Access-Hosts',
'description' => 'Una lista separada por comas de los hosts desde los que se debe permitir a los usuarios conectarse al servidor MySQL. Para permitir una subred es válida la sintaxis netmask o cidr.'
],
'webalizer_quiet' => [
'title' => 'Salida de Webalizer',
'description' => 'Verbosidad del programa webalizer'
],
'logger' => [
'enable' => 'Registro activado/desactivado',
'severity' => 'Nivel de registro',
'types' => [
'title' => 'Tipo(s) de registro',
'description' => 'Especifique los tipos de registro. Para seleccionar varios tipos, mantenga pulsada la tecla CTRL mientras selecciona. Los tipos de registro disponibles son: syslog, file, mysql'
],
'logfile' => [
'title' => 'Nombre del archivo de registro',
'description' => 'Sólo se utiliza si log-type incluye "file". Este archivo se creará en froxlor/logs/. Esta carpeta está protegida contra el acceso público.'
],
'logcron' => 'Log cronjobs',
'logcronoption' => [
'never' => 'Nunca',
'once' => 'Una vez',
'always' => 'Siempre'
]
],
'ssl' => [
'use_ssl' => [
'title' => 'Activar uso de SSL',
'description' => 'Marque esta opción si desea utilizar SSL para su servidor web'
],
'ssl_cert_file' => [
'title' => 'Ruta al certificado SSL',
'description' => 'Especifique la ruta incluyendo el nombre del archivo .crt o .pem (certificado principal)'
],
'openssl_cnf' => 'Valores predeterminados para crear el archivo Cert',
'ssl_key_file' => [
'title' => 'Ruta al archivo de claves SSL',
'description' => 'Especifique la ruta incluyendo el nombre de archivo para el archivo de clave privada (.key principalmente)'
],
'ssl_ca_file' => [
'title' => 'Ruta al certificado SSL CA (opcional)',
'description' => 'Autenticación del cliente, configure esto sólo si sabe lo que es.'
],
'ssl_cipher_list' => [
'title' => 'Configure los cifrados SSL permitidos',
'description' => 'Esta es una lista de cifradores que quiere (o no quiere) usar cuando hable SSL. Para una lista de cifradores y cómo incluirlos/excluirlos, vea las secciones "CIPHER LIST FORMAT" y "CIPHER STRINGS" en la página man de cifradores.
'
],
'apache24_ocsp_cache_path' => [
'title' => 'Apache 2.4: ruta a la caché de grapado OCSP',
'description' => 'Configura la caché utilizada para almacenar las respuestas OCSP que se incluyen en los handshakes TLS.'
],
'ssl_protocols' => [
'title' => 'Configurar la versión del protocolo TLS',
'description' => 'Esta es una lista de protocolos ssl que quiere (o no quiere) usar cuando use SSL. Nota: Es posible que algunos navegadores antiguos no admitan las versiones de protocolo más recientes.
El valor predeterminado es:
TLSv1.2
'
],
'tlsv13_cipher_list' => [
'title' => 'Configurar cifrados explícitos TLSv1.3 si se utilizan',
'description' => 'Esta es una lista de cifradores que desea (o no desea) utilizar cuando hable TLSv1.3. Para una lista de cifradores y como incluirlos/excluirlos, vea los documentos para TLSv1.3.
El valor por defecto es vacío'
]
],
'default_vhostconf' => [
'title' => 'Configuración vHost por defecto',
'description' => 'El contenido de este campo se incluirá en este contenedor ip/port vHost directamente. Puede utilizar las siguientes variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (si procede) Atención: No se comprobará si el código contiene errores. Si contiene errores, ¡el servidor web podría no volver a arrancar!'
],
'apache_globaldiropt' => [
'title' => 'Opciones de directorio para customer-prefix',
'description' => 'El contenido de este campo se incluirá en la configuración de apache 05_froxlor_dirfix_nofcgid.conf. Si está vacío, se usará el valor por defecto:
apache >=2.4 Require all granted AllowOverride All
apache <=2.2 Order allow,deny allow from all'
],
'default_vhostconf_domain' => [
'description' => 'El contenido de este campo se incluirá directamente en el contenedor vHost del dominio. Puede utilizar las siguientes variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (si procede) Atención: No se comprobará si el código contiene errores. Si contiene errores, ¡el servidor web podría no volver a arrancar!'
],
'decimal_places' => 'Número de decimales en la salida de tráfico/espacio web',
'selfdns' => [
'title' => 'Configuración dns del dominio del cliente'
],
'selfdnscustomer' => [
'title' => 'Permitir a los clientes editar la configuración dns del dominio'
],
'unix_names' => [
'title' => 'Utilizar nombres de usuario compatibles con UNIX',
'description' => 'Permite utilizar - y _ en los nombres de usuario si No'
],
'allow_password_reset' => [
'title' => 'Permitir que los clientes restablezcan la contraseña',
'description' => 'Los clientes pueden restablecer su contraseña y se les enviará un enlace de activación a su dirección de correo electrónico.'
],
'allow_password_reset_admin' => [
'title' => 'Permitir que los administradores restablezcan la contraseña',
'description' => 'Los administradores/revendedores pueden restablecer su contraseña y se les enviará un enlace de activación a su dirección de correo electrónico.'
],
'mail_quota' => [
'title' => 'Cuota de buzón',
'description' => 'La cuota por defecto para los nuevos buzones creados (MegaByte).'
],
'mail_quota_enabled' => [
'title' => 'Usar mailbox-quota para clientes',
'description' => 'Activar para utilizar cuotas en los buzones de correo. Por defecto es No ya que esto requiere una configuración especial.',
'removelink' => 'Haga clic aquí para borrar todas las cuotas de las cuentas de correo.',
'enforcelink' => 'Haga clic aquí para aplicar la cuota por defecto a todas las cuentas de correo de los usuarios.'
],
'index_file_extension' => [
'description' => '¿Qué extensión de archivo debe utilizarse para el archivo de índice en los directorios de clientes recién creados? Esta extensión de archivo se utilizará si usted o uno de sus administradores ha creado su propia plantilla de archivo de índice.',
'title' => 'Extensión de archivo para el archivo de índice en directorios de clientes recién creados'
],
'session_allow_multiple_login' => [
'title' => 'Permitir inicio de sesión múltiple',
'description' => 'Si se activa, un usuario puede iniciar sesión varias veces.'
],
'panel_allow_domain_change_admin' => [
'title' => 'Permitir mover dominios entre administradores',
'description' => 'Si está activado puede cambiar el admin de un dominio en domainsettings. Atención: Si un cliente no está asignado al mismo administrador que el dominio, ¡el administrador puede ver todos los demás dominios de ese cliente!'
],
'panel_allow_domain_change_customer' => [
'title' => 'Permitir mover dominios entre clientes',
'description' => 'Si está activado puedes cambiar el cliente de un dominio en domainsettings. Atención: froxlor cambia el documentroot al homedir por defecto del nuevo cliente (+ carpeta de dominio si está activado)'
],
'specialsettingsforsubdomains' => [
'description' => 'En caso afirmativo, estos ajustes personalizados de vHost se añadirán a todos los subdominios; en caso negativo, se eliminarán los ajustes especiales de subdominio.'
],
'panel_password_min_length' => [
'title' => 'Longitud mínima de contraseña',
'description' => 'Aquí puede establecer una longitud mínima para las contraseñas. 0\' significa que no se requiere longitud mínima.'
],
'system_store_index_file_subs' => [
'title' => 'Almacenar el fichero índice por defecto también en las nuevas subcarpetas',
'description' => 'Si se activa, el archivo de índice por defecto se almacena en cada ruta de subdominio recién creada (no si la carpeta ya existe).'
],
'adminmail_return' => [
'title' => 'Dirección de respuesta',
'description' => 'Defina una dirección de email como dirección de respuesta para los emails enviados por el panel.'
],
'adminmail_defname' => 'Nombre del remitente del e-mail del panel',
'stdsubdomainhost' => [
'title' => 'Subdominio estándar del cliente',
'description' => 'Qué nombre de host debe usarse para crear subdominios estándar para el cliente. Si está vacío, se utiliza el nombre de host del sistema.'
],
'awstats_path' => 'Ruta a AWStats \'awstats_buildstaticpages.pl\'',
'awstats_conf' => 'Ruta de configuración de AWStats',
'defaultttl' => 'TTL de dominio para bind en segundos (por defecto \'604800\' = 1 semana)',
'defaultwebsrverrhandler_enabled' => 'Habilitar documentos de error por defecto para todos los clientes',
'defaultwebsrverrhandler_err401' => [
'title' => 'Archivo/URL para error 401',
'description' => ''
],
'defaultwebsrverrhandler_err403' => [
'title' => 'Archivo/URL para error 403',
'description' => ''
],
'defaultwebsrverrhandler_err404' => 'Archivo/URL para error 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'Archivo/URL para error 500',
'description' => ''
],
'ftpserver' => [
'desc' => 'Si se selecciona pureftpd, los archivos .ftpquota para cuotas de usuario se crean y actualizan diariamente'
],
'customredirect_enabled' => [
'title' => 'Permitir redireccionamientos de clientes',
'description' => 'Permitir a los clientes elegir el código http-status para las redirecciones que se utilizarán'
],
'customredirect_default' => [
'title' => 'Redirección por defecto',
'description' => 'Establece el código de redirección por defecto que se utilizará si el cliente no lo establece por sí mismo'
],
'mail_also_with_mxservers' => 'Crear mail-, imap-, pop3- y smtp-"A record" también con MX-Servers set',
'froxlordirectlyviahostname' => 'Acceder a froxlor directamente a través del nombre de host',
'panel_password_regex' => [
'title' => 'Expresión regular para contraseñas',
'description' => 'Aquí puede establecer una expresión regular para la complejidad de las contraseñas. Empty = no specific requirement'
],
'mod_fcgid_ownvhost' => [
'title' => 'Habilitar FCGID para el vHost de froxlor',
'description' => 'Si está habilitado, froxlor también se ejecutará bajo un usuario local'
],
'perl' => [
'suexecworkaround' => [
'title' => 'Habilitar solución SuExec',
'description' => 'Habilitar sólo si los directorios del cliente no están dentro de la ruta apache suexec. Si está habilitado, froxlor generará un enlace simbólico desde el directorio del cliente habilitado para perl + /cgi-bin/ a la ruta dada. Tenga en cuenta que perl sólo funcionará en el subdirectorio de carpetas /cgi-bin/ y no en la carpeta en sí (¡como lo hace sin esta solución!)'
],
'suexeccgipath' => [
'title' => 'Ruta para los enlaces simbólicos de directorio habilitados para perl del cliente',
'description' => 'Sólo necesita configurar esto si la solución de SuExec está activada. ATENCIÓN: Asegúrese de que esta ruta está dentro de la ruta de suexec o de lo contrario esta solución es inútil.'
]
],
'awstats_awstatspath' => 'Ruta a AWStats \'awstats.pl\'.',
'awstats_icons' => [
'title' => 'Ruta a la carpeta de iconos de AWstats',
'description' => 'e.g. /usr/share/awstats/htdocs/icon/'
],
'login_domain_login' => 'Permitir login con dominios',
'perl_server' => [
'title' => 'Ubicación del socket del servidor Perl',
'description' => 'Puede encontrar una guía sencilla en: nginx.com'
],
'nginx_php_backend' => [
'title' => 'Nginx PHP backend',
'description' => 'aquí es donde el proceso PHP está escuchando peticiones de nginx, puede ser un socket unix de combinación ip:port *NO se usa con php-fpm'
],
'phpreload_command' => [
'title' => 'Comando PHP reload',
'description' => 'se usa para recargar el backend PHP si se usa alguno Por defecto: en blanco *NO se usa con php-fpm'
],
'phpfpm' => [
'title' => 'Habilitar php-fpm',
'description' => 'Esto necesita una configuración especial del servidor web ver manual PHP-FPM'
],
'phpfpm_settings' => [
'configdir' => 'Directorio de configuración de php-fpm',
'aliasconfigdir' => 'Directorio Alias de configuración de php-fpm',
'reload' => 'Comando de reinicio de php-fpm',
'pm' => 'Control del gestor de procesos (pm)',
'max_children' => [
'title' => 'Número de procesos hijo',
'description' => 'El número de procesos hijo a ser creados cuando pm está en \'static\' y el número máximo de procesos hijo a ser creados cuando pm está en \'dynamic/ondemand\' Equivalente a PHP_FCGI_CHILDREN'
],
'start_servers' => [
'title' => 'El número de procesos hijo creados al inicio',
'description' => 'Nota: Sólo se usa cuando pm está configurado como \'dynamic'
],
'min_spare_servers' => [
'title' => 'El número mínimo deseado de procesos de servidor inactivos',
'description' => 'Nota: Sólo se usa cuando pm es \'dynamic\' Nota: Obligatorio cuando pm es \'dynamic'
],
'max_spare_servers' => [
'title' => 'El número máximo deseado de procesos de servidor inactivos',
'description' => 'Nota: sólo se utiliza cuando pm tiene el valor "dynamic". Nota: obligatorio cuando pm tiene el valor "dynamic".'
],
'max_requests' => [
'title' => 'Peticiones por hijo antes de respawning',
'description' => 'Para un procesamiento infinito de peticiones especifique \'0\'. Equivalente a PHP_FCGI_MAX_REQUESTS.'
],
'idle_timeout' => [
'title' => 'Tiempo de espera',
'description' => 'Configuración de tiempo de espera para PHP FPM FastCGI.'
],
'ipcdir' => [
'title' => 'Directorio IPC FastCGI',
'description' => 'El directorio donde los sockets php-fpm serán almacenados por el servidor web. Este directorio debe ser legible para el servidor web.'
],
'limit_extensions' => [
'title' => 'Extensiones permitidas',
'description' => 'Limita las extensiones del script principal que FPM permitirá analizar. Esto puede evitar errores de configuración en el servidor web. Sólo debe limitar FPM a extensiones .php para evitar que usuarios maliciosos utilicen otras extensiones para ejecutar código php. Valor por defecto: .php'
],
'envpath' => 'Rutas a añadir al entorno PATH. Dejar vacío para ninguna variable de entorno PATH',
'override_fpmconfig' => 'Anular la configuración de FPM-daemon (pm, max_children, etc.)',
'override_fpmconfig_addinfo' => ' Sólo se usa si "Override FPM-daemon settings" está en "Yes"',
'restart_note' => 'Atención: La configuración no será revisada por errores. Si contiene errores, PHP-FPM podría no arrancar de nuevo.',
'custom_config' => [
'title' => 'Configuración personalizada',
'description' => 'Agregue configuración personalizada a cada instancia de versión de PHP-FPM, por ejemplo pm.status_path = /status para monitoreo. Las variables de abajo pueden ser usadas aquí. Atención: La configuración no será revisada por errores. Si contiene errores, ¡PHP-FPM podría no arrancar de nuevo!'
],
'allow_all_customers' => [
'title' => 'Asigne esta configuración a todos los clientes existentes',
'description' => 'Establézcalo en "true" si desea asignar esta configuración a todos los clientes existentes para que puedan utilizarla. Esta configuración no es permanente, pero puede ejecutarse varias veces.'
]
],
'report' => [
'report' => 'Habilitar el envío de informes sobre el uso de la web y el tráfico',
'webmax' => [
'title' => 'Nivel de advertencia en porcentaje para el espacio web',
'description' => 'Los valores válidos son 0 hasta 150. Establecer este valor a 0 desactiva este informe.'
],
'trafficmax' => [
'title' => 'Nivel de advertencia en porcentaje para el tráfico',
'description' => 'Los valores válidos son de 0 a 150. El valor 0 desactiva este informe.'
]
],
'dropdown' => 'Desplegable',
'manual' => 'Manual',
'default_theme' => 'Tema por defecto',
'validate_domain' => 'Validar nombres de dominio',
'diskquota_enabled' => '¿Cuota activada?',
'diskquota_repquota_path' => [
'description' => 'Ruta a repquota'
],
'diskquota_quotatool_path' => [
'description' => 'Ruta a quotatool'
],
'diskquota_customer_partition' => [
'description' => 'Partición en la que se almacenan los archivos del cliente'
],
'vmail_maildirname' => [
'title' => 'Nombre del maildir',
'description' => 'Directorio maildir en la cuenta del usuario. Normalmente \'Maildir\', en algunas implementaciones \'.maildir\', y directamente en el directorio del usuario si se deja en blanco.'
],
'catchall_enabled' => [
'title' => 'Utilizar Catchall',
'description' => '¿Quiere proporcionar a sus clientes la función catchall?'
],
'apache_24' => [
'title' => 'Utilice las modificaciones para Apache 2.4',
'description' => 'ATENCIÓN: utilícelo sólo si tiene instalada la versión 2.4 o superior de apache de lo contrario su servidor web no podrá arrancar'
],
'nginx_fastcgiparams' => [
'title' => 'Ruta al archivo fastcgi_params',
'description' => 'Especifique la ruta al archivo fastcgi_params de nginx incluyendo el nombre de archivo'
],
'documentroot_use_default_value' => [
'title' => 'Usar el nombre de dominio como valor por defecto para la ruta DocumentRoot',
'description' => 'Si está habilitado y la ruta DocumentRoot está vacía, el valor por defecto será el (sub)nombre de dominio.
Ejemplos: /var/clientes/nombre_cliente/ejemplo.com/ /var/clientes/nombre_cliente/subdominio.ejemplo.com/'
],
'panel_phpconfigs_hidesubdomains' => [
'title' => 'Ocultar subdominios en la vista general de configuración PHP',
'description' => 'Si se activa, los subdominios de los clientes no se mostrarán en la vista general de configuraciones PHP, sólo se mostrará el número de subdominios.
Nota: Esto sólo es visible si ha activado FCGID o PHP-FPM.'
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Ocultar subdominios estándar en la vista general de configuraciones PHP',
'description' => 'Si se activa, los subdominios estándar de los clientes no se mostrarán en la vista general de configuraciones php
Nota: Esto sólo es visible si ha activado FCGID o PHP-FPM.'
],
'passwordcryptfunc' => [
'title' => 'Elija el método de cifrado de contraseñas a utilizar'
],
'systemdefault' => 'Sistema por defecto',
'panel_allow_theme_change_admin' => 'Permitir a los administradores cambiar el tema',
'panel_allow_theme_change_customer' => 'Permitir a los clientes cambiar el tema',
'axfrservers' => [
'title' => 'Servidores AXFR',
'description' => 'Una lista separada por comas de direcciones IP permitidas para transferir (AXFR) zonas dns.'
],
'powerdns_mode' => [
'title' => 'Modo de funcionamiento PowerDNS',
'description' => 'Seleccione el modo PoweDNS: Nativo para no replicación (Predeterminado) / Maestro si se necesita replicación DNS.'
],
'customerssl_directory' => [
'title' => 'Webserver customer-ssl certificates-directory',
'description' => '¿Dónde deben crearse los certificados ssl especificados por el cliente?
NOTA: El contenido de esta carpeta se borra con regularidad, así que evite almacenar datos allí manualmente.
'
],
'allow_error_report_admin' => [
'title' => 'Permitir a los administradores/revendedores informar de errores en la base de datos a froxlor',
'description' => 'Nota: ¡Nunca nos envíes datos personales (de clientes)!'
],
'allow_error_report_customer' => [
'title' => 'Permitir a los clientes informar de errores en la base de datos a froxlor',
'description' => 'Nota: ¡No nos envíe nunca datos personales (de clientes)!'
],
'mailtraffic_enabled' => [
'title' => 'Analizar el tráfico de correo',
'description' => 'Permitir el análisis de los registros del servidor de correo para calcular el tráfico'
],
'mdaserver' => [
'title' => 'Tipo de MDA',
'description' => 'Tipo de servidor de entrega de correo'
],
'mdalog' => [
'title' => 'Registro MDA',
'description' => 'Archivo de registro del Mail Delivery Server'
],
'mtaserver' => [
'title' => 'Tipo de MTA',
'description' => 'Tipo de agente de transferencia de correo'
],
'mtalog' => [
'title' => 'Registro MTA',
'description' => 'Archivo de registro del Agente de Transferencia de Correo'
],
'system_cronconfig' => [
'title' => 'Archivo de configuración de cron',
'description' => 'Ruta al archivo de configuración del servicio cron. Este archivo será actualizado regular y automáticamente por froxlor. Nota: ¡Por favor asegúrese de usar el mismo nombre de archivo que para el froxlor cronjob principal (por defecto: /etc/cron.d/froxlor)!
¡Si está usando FreeBSD, por favor especifique /etc/crontab aquí!'
],
'system_crondreload' => [
'title' => 'Comando Cron-daemon reload',
'description' => 'Especifique el comando a ejecutar para recargar el cron-daemon de su sistema'
],
'system_croncmdline' => [
'title' => 'Comando de ejecución de cron (php-binario)',
'description' => 'Comando para ejecutar nuestros cronjobs. Cámbielo sólo si sabe lo que está haciendo (por defecto: "/usr/bin/nice -n 5 /usr/bin/php -q").'
],
'system_cron_allowautoupdate' => [
'title' => 'Permitir la actualización automática de la base de datos',
'description' => '
ATENCIÓN:
Esta configuración permite al cronjob saltarse la comprobación de versión de los archivos froxlors y la base de datos y ejecuta la actualización de la base de datos en caso de que ocurra un desajuste de versión.
Auto-update siempre establecerá valores por defecto para nuevas configuraciones o cambios. Esto puede no ser siempre adecuado para su sistema. Por favor, piénselo dos veces antes de activar esta opción
'
],
'dns_createhostnameentry' => 'Crear bind-zone/config para el nombre de host del sistema',
'panel_password_alpha_lower' => [
'title' => 'Carácter en minúsculas',
'description' => 'La contraseña debe contener al menos una letra minúscula (a-z).'
],
'panel_password_alpha_upper' => [
'title' => 'Mayúsculas',
'description' => 'La contraseña debe contener al menos una letra mayúscula (A-Z).'
],
'panel_password_numeric' => [
'title' => 'Números',
'description' => 'La contraseña debe contener al menos un número (0-9).'
],
'panel_password_special_char_required' => [
'title' => 'Carácter especial',
'description' => 'La contraseña debe contener al menos uno de los caracteres definidos a continuación.'
],
'panel_password_special_char' => [
'title' => 'Lista de caracteres especiales',
'description' => 'Se requiere uno de estos caracteres si se establece la opción anterior.'
],
'apache_itksupport' => [
'title' => 'Modificaciones de uso para Apache ITK-MPM',
'description' => 'ATENCIÓN: utilícela sólo si tiene apache itk-mpm habilitado , de lo contrario su servidor web no podrá iniciarse.'
],
'letsencryptca' => [
'title' => 'Entorno ACME',
'description' => 'Entorno que se utilizará para los certificados Let\'s Encrypt / ZeroSSL.'
],
'letsencryptchallengepath' => [
'title' => 'Ruta para los desafíos Let\'s Encrypt',
'description' => 'Directorio desde el que se ofrecerán los retos Let\'s Encrypt a través de un alias global.'
],
'letsencryptkeysize' => [
'title' => 'Tamaño de la clave para nuevos certificados Let\'s Encrypt',
'description' => 'Tamaño de la clave en Bits para nuevos certificados Let\'s Encrypt.'
],
'letsencryptreuseold' => [
'title' => 'Reutilizar clave Let\'s Encrypt',
'description' => 'Si se activa, se utilizará la misma clave para cada renovación, de lo contrario se generará una nueva clave cada vez.'
],
'leenabled' => [
'title' => 'Activar Let\'s Encrypt',
'description' => 'Si se activa, los clientes pueden dejar que froxlor automáticamente genere y renueve certificados ssl Let\'s Encrypt para dominios con una IP/puerto ssl.
Por favor recuerda que necesitas ir a través de la configuración del servidor web cuando se activa porque esta característica necesita una configuración especial.'
],
'caa_entry' => [
'title' => 'Generar registros DNS CAA',
'description' => 'Genera automáticamente registros CAA para dominios habilitados para SSL que utilizan Let\'s Encrypt.'
],
'caa_entry_custom' => [
'title' => 'Registros DNS CAA adicionales',
'description' => 'DNS Certification Authority Authorization (CAA) es un mecanismo de política de seguridad en Internet que permite a los titulares de nombres de dominio indicar a las autoridades de certificación si están autorizadas a emitir certificados digitales para un nombre de dominio concreto. Lo hace mediante un nuevo registro de recursos del Sistema de Nombres de Dominio (DNS) "CAA".
El contenido de este campo se incluirá en la zona DNS directamente (cada línea da lugar a un registro CAA). Si Let\'s Encrypt está habilitado para este dominio, esta entrada siempre se añadirá automáticamente y no es necesario añadirla manualmente: 0issue "letsencrypt.org" (Si el dominio es un dominio comodín, se utilizará issuewild en su lugar). Para habilitar el informe de incidentes, puede añadir un registro iodef. Un ejemplo para enviar dicho informe a me@example.com sería: 0iodef "mailto:me@example.com"
Atención: No se comprobará si el código contiene errores. Si contiene errores, ¡es posible que sus registros CAA no funcionen!'
],
'dnseditorenable' => [
'title' => 'Habilitar editor DNS',
'description' => 'Permite a los administradores y a los clientes gestionar las entradas DNS del dominio'
],
'dns_server' => [
'title' => 'Demonio del servidor DNS',
'description' => 'Recuerde que los daemons tienen que ser configurados usando las plantillas de configuración de froxlors'
],
'panel_customer_hide_options' => [
'title' => 'Ocultar elementos de menú y gráficos de tráfico en el panel de cliente',
'description' => 'Seleccione los elementos que desea ocultar en el panel de cliente. Para seleccionar varias opciones, mantenga pulsada la tecla CTRL mientras selecciona.'
],
'allow_allow_customer_shell' => [
'title' => 'Permitir a los clientes habilitar el acceso shell para usuarios ftp',
'description' => 'Atención: El acceso Shell permite al usuario ejecutar varios binarios en su sistema. Utilícelo con extrema precaución. ¡¡¡Por favor, active esto sólo si REALMENTE sabe lo que está haciendo!!!'
],
'available_shells' => [
'title' => 'Lista de shells disponibles',
'description' => 'Lista separada por comas de los intérpretes de comandos que están disponibles para que el cliente elija para sus usuarios ftp.
Tenga en cuenta que el intérprete de comandos predeterminado /bin/false siempre será una opción (si está habilitado), incluso si esta configuración está vacía. Es el valor por defecto para los usuarios ftp en cualquier caso.'
],
'le_froxlor_enabled' => [
'title' => 'Activar Let\'s Encrypt para el froxlor vhost',
'description' => 'Si se activa, el froxlor vhost se asegurará automáticamente usando un certificado Let\'s Encrypt.'
],
'le_froxlor_redirect' => [
'title' => 'Activar SSL-redirect para froxlor vhost',
'description' => 'Si se activa, todas las peticiones http a su froxlor serán redirigidas al sitio SSL correspondiente.'
],
'option_unavailable_websrv' => ' Disponible sólo para: %s',
'option_unavailable' => ' Opción no disponible debido a otros ajustes.',
'letsencryptacmeconf' => [
'title' => 'Ruta al fragmento acme.conf',
'description' => 'Nombre de archivo del fragmento de configuración que permite al servidor web servir el desafío acme.'
],
'mail_use_smtp' => 'Configurar mailer para usar SMTP',
'mail_smtp_host' => 'Especifique el servidor SMTP',
'mail_smtp_usetls' => 'Activar el cifrado TLS',
'mail_smtp_auth' => 'Activar la autenticación SMTP',
'mail_smtp_port' => 'Puerto TCP al que conectarse',
'mail_smtp_user' => 'Nombre de usuario SMTP',
'mail_smtp_passwd' => 'Contraseña SMTP',
'http2_support' => [
'title' => 'Soporte HTTP2',
'description' => 'habilite el soporte HTTP2 para ssl. HABILITAR SÓLO SI SU WEBSERVER SOPORTA ESTA CARACTERÍSTICA (nginx versión 1.9.5+, apache2 versión 2.4.17+)'
],
'nssextrausers' => [
'title' => 'Usar libnss-extrausers en lugar de libnss-mysql',
'description' => 'No leer usuarios de la base de datos sino de ficheros. Por favor, actívelo sólo si ya ha realizado los pasos de configuración necesarios (system ->libnss-extrausers). Sólo para Debian/Ubuntu (¡o si ha compilado libnss-extrausers usted mismo!)'
],
'le_domain_dnscheck' => [
'title' => 'Validar DNS de dominios al usar Let\'s Encrypt',
'description' => 'Si está activado, froxlor validará si el dominio que solicita un certificado Let\'s Encrypt resuelve al menos a una de las direcciones ip del sistema.'
],
'le_domain_dnscheck_resolver' => [
'title' => 'Usar un servidor de nombres externo para validación DNS',
'description' => 'Si se establece, froxlor usará este DNS para validar los DNS de los dominios cuando use Let\'s Encrypt. Si está vacío, se usará el resolver DNS por defecto del sistema.'
],
'phpsettingsforsubdomains' => [
'description' => 'En caso afirmativo se actualizará el php-config elegido a todos los subdominios'
],
'leapiversion' => [
'title' => 'Elegir la implementación ACME de Let\'s Encrypt',
'description' => 'Actualmente sólo se soporta la implementación ACME v2 para Let\'s Encrypt.'
],
'enable_api' => [
'title' => 'Habilitar uso de API externa',
'description' => 'Para utilizar la API froxlor es necesario activar esta opción. Para obtener información más detallada, consulte https://docs.froxlor.org/'
],
'api_customer_default' => '"Permitir acceso a la API" valor por defecto para nuevos clientes',
'dhparams_file' => [
'title' => 'Archivo DHParams (intercambio de claves Diffie-Hellman)',
'description' => 'Si se especifica aquí un archivo dhparams.pem, se incluirá en la configuración del servidor web. Déjelo vacío para desactivarlo. Ejemplo: /etc/ssl/webserver/dhparams.pem
Si el archivo no existe, se creará automáticamente con el siguiente comando: openssl dhparam -out /etc/ssl/webserver/dhparams.pem 4096. Se recomienda crear el archivo antes de especificarlo aquí, ya que la creación tarda bastante y bloquea el cronjob.'
],
'errorlog_level' => [
'title' => 'Nivel de registro de errores',
'description' => 'Especifique el nivel de registro de errores. Por defecto es "warn" para usuarios apache y "error" para usuarios nginx.'
],
'letsencryptecc' => [
'title' => 'Emitir certificado ECC / ECDSA',
'description' => 'Si se establece un tamaño de clave válido, el certificado emitido utilizará ECC / ECDSA.'
],
'froxloraliases' => [
'title' => 'Alias de dominio para froxlor vhost',
'description' => 'Lista separada por comas de dominios para añadir como alias de servidor al froxlor vhost'
],
'default_sslvhostconf' => [
'title' => 'SSL por defecto vHost-settings',
'description' => 'El contenido de este campo se incluirá en este contenedor ip/port vHost directamente. Puede utilizar las siguientes variables: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (si procede) Atención: No se comprobará si el código contiene errores. Si contiene errores, ¡el servidor web podría no volver a arrancar!'
],
'includedefault_sslvhostconf' => 'Incluir configuración de vHost no SSL en SSL-vHost',
'apply_specialsettings_default' => [
'title' => 'Valor por defecto para "Apply specialsettings to all subdomains (*.example.com)\' setting when editing a domain'
],
'apply_phpconfigs_default' => [
'title' => 'Valor por defecto para "Aplicar php-config a todos los subdominios:\' al editar un dominio'
],
'awstats' => [
'logformat' => [
'title' => 'Configuración de LogFormat',
'description' => 'Si utilizas un formato de registro personalizado para tu servidor web, necesitas cambiar también el awstats LogFormat. Por defecto es 1. Para más información consulta la documentación aquí.'
]
],
'hide_incompatible_settings' => 'Ocultar configuraciones incompatibles',
'soaemail' => 'Dirección de correo a usar en registros SOA (por defecto la dirección del remitente de la configuración del panel si está vacía)',
'imprint_url' => [
'title' => 'URL a notas legales / impresión',
'description' => 'Especifique una URL a su sitio de notas legales / impresión. El enlace será visible en la pantalla de inicio de sesión y en el pie de página una vez iniciada la sesión.'
],
'terms_url' => [
'title' => 'URL a las condiciones de uso',
'description' => 'Especifique una URL a su sitio de condiciones de uso. El enlace será visible en la pantalla de inicio de sesión y en el pie de página al iniciar sesión.'
],
'privacy_url' => [
'title' => 'URL a la política de privacidad',
'description' => 'Especifique una URL a su sitio de política de privacidad / sitio de impresión. El enlace será visible en la pantalla de inicio de sesión y en el pie de página al iniciar sesión.'
],
'logo_image_header' => [
'title' => 'Imagen de logotipo (cabecera)',
'description' => 'Cargue su propia imagen de logotipo para que se muestre en el encabezado después del inicio de sesión (altura recomendada 30px)'
],
'logo_image_login' => [
'title' => 'Imagen del logotipo (inicio de sesión)',
'description' => 'Cargue su propia imagen de logotipo para que se muestre durante el inicio de sesión'
],
'logo_overridetheme' => [
'title' => 'Sobrescribe el logo definido en el tema por "Logo Image" (Cabecera y Login, ver más abajo)',
'description' => 'Esta opción debe establecerse como "true" si desea utilizar el logotipo que ha cargado; como alternativa, puede seguir utilizando las posibilidades basadas en el tema "logo_custom.png" y "logo_custom_login.png".'
],
'logo_overridecustom' => [
'title' => 'Sobrescribir el logotipo personalizado (logo_custom.png y logo_custom_login.png) definido en el tema por "Imagen del logotipo" (Cabecera e Inicio de sesión, ver más abajo).',
'description' => 'Establezca este valor en "true" si desea ignorar los logotipos personalizados específicos del tema para el encabezado y el inicio de sesión y utilizar "Logo Image".'
],
'createstdsubdom_default' => [
'title' => 'Valor preseleccionado para "Crear subdominio estándar" al crear un cliente',
'description' => ''
],
'froxlorusergroup' => [
'title' => 'Grupo de sistema personalizado para todos los usuarios del cliente',
'description' => 'Se requiere el uso de libnss-extrausers (system-settings) para que esto tenga efecto. Un valor vacío omite la creación o elimina el grupo existente.'
],
'acmeshpath' => [
'title' => 'Ruta a acme.sh',
'description' => 'Establézcalo donde se instala acme.sh, incluyendo el script acme.sh Por defecto es /root/.acme.sh/acme.sh'
],
'update_channel' => [
'title' => 'froxlor actualizar-canal',
'description' => 'Seleccione el canal de actualización de froxlor. Por defecto es "estable"'
],
'uc_stable' => 'estable',
'uc_testing' => 'testing',
'traffictool' => [
'toolselect' => 'Analizador de tráfico',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
'goaccess' => 'goaccess'
],
'requires_reconfiguration' => 'El cambio de esta configuración podría requerir una reconfiguración de los siguientes servicios: %s'
],
'spf' => [
'use_spf' => '¿Activar SPF para dominios?',
'spf_entry' => 'Entrada SPF para todos los dominios'
],
'ssl_certificates' => [
'certificate_for' => 'Certificado para',
'valid_from' => 'Válido de',
'valid_until' => 'Válido hasta',
'issuer' => 'Emisor'
],
'success' => [
'success' => 'Información',
'clickheretocontinue' => 'Haga clic aquí para continuar',
'settingssaved' => 'La configuración se ha guardado correctamente.',
'rebuildingconfigs' => 'Tareas insertadas con éxito para reconstruir archivos de configuración',
'domain_import_successfully' => 'Se han importado correctamente los dominios %s.',
'dns_record_added' => 'Registro añadido correctamente',
'dns_record_deleted' => 'Registro eliminado correctamente',
'testmailsent' => 'Correo de prueba enviado correctamente',
'settingsimported' => 'Ajustes importados correctamente',
'sent_error_report' => 'Informe de error enviado correctamente. Gracias por su contribución.'
],
'tasks' => [
'outstanding_tasks' => 'Tareas cron pendientes',
'REBUILD_VHOST' => 'Reconstrucción de la configuración del servidor web',
'CREATE_HOME' => 'Añadir nueva %s cliente',
'REBUILD_DNS' => 'Reconstrucción de la configuración bind',
'CREATE_FTP' => 'Crear directorio para nuevo usuario ftp',
'DELETE_CUSTOMER_FILES' => 'Borrar archivos de cliente %s',
'noneoutstanding' => 'Actualmente no hay tareas pendientes para froxlor',
'CREATE_QUOTA' => 'Establecer cuota en el sistema de archivos',
'DELETE_EMAIL_DATA' => 'Borrar datos de e-mail del cliente.',
'DELETE_FTP_DATA' => 'Borrar los datos de la cuenta ftp del cliente.',
'REBUILD_CRON' => 'Reconstruir el archivo cron.d',
'DELETE_DOMAIN_PDNS' => 'Borrar dominio %s de la base de datos PowerDNS',
'DELETE_DOMAIN_SSL' => 'Borrar archivos ssl de dominio %s'
],
'terms' => 'Condiciones de uso',
'traffic' => [
'month' => 'Mes',
'day' => 'Día',
'months' => [
'1' => 'Enero',
'2' => 'Febrero',
'3' => 'Marzo',
'4' => 'Abril',
'5' => 'Mayo',
'6' => 'Junio',
'7' => 'Julio',
'8' => 'Agosto',
'9' => 'Septiembre',
'10' => 'Octubre',
'11' => 'Noviembre',
'12' => 'Diciembre',
'jan' => 'Enero',
'feb' => 'Febrero',
'mar' => 'Mar',
'apr' => 'Abr',
'may' => 'Mayo',
'jun' => 'Jun',
'jul' => 'Jul',
'aug' => 'Ago',
'sep' => 'Sep',
'oct' => 'Oct',
'nov' => 'Nov',
'dec' => 'Diciembre',
'total' => 'Total'
],
'mb' => 'Tráfico',
'sumtotal' => 'Tráfico total',
'sumhttp' => 'Tráfico HTTP',
'sumftp' => 'Tráfico FTP',
'summail' => 'Tráfico de correo',
'customer' => 'Cliente',
'domain' => 'Dominio',
'trafficoverview' => 'Resumen del tráfico',
'bycustomers' => 'Tráfico por clientes',
'details' => 'Detalles',
'http' => 'HTTP',
'ftp' => 'FTP',
'mail' => 'Correo',
'nocustomers' => 'Necesita al menos un cliente para ver los informes de tráfico.',
'top5customers' => 'Top 5 clientes',
'nodata' => 'No se han encontrado datos para el intervalo dado.',
'ranges' => [
'last24h' => 'últimas 24 horas',
'last7d' => 'últimos 7 días',
'last30d' => 'últimos 30 días',
'cm' => 'Mes actual',
'last3m' => 'últimos 3 meses',
'last6m' => 'últimos 6 meses',
'last12m' => 'últimos 12 meses',
'cy' => 'Año en curso'
],
'byrange' => 'Especificado por rango'
],
'translator' => '',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'Se ha instalado una versión más reciente de froxlor pero aún no se ha configurado. Sólo el administrador puede iniciar sesión y finalizar la actualización.',
'update' => 'Actualización de froxlor',
'proceed' => 'Proceder',
'update_information' => [
'part_a' => 'Los archivos froxlor han sido actualizados a la versión %s. La versión instalada es %s.',
'part_b' => '
Los clientes no podrán conectarse hasta que la actualización haya finalizado. ¿Proceder?'
],
'noupdatesavail' => 'Ya tiene instalada la última %sversion de froxlor.',
'description' => 'Ejecutando actualizaciones de la base de datos para su instalación de froxlor',
'uc_newinfo' => 'Hay un %sversion más reciente disponible: "%s" (Su versión actual es: %s)',
'notify_subject' => 'Nueva actualización disponible'
],
'usersettings' => [
'custom_notes' => [
'title' => 'Notas personalizadas',
'description' => 'Siéntete libre de poner las notas que quieras/necesites aquí. Se mostrarán en la vista general del administrador/cliente para el usuario correspondiente.',
'show' => 'Mostrar tus notas en el panel de control del usuario'
],
'api_allowed' => [
'title' => 'Permitir el acceso a la API',
'description' => 'Cuando está habilitado en la configuración, este usuario puede crear claves API y acceder a la API froxlor',
'notice' => 'El acceso a la API no está permitido para su cuenta.'
]
],
'install' => [
'slogan' => 'Panel de gestión del servidor froxlor',
'preflight' => 'Comprobación del sistema',
'critical_error' => 'Error crítico',
'suggestions' => 'No requerido pero recomendado',
'phpinfosuccess' => 'Su sistema funciona con PHP %s',
'phpinfowarn' => 'Su sistema está ejecutando una versión inferior a PHP %s',
'phpinfoupdate' => 'Actualice su versión PHP actual de %s a %s o superior',
'start_installation' => 'Inicie la instalación',
'check_again' => 'Recargar para comprobar de nuevo',
'switchmode_advanced' => 'Mostrar opciones avanzadas',
'switchmode_basic' => 'Ocultar opciones avanzadas',
'dependency_check' => [
'title' => 'Bienvenido a froxlor',
'description' => 'Comprobamos las dependencias del sistema para asegurarnos de que todas las extensiones y módulos php necesarios están habilitados para que froxlor funcione correctamente.'
],
'database' => [
'top' => 'Base de datos',
'title' => 'Crear base de datos y usuario',
'description' => 'froxlor requiere una base de datos y adicionalmente un usuario privilegiado para poder crear usuarios y bases de datos (opción GRANT). La base de datos y el usuario no privilegiado serán creados en este proceso. El usuario privilegiado debe existir.',
'user' => 'Usuario no privilegiado de la base de datos',
'dbname' => 'Nombre de la base de datos',
'force_create' => '¿Hacer copia de seguridad y sobrescribir la base de datos si existe?'
],
'admin' => [
'top' => 'Usuario administrador',
'title' => 'Vamos a crear el usuario administrador principal.',
'description' => 'Este usuario tendrá todos los privilegios para ajustar la configuración y añadir/actualizar/eliminar recursos como clientes, dominios, etc.'
],
'system' => [
'top' => 'Configuración del sistema',
'title' => 'Detalles sobre su servidor',
'description' => 'Establezca su entorno así como los datos y opciones relevantes del servidor aquí para que froxlor conozca su sistema. Estos valores son cruciales para la configuración y el funcionamiento del sistema.',
'ipv4' => 'Dirección IPv4 primaria (si procede)',
'ipv6' => 'Dirección IPv6 primaria (si procede)',
'servername' => 'Nombre del servidor (FQDN, sin dirección IP)',
'phpbackend' => 'PHP backend',
'activate_newsfeed' => 'Habilitar la fuente oficial de noticias (fuente externa: https://inside.froxlor.org/news/)'
],
'install' => [
'top' => 'Finalizar la configuración',
'title' => 'Un último paso...',
'description' => 'El siguiente comando descargará, instalará y configurará los servicios necesarios en tu sistema de acuerdo con los datos que has facilitado en este proceso de instalación.',
'runcmd' => 'Ejecute el siguiente comando como usuario root en su shell en este servidor:',
'manual_config' => 'Configuraré manualmente los servicios, llévame al inicio de sesión',
'waitforconfig' => 'Esperando a que se configuren los servicios...'
],
'errors' => [
'wrong_ownership' => 'Asegúrese de que los archivos froxlor son propiedad de %s:%s',
'missing_extensions' => 'Las siguientes extensiones de php son necesarias y no están instaladas',
'suggestedextensions' => 'No se han encontrado las siguientes extensiones de php pero se recomiendan',
'databaseexists' => 'La base de datos ya existe, por favor establezca la opción override para reconstruir o elija otro nombre',
'unabletocreatedb' => 'No se ha podido crear la base de datos de prueba',
'unabletodropdb' => 'No se ha podido eliminar la base de datos de prueba',
'mysqlusernameexists' => 'El usuario especificado para el usuario sin privilegios ya existe. Por favor, utilice otro nombre de usuario o elimínelo primero.',
'unabletocreateuser' => 'No se ha podido crear el usuario de prueba',
'unabletodropuser' => 'No se ha podido eliminar el usuario de prueba.',
'unabletoflushprivs' => 'El usuario privilegiado no puede eliminar privilegios.',
'nov4andnov6ip' => 'Debe indicarse una dirección IPv4 o IPv6.',
'servernameneedstobevalid' => 'El nombre de servidor indicado no parece ser un FQDN o un nombre de host.',
'websrvuserdoesnotexist' => 'El usuario del servidor web no parece existir en el sistema.',
'websrvgrpdoesnotexist' => 'El webserver-group indicado no parece existir en el sistema.',
'notyetconfigured' => 'Parece que los servicios aún no se han configurado (correctamente). Por favor, ejecute el comando que se muestra a continuación o marque la casilla para hacerlo más tarde.',
'mandatory_field_not_set' => 'El campo obligatorio "%s" no está configurado.',
'unexpected_database_error' => 'Se ha producido una excepción inesperada en la base de datos. %s',
'sql_import_failed' => 'Error al importar datos SQL.',
'unprivileged_sql_connection_failed' => 'Error al inicializar una conexión SQL sin privilegios.',
'privileged_sql_connection_failed' => 'Error al inicializar la conexión SQL privilegiada.',
'mysqldump_backup_failed' => 'No se puede crear una copia de seguridad de la base de datos, tenemos un error de mysqldump.',
'sql_backup_file_missing' => 'No se puede crear una copia de seguridad de la base de datos, el archivo de copia de seguridad no existe.',
'backup_binary_missing' => 'No se puede crear una copia de seguridad de la base de datos, asegúrese de que ha instalado mysqldump.',
'creating_configfile_failed' => 'No se pueden crear archivos de configuración, no se puede escribir el archivo.',
'database_already_exiting' => '¡Encontramos una base de datos y no se nos permitió sobreescribirla!'
]
],
'welcome' => [
'title' => '¡Bienvenido a froxlor!',
'config_note' => 'Para que froxlor pueda comunicarse correctamente con el backend, tienes que configurarlo.',
'config_now' => 'Configurar ahora'
]
];
================================================
FILE: lng/fr.lng.php
================================================
* @author Tim Zielosko
* @author Aldo Reset
* @author Romain MARIADASSOU
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'admin' => [
'overview' => 'Sommaire',
'ressourcedetails' => 'Ressources utilisées',
'systemdetails' => 'Informations du système',
'froxlordetails' => 'Informations de froxlor',
'installedversion' => 'Version installée',
'latestversion' => 'Dernière version en date',
'lookfornewversion' => [
'clickhere' => 'Vérifier par internet',
'error' => 'Erreur pour vérifier la dernière version',
],
'resources' => 'Ressources',
'customer' => 'Compte',
'customers' => 'Comptes',
'customer_add' => 'Ajouter un compte',
'customer_edit' => 'Modifier un compte',
'domains' => 'Domaines',
'domain_add' => 'Ajouter un domaine',
'domain_edit' => 'Modifier le domaine',
'subdomainforemail' => 'Sous-domaines comme domaine e-mail',
'admin' => 'Administrateur',
'admins' => 'Administrateurs',
'admin_add' => 'Ajouter un administrateur',
'admin_edit' => 'Modifier un administrateur',
'customers_see_all' => 'Peut voir tous les comptes ?',
'change_serversettings' => 'Peut modifier la configuration du serveur ?',
'server' => 'Système',
'serversettings' => 'Paramètres',
'rebuildconf' => 'Régénérer la configuration',
'stdsubdomain' => 'Sous-domaine type',
'stdsubdomain_add' => 'Ajouter un sous-domaine type',
'phpenabled' => 'PHP activé',
'deactivated' => 'Désactiver',
'deactivated_user' => 'Désactiver l\'utilisateur',
'sendpassword' => 'Envoyer le mot de passe',
'ownvhostsettings' => 'Configuration spéciale du vHost',
'configfiles' => [
'serverconfiguration' => 'Exemple de configuration',
'overview' => 'Aperçu',
'wizard' => 'Assistant',
'distribution' => 'Distribution',
'service' => 'Service',
'daemon' => 'Démon',
'http' => 'Serveur Web (HTTP)',
'dns' => 'Serveur de Noms (DNS)',
'mail' => 'Serveur de Mails (IMAP/POP3)',
'smtp' => 'Serveur de Mails (SMTP)',
'ftp' => 'Serveur FTP',
'etc' => 'Autres (Système)',
'choosedistribution' => '-- Choisissez une distribution --',
'chooseservice' => '-- Choisissez un service --',
'choosedaemon' => '-- Choisissez un démon --',
'statistics' => 'Statistiques',
],
'templates' => [
'templates' => 'Modèles',
'template_add' => 'Ajouter un modèle',
'template_edit' => 'Modifier un modèle',
'action' => 'Action',
'email' => 'E-mail',
'subject' => 'Référence',
'mailbody' => 'Texte de l\'e-mail',
'createcustomer' => 'E-mail de bienvenue pour les nouveaux clients',
'pop_success' => 'E-mail de bienvenue pour les nouveaux accès e-mail',
'template_replace_vars' => 'Les variables qui seront remplacées dans le template :',
'FIRSTNAME' => 'Sera remplacé par le prénom.',
'NAME' => 'Sera remplacé par le nom.',
'USERNAME' => 'Sera remplacé par le login.',
'PASSWORD' => 'Sera remplacé par le mot de passe du client.',
'EMAIL' => 'Sera remplacé par l\'accès e-mail.',
'TRAFFIC' => 'Sera remplacé par le taux de trafic qui a été attribué à l\'utilisateur.',
'TRAFFICUSED' => 'Sera remplacé par le taux de trafic qui a été consommé par l\'utilisateur.',
'pop_success_alternative' => 'Message de bienvenue envoyé à l\'adresse e-mail alternative pour les nouveaux comptes e-mails',
'EMAIL_PASSWORD' => 'Remplacer par le mot de passe du compte POP3 / IMAP.',
],
'ipsandports' => [
'ipsandports' => 'IPs et ports',
'add' => 'Ajouter une IP / port',
'edit' => 'Modifier une IP / port',
'create_listen_statement' => 'Déclaration des ports d\'écoute',
'create_namevirtualhost_statement' => 'Déclaration des hôtes virtuels "NameVirtualHost"',
'create_vhostcontainer' => 'Déclaration des conteneurs virtuels "vHost"',
'create_vhostcontainer_servername_statement' => 'Déclaration des noms d\'hôtes "ServerName" dans les conteneurs virtuels "vHost"',
'enable_ssl' => 'Est-ce un port SSL ?',
'ssl_cert_file' => 'Emplacement du certificat SSL',
],
'memorylimitdisabled' => 'Désactivé',
'valuemandatory' => 'Cette valeur est obligatoire',
'valuemandatorycompany' => 'Vous devez indiquer au moins l\'une des 3 valeurs suivantes : "nom" ou "prénom" ou "entreprise"',
'serversoftware' => 'Logiciel Serveur',
'phpversion' => 'Version de PHP',
'phpmemorylimit' => 'Limite mémoire de PHP',
'mysqlserverversion' => 'Version du serveur MySQL',
'mysqlclientversion' => 'Version du client MySQL',
'webserverinterface' => 'Interface Web',
'accountsettings' => 'Paramètres du compte',
'panelsettings' => 'Paramètres du panel',
'systemsettings' => 'Paramètres du système',
'webserversettings' => 'Paramètres du serveur Web',
'mailserversettings' => 'Paramètres du serveur de Mail',
'nameserversettings' => 'Paramètres du serveur de Noms',
'updatecounters' => 'Recalculer les ressources utilisées',
'subcanemaildomain' => [
'never' => 'Jamais',
'choosableno' => 'A choisir, par défaut : non',
'choosableyes' => 'A choisir, par défaut : oui',
'always' => 'Toujours',
],
'webalizersettings' => 'Paramètres pour Webalizer',
'webalizer' => [
'normal' => 'Normal',
'quiet' => 'Silencieux',
'veryquiet' => 'Aucune sortie',
],
'domain_nocustomeraddingavailable' => 'Il n\'est acutellement pas possible d\'ajouter de domaines. Vous devez d\'abord ajouter un client.',
'loggersettings' => 'Paramètres des logs',
'logger' => [
'normal' => 'normal',
'paranoid' => 'paranoïaque',
],
'emaildomain' => 'Domaine e-mail',
'email_only' => 'Seulement des e-mails ?',
'wwwserveralias' => 'Ajouter un "www." à l\'alias du serveur "ServerAlias"',
'subject' => 'Sujet',
'recipient' => 'Destinataire',
'message' => 'Ecrire un message',
'text' => 'Message',
'sslsettings' => 'Paramètres SSL',
'dkimsettings' => 'Paramètres DKIM',
'caneditphpsettings' => 'Peut changer les paramétres PHP du domaine ?',
'allips' => 'Toutes les adresses IP',
'awstatssettings' => 'Paramètres Awstats',
'domain_dns_settings' => 'Paramètres DNS',
'activated' => 'Activé',
'statisticsettings' => 'Paramètres des statistiques',
'or' => 'ou',
'sysload' => 'Charge du système',
'noloadavailable' => 'Non disponible',
'nouptimeavailable' => 'Non disponible',
'nosubject' => '(Aucun sujet)',
],
'changepassword' => [
'old_password' => 'Ancien mot de passe',
'new_password' => 'Nouveau mot de passe',
'new_password_confirm' => 'Nouveau mot de passe (confirmation)',
'new_password_ifnotempty' => 'Nouveau mot de passe (Veuillez laisser vide pour ne pas changer)',
'also_change_ftp' => 'Changer aussi le mot de passe du compte FTP principal ?',
'also_change_webalizer' => 'Changer aussi le mot de passe des statistiques Webalizer ?',
],
'cronjobs' => [
'notyetrun' => 'Pas encore lancé',
],
'customer' => [
'documentroot' => 'Chemin',
'name' => 'Nom',
'firstname' => 'Prénom',
'company' => 'Entreprise',
'street' => 'Rue',
'zipcode' => 'Code postal',
'city' => 'Ville',
'phone' => 'Téléphone',
'fax' => 'Fax',
'email' => 'E-mail',
'customernumber' => 'Numéro du client',
'diskspace' => 'Espace Web (Mo)',
'traffic' => 'Trafic (Go)',
'mysqls' => 'Base(s) de données MySQL',
'emails' => 'Adresse(s) e-mail',
'accounts' => 'Accès e-mail',
'forwarders' => 'Transfert(s) e-mail',
'ftps' => 'Accès FTP',
'subdomains' => 'Sous-domaine(s)',
'domains' => 'Domaine(s)',
'email_quota' => 'Quota e-mail',
'email_imap' => 'E-mail IMAP',
'email_pop3' => 'E-mail POP3',
'mail_quota' => 'Quota e-mail',
'title' => 'Titre',
'country' => 'Pays',
],
'dkim' => [
'dkim_prefix' => [
'title' => 'Prefix DKIM',
'description' => 'Veuillez entrer l\'emplacement des fichiers RSA pour DKIM ainsi que l\'emplacement du fichier de configuration pour le plugin Milter',
],
'dkim_domains' => [
'title' => 'Nom du fichier DKIM',
'description' => 'Nom du fichier des paramètres DKIM pour les domaines tel que entré dans la configuration de DKIM-milter',
],
'dkim_dkimkeys' => [
'title' => 'Nom du fichier des clefs DKIM',
'description' => 'Nom du fichier des paramètres des clefs DKIM tel que entré dans la configuration de DKIM-milter',
],
'dkimrestart_command' => [
'title' => 'Commande de redémarrage de DKIM-milter',
'description' => 'Veuillez entrer la commande de redémarrage du service DKIM-milter',
],
'use_dkim' => [
'title' => 'Activer le support DKIM ?',
'description' => 'Voulez-vous utiliser le système DKIM (DomainKeys Identified Mail) ?',
],
],
'dns' => [
'destinationip' => 'IP du domaine',
'standardip' => 'IP standard du serveur',
'a_record' => 'Enregistrement de type "A" (IPv6 optionnel)',
'cname_record' => 'Enregistrement CNAME',
'mxrecords' => 'Définition des enregistrements MX',
'standardmx' => 'Enregistrements MX standard du serveur',
'mxconfig' => 'Enregistrements MX personnalisé',
'priority10' => 'Priorité 10',
'priority20' => 'Priorité 20',
'txtrecords' => 'Définir des enregistrement TXT',
'txtexample' => 'Exemple (pour SPF) : v=spf1 ip4:xxx.xxx.xx.0/23 -all',
],
'domain' => [
'openbasedirpath' => 'Dossier "OpenBasedir"',
'docroot' => 'Identique au dossier ci-dessus',
'homedir' => 'Dossier Principal',
],
'domains' => [
'description' => 'Ici, vous pouvez ajouter des sites et domaines et changer leurs doosiers. Il vous faudra patienter quelques minutes après chaque changement pour que la configuration soit activée.',
'domainsettings' => 'Configuration des Domaines',
'domainname' => 'Nom du Domaine',
'subdomain_add' => 'Ajouter un sous-domaine',
'subdomain_edit' => 'Changer un sous-domaine',
'wildcarddomain' => 'Domaine générique (Wilcard) ?',
'aliasdomain' => 'Alias pour le domaine',
'noaliasdomain' => 'Domaine sans alias',
'hasaliasdomains' => 'Le domaine possède un ou des alias.',
'statstics' => 'Fréquentation',
'isassigneddomain' => 'Le domaine est attribué',
'add_date' => 'Ajouter à froxlor',
'registration_date' => 'Ajouter à l\'enregistrement',
],
'emails' => [
'description' => 'Ici, vous pouvez ajouter vos boîtes e-mails.
Les informations pour configurer votre logiciel e-mail sont les suivantes :
Nom du serveur : votre-domaine.com Identifiant : l\'adresse e-mail Mot de passe : le mot de passe que vous avez choisi',
'emailaddress' => 'Adresse',
'emails_add' => 'Ajouter une adresse e-mail',
'emails_edit' => 'Changer une adresse e-mail',
'catchall' => 'Catchall',
'iscatchall' => 'Définir comme adresse "catchall" ?',
'account' => 'Accès',
'account_add' => 'Ajouter un accès',
'account_delete' => 'Supprimer l\'accès',
'from' => 'de',
'to' => 'à',
'forwarders' => 'Réexpédition',
'forwarder_add' => 'Ajouter un renvoi',
'alternative_emailaddress' => 'Adresse e-mail alternative',
'quota' => 'Quota',
'noquota' => 'Pas de quota',
'updatequota' => 'Mise à jour',
],
'error' => [
'error' => 'Erreur',
'directorymustexist' => 'Le dossier que vous avez choisi n\'existe pas. Veuillez ajouter le dossier avec votre client FTP.',
'filemustexist' => 'Le fichier que vous avez sélectionné n\'existe pas.',
'allresourcesused' => 'Vous avez déjà utilisé toutes les ressources.',
'domains_cantdeletemaindomain' => 'Vous ne pouvez pas supprimer un domaine qui est utilisé pour des adresses e-mails.',
'domains_canteditdomain' => 'Vous n\'avez pas le droit de configurer ce domaine.',
'domains_cantdeletedomainwithemail' => 'Vous ne pouvez pas supprimer un domaine qui est utilisé pour des e-mails. Vous devez d\'abord supprimer toutes les adresses e-mails qu\'il contient.',
'firstdeleteallsubdomains' => 'Il faut d\'abord supprimer tous les sous-domaines avant d\'ajouter un domaine "wildcard".',
'youhavealreadyacatchallforthisdomain' => 'Vous avez déjà défini une adresse "catchall" pour ce domaine.',
'ftp_cantdeletemainaccount' => 'Vous ne pouvez pas supprimer votre accès principal.',
'login' => 'Identifiant / mot de passe invalide.',
'login_blocked' => 'Cet identifiant a été bloqué à cause de nombreuses tentatives de connexions invalides. Veuillez réessayer dans %s secondes.',
'notallreqfieldsorerrors' => 'Vous n\'avez pas rempli toutes les cases obligatoires ou vous les avez remplis avec des informations invalides.',
'oldpasswordnotcorrect' => 'L\'ancien mot de passe n\'est pas correct.',
'youcantallocatemorethanyouhave' => 'Vous ne pouvez pas distribuer plus de ressources qu\'il n\'en reste.',
'mustbeurl' => 'Vous n\'avez pas entré une adresse URL valide.',
'invalidpath' => 'Vous n\'avez pas choisi une adresse URL valide (probablement à cause de problèmes avec le listing de dossiers ?)',
'stringisempty' => 'Entrée manquante',
'stringiswrong' => 'Entrée invalide',
'newpasswordconfirmerror' => 'Le nouveau mot de passe et sa confirmation ne sont pas identiques pas.',
'mydomain' => '"domaine"',
'loginnameexists' => 'L\'identifiant "%s" existe déjà.',
'emailiswrong' => 'L\'adresse "%s" contient des signes invalides ou est incomplète.',
'loginnameiswrong' => 'L\'identifiant "%s" contient des signes invalides.',
'userpathcombinationdupe' => 'Cette combinaison d\'identifiant et de dossier existe déjà.',
'patherror' => 'Erreur générale ! Le dossier ne doit pas être vide.',
'errordocpathdupe' => 'Il y a déjà une option concernant le dossier "%s".',
'adduserfirst' => 'Vous devez d\'abord ajouter un.',
'domainalreadyexists' => 'Le domaine "%s" existe déjà.',
'nolanguageselect' => 'Aucune langue choisis.',
'nosubjectcreate' => 'Il faut entrer un sujet.',
'nomailbodycreate' => 'Il faut entrer un corps de texte.',
'templatenotfound' => 'Aucun modèle trouvé.',
'alltemplatesdefined' => 'Vous avez déjà appliqué des modèles pour toutes les langues.',
'wwwnotallowed' => 'Un sous-domaine ne peut pas s\'appeler www.',
'subdomainiswrong' => 'Le sous-domaine "%s" contient des signes invalides.',
'domaincantbeempty' => 'Le nom de domaine ne doit pas être vide.',
'domainexistalready' => 'Le domaine "%s" existe déjà.',
'domainisaliasorothercustomer' => 'L\'alias du domaine choisi est soit un alias existant d\'un autre client ou soit fait référence à lui même.',
'emailexistalready' => 'L\'adresse "%s" existe déjà.',
'maindomainnonexist' => 'Le domaine "%s" n\'existe pas.',
'destinationnonexist' => 'Veuillez écrire votre adresse de renvoi à l\'emplacement "à".',
'destinationalreadyexistasmail' => 'Le renvoi vers l\'adresse "%s" existe déjà comme adresse active.',
'destinationalreadyexist' => 'Il existe déjà une réexpédition vers l\'adresse "%s".',
'destinationiswrong' => 'L\'adresse "%s" contient des signes invalides ou est incomplète.',
'loginnameissystemaccount' => 'Vous ne pouvez pas créer de compte ressemblant aux comptes système (ex : "%s"). Veuillez entrer un autre nom de compte.',
'ipstillhasdomains' => 'La combinaison IP / port est encore utilisée, veuillez réassigner le ou les domaines existant(s) avec cette adresse IP / port concerné(s) à une autre combinaison IP / port avant de supprimer celle-ci.',
'cantdeletedefaultip' => 'Vous ne pouvez pas supprimer cette combinaison IP / Port, veuillez d\'abord attribuer une autre combinaison IP / Port par défaut à ce revendeur avant de supprimer celle-ci.',
'cantdeletesystemip' => 'Vous ne pouvez pas créer, modifier ou supprimer l\'IP du système.',
'myipdefault' => 'Choissez une combinaison IP / port par défaut.',
'myipnotdouble' => 'Cette combinaison existe déjà',
'cantchangesystemip' => 'Vous ne pouvez pas modifier l\'adresse IP du système, ni en ajouter de nouvelle.',
'sessiontimeoutiswrong' => 'Seule une valeur numérique pour le temps d\'inactivité est autorisée.',
'maxloginattemptsiswrong' => 'Seule une valeur numérique pour "nombre maximum de tentative de connexion" est autorisée.',
'deactivatetimiswrong' => 'Seule une valeur numérique pour la durée de désactivation est autorisée.',
'accountprefixiswrong' => 'Le "Préfixe client" n\'est pas valide.',
'mysqlprefixiswrong' => 'Le "Préfixe SQL" n\'est pas valide.',
'ftpprefixiswrong' => 'Le "Préfixe FTP" n\'est pas valide.',
'ipiswrong' => 'L\'"Adresse IP" n\'est pas valide.',
'vmailuidiswrong' => 'L\'"UID e-mail" est incorrect. Seul un UID numérique est autorisé.',
'vmailgidiswrong' => 'Le "GID e-mail" est incorrect. Seul un GID numérique est autorisé.',
'adminmailiswrong' => 'L\'adresse e-mail de l\'administrateur est incorrect. Seulement une adresse e-mail valide est autorisé.',
'pagingiswrong' => 'La valeur "Nombre de résultats page" est incorrecte. Seul une valeur numérique est autorisée.',
'phpmyadminiswrong' => 'Le lien pour phpMyAdmin n\'est pas valide.',
'webmailiswrong' => 'Le lien pour le WebMail n\'est pas valide.',
'webftpiswrong' => 'Le lien pour le WebFTP n\'est pas valide.',
'stringformaterror' => 'La valeur pour "%s" n\'est pas dans un format reconnu.',
'youcantdeleteyourself' => 'Vous ne pouvez pas supprimer votre propre compte pour des raisons évidente de sécurité ...',
'youcanteditallfieldsofyourself' => 'Note : Vous ne pouvez pas éditer tous les champs de votre propre compte pour des raisons de sécurité.',
'documentrootexists' => 'Le dossier "%s" existe déjà pour cet utilisateur. Veuillez le supprimer / déplacer avant de réessayer l\'ajout de cet utilisateur.',
'formtokencompromised' => 'La requète semble compromise. Pour des raisons de sécurité, vous avez été déconnecté.',
'logerror' => 'Erreur log : %s',
'nomessagetosend' => 'Vous n\'avez pas entré de message.',
'norecipientsgiven' => 'Vous n\'avez pas spécifier de destinataire',
'errorsendingmail' => 'Echec d\'envoi du message à "%s"',
'cannotreaddir' => 'Impossible de lire dossier "%s"',
'vmailquotawrong' => 'La taille du quota doit être entre 1 et 999',
'invalidip' => 'Adresse IP invalide : %s',
'invalidmysqlhost' => 'Adresse hôte MySQL invalide : "%s"',
'cannotuseawstatsandwebalizeratonetime' => 'Vous ne pouvez pas activer AWStats et Webalizer en même temps. Veuillez n\'en choisir qu\'un seul.',
'cannotwritetologfile' => 'Ne peut ouvrir le fichier de log %s en écriture',
],
'extras' => [
'description' => 'Ici, vous pouvez ajouter des extras, comme par exemple, la protection de dossiers du site. Il vous faudra patienter quelques minutes après chaque changement pour que la configuration soit activée.',
'directoryprotection_add' => 'Ajouter une protection de dossier',
'view_directory' => 'Aperçu du dossier',
'pathoptions_add' => 'Ajouter des options sur le dossier',
'directory_browsing' => 'Afficher le contenu des dossiers',
'pathoptions_edit' => 'Modifier les options de dossier',
'errordocument404path' => 'Emplacement du document "Erreur 404"',
'errordocument403path' => 'Emplacement du document "Erreur 403"',
'errordocument500path' => 'Emplacement du document "Erreur 500"',
'errordocument401path' => 'Emplacement du document "Erreur 401"',
],
'ftp' => [
'description' => 'Ici, vous pouvez ajouter des accès FTP supplémentaires. Les changements, ainsi que l\'accès, sont immédiatement opérationnels.',
'account_add' => 'Ajouter un accès',
],
'index' => [
'customerdetails' => 'Informations personnelles',
'accountdetails' => 'Informations du compte',
],
'logger' => [
'date' => 'Date',
'type' => 'Type',
'action' => 'Action',
'user' => 'Utilisateur',
'truncate' => 'Vider les logs',
],
'login' => [
'username' => 'Identifiant',
'password' => 'Mot de passe',
'language' => 'Langue',
'login' => 'Se connecter',
'logout' => 'Se déconnecter',
'profile_lng' => 'Langue du profil',
'forgotpwd' => 'Mot de passe oublié ?',
'presend' => 'Réinitialiser le mot de passe',
'email' => 'Adresse e-mail',
'remind' => 'Réinitialiser mon mot de passe',
'usernotfound' => 'Erreur : utilisateur inconnu !',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Bonjour,\\n\\nvotre accès POP3 / IMAP {EMAIL}\\na été créé avec succès.\\n\\nCeci est un e-mail généré automatiquement, veuillez ne pas répondre à ce message.\\n\\nCordialement,\\nL\'équipe froxlor\\nhttp://www.froxlor.org',
'subject' => 'Accès POP3 / IMAP créé',
],
'createcustomer' => [
'mailbody' => 'Bonjour {FIRSTNAME} {NAME},\\n\\nVous trouverez ci-dessous vos informations d\'accès au panel d\'administration :\\n\\nAdresse d\'administration : http://demo.froxlor.org\\n\\nIdentifiant : {USERNAME}\\nMot de passe : {PASSWORD}\\n\\nCordialement,\\nL\'équipe froxlor\\nhttp://www.froxlor.org\\n',
'subject' => 'froxlor : Informations pour votre accès au panel d\'administration',
],
'pop_success_alternative' => [
'mailbody' => 'Bonjour,\\n\\nVotre compte e-mail {EMAIL} a été correctement créé.\\n\\nVotre mot de passe est : {PASSWORD}.\\n\\nCeci est un message généré automatiquemenent, veuillez ne pas répondre à cet e-mail car il ne serait être consulter.\\n\\nCordialement,\\nL\'équipe froxlor.',
'subject' => 'Compte e-mail correctement créé',
],
'password_reset' => [
'subject' => 'réinitialisation du mot de passe',
'mailbody' => 'Bonjour {USERNAME},\\n\\nVotre mot de passe pour froxlor a été réinitialiser !\\nLe nouveau mot de passe est : {LINK}\\n\\nCordialement,\\nL\'équipe froxlor.',
],
],
'menu' => [
'message' => 'Messages',
],
'menue' => [
'main' => [
'main' => 'Général',
'changepassword' => 'Changer de mot de passe',
'changelanguage' => 'Changer de langue',
'username' => 'Utilisateur : ',
],
'email' => [
'email' => 'E-mail',
'emails' => 'Adresse(s) e-mail(s)',
'webmail' => 'Webmail',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Bases de données',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domaines',
'settings' => 'Paramétres des sites',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Comptes d\'accès FTP',
'webftp' => 'WebFTP',
],
'extras' => [
'extras' => 'Extras',
'directoryprotection' => 'Protection des dossiers',
'pathoptions' => 'Options des dossiers',
],
'traffic' => [
'traffic' => 'Trafic',
'current' => 'Mois actuel',
],
'logger' => [
'logger' => 'Log système',
],
],
'message' => [
'norecipients' => 'Aucun e-mail n\'a été envoyé car il n\'existe aucun destinataire dans la base de données',
'success' => 'Le message a été envoyé aux destinataires "%s"',
],
'mysql' => [
'databasename' => 'Nom de la base de données',
'databasedescription' => 'Description de la base de données',
'database_create' => 'Ajouter une base de données',
'description' => 'Ici, vous pouvez ajouter et effacer des bases de données MySQL. Les changements, ainsi que les bases de données, sont immédiatement opérationnels. Dans le menu, vous trouverez un lien vers phpMyAdmin, avec lequel vous pouvez gérer vos bases de données.
L\'accès aux bases de données depuis les scripts PHP fonctionne comme suit : (Il faut remplacer les valeurs en italique par vos informations !)
$connexion = mysql_connect(\'localhost\', \'Votre identifiant\', \'Votre mot de passe\'); mysql_select_db(\'Le nom de la base de données\', $connexion);',
],
'panel' => [
'edit' => 'Modifier',
'delete' => 'Supprimer',
'create' => 'Ajouter',
'save' => 'Sauvegarder',
'yes' => 'Oui',
'no' => 'Non',
'emptyfornochanges' => 'Laissez vide pour ne pas modifier',
'emptyfordefault' => 'Laissez vide pour l\'option standard',
'path' => 'Dossier',
'toggle' => 'Activer / Désactiver',
'next' => 'continuer',
'dirsmissing' => 'Dossiers non disponibles ou illisibles',
'urloverridespath' => 'URL (supplante la valeur dossier)',
'pathorurl' => 'Dossier ou URL',
'ascending' => 'ascendant',
'descending' => 'descendant',
'search' => 'Rechercher',
'used' => 'utilisé',
'translator' => 'Traducteur(s)',
'reset' => 'Ignorer les changements',
'pathDescription' => 'Si le dossier n\'existe pas, il sera créé automatiquement.',
'back' => 'Retour',
'reseller' => 'revendeur',
'admin' => 'administrateur',
'customer' => 'client(s)',
'send' => 'envoyé',
'nosslipsavailable' => 'Il n\'y a actuellement aucune combinaison IP / Port configurer pour SSL',
'backtooverview' => 'Retour à l\'aperçu',
'dateformat' => 'YYYY-MM-DD',
'dateformat_function' => 'Y-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Par défaut',
'never' => 'Jamais',
'active' => 'Actif',
'please_choose' => 'Veuillez choisir',
],
'pwdreminder' => [
'success' => 'Mot de passe correctement réinitialiser. Vous devriez recevoir un e-mail avec votre nouveau mot de passe d\'ici quelques minutes.',
'notallowed' => 'La réinitialisation des mots de passe est désactivée.',
],
'question' => [
'question' => 'Question de sécurité',
'admin_customer_reallydelete' => 'Etes-vous sûr de vouloir supprimer le compte "%s" ? ATTENTION ! Toutes ses informations seront supprimées ! Une fois fait, il vous appartiendra de supprimer manuellement tous les dossiers du compte sur le système de fichiers.',
'admin_domain_reallydelete' => 'Etes-vous sûr de vouloir supprimer le domaine "%s" ?',
'admin_domain_reallydisablesecuritysetting' => 'Etes-vous sûr de vouloir désactiver les modes de sécurité suivants : OpenBasedir et / oû SafeMode ?',
'admin_admin_reallydelete' => 'Etes-vous sûr de vouloir supprimer l\'administrateur "%s" ? Tous ses comptes seront affectés à l\'administrateur principal.',
'admin_template_reallydelete' => 'Etes-vous sûr de vouloir supprimer le modèle "%s" ?',
'domains_reallydelete' => 'Etes-vous sûr de vouloir supprimer le domaine "%s" ?',
'email_reallydelete' => 'Etes-vous sûr de vouloir supprimer l\'adresse e-mail "%s" ? ',
'email_reallydelete_account' => 'Etes-vous sûr de vouloir supprimer l\'accès e-mail "%s" ?',
'email_reallydelete_forwarder' => 'Etes-vous sûr de vouloir supprimer le renvoi vers "%s" ?',
'extras_reallydelete' => 'Etes-vous sûr de vouloir supprimer la protection du dossier "%s" ?',
'extras_reallydelete_pathoptions' => 'Etes-vous sûr de vouloir supprimer les options du dossier "%s" ?',
'ftp_reallydelete' => 'Etes-vous sûr de vouloir supprimer l\'accès ftp "%s" ?',
'mysql_reallydelete' => 'Etes-vous sûr de vouloir supprimer la base de données "%s" ? ATTENTION : Toutes les données seront perdues à jamais !',
'admin_configs_reallyrebuild' => 'Etes-vous sûr de vouloir régénérer les fichiers de configuration Apache et Bind ?',
'admin_ip_reallydelete' => 'Etes-vous sûr de vouloir supprimer l\'adresse IP "%s" ?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Etes-vous sûr de vouloir différencier la racine principale de ce domaine de la racine principale du client ?',
'admin_counters_reallyupdate' => 'Etes-vous sûr de vouloir recalculer les ressources utilisées ?',
'admin_cleartextmailpws_reallywipe' => 'Etes-vous sûr de vouloir retirer tous les mots de passe en clairs des comptes e-mails de la table mail_users ? Cette action ne peut être annulée !',
'logger_reallytruncate' => 'Etes-vous sûr de vouloir vider la table "%s" ?',
'admin_quotas_reallywipe' => 'Etes-vous sûr de vouloir retirer tous les quotas de la table mail_users ? Cette action ne peut être annulée !',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Durée d\'inactivité maximale',
'description' => 'Combien de secondes d\'inactivité avant qu\'une session ne se ferme ?',
],
'accountprefix' => [
'title' => 'Préfix des comptes',
'description' => 'Quel préfix doivent avoir les comptes ?',
],
'mysqlprefix' => [
'title' => 'Préfix SQL',
'description' => 'Quel préfix doivent avoir les bases de données ?',
],
'ftpprefix' => [
'title' => 'Préfix FTP',
'description' => 'Quel préfix doivent avoir les accès FTP ?',
],
'documentroot_prefix' => [
'title' => 'Dossier de stockage',
'description' => 'Oû doivent être stockés tous les dossiers et fichiers des différents comptes ?',
],
'logfiles_directory' => [
'title' => 'Dossier des fichiers de log',
'description' => 'Oû doivent être stockés les archives des logs d\'accès du serveur Web ?',
],
'ipaddress' => [
'title' => 'Adresse IP',
'description' => 'Quelle est l\'adresse IP du serveur ?',
],
'hostname' => [
'title' => 'Nom d\'hôte',
'description' => 'Quel est le nom d\'hôte (hostname) du serveur ?',
],
'apachereload_command' => [
'title' => 'Commande de rechargement d\'Apache',
'description' => 'Quelle est la commande pour recharger / redémarrer Apache ?',
],
'bindconf_directory' => [
'title' => 'Emplacement du dossier de configuration de Bind / Named',
'description' => 'Oû doit être stocké la configuration de Bind / Named ?',
],
'bindreload_command' => [
'title' => 'Commande de rechargement de Bind / Named',
'description' => 'Quelle est la commande pour recharger / redémarrer Bind / Named ?',
],
'vmail_uid' => [
'title' => 'UID des e-mails',
'description' => 'Quel UID doivent avoir les e-mails ?',
],
'vmail_gid' => [
'title' => 'GID des e-mails',
'description' => 'Quel GID doivent avoir les e-mails ?',
],
'vmail_homedir' => [
'title' => 'Emplacement des e-mails',
'description' => 'Dans quel dossier doivent être stocker les e-mails ?',
],
'adminmail' => [
'title' => 'Adresse e-mail de l\'administrateur',
'description' => 'Quelle est l\'adresse e-mail par défaut des e-mails envoyés par froxlor ?',
],
'phpmyadmin_url' => [
'title' => 'Adresse URL de phpMyAdmin',
'description' => 'A quelle adresse se trouve phpMyAdmin ?',
],
'webmail_url' => [
'title' => 'Adresse URL du WebMail',
'description' => 'A quelle adresse se trouve le WebMail ?',
],
'webftp_url' => [
'title' => 'Adresse URL du WebFTP',
'description' => 'A quelle adresse se trouve le WebFTP ?',
],
'language' => [
'description' => 'Quelle langue est la langue par défaut ?',
],
'maxloginattempts' => [
'title' => 'Nombre d\'essais maximum avant désactivation',
'description' => 'Nombre de tentatives maximum avant la désactivation de l\'accès.',
],
'deactivatetime' => [
'title' => 'Durée de la désactivation',
'description' => 'Durée (en secondes) pendant laquelle l\'accès sera désactivé.',
],
'pathedit' => [
'title' => 'Mode de sélection des dossiers',
'description' => 'Choisir un dossier par une liste déroulante ou l\'entrer manuellement ?',
],
'nameservers' => [
'title' => 'Serveurs de nom «Nameservers»',
'description' => 'Une liste séparée par des virgules contenant les noms d\'hôtes de tous les serveurs de noms. Le premier dans la liste sera le serveur primaire.',
],
'mxservers' => [
'title' => 'Serveurs de messagerie «MX»',
'description' => 'Une liste séparée par des virgules contenant les serveurs de messagerie avec leur poid : un nombre et le nom d\'hôte séparé par un espace; par exemple : "10 mx.exemple.com".',
],
'paging' => [
'title' => 'Nombre de résultats par page',
'description' => 'Nombre de résultats par page ? (0 = Désactive la pagination)',
],
'defaultip' => [
'title' => 'IP / Port par défaut',
'description' => 'Quel est l\'IP / Port par défaut ?',
],
'phpappendopenbasedir' => [
'title' => 'Dossier(s) de l\'OpenBasedir',
'description' => 'Liste de dossiers séparée par des virgules qui sera ajouté à la variable "OpenBasedir" des conteneurs vHosts.',
],
'natsorting' => [
'title' => 'Utiliser un tri naturel dans les différentes vues',
'description' => 'Trier les listes comme web1 -> web2 -> etc ... -> web11 au lieu de web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Dossier "DocumentRoot" pour les utilisateurs désactivés',
'description' => 'Quand un utilisateur est désactivé, ce dossier sera utilisé comme dossier racine pour le serveur Web. Laissez vide pour ne pas créer de vHost et ne rien afficher du tout lorsque l\'utilisateur est désactivé.',
],
'mailpwcleartext' => [
'title' => 'Sauvegarder aussi les mots de passe des comptes e-mails de façon décrypter dans la base de données',
'description' => 'Si cela est à Oui, tous les mots de passe seront aussi sauvegarder de façon décrypter dans la table mail_users (en texte clair pour toutes personnes qui auraient accès à la base de données). Activer cette option, uniquement si vous en avez vraiment besoin !',
'removelink' => 'Cliquez ici pour retirer tous les mots de passe en texte clair de la base de données.',
],
'ftpdomain' => [
'title' => 'Comptes FTP @domaine',
'description' => 'Les utilisateurs peuvent-ils créer des comptes FTP de la forme utilisateur@domaine.com ?',
],
'mod_fcgid' => [
'title' => 'Utiliser PHP par mod_fcgid / suexec',
'description' => 'Utiliser mod_fcgid / suexec / libnss_mysql pour lancer PHP avec le compte correspondant à l\'utilisateur ? Cela à besoin d\'une configuration spécifique d\'Apache !',
'configdir' => [
'title' => 'Dossier de configuration FCGI',
'description' => 'Oû doivent être stockés les fichiers de configuration pour FCGI ?',
],
'tmpdir' => [
'title' => 'Dossier temporaire pour FCGI',
],
],
'sendalternativemail' => [
'title' => 'Utiliser une adresse e-mail alternative',
'description' => 'Envoyer le mot de passe du compte e-mail à une adresse différents pour la création du compte e-mail ?',
],
'apacheconf_vhost' => [
'title' => 'Dossier / fichier de configuration des vHosts pour Apache',
'description' => 'Oû doit être stocké le fichier de configuration des vHosts ? Vous pouvez soit entrer le nom d\'un fichier (tous les vHosts dans un seul fichier), soit le nom d\'un dossier (chacun des vHosts dans un fichier séparé du dossier).',
],
'apacheconf_diroptions' => [
'title' => 'Fichier / dossier de configuration des options des dossiers pour Apache',
'description' => 'Oû doit être stocké le fichier de configuration des options de dossiers ? Vous pouvez soit entrer le nom d\'un fichier (toutes les options des dossiers dans un seul fichier), soit le nom d\'un dossier (chacune des options de dossier dans un fichier séparé du dossier).',
],
'apacheconf_htpasswddir' => [
'title' => 'Dossier du fichier htpasswd pour Apache',
'description' => 'Oû doit être stocké le fichier de configuration de protection des dossiers "htpasswd" pour Apache ?',
],
'mysql_access_host' => [
'title' => 'Hôtes de connexion MySQL',
'description' => 'Une liste séparée par des virgules contenant la liste des hôtes depuis lesquels les utilisateurs sont autorisés à se connecter au serveur MySQL.',
],
'webalizer_quiet' => [
'title' => 'Sortie Webalizer',
'description' => 'Verbosité du programme Webalizer',
],
'logger' => [
'enable' => 'Activer / Désactiver les logs',
'severity' => 'Niveau de log',
'types' => [
'title' => 'Type(s) de log',
'description' => 'Spécifiez les types de log séparés par des virgules. Les types de log disponible sont : syslog, file, mysql',
],
'logfile' => 'Nom du fichier de log, dossier + nom du fichier',
'logcron' => 'Loguer les travaux de cron',
'logcronoption' => [
'never' => 'Jamais',
'once' => 'Une fois',
'always' => 'Toujours',
],
],
'ssl' => [
'openssl_cnf' => 'Paramètres par défaut pour créer le certificat',
],
'default_vhostconf' => [
'title' => 'Paramètres par défaut pour les vHosts',
],
'mail_quota' => [
'title' => 'Quota de la boîte aux lettres',
'description' => 'Quota par défaut pour toutes nouvelles boîtes aux lettres créées.',
],
'mail_quota_enabled' => [
'title' => 'Utiliser les quotas de boîtes aux lettres pour les clients',
'description' => 'Activez cette option pour utiliser les quotas sur les boîtes aux lettres. Par défaut, cette option est à Non car cela requiert une configuration spécifique.',
'removelink' => 'Cliquez ici pour retirer tous les quotas de tous les comptes e-mails.',
],
'decimal_places' => 'Nombre de décimales à afficher pour le trafic / espace web',
'webalizer_enabled' => 'Activer les statistiques Webalizer',
'awstats_enabled' => 'Activer les statistiques AWStats',
'selfdns' => [
'title' => 'Paramètres manuel des DNS du domaine',
],
'selfdnscustomer' => [
'title' => 'Permettre aux clients de modifier les paramètes DNS du domaine',
],
'unix_names' => [
'title' => 'Utiliser des noms d\'utilisateurs compatible UNIX',
'description' => 'Vous permet d\'utiliser les - et _ dans les noms d\'utilisateurs si l\'option est à Non',
],
'allow_password_reset' => [
'title' => 'Permettre aux clients de réinitialiser leurs mots de passe',
'description' => 'Les clients peuvent réinitialiser leurs mots de passe et il sera envoyé à leurs propres adresses e-mails',
],
'allow_password_reset_admin' => [
'title' => 'Permettre la réinitialisation des mots de passe par les administrateurs',
'description' => 'Les administrateurs / revendeurs peuvent réinitialiser leurs mots de passe et il sera envoyé à leurs propres adresses e-mails',
],
],
'traffic' => [
'month' => 'Mois',
'day' => 'Jour',
'months' => [
1 => 'Janvier',
2 => 'Février',
3 => 'Mars',
4 => 'Avril',
5 => 'Mai',
6 => 'Juin',
7 => 'Juillet',
8 => 'Août',
9 => 'Septembre',
10 => 'Octobre',
11 => 'Novembre',
12 => 'Décembre',
],
'mb' => 'Trafic (Mo)',
'distribution' => 'FTP | HTTP | E-mail',
'sumhttp' => 'Trafic HTTP total entrant',
'sumftp' => 'Trafic FTP total entrant',
'summail' => 'Trafic E-mail total entrant',
],
'translator' => 'Tim Zielosko, Aldo Reset, Romain MARIADASSOU',
];
================================================
FILE: lng/hu.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => 'Czech',
'de' => 'German',
'en' => 'English',
'fr' => 'French',
'hu' => 'Hungarian',
'it' => 'Italian',
'nl' => 'Dutch',
'pt' => 'Portuguese',
'se' => 'Swedish',
'sk' => 'Slovak',
'es' => 'Spanish',
'ca' => 'Catalan',
'zh_CN' => 'Chinese (Simplified)',
],
'2fa' => [
'2fa' => '2FA beállítások',
'2fa_enabled' => 'Kétfaktoros hitelesítés (2FA) aktiválása',
'2fa_removed' => '2FA sikeresen eltávolítva',
'2fa_added' => '2FA sikeresen aktiválva 2FA részletek megtekintése',
'2fa_add' => '2FA aktiválása',
'2fa_delete' => '2FA deaktiválása',
'2fa_verify' => 'Kód ellenőrzése',
'2fa_overview_desc' => 'Itt aktiválhatja a kétfaktoros hitelesítést a fiókjához.
Használhat hitelesítő alkalmazást (időalapú egyszeri jelszó / TOTP), vagy hagyhatja, hogy a froxlor minden sikeres bejelentkezés után e-mailt küldjön a fiókjához tartozó címre egy egyszeri jelszóval.',
'2fa_email_desc' => 'Fiókja be van állítva egyszeri jelszavak használatára e-mailen keresztül. A deaktiváláshoz kattintson a "2FA deaktiválása" gombra',
'2fa_ga_desc' => 'Fiókja be van állítva időalapú egyszeri jelszavak használatára hitelesítő alkalmazáson keresztül. Kérjük, olvassa be az alábbi QR-kódot a kívánt hitelesítő alkalmazással a kódok generálásához. A deaktiváláshoz kattintson a "2FA deaktiválása" gombra',
'2fa_not_activated' => 'A kétfaktoros hitelesítés nincs engedélyezve',
'2fa_not_activated_for_user' => 'A kétfaktoros hitelesítés nincs engedélyezve a jelenlegi felhasználó számára',
'type_2fa' => '2FA állapot',
],
'admin' => [
'overview' => 'Áttekintés',
'ressourcedetails' => 'Felhasznált erőforrások',
'systemdetails' => 'Rendszer részletek',
'froxlordetails' => 'froxlor részletek',
'installedversion' => 'Telepített verzió',
'latestversion' => 'Legújabb verzió',
'lookfornewversion' => [
'clickhere' => 'Keresés webszolgáltatáson keresztül',
'error' => 'Hiba az olvasás közben',
],
'resources' => 'Erőforrások',
'customer' => 'Ügyfél',
'customers' => 'Ügyfelek',
'customers_list_desc' => 'Ügyfelek kezelése',
'customer_add' => 'Ügyfél létrehozása',
'customer_edit' => 'Ügyfél szerkesztése',
'username_default_msg' => 'Hagyja üresen az automatikusan generált értékhez',
'password_default_msg' => 'Automatikusan generált, ha üres',
'domains' => 'Domainek',
'domain_add' => 'Domain létrehozása',
'domain_edit' => 'Domain szerkesztése',
'subdomainforemail' => 'Aldomainek e-mail domainként',
'admin' => 'Admin',
'admins' => 'Adminok',
'admin_add' => 'Admin létrehozása',
'admin_edit' => 'Admin szerkesztése',
'customers_see_all' => 'Hozzáférhet más adminok/viszonteladók erőforrásaihoz?',
'change_serversettings' => 'Módosíthatja a szerver beállításait?',
'server' => 'Rendszer',
'serversettings' => 'Beállítások',
'serversettings_desc' => 'froxlor rendszer kezelése',
'rebuildconf' => 'Konfigurációs fájlok újraépítése',
'stdsubdomain' => 'Alapértelmezett aldomain',
'stdsubdomain_add' => 'Alapértelmezett aldomain létrehozása',
'phpenabled' => 'PHP engedélyezve',
'deactivated' => 'Deaktivált',
'deactivated_user' => 'Felhasználó deaktiválása',
'sendpassword' => 'Jelszó küldése',
'ownvhostsettings' => 'Saját vHost-beállítások',
'configfiles' => [
'serverconfiguration' => 'Konfiguráció',
'overview' => 'Áttekintés',
'wizard' => 'Varázsló',
'distribution' => 'Disztribúció',
'service' => 'Szolgáltatás',
'daemon' => 'Démon',
'http' => 'Webszerver (HTTP)',
'dns' => 'Névszerver (DNS)',
'mail' => 'Levelezőszerver (IMAP/POP3)',
'smtp' => 'Levelezőszerver (SMTP)',
'ftp' => 'FTP-szerver',
'etc' => 'Egyebek (Rendszer)',
'choosedistribution' => '-- Válasszon disztribúciót --',
'chooseservice' => '-- Válasszon szolgáltatást --',
'choosedaemon' => '-- Válasszon démont --',
'statistics' => 'Statisztikák',
'compactoverview' => 'Kompakt áttekintés',
'legend' => '
Ön egy szolgáltatás/démon konfigurálására készül
',
'commands' => 'Parancsok: Ezeket a parancsokat soronként kell végrehajtani root felhasználóként a parancssorban. Biztonságosan másolhatja és beillesztheti az egész blokkot a parancssorba.',
'files' => 'Konfigurációs fájlok: A szövegmezők előtti parancsoknak meg kell nyitniuk egy szerkesztőt a célfájllal. Csak másolja és illessze be a tartalmakat a szerkesztőbe, majd mentse a fájlt. Kérjük, vegye figyelembe: A MySQL-jelszó biztonsági okokból nem lett lecserélve. Kérjük, cserélje le a "FROXLOR_MYSQL_PASSWORD"-öt saját maga, vagy használja az alábbi JavaScript űrlapot a helyszíni cseréhez. Ha elfelejtette a MySQL-jelszavát, megtalálja a "lib/userdata.inc.php" fájlban.',
'importexport' => 'Importálás/Exportálás',
'finishnote' => 'A paraméter fájl sikeresen létrehozva. Most futtassa a következő parancsot root-ként:',
'description' => 'Rendszerszolgáltatások konfigurálása',
'minihowto' => 'Ezen az oldalon megtekintheti a különböző konfigurációs sablonokat minden szolgáltatáshoz, szükség esetén (újra)konfigurálhat specifikus szolgáltatásokat, vagy exportálhatja az aktuális kiválasztást egy JSON fájlba, hogy a CLI szkriptekben vagy egy másik szerveren használhassa.
Megjegyzés: a kiemelt szolgáltatások nem tükrözik az aktuális beállításait, hanem az aktuális beállítási értékek alapján mutatják a követelményeket/ajánlásokat.',
'skipconfig' => 'Ne konfigurálja (újra)',
'recommendednote' => 'Ajánlott/szükséges szolgáltatások az aktuális rendszerbeállítások alapján',
'selectrecommended' => 'Ajánlottak kiválasztása',
'downloadselected' => 'Kiválasztottak exportálása',
],
'templates' => [
'templates' => 'E-mail sablonok',
'template_add' => 'Sablon hozzáadása',
'template_fileadd' => 'Fájl sablon hozzáadása',
'template_edit' => 'Sablon szerkesztése',
'action' => 'Művelet',
'email' => 'E-mail és fájl sablonok',
'subject' => 'Tárgy',
'mailbody' => 'E-mail törzs',
'createcustomer' => 'Üdvözlő e-mail új ügyfeleknek',
'pop_success' => 'Üdvözlő e-mail új e-mail fiókokhoz',
'template_replace_vars' => 'A sablonban helyettesítendő változók:',
'SALUTATION' => 'Helyettesítve a megfelelő megszólítással (név vagy cég)',
'FIRSTNAME' => 'Helyettesítve az ügyfél keresztnevével.',
'NAME' => 'Helyettesítve az ügyfél nevével.',
'COMPANY' => 'Helyettesítve az ügyfél cégnevével',
'USERNAME' => 'Helyettesítve az ügyfél fiókjának felhasználónevével.',
'PASSWORD' => 'Helyettesítve az ügyfél fiókjának jelszavával.',
'EMAIL' => 'Helyettesítve a POP3/IMAP fiók címével.',
'CUSTOMER_NO' => 'Helyettesítve az ügyfélszámmal',
'TRAFFIC' => 'Helyettesítve a forgalommal, amely az ügyfélhez lett rendelve.',
'TRAFFICUSED' => 'Helyettesítve a forgalommal, amelyet az ügyfél felhasznált.',
'pop_success_alternative' => 'Üdvözlő e-mail új e-mail fiókokhoz, alternatív címre küldve',
'EMAIL_PASSWORD' => 'Helyettesítve a POP3/IMAP fiók jelszavával.',
'index_html' => 'Index fájl az újonnan létrehozott ügyfél könyvtárakhoz',
'unconfigured_html' => 'Index fájl a nem konfigurált/ismeretlen domainekhez',
'unconfigured_content_fallback' => 'Ez a domain konfigurálást igényel a froxlor szerver kezelőpanelen keresztül, mivel jelenleg nincs hozzárendelve egyetlen ügyfélhez sem.',
'file_extension' => [
'description' => 'Az index fájl kiterjesztésének 1-6 karakter hosszúnak kell lennie. A kiterjesztés csak a-z, A-Z és 0-9 karaktereket tartalmazhat
Alapértelmezett: html',
'title' => 'Fájl kiterjesztés a fájl sablonhoz',
],
'SERVERNAME' => 'Helyettesítve a szerver nevével.',
'CUSTOMER' => 'Helyettesítve az ügyfél bejelentkezési nevével. Csak az "index fájl az újonnan létrehozott ügyfél könyvtárakhoz" esetén',
'ADMIN' => 'Helyettesítve az admin bejelentkezési nevével. Csak az "index fájl az újonnan létrehozott ügyfél könyvtárakhoz" esetén',
'CUSTOMER_EMAIL' => 'Helyettesítve az ügyfél e-mail címével. Csak az "index fájl az újonnan létrehozott ügyfél könyvtárakhoz" esetén',
'ADMIN_EMAIL' => 'Helyettesítve az admin e-mail címével. Csak az "index fájl az újonnan létrehozott ügyfél könyvtárakhoz" esetén',
'filetemplates' => 'Fájl sablonok',
'filecontent' => 'Fájl tartalom',
'new_database_by_customer' => 'Ügyfél-értesítés adatbázis létrehozásakor',
'new_ftpaccount_by_customer' => 'Ügyfél-értesítés FTP-felhasználó létrehozásakor',
'newdatabase' => 'Értesítő e-mailek új adatbázisokhoz',
'newftpuser' => 'Értesítő e-mailek új FTP-felhasználókhoz',
'CUST_NAME' => 'Ügyfél neve',
'DB_NAME' => 'Adatbázis neve',
'DB_PASS' => 'Adatbázis jelszava',
'DB_DESC' => 'Adatbázis leírása',
'DB_SRV' => 'Adatbázis szerver',
'PMA_URI' => 'URL a phpMyAdminhoz (ha meg van adva)',
'USR_NAME' => 'FTP felhasználónév',
'USR_PASS' => 'FTP jelszó',
'USR_PATH' => 'FTP home könyvtár (relatív az ügyfél dokumentumgyökeréhez)',
'forgotpwd' => 'Értesítő e-mailek jelszó-visszaállításhoz',
'password_reset' => 'Ügyfél-értesítés jelszó-visszaállításhoz',
'trafficmaxpercent' => 'Értesítő e-mail ügyfeleknek, amikor a forgalom adott maximális százalékát kimerítették',
'MAX_PERCENT' => 'Helyettesítve a lemezhasználat/forgalom jelentésküldési határértékével százalékban.',
'USAGE_PERCENT' => 'Helyettesítve a lemezhasználattal/forgalommal, amelyet az ügyfél kimerített, százalékban.',
'diskmaxpercent' => 'Értesítő e-mail ügyfeleknek, amikor a lemezterület adott maximális százalékát kimerítették',
'DISKAVAILABLE' => 'Helyettesítve a lemezhasználattal, amely az ügyfélhez lett rendelve.',
'DISKUSED' => 'Helyettesítve a lemezhasználattal, amelyet az ügyfél kimerített.',
'LINK' => 'Helyettesítve az ügyfél jelszó-visszaállítási linkjével.',
'SERVER_HOSTNAME' => 'Helyettesíti a rendszer-hosztnevet (URL a froxlorhoz)',
'SERVER_IP' => 'Helyettesíti az alapértelmezett szerver IP-címét',
'SERVER_PORT' => 'Helyettesíti az alapértelmezett szerver portját',
'DOMAINNAME' => 'Helyettesíti az ügyfél standard aldomainjét (üres lehet, ha nincs generálva)',
],
'webserver' => 'Webszerver',
'createzonefile' => 'DNS zóna létrehozása a domainhez',
'custombindzone' => 'Egyéni / nem kezelt zónafájl',
'bindzonewarning' => 'üres az alapértelmezettekhez FIGYELEM: Ha zónafájlt használ, manuálisan kell kezelnie az összes szükséges rekordot az összes alzónához is.',
'ipsandports' => [
'ipsandports' => 'IP-k és Portok',
'add' => 'IP/Port hozzáadása',
'edit' => 'IP/Port szerkesztése',
'ipandport' => 'IP/Port',
'ip' => 'IP',
'ipnote' => '
Megjegyzés: Bár privát IP-címek megengedettek, néhány funkció, mint például a DNS, nem biztos, hogy helyesen működik. Csak akkor használjon privát IP-címeket, ha biztos benne.
',
'port' => 'Port',
'create_listen_statement' => 'Listen utasítás létrehozása',
'create_namevirtualhost_statement' => 'NameVirtualHost utasítás létrehozása',
'create_vhostcontainer' => 'vHost-Container létrehozása',
'create_vhostcontainer_servername_statement' => 'ServerName utasítás létrehozása a vHost-Containerben',
'enable_ssl' => 'Ez egy SSL Port?',
'ssl_cert_file' => 'Az SSL tanúsítvány elérési útja',
'webserverdefaultconfig' => 'Webszerver alapértelmezett konfiguráció',
'webserverdomainconfig' => 'Webszerver domain konfiguráció',
'webserverssldomainconfig' => 'Webszerver SSL konfiguráció',
'ssl_key_file' => 'Az SSL kulcsfájl elérési útja',
'ssl_ca_file' => 'Az SSL CA tanúsítvány elérési útja',
'default_vhostconf_domain' => 'Alapértelmezett vHost-beállítások minden domain containerhez',
'ssl_cert_chainfile' => [
'title' => 'Az SSL CertificateChainFile elérési útja',
'description' => 'Többnyire CA_Bundle, vagy hasonló, valószínűleg be kell állítania, ha SSL tanúsítványt vásárolt.',
],
'docroot' => [
'title' => 'Egyéni docroot (üres = froxlorra mutat)',
'description' => 'Meghatározhat egy egyéni dokumentum-gyökeret (a kérés célállomása) ehhez az IP/port kombinációhoz. FIGYELEM: Kérjük, legyen óvatos azzal, amit ide beír!',
],
'ssl_paste_description' => 'Illessze be a teljes tanúsítvány tartalmát a szövegdobozba',
'ssl_cert_file_content' => 'Az SSL tanúsítvány tartalma',
'ssl_key_file_content' => 'Az SSL (privát) kulcsfájl tartalma',
'ssl_ca_file_content' => 'Az SSL CA fájl tartalma (opcionális)',
'ssl_ca_file_content_desc' => '
Ügyfél-hitelesítés, csak akkor állítsa be, ha tudja, mi az.',
'ssl_cert_chainfile_content' => 'A tanúsítvány láncfájl tartalma (opcionális)',
'ssl_cert_chainfile_content_desc' => '
Többnyire CA_Bundle, vagy hasonló, valószínűleg be kell állítania, ha SSL tanúsítványt vásárolt.',
'ssl_default_vhostconf_domain' => 'Alapértelmezett SSL vHost-beállítások minden domain containerhez',
],
'memorylimitdisabled' => 'Letiltva',
'valuemandatory' => 'Ez az érték kötelező',
'valuemandatorycompany' => 'Vagy a "név" és "keresztnév", vagy a "cég" mezőt ki kell tölteni',
'serversoftware' => 'Szerver szoftver',
'phpversion' => 'PHP-verzió',
'mysqlserverversion' => 'MySQL szerver verzió',
'webserverinterface' => 'Webszerver interfész',
'accountsettings' => 'Fiók beállítások',
'panelsettings' => 'Panel beállítások',
'systemsettings' => 'Rendszer beállítások',
'webserversettings' => 'Webszerver beállítások',
'mailserversettings' => 'Mail szerver beállítások',
'nameserversettings' => 'Névszerver beállítások',
'updatecounters' => 'Erőforrás-használat újraszámítása',
'subcanemaildomain' => [
'never' => 'Soha',
'choosableno' => 'Választható, alapértelmezett nem',
'choosableyes' => 'Választható, alapértelmezett igen',
'always' => 'Mindig',
],
'wipecleartextmailpwd' => 'Tiszta szöveges jelszavak törlése',
'webalizersettings' => 'Webalizer beállítások',
'webalizer' => [
'normal' => 'Normál',
'quiet' => 'Csendes',
'veryquiet' => 'Nincs kimenet',
],
'domain_nocustomeraddingavailable' => 'Jelenleg nem lehet domaint hozzáadni. Először legalább egy ügyfelet kell hozzáadnia.',
'loggersettings' => 'Naplózási beállítások',
'logger' => [
'normal' => 'normál',
'paranoid' => 'paranoid',
],
'emaildomain' => 'Email domain',
'email_only' => 'Csak email?',
'wwwserveralias' => '"www." ServerAlias hozzáadása',
'subject' => 'Tárgy',
'recipient' => 'Címzett',
'message' => 'Üzenet írása',
'text' => 'Üzenet',
'sslsettings' => 'SSL beállítások',
'specialsettings_replacements' => 'A következő változókat használhatja: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (ha alkalmazható) ',
'antispam_settings' => 'Spam elleni beállítások',
'caneditphpsettings' => 'Módosíthatja a PHP-hoz kapcsolódó domain beállításokat?',
'allips' => 'Összes IP',
'awstatssettings' => 'AWstats beállítások',
'domain_dns_settings' => 'Domain DNS beállítások',
'activated' => 'Aktiválva',
'statisticsettings' => 'Statisztikai beállítások',
'or' => 'vagy',
'sysload' => 'Rendszer terhelés',
'noloadavailable' => 'nem elérhető',
'nouptimeavailable' => 'nem elérhető',
'nosubject' => '(Nincs tárgy)',
'security_settings' => 'Biztonsági beállítások',
'know_what_youre_doing' => 'Csak akkor változtasson, ha tudja, mit csinál!',
'show_version_login' => [
'title' => 'froxlor verzió megjelenítése bejelentkezéskor',
'description' => 'A froxlor verzió megjelenítése a láblécben a bejelentkezési oldalon',
],
'show_version_footer' => [
'title' => 'froxlor verzió megjelenítése a láblécben',
'description' => 'A froxlor verzió megjelenítése a láblécben az oldalak többi részén',
],
'froxlor_graphic' => [
'title' => 'froxlor fejléc grafika',
'description' => 'Milyen grafikát kell megjeleníteni a fejlécben',
],
'phpsettings' => [
'title' => 'PHP konfiguráció',
'description' => 'Rövid leírás',
'actions' => 'Műveletek',
'activedomains' => 'Használatban lévő domain(ek)',
'notused' => 'Konfiguráció nincs használatban',
'editsettings' => 'PHP beállítások módosítása',
'addsettings' => 'Új PHP beállítások létrehozása',
'viewsettings' => 'PHP beállítások megtekintése',
'phpinisettings' => 'php.ini beállítások',
'addnew' => 'Új PHP konfiguráció létrehozása',
'binary' => 'PHP bináris',
'fpmdesc' => 'PHP-FPM konfiguráció',
'file_extensions' => 'Fájl kiterjesztések',
'file_extensions_note' => '(pont nélkül, szóközzel elválasztva)',
'enable_slowlog' => 'Slowlog engedélyezése (domainenként)',
'request_terminate_timeout' => 'Kérés megszakítási időkorlát',
'request_slowlog_timeout' => 'Slowlog kérés időkorlát',
'activephpconfigs' => 'Használatban lévő PHP-konfiguráció(k)',
'pass_authorizationheader' => 'HTTP AUTH BASIC/DIGEST fejléc továbbítása Apache-ból PHP-ba',
],
'misc' => 'Egyéb',
'fpmsettings' => [
'addnew' => 'Új PHP verzió létrehozása',
'edit' => 'PHP verzió módosítása'
],
'phpconfig' => [
'template_replace_vars' => 'A konfigurációkban lecserélendő változók',
'pear_dir' => 'A globális beállításra lesz lecserélve a pear könyvtárhoz.',
'open_basedir_c' => 'Beszúr egy ; (pontosvesszőt) az open_basedir kikommenteléséhez/letiltásához, ha be van állítva',
'open_basedir' => 'A domain open_basedir beállítására lesz lecserélve.',
'tmp_dir' => 'A domain ideiglenes könyvtárára lesz lecserélve.',
'open_basedir_global' => 'A globális értékre lesz lecserélve, amely az open_basedir-hez lesz csatolva (lásd webszerver beállítások).',
'customer_email' => 'A domain tulajdonosának e-mail címére lesz lecserélve.',
'admin_email' => 'A domain adminisztrátorának e-mail címére lesz lecserélve.',
'domain' => 'A domainre lesz lecserélve.',
'customer' => 'A domain tulajdonosának bejelentkezési nevére lesz lecserélve.',
'admin' => 'A domain adminisztrátorának bejelentkezési nevére lesz lecserélve.',
'docroot' => 'A domain dokumentum-gyökerére lesz lecserélve.',
'homedir' => 'Az ügyfél otthoni könyvtárára lesz lecserélve.',
],
'expert_settings' => 'Haladó beállítások!',
'mod_fcgid_starter' => [
'title' => 'PHP folyamatok ehhez a domainhez (üres az alapértelmezett értékhez)',
],
'phpserversettings' => 'PHP beállítások',
'mod_fcgid_maxrequests' => [
'title' => 'Maximális PHP kérések ehhez a domainhez (üres az alapértelmezett értékhez)',
],
'spfsettings' => 'Domain SPF beállítások',
'specialsettingsforsubdomains' => 'Speciális beállítások alkalmazása minden aldomainre (*.example.com)',
'accountdata' => 'Fiók adatok',
'contactdata' => 'Kapcsolati adatok',
'servicedata' => 'Szolgáltatási adatok',
'newerversionavailable' => 'Újabb froxlor verzió érhető el.',
'newerversiondetails' => 'Frissítés a %s verzióra most? (A jelenlegi verzió: %s)',
'extractdownloadedzip' => 'Letöltött archívum kibontása "%s"?',
'cron' => [
'cronsettings' => 'Cronjob beállítások',
'add' => 'Cronjob hozzáadása',
],
'cronjob_edit' => 'Cronjob szerkesztése',
'warning' => 'FIGYELEM - Kérjük, vegye figyelembe!',
'lastlogin_succ' => 'Utolsó bejelentkezés',
'ftpserver' => 'FTP Szerver',
'ftpserversettings' => 'FTP Szerver beállítások',
'webserver_user' => 'Webszerver felhasználónév',
'webserver_group' => 'Webszerver csoportnév',
'perlenabled' => 'Perl engedélyezve',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Helyi felhasználó az FCGID-hez (froxlor vHost)',
'mod_fcgid_group' => 'Helyi csoport az FCGID-hez (froxlor vHost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[nincs megadva]',
'store_defaultindex' => 'Alapértelmezett index-fájl tárolása az ügyfél dokumentumgyökerébe',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Forgalom',
'traffic_sub' => 'Részletek a forgalom használatáról',
'domaintraffic' => 'Domainek',
'customertraffic' => 'Ügyfelek',
'assignedmax' => 'Hozzárendelt / Max',
'usedmax' => 'Használt / Max',
'used' => 'Használt',
'speciallogwarning' => '
FIGYELEM: E beállítás megváltoztatásával elveszíti az összes régi statisztikáját ehhez a domainhez.
',
'speciallogfile' => [
'title' => 'Külön naplófájl',
'description' => 'Engedélyezze ezt, hogy külön hozzáférési naplófájlt kapjon ehhez a domainhez',
],
'domain_editable' => [
'title' => 'Domain szerkesztésének engedélyezése',
'desc' => 'Ha igenre van állítva, az ügyfél módosíthatja a domain beállításait. Ha nemre van állítva, az ügyfél semmit sem módosíthat.',
],
'writeaccesslog' => [
'title' => 'Hozzáférési napló írása',
'description' => 'Engedélyezze ezt, hogy hozzáférési naplófájlt kapjon ehhez a domainhez',
],
'writeerrorlog' => [
'title' => 'Hibanapló írása',
'description' => 'Engedélyezze ezt, hogy hibanapló-fájlt kapjon ehhez a domainhez',
],
'phpfpm.ininote' => 'Nem minden érték, amelyet meg szeretne határozni, használható a php-fpm pool konfigurációban',
'phpinfo' => 'PHPinfo()',
'selectserveralias' => 'ServerAlias érték a domainhez',
'selectserveralias_desc' => 'Válassza ki, hogy a froxlor hozzon létre egy wildcard-bejegyzést (*.domain.tld), egy WWW-alias-t (www.domain.tld) vagy egyáltalán ne hozzon létre alias-t',
'show_news_feed' => [
'title' => 'Hírcsatorna megjelenítése az admin irányítópulton',
'description' => 'Engedélyezze ezt, hogy megjelenítse a hivatalos froxlor hírcsatornát (https://inside.froxlor.org/news/) az irányítópultján, és soha ne maradjon le fontos információkról vagy kiadási bejelentésekről.',
],
'cronsettings' => 'Cronjob beállítások',
'integritycheck' => 'Adatbázis érvényesítés',
'integrityname' => 'Név',
'integrityresult' => 'Eredmény',
'integrityfix' => 'Problémák automatikus javítása',
'customer_show_news_feed' => 'Hírcsatorna megjelenítése az ügyfél irányítópultján',
'customer_news_feed_url' => [
'title' => 'Egyéni RSS-hírcsatorna használata',
'description' => 'Adjon meg egy egyéni RSS-hírcsatornát, amelyet az ügyfelei irányítópultján jelenít meg. Hagyja üresen, hogy a hivatalos froxlor hírcsatornát használja (https://inside.froxlor.org/news/).',
],
'movetoadmin' => 'Ügyfél áthelyezése',
'movecustomertoadmin' => [
'title' => 'Ügyfél áthelyezése a kiválasztott adminisztrátorhoz/viszonteladóhoz',
'description' => 'Hagyja üresen, ha nem kíván változtatni. Ha a kívánt adminisztrátor nem jelenik meg a listában, akkor az ügyfélkorlátja elérte a maximumot.',
],
'note' => 'Megjegyzés',
'mod_fcgid_umask' => [
'title' => 'Umask (alapértelmezett: 022)',
],
'apcuinfo' => 'APCu információ',
'opcacheinfo' => 'OPcache információ',
'letsencrypt' => [
'title' => 'Let\'s Encrypt használata',
'description' => 'Szerezzen ingyenes tanúsítványt a Let\'s Encrypt szolgáltatástól. A tanúsítvány automatikusan létrejön és megújul. FIGYELEM: Ha a wildcardok engedélyezve vannak, ez az opció automatikusan letiltásra kerül.',
],
'autoupdate' => 'Automatikus frissítés',
'server_php' => 'PHP',
'dnsenabled' => 'DNS szerkesztő engedélyezése',
'froxlorvhost' => 'froxlor VirtualHost beállítások',
'hostname' => 'Hosztnév',
'memory' => 'Memória használat',
'webserversettings_ssl' => 'Webszerver SSL beállítások',
'domain_hsts_maxage' => [
'title' => 'HTTP Strict Transport Security (HSTS)',
'description' => 'Adja meg a Strict-Transport-Security fejléc max-age értékét A 0 érték letiltja a HSTS-t a domainhez. A legtöbb felhasználó 31536000 (egy év) értéket állít be.',
],
'domain_hsts_incsub' => [
'title' => 'HSTS alkalmazása minden aldomainre',
'description' => 'Az opcionális "includeSubDomains" direktíva, ha jelen van, jelzi a felhasználói ügynöknek, hogy a HSTS politika érvényes erre a HSTS hosztra, valamint a hoszt domain nevének bármely aldomainjére.',
],
'domain_hsts_preload' => [
'title' => 'Domain felvétele a HSTS előtöltési listába',
'description' => 'Ha szeretné, hogy ez a domain szerepeljen a Chrome által karbantartott HSTS előtöltési listában (amit a Firefox és a Safari is használ), akkor aktiválja ezt. A preload direktíva küldése az oldaláról ÁLLANDÓ KÖVETKEZMÉNYEKKEL járhat, és megakadályozhatja a felhasználókat abban, hogy hozzáférjenek az oldalához és annak bármely aldomainjéhez. Kérjük, olvassa el a részleteket a https://hstspreload.org/#removal oldalon, mielőtt a fejlécet "preload" értékkel küldené.',
],
'domain_ocsp_stapling' => [
'title' => 'OCSP stapling',
'description' => 'Lásd Wikipedia az OCSP stapling részletes magyarázatáért',
'nginx_version_warning' => ' FIGYELEM: Az OCSP staplinghez legalább 1.3.7-es Nginx verzió szükséges. Ha a verziója régebbi, a webszerver NEM fog megfelelően elindulni, amíg az OCSP stapling engedélyezve van!',
],
'domain_http2' => [
'title' => 'HTTP2 támogatás',
'description' => 'Lásd Wikipedia a HTTP2 részletes magyarázatáért',
],
'domain_http3' => [
'title' => 'HTTP3 támogatás',
'description' => 'Lásd Wikipedia a HTTP3 részletes magyarázatáért',
'nginx_version_warning' => ' FIGYELEM: Nginx 1.25.0 vagy újabb verzió és ssl-protocol TLSv1.3 szükséges a HTTP/3-hoz. Ha a verziója régebbi, a webszerver NEM fog megfelelően elindulni, amíg a HTTP/3 engedélyezve van!',
],
'testmail' => 'SMTP teszt',
'phpsettingsforsubdomains' => 'PHP-konfiguráció alkalmazása minden aldomainre:',
'plans' => [
'name' => 'Csomag neve',
'description' => 'Leírás',
'last_update' => 'Utolsó frissítés',
'plans' => 'Tárhely csomagok',
'plan_details' => 'Csomag részletei',
'add' => 'Új csomag hozzáadása',
'edit' => 'Csomag szerkesztése',
'use_plan' => 'Csomag alkalmazása',
],
'notryfiles' => [
'title' => 'Nincs automatikusan generált try_files',
'description' => 'Mondjon igent itt, ha egyedi try_files direktívát szeretne megadni a speciális beállításokban (szükséges néhány WordPress bővítményhez például).',
],
'logviewenabled' => 'Hozzáférés engedélyezése a hozzáférési/hiba-naplókhoz',
'novhostcontainer' => '
Egyik IP és port sem rendelkezik a "vHost-Container létrehozása" opcióval, sok beállítás itt nem lesz elérhető',
'ownsslvhostsettings' => 'Saját SSL vHost-beállítások',
'domain_override_tls' => 'Rendszer TLS beállítások felülírása',
'domain_override_tls_addinfo' => ' Csak akkor használatos, ha a "Rendszer TLS beállítások felülírása" "Igen"-re van állítva',
'domain_sslenabled' => 'SSL használatának engedélyezése',
'domain_honorcipherorder' => 'A (szerver) titkosítási sorrend tiszteletben tartása, alapértelmezett nem',
'domain_sessiontickets' => 'TLS sessiontickets engedélyezése (RFC 5077), alapértelmezett igen',
'domain_sessionticketsenabled' => [
'title' => 'TLS sessiontickets használatának globális engedélyezése',
'description' => 'Alapértelmezett igen Apache-2.4.11+ vagy nginx-1.5.9+ szükséges',
],
'domaindefaultalias' => 'Alapértelmezett ServerAlias érték új domainekhez',
'smtpsettings' => 'SMTP beállítások',
'smtptestaddr' => 'Teszt e-mail küldése ide',
'smtptestnote' => 'Vegye figyelembe, hogy az alábbi értékek a jelenlegi beállításait tükrözik, és csak ott módosíthatók (lásd a jobb felső sarokban található linket)',
'smtptestsend' => 'Teszt e-mail küldése',
'mysqlserver' => [
'mysqlserver' => 'MySQL Szerver',
'dbserver' => 'Szerver #',
'caption' => 'Leírás',
'host' => 'Hosztnév / IP',
'port' => 'Port',
'user' => 'Kiváltságos felhasználó',
'add' => 'Új MySQL szerver hozzáadása',
'edit' => 'MySQL szerver szerkesztése',
'password' => 'Kiváltságos felhasználó jelszava',
'password_emptynochange' => 'Új jelszó, hagyja üresen, ha nem kíván változtatni',
'allowall' => [
'title' => 'Engedélyezze ennek a szervernek a használatát minden jelenleg létező ügyfél számára',
'description' => 'Állítsa "igaz"-ra, ha azt szeretné, hogy minden jelenleg létező ügyfél használhassa ezt az adatbázis-szervert, így adatbázisokat adhatnak hozzá. Ez a beállítás nem állandó, de többször is futtatható.',
],
'testconn' => 'Kapcsolat tesztelése mentéskor',
'ssl' => 'SSL használata az adatbázis-szerverhez való kapcsolódáshoz',
'ssl_cert_file' => 'Az SSL tanúsítvány hatóság fájl elérési útja',
'verify_ca' => 'A szerver SSL tanúsítványának ellenőrzésének engedélyezése',
],
'settings_importfile' => 'Import fájl kiválasztása',
'documentation' => 'Dokumentáció',
'adminguide' => 'Adminisztrátori útmutató',
'userguide' => 'Felhasználói útmutató',
'apiguide' => 'API útmutató',
'domain_duplicate' => 'Domain másolása',
'domain_duplicate_named' => 'Másolat %s',
'backups' => [
'backups' => 'Biztonsági mentések',
],
'emaildomainwarning' => '
FIGYELEM: E beállítás megváltoztatásával véglegesen törli az összes meglévő e-mail címet és fiókot.
Speciális dns bejegyzést igényel a domainhez. Ha nem használja a névszerver funkciót, manuálisan kell kezelnie ezeket a bejegyzéseket.',
],
'spam_tag_level' => [
'title' => 'Spam címkézési szint',
'description' => 'Az a pontszám, ami szükséges egy email spamként való megjelöléséhez Alapértelmezett: 7.0'
],
'rewrite_subject' => [
'title' => 'Tárgy átírása',
'description' => 'Hozzáadja-e a ***SPAM*** jelzést az email tárgyához, ha alkalmazható',
],
'spam_kill_level' => [
'title' => 'Spam eldobási szint',
'description' => 'Az a pontszám, ami szükséges egy email teljes eldobásához Alapértelmezett: 14.0'
],
'bypass_spam' => [
'title' => 'Spamszűrő megkerülése',
'description' => 'Aktiválja a spamszűrés megkerülését/kikapcsolását ennél a címnél. Alapértelmezett: nem'
],
'policy_greylist' => [
'title' => 'Szürkelista használata',
'description' => 'A bejövő emaileket védi a szürkelista. Alapértelmezett: igen'
],
'required_spf_dns' => 'Szükséges SPF DNS bejegyzés',
'required_dmarc_dns' => 'Szükséges DMARC DNS bejegyzés',
'required_dkim_dns' => 'Szükséges DKIM DNS bejegyzés',
'default_select' => [
'on_changeable' => 'Aktiválva, módosítható',
'off_changeable' => 'Deaktiválva, módosítható',
'on_unchangeable' => 'Aktiválva, nem módosítható',
'off_unchangeable' => 'Deaktiválva, nem módosítható',
],
'default_bypass_spam' => [
'title' => 'Spamszűrő megkerülésének alapértelmezett értéke',
'description' => 'Az új email fiókoknál alapértelmezetten aktiválva van-e a "Spamszűrő megkerülése", és módosítható-e ez a beállítás az ügyfél által. Alapértelmezett: Deaktiválva, módosítható'
],
'default_spam_rewrite_subject' => [
'title' => 'Tárgy átírásának alapértelmezett értéke',
'description' => 'Az új email fiókoknál alapértelmezetten aktiválva van-e a "Tárgy átírása", és módosítható-e ez a beállítás az ügyfél által. Alapértelmezett: Aktiválva, módosítható'
],
'default_policy_greylist' => [
'title' => 'Szürkelista használatának alapértelmezett értéke',
'description' => 'Az új email fiókoknál alapértelmezetten aktiválva van-e a "Szürkelista használata", és módosítható-e ez a beállítás az ügyfél által. Alapértelmezett: Aktiválva, módosítható'
],
],
'dns' => [
'destinationip' => 'Domain IP-cím(ek)',
'standardip' => 'Szerver alapértelmezett IP-címe',
'a_record' => 'A-rekord (IPv6 opcionális)',
'cname_record' => 'CNAME-rekord',
'mxrecords' => 'MX rekordok meghatározása',
'standardmx' => 'Szerver alapértelmezett MX rekordja',
'mxconfig' => 'Egyéni MX rekordok',
'priority10' => '10-es prioritás',
'priority20' => '20-as prioritás',
'txtrecords' => 'TXT rekordok meghatározása',
'txtexample' => 'Példa (SPF-bejegyzés): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'howitworks' => 'Itt kezelheti a domain DNS bejegyzéseit. Vegye figyelembe, hogy a froxlor automatikusan generálja az NS/MX/A/AAAA rekordokat. Az egyéni bejegyzések elsőbbséget élveznek, csak a hiányzó bejegyzések lesznek automatikusan generálva.',
'nis2note' => [
'title' => 'NIS2 információ',
'content' => 'A DNS hosting/autoritatív DNS szolgáltatások digitális szolgáltatásnak minősülhetnek, fokozott biztonsági és jelentési kötelezettségekkel az EU-NIS2 alatt. Kérjük, ellenőrizze, hogy a beállítása érintett-e a NIS2 által, és milyen intézkedések szükségesek.'
],
],
'dnseditor' => [
'edit' => 'DNS szerkesztése',
'records' => 'rekordok',
'notes' => [
'A' => '32 bites IPv4 cím, a hosztnevek IP-címhez rendeléséhez használatos.',
'AAAA' => '128 bites IPv6 cím, a hosztnevek IP-címhez rendeléséhez használatos.',
'CAA' => 'A CAA erőforrásrekord lehetővé teszi a DNS domain név tulajdonosának, hogy meghatározzon egy vagy több hitelesítésszolgáltatót (CA), amely jogosult tanúsítványokat kiállítani az adott domainhez. Szerkezet: flag tag[issue|issuewild|iodef|contactmail|contactphone] érték Példa: 0 issue "ca.example.net" 0 iodef "mailto:security@example.com"',
'CNAME' => 'A domain név aliasa, a DNS keresés folytatódik az új név újbóli keresésével. Csak aldomaineknél lehetséges!',
'DNAME' => 'Aliast hoz létre a domain név fa teljes részfájához',
'LOC' => 'Földrajzi helymeghatározási információ egy domain névhez. Szerkezet: ( d1 [m1 [s1]] {"N"|"S"} d2 [m2 [s2]] {"E"|"W"} alt["m"] [siz["m"] [hp["m"] [vp["m"]]]] ) Leírás: d1: [0 .. 90] (szélességi fok)
d2: [0 .. 180] (hosszúsági fok)
m1, m2: [0 .. 59] (szélességi/hosszúsági perc)
s1, s2: [0 .. 59.999] (szélességi/hosszúsági másodperc)
alt: [-100000.00 .. 42849672.95] BY .01 (magasság méterben)
siz, hp, vp: [0 .. 90000000.00] (méret/pontosság méterben) Példa: 52 22 23.000 N 4 53 32.000 E -2.00m 0.00m 10000m 10m',
'MX' => 'Mail exchange rekord, egy domain nevet rendel egy levelezőszerverhez az adott domainhez. Példa: 10 mail.example.com Megjegyzés: A prioritáshoz használja a fenti mezőt',
'NS' => 'Egy DNS zónát delegál a megadott hivatalos névszerverek használatára.',
'RP' => 'Felelős személy rekord Szerkezet: postafiók[@ helyett pontot használjon] txt-rekord-név Példa: team.froxlor.org. froxlor.org.',
'SRV' => 'Szolgáltatás helymeghatározó rekord, újabb protokolloknál használatos protokoll-specifikus rekordok létrehozása helyett, mint például az MX. Szerkezet: prioritás súly port cél Példa: 0 5 5060 sipserver.example.com. Megjegyzés: A prioritáshoz használja a fenti mezőt',
'SSHFP' => 'Az SSHFP erőforrásrekord a secure shell (SSH) kulcs ujjlenyomatainak DNS-ben való közzétételére szolgál. Szerkezet: algoritmus típus ujjlenyomat Algoritmusok: 0: fenntartott, 1: RSA, 2: DSA, 3: ECDSA, 4: Ed25519, 6: Ed448 Típusok: 0: fenntartott, 1: SHA-1, 2: SHA-256 Példa: 2 1 123456789abcdef67890123456789abcdef67890',
'TLSA' => 'A TLSA (TLS Hitelesítés) rekord egy TLS/SSL tanúsítvány ujjlenyomatának közzétételére szolgál. Általában DANE-hez használják. A TLSA rekordok csak akkor megbízhatóak, ha a DNSSEC engedélyezve van a domainjén. Szerkezet: használat kiválasztó típus ujjlenyomat Tanúsítvány használat: 0: PKIX-T, 1: PKIX-EE, 2: DANE-TA, 3: DANE-EE Kiválasztó: 0: Teljes tanúsítvány használata, 1: Alany nyilvános kulcsának használata Egyezési típus: 0: Teljes: Nincs Hash, 1: SHA-256 Hash, 2:SHA-512 Hash Példa: 3 1 1 123456789abcdef67890123456789abcdef123456789abcdef123456789abcde',
'TXT' => 'Szabadon meghatározható, leíró szöveg.'
]
],
'domain' => [
'openbasedirpath' => 'OpenBasedir-útvonal',
'inherited' => 'Ugyanaz, mint a szülő-domainnél',
'docroot' => 'A fenti mező útvonala',
'homedir' => 'Kezdőkönyvtár',
'docparent' => 'A fenti mező útvonalának szülőkönyvtára',
'ssl_certificate_placeholder' => '---- BEGIN CERTIFICATE---' . PHP_EOL . '[...]' . PHP_EOL . '----END CERTIFICATE----',
'ssl_key_placeholder' => '---- BEGIN RSA PRIVATE KEY-----' . PHP_EOL . '[...]' . PHP_EOL . '-----END RSA PRIVATE KEY-----',
],
'domains' => [
'description' => 'Itt hozhat létre (al)domaineket és módosíthatja azok útvonalait. A rendszernek minden változtatás után időre van szüksége az új beállítások alkalmazásához.',
'domainsettings' => 'Domain beállítások',
'domainname' => 'Domain név',
'subdomain_add' => 'Aldomain létrehozása',
'subdomain_edit' => '(Al)domain szerkesztése',
'wildcarddomain' => 'Wildcard domainként hozza létre?',
'aliasdomain' => 'Alias a következő domainhez',
'noaliasdomain' => 'Nincs alias domain',
'hasaliasdomains' => 'Van alias domain(ek)',
'statstics' => 'Használati statisztikák',
'isassigneddomain' => 'Hozzárendelt domain',
'add_date' => 'Hozzáadva a froxlorhoz',
'registration_date' => 'Hozzáadva a nyilvántartáshoz',
'topleveldomain' => 'Felső szintű domain',
'associated_with_domain' => 'Társítva',
'aliasdomains' => 'Alias domainek',
'redirectifpathisurl' => 'Átirányítási kód (alapértelmezett: üres)',
'redirectifpathisurlinfo' => 'Csak akkor kell kiválasztania egyet ezek közül, ha URL-t adott meg útvonalként MEGJEGYZÉS: A változtatások csak akkor lépnek életbe, ha a megadott útvonal egy URL.',
'ipandport_multi' => [
'title' => 'IP-cím(ek)',
'description' => 'Adjon meg egy vagy több IP-címet a domainhez.
MEGJEGYZÉS: Az IP-címek nem változtathatók meg, ha a domain egy másik domain alias-domainjeként van beállítva.
',
],
'ipandport_ssl_multi' => [
'title' => 'SSL IP-cím(ek)',
],
'ssl_redirect' => [
'title' => 'SSL átirányítás',
'description' => 'Ez az opció átirányításokat hoz létre a nem SSL virtuális hosztokhoz, így minden kérés az SSL virtuális hoszthoz lesz átirányítva.
pl. egy kérés a http://domain.tld/ címre átirányít a https://domain.tld/ címre',
],
'serveraliasoption_wildcard' => 'Wildcard (*.domain.tld)',
'serveraliasoption_www' => 'WWW (www.domain.tld)',
'serveraliasoption_none' => 'Nincs alias',
'domain_import' => 'Domainek importálása',
'import_separator' => 'Elválasztó',
'import_offset' => 'Eltolás',
'import_file' => 'CSV-fájl',
'import_description' => 'A részletes információkért az importfájl szerkezetéről és a sikeres importálás módjáról kérjük, látogasson el a https://docs.froxlor.org/latest/admin-guide/domain-import/ oldalra',
'ssl_redirect_temporarilydisabled' => ' Az SSL átirányítás ideiglenesen ki van kapcsolva, amíg egy új Let\'s Encrypt tanúsítvány generálódik. A tanúsítvány létrehozása után újra aktiválódik.',
'termination_date' => 'Megszűnés dátuma',
'termination_date_overview' => 'megszűnik: ',
'ssl_certificates' => 'SSL tanúsítványok',
'ssl_certificate_removed' => 'A(z) #%s azonosítójú tanúsítvány sikeresen eltávolítva',
'ssl_certificate_error' => 'Hiba a tanúsítvány olvasásakor a következő domainhez: %s',
'no_ssl_certificates' => 'Nincsenek SSL tanúsítvánnyal rendelkező domainek',
'isaliasdomainof' => '%s alias domainje',
'isbinddomain' => 'DNS zóna létrehozása',
'dkimenabled' => 'DKIM engedélyezve',
'openbasedirenabled' => 'Openbasedir korlátozás',
'hsts' => 'HSTS engedélyezve',
'aliasdomainid' => 'Alias domain azonosítója',
'nodomainsassignedbyadmin' => 'Az Ön fiókjához jelenleg nincs (aktív) domain hozzárendelve. Kérjük, lépjen kapcsolatba az adminisztrátorral, ha úgy gondolja, hogy ez hibás.',
'email_only' => 'Csak e-mail',
],
'emails' => [
'description' => 'Itt hozhatja létre és módosíthatja e-mail címeit. Egy fiók olyan, mint a postaláda a háza előtt. Ha valaki e-mailt küld Önnek, az a fiókba kerül.
Az e-mailek letöltéséhez használja a következő beállításokat a levelezőprogramjában: (A dőlt betűs adatokat a megfelelő értékekre kell cserélnie!) Kiszolgáló neve: domainnév Felhasználónév: fióknév / e-mail cím jelszó: az Ön által választott jelszó',
'emailaddress' => 'E-mail cím',
'emails_add' => 'E-mail cím létrehozása',
'emails_edit' => 'E-mail cím szerkesztése',
'catchall' => 'Catchall',
'iscatchall' => 'Catchall címként definiálva?',
'account' => 'Fiók',
'account_add' => 'Fiók létrehozása',
'account_delete' => 'Fiók törlése',
'from' => 'Forrás',
'to' => 'Cél',
'forwarders' => 'Továbbítók',
'forwarder_add' => 'Továbbító létrehozása',
'alternative_emailaddress' => 'Alternatív e-mail cím',
'quota' => 'Kvóta',
'noquota' => 'Nincs kvóta',
'updatequota' => 'Kvóta frissítése',
'quota_edit' => 'E-mail kvóta módosítása',
'noemaildomainaddedyet' => 'Még nincs (e-mail) domain a fiókjában.',
'back_to_overview' => 'Vissza a domain áttekintéshez',
'accounts' => 'Fiókok',
'emails' => 'Címek',
'senders' => 'Engedélyezett feladók',
'sender_add' => 'Engedélyezett feladó hozzáadása',
'foreign_sender' => 'Engedélyezett (külső) feladó',
'allowed_sender_info' => 'Egy engedélyezett feladóval lehetővé teszi egy létező e-mail fiók számára, hogy más feladó címmel küldjön e-maileket. Fontos: Az itt megadott cím/wildcard-domain nem lesz automatikusan postafiók – csak további, engedélyezett feladó azonosítóként szolgál.',
],
'error' => [
'error' => 'Hiba',
'directorymustexist' => 'A(z) %s könyvtárnak léteznie kell. Kérjük, hozza létre az FTP kliensével.',
'filemustexist' => 'A(z) %s fájlnak léteznie kell.',
'allresourcesused' => 'Már minden erőforrását felhasználta.',
'domains_cantdeletemaindomain' => 'Nem törölhet hozzárendelt domaint.',
'domains_canteditdomain' => 'Nem szerkesztheti ezt a domaint. Az admin letiltotta.',
'domains_cantdeletedomainwithemail' => 'Nem törölhet olyan domaint, amely e-mail domainként van használatban. Először törölje az összes e-mail címet.',
'firstdeleteallsubdomains' => 'Először törölnie kell az összes aldomaint, mielőtt létrehozhat egy wildcard domaint.',
'youhavealreadyacatchallforthisdomain' => 'Már definiált egy catchall-t ehhez a domainhez.',
'ftp_cantdeletemainaccount' => 'Nem törölheti a fő FTP fiókját',
'login' => 'A megadott felhasználónév vagy jelszó helytelen. Kérjük, próbálja újra!',
'login_blocked' => 'Ezt a fiókot felfüggesztettük a túl sok bejelentkezési hiba miatt. Kérjük, próbálja újra %s másodperc múlva.',
'notallreqfieldsorerrors' => 'Nem töltött ki minden mezőt, vagy néhány mezőt helytelenül töltött ki.',
'oldpasswordnotcorrect' => 'A régi jelszó nem helyes.',
'youcantallocatemorethanyouhave' => 'Nem oszthat ki több erőforrást, mint amennyivel rendelkezik.',
'mustbeurl' => 'Nem adott meg érvényes vagy teljes URL-t (pl. http://valamilyendomain.com/error404.htm)',
'invalidpath' => 'Nem választott érvényes URL-t (esetleg problémák a könyvtárlistázással?)',
'stringisempty' => 'Hiányzó adat a mezőben',
'stringiswrong' => 'Helytelen adat a mezőben',
'newpasswordconfirmerror' => 'Az új jelszó és a megerősítés nem egyezik',
'mydomain' => '\'Domain\'',
'mydocumentroot' => '\'Dokumentumgyökér\'',
'loginnameexists' => 'A(z) %s bejelentkezési név már létezik',
'emailiswrong' => 'A(z) %s e-mail cím érvénytelen karaktereket tartalmaz vagy hiányos',
'emailexists' => 'A(z) %s e-mail címet már használja egy másik admin',
'emailexistsanon' => 'A(z) %s e-mail cím már használatban van.',
'alternativeemailiswrong' => 'A megadott %s alternatív e-mail cím, ahova a hitelesítő adatokat küldenénk, érvénytelennek tűnik',
'loginnameiswrong' => 'A(z) "%s" bejelentkezési név érvénytelen karaktereket tartalmaz.',
'loginnameiswrong2' => 'A bejelentkezési név túl sok karaktert tartalmaz. Csak %s karakter engedélyezett.',
'userpathcombinationdupe' => 'A felhasználónév és útvonal kombinációja már létezik',
'patherror' => 'Általános hiba! Az útvonal nem lehet üres',
'errordocpathdupe' => 'A(z) %s útvonalra vonatkozó opció már létezik',
'adduserfirst' => 'Kérjük, először hozzon létre egy ügyfelet',
'domainalreadyexists' => 'A(z) %s domain már hozzá van rendelve egy ügyfélhez',
'nolanguageselect' => 'Nincs kiválasztott nyelv.',
'nosubjectcreate' => 'Meg kell adnia egy témát ehhez az e-mail sablonhoz.',
'nomailbodycreate' => 'Meg kell adnia egy e-mail szöveget ehhez az e-mail sablonhoz.',
'templatenotfound' => 'A sablon nem található.',
'alltemplatesdefined' => 'Nem definiálhat több sablont, már minden nyelv támogatott.',
'wwwnotallowed' => 'A www nem engedélyezett aldomaineknél.',
'subdomainiswrong' => 'A(z) %s aldomain érvénytelen karaktereket tartalmaz.',
'domaincantbeempty' => 'A domain név nem lehet üres.',
'domainexistalready' => 'A(z) %s domain már létezik.',
'domainisaliasorothercustomer' => 'A kiválasztott alias domain vagy maga is egy alias domain, vagy más IP/port kombinációval rendelkezik, vagy egy másik ügyfélhez tartozik.',
'emailexistalready' => 'A(z) %s e-mail cím már létezik.',
'maindomainnonexist' => 'A(z) %s fő domain nem létezik.',
'maindomaindeactivated' => 'A(z) %s fő domain deaktiválva van.',
'destinationnonexist' => 'Kérjük, hozza létre a továbbítót a \'Cél\' mezőben.',
'destinationalreadyexistasmail' => 'A(z) %s címre történő továbbítás már létezik aktív e-mail címként.',
'destinationalreadyexist' => 'Már definiált egy továbbítót a(z) "%s" címre',
'destinationiswrong' => 'A(z) %s továbbító érvénytelen karakter(eke)t tartalmaz vagy hiányos.',
'dumpfoldercannotbedocroot' => 'Az adatmentések mappája nem lehet a saját könyvtára, kérjük, válasszon egy mappát a saját könyvtárán belül, pl. /dumps',
'templatelanguagecombodefined' => 'A kiválasztott nyelv/sablon kombináció már definiálva van.',
'templatelanguageinvalid' => 'A kiválasztott nyelv nem létezik',
'ipstillhasdomains' => 'A törölni kívánt IP/Port kombinációhoz még tartoznak domainek, kérjük, rendelje át ezeket más IP/Port kombinációkhoz, mielőtt törölné ezt az IP/Port kombinációt.',
'cantdeletedefaultip' => 'Nem törölheti az alapértelmezett IP/Port kombinációt, kérjük, állítson be egy másik IP/Port kombinációt alapértelmezettként, mielőtt törölné ezt az IP/Port kombinációt.',
'cantdeletesystemip' => 'Nem törölheti az utolsó rendszer IP-t, vagy hozzon létre egy új IP/Port kombinációt a rendszer IP-hez, vagy változtassa meg a rendszer IP-t.',
'myipaddress' => '\'IP\'',
'myport' => '\'Port\'',
'myipdefault' => 'Ki kell választania egy IP/Port kombinációt, amely alapértelmezett lesz.',
'myipnotdouble' => 'Ez az IP/Port kombináció már létezik.',
'admin_domain_emailsystemhostname' => 'A szerver-hosztnév nem használható ügyfél-domainként.',
'cantchangesystemip' => 'Nem változtathatja meg az utolsó rendszer IP-t, vagy hozzon létre egy másik új IP/Port kombinációt a rendszer IP-hez, vagy változtassa meg a rendszer IP-t.',
'sessiontimeoutiswrong' => 'Csak numerikus "munkamenet időtúllépés" engedélyezett.',
'maxloginattemptsiswrong' => 'Csak numerikus "maximális bejelentkezési kísérletek" engedélyezettek.',
'deactivatetimiswrong' => 'Csak numerikus "deaktiválási idő" engedélyezett.',
'accountprefixiswrong' => 'Az "ügyfél-előtag" helytelen.',
'mysqlprefixiswrong' => 'Az "SQL előtag" helytelen.',
'ftpprefixiswrong' => 'Az "FTP előtag" helytelen.',
'ipiswrong' => 'Az "IP-cím" helytelen. Csak érvényes IP-cím engedélyezett.',
'vmailuidiswrong' => 'A "levelek-uid" helytelen. Csak numerikus UID engedélyezett.',
'vmailgidiswrong' => 'A "levelek-gid" helytelen. Csak numerikus GID engedélyezett.',
'adminmailiswrong' => 'A "feladó-cím" helytelen. Csak érvényes e-mail cím engedélyezett.',
'pagingiswrong' => 'Az "bejegyzések oldalanként" érték helytelen. Csak numerikus karakterek engedélyezettek.',
'phpmyadminiswrong' => 'A phpMyAdmin-link nem érvényes link.',
'webmailiswrong' => 'A webmail-link nem érvényes link.',
'webftpiswrong' => 'A WebFTP-link nem érvényes link.',
'stringformaterror' => 'A(z) "%s" mező értéke nem a várt formátumban van.',
'loginnameisusingprefix' => 'Nem hozhat létre olyan fiókokat, amelyek "%s"-vel kezdődnek, mivel ez az előtag az automatikus fióknévadáshoz van beállítva. Kérjük, adjon meg másik fióknevet.',
'loginnameissystemaccount' => 'A(z) "%s" fiók már létezik a rendszeren, és nem használható. Kérjük, adjon meg másik fióknevet.',
'loginnameisreservedname' => 'A(z) "%s" fióknév a rendszer belső használatára van fenntartva, és nem használható.',
'youcantdeleteyourself' => 'Biztonsági okokból nem törölheti saját magát.',
'youcanteditallfieldsofyourself' => 'Megjegyzés: Biztonsági okokból nem szerkesztheti saját fiókjának minden mezőjét.',
'documentrootexists' => 'A(z) "%s" könyvtár már létezik ennél az ügyfélnél. Kérjük, távolítsa el ezt, mielőtt újra hozzáadná az ügyfelet.',
'norepymailiswrong' => 'A "Noreply-cím" helytelen. Csak érvényes e-mail cím engedélyezett.',
'logerror' => 'Naplózási hiba: %s',
'nomessagetosend' => 'Nem adott meg üzenetet.',
'norecipientsgiven' => 'Nem adott meg címzettet',
'errorsendingmail' => 'Az üzenet küldése a következő címre sikertelen: "%s"',
'errorsendingmailpub' => 'Az üzenet küldése a megadott e-mail címre sikertelen',
'cannotreaddir' => 'Nem lehet olvasni a(z) "%s" könyvtárat',
'invalidip' => 'Érvénytelen IP-cím: %s',
'invalidmysqlhost' => 'Érvénytelen MySQL host cím: %s',
'cannotuseawstatsandwebalizeratonetime' => 'Nem engedélyezheti egyszerre a Webalizer és az AWstats használatát, kérjük, válasszon egyet közülük',
'cannotwritetologfile' => 'Nem lehet megnyitni a(z) %s naplófájlt írásra',
'vmailquotawrong' => 'A kvótaméretnek pozitív számnak kell lennie.',
'allocatetoomuchquota' => 'Megpróbált %s MB kvótát kiosztani, de nincs elég szabad helye.',
'missingfields' => 'Nem minden kötelező mező lett kitöltve.',
'requiredfield' => 'Ez a mező kötelező.',
'accountnotexisting' => 'A megadott e-mail fiók nem létezik.',
'nopermissionsorinvalidid' => 'Nincs elegendő jogosultsága ezeknek a beállításoknak a módosításához, vagy érvénytelen azonosítót adott meg.',
'phpsettingidwrong' => 'Nem létezik PHP konfiguráció ezzel az azonosítóval',
'descriptioninvalid' => 'A leírás túl rövid, túl hosszú vagy érvénytelen karaktereket tartalmaz.',
'info' => 'Információ',
'filecontentnotset' => 'A fájl nem lehet üres!',
'customerdoesntexist' => 'A kiválasztott ügyfél nem létezik.',
'admindoesntexist' => 'A kiválasztott admin nem létezik.',
'ipportdoesntexist' => 'A kiválasztott ip/port kombináció nem létezik.',
'usernamealreadyexists' => 'A(z) %s felhasználónév már létezik.',
'plausibilitychecknotunderstood' => 'A hihetőségi ellenőrzés válasza nem érthető.',
'errorwhensaving' => 'Hiba történt a(z) %s mező mentésekor',
'hiddenfieldvaluechanged' => 'A(z) "%s" rejtett mező értéke megváltozott a beállítások szerkesztése közben.
Ez általában nem nagy probléma, de a beállításokat nem lehetett elmenteni emiatt.',
'notrequiredpasswordlength' => 'A megadott jelszó túl rövid. Kérjük, adjon meg legalább %s karaktert.',
'overviewsettingoptionisnotavalidfield' => 'Hoppá, egy mező, amelynek opcióként kellene megjelennie a beállítások áttekintésében, nem elfogadott típusú. Ezért a fejlesztőket hibáztathatja. Ennek nem szabadna megtörténnie!',
'pathmaynotcontaincolon' => 'Az Ön által megadott útvonal nem tartalmazhat kettőspontot (":"). Kérjük, adjon meg helyes útvonal értéket.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'A megadott jelszó-komplexitás nem teljesült. Kérjük, lépjen kapcsolatba az adminisztrátorával, ha kérdése van a komplexitási előírásokkal kapcsolatban',
'invaliderrordocumentvalue' => 'Az ErrorDocument-ként megadott érték nem tűnik érvényes fájlnak, URL-nek vagy karakterláncnak.',
'intvaluetoolow' => 'A megadott szám túl alacsony (%s mező)',
'intvaluetoohigh' => 'A megadott szám túl magas (%s mező)',
'phpfpmstillenabled' => 'A PHP-FPM jelenleg aktív. Kérjük, deaktiválja, mielőtt aktiválná az FCGID-t',
'fcgidstillenabled' => 'Az FCGID jelenleg aktív. Kérjük, deaktiválja, mielőtt aktiválná a PHP-FPM-et',
'domains_cantdeletedomainwithaliases' => 'Nem törölhet olyan domaint, amelyet alias-domainekhez használnak. Először törölnie kell az aliasokat.',
'user_banned' => 'Az Ön fiókja zárolva lett. Kérjük, további információért lépjen kapcsolatba az adminisztrátorával.',
'session_timeout' => 'Túl alacsony érték',
'session_timeout_desc' => 'Nem ajánlott a munkamenet időtúllépését 1 percnél alacsonyabbra állítani.',
'invalidhostname' => 'A hosztnévnek érvényes domainnek kell lennie. Nem lehet üres, és nem állhat csak szóközökből',
'operationnotpermitted' => 'A művelet nem engedélyezett!',
'featureisdisabled' => 'A(z) %s funkció le van tiltva. Kérjük, lépjen kapcsolatba a szolgáltatójával.',
'usercurrentlydeactivated' => 'A(z) %s felhasználó jelenleg deaktiválva van',
'setlessthanalreadyused' => 'Nem állíthat be kevesebb erőforrást a(z) \'%s\' számára, mint amennyit ez a felhasználó már használ ',
'stringmustntbeempty' => 'A(z) %s mező értéke nem lehet üres',
'sslcertificateismissingprivatekey' => 'Meg kell adnia egy privát kulcsot a tanúsítványához',
'sslcertificatewrongdomain' => 'A megadott tanúsítvány nem ehhez a domainhez tartozik',
'sslcertificateinvalidcert' => 'A megadott tanúsítvány tartalma nem tűnik érvényes tanúsítványnak',
'sslcertificateinvalidcertkeypair' => 'A megadott privát kulcs nem tartozik a megadott tanúsítványhoz',
'sslcertificateinvalidca' => 'A megadott CA tanúsítvány adatok nem tűnnek érvényes tanúsítványnak',
'sslcertificateinvalidchain' => 'A megadott tanúsítványlánc adatok nem tűnnek érvényes tanúsítványnak',
'givendirnotallowed' => 'A(z) %s mezőben megadott könyvtár nem engedélyezett.',
'sslredirectonlypossiblewithsslipport' => 'A Let\'s Encrypt használata csak akkor lehetséges, ha a domainhez legalább egy SSL-engedélyezett IP/port kombináció van hozzárendelve.',
'fcgidstillenableddeadlock' => 'Az FCGID jelenleg aktív. Kérjük, deaktiválja, mielőtt az Apache2 helyett másik webszerverre váltana',
'send_report_title' => 'Hibajelentés küldése',
'send_report_desc' => 'Köszönjük, hogy jelenti ezt a hibát és segít a froxlor fejlesztésében. Ez az e-mail, amely a froxlor fejlesztői csapatának lesz elküldve:',
'send_report' => 'Jelentés küldése',
'send_report_error' => 'Hiba történt a jelentés küldésekor: %s',
'notallowedtouseaccounts' => 'Az Ön fiókja nem teszi lehetővé az IMAP/POP3 használatát. Nem adhat hozzá e-mail fiókokat.',
'cannotdeletehostnamephpconfig' => 'Ez a PHP-konfiguráció a froxlor-vhost által használt, és nem törölhető.',
'cannotdeletedefaultphpconfig' => 'Ez a PHP-konfiguráció alapértelmezettként van beállítva, és nem törölhető.',
'passwordshouldnotbeusername' => 'A jelszó nem lehet ugyanaz, mint a felhasználónév.',
'no_phpinfo' => 'Sajnáljuk, nem sikerült beolvasni a phpinfo() adatait',
'moveofcustomerfailed' => 'Az ügyfél áthelyezése a kiválasztott adminisztrátorhoz/viszonteladóhoz sikertelen. Vegye figyelembe, hogy az ügyfélre vonatkozó minden egyéb módosítás sikeresen megtörtént ezen a ponton.
Hibaüzenet: %s',
'domain_import_error' => 'A következő hiba történt a domainek importálása során: %s',
'fcgidandphpfpmnogoodtogether' => 'Az FCGID és a PHP-FPM nem aktiválható egyidejűleg',
'no_apcuinfo' => 'Nincs elérhető gyorsítótár információ. Úgy tűnik, az APCu nem fut.',
'no_opcacheinfo' => 'Nincs elérhető OPCache információ. Úgy tűnik, az OPCache nincs betöltve.',
'inactive_opcacheinfo' => 'Úgy tűnik, az OPCache telepítve van, de nincs aktiválva.',
'nowildcardwithletsencrypt' => 'A Let\'s Encrypt nem tud kezelni helyettesítő karakteres domaineket az ACME használatával a froxlorban (dns-kihívást igényel), sajnáljuk. Kérjük, állítsa a ServerAlias-t WWW-re, vagy teljesen tiltsa le',
'customized_version' => 'Úgy tűnik, hogy a froxlor telepítése módosítva lett, sajnos nem tudunk támogatást nyújtani.',
'autoupdate_0' => 'Ismeretlen hiba',
'autoupdate_1' => 'A PHP allow_url_fopen beállítás le van tiltva. Az automatikus frissítéshez engedélyezni kell ezt a beállítást a php.ini fájlban',
'autoupdate_2' => 'A PHP zip kiterjesztés nem található, kérjük, győződjön meg arról, hogy telepítve van és aktiválva van',
'autoupdate_4' => 'A froxlor archívumot nem lehetett a lemezre menteni :(',
'autoupdate_5' => 'A version.froxlor.org elfogadhatatlan értékeket adott vissza :(',
'autoupdate_6' => 'Hoppá, nem volt megadva (érvényes) verzió a letöltéshez :(',
'autoupdate_7' => 'A letöltött archívum nem található :(',
'autoupdate_8' => 'Az archívumot nem lehetett kicsomagolni :(',
'autoupdate_9' => 'A letöltött fájl nem felelt meg az integritás ellenőrzésnek. Kérjük, próbálja meg újra a frissítést.',
'autoupdate_10' => 'A PHP minimálisan támogatott verziója 7.4.0',
'autoupdate_11' => 'A webfrissítés le van tiltva',
'mailaccistobedeleted' => 'Egy másik fiók ugyanezzel a névvel (%s) jelenleg törlés alatt áll, ezért most nem adható hozzá.',
'customerhasongoingexportjob' => 'Már van egy adatexport feladat, amely feldolgozásra vár, kérjük, legyen türelemmel.',
'exportfunctionnotenabled' => 'Az exportálási funkció nincs engedélyezve',
'dns_domain_nodns' => 'A DNS nincs engedélyezve ehhez a domainhez',
'dns_content_empty' => 'Nincs megadva tartalom',
'dns_content_invalid' => 'Érvénytelen DNS tartalom',
'dns_arec_noipv4' => 'Nem adtak meg érvényes IP-címet az A-rekordhoz',
'dns_aaaarec_noipv6' => 'Nem adtak meg érvényes IP-címet az AAAA-rekordhoz',
'dns_mx_prioempty' => 'Érvénytelen MX prioritás megadva',
'dns_mx_needdom' => 'Az MX tartalom értékének érvényes domain névnek kell lennie',
'dns_mx_noalias' => 'Az MX-tartalom értéke nem lehet CNAME bejegyzés.',
'dns_cname_invaliddom' => 'Érvénytelen domain név a CNAME rekordhoz',
'dns_cname_nomorerr' => 'Már létezik egy erőforrás-rekord ugyanazzal a rekordnévvel. Nem használható CNAME-ként.',
'dns_other_nomorerr' => 'Már létezik egy CNAME rekord ugyanazzal a rekordnévvel. Nem használható más típushoz.',
'dns_ns_invaliddom' => 'Érvénytelen domain név az NS rekordhoz',
'dns_srv_prioempty' => 'Érvénytelen SRV prioritás megadva',
'dns_srv_invalidcontent' => 'Érvénytelen SRV tartalom, a súly, port és cél mezőkből kell állnia, pl.: 5 5060 sipserver.example.com.',
'dns_srv_needdom' => 'Az SRV cél értékének érvényes domain névnek kell lennie',
'dns_srv_noalias' => 'Az SRV-cél értéke nem lehet CNAME bejegyzés.',
'dns_duplicate_entry' => 'A rekord már létezik',
'dns_notfoundorallowed' => 'A domain nem található vagy nincs jogosultsága',
'domain_nopunycode' => 'Nem adhat meg punycode-ot (IDNA). A domain automatikusan konvertálva lesz',
'domain_noipaddress' => 'Nem adható hozzá IP-cím domainként',
'dns_record_toolong' => 'A rekordok/címkék legfeljebb 63 karakterből állhatnak',
'noipportgiven' => 'Nincs megadva IP/port',
'nosslippportgiven' => 'SSL engedélyezésekor ki kell választania egy SSL IP/port kombinációt',
'jsonextensionnotfound' => 'Ez a funkció a php json-kiterjesztést igényli.',
'cannotdeletesuperadmin' => 'Az első adminisztrátor nem törölhető.',
'no_wwwcnamae_ifwwwalias' => 'Nem állítható be CNAME rekord a "www" számára, mivel a domain úgy van beállítva, hogy www-aliast generáljon. Kérjük, módosítsa a beállításokat "Nincs alias" vagy "Helyettesítő karakter alias" értékre',
'local_group_exists' => 'A megadott csoport már létezik a rendszeren.',
'local_group_invalid' => 'A megadott csoportnév érvénytelen',
'invaliddnsforletsencrypt' => 'A domain DNS-e nem tartalmazza a kiválasztott IP-címek egyikét sem. A Let\'s Encrypt tanúsítvány generálása nem lehetséges.',
'notallowedphpconfigused' => 'Olyan php-konfigurációt próbál használni, amely nincs hozzárendelve az ügyfélhez',
'pathmustberelative' => 'A felhasználónak nincs jogosultsága a vásárló saját könyvtárán kívüli könyvtárak megadására. Kérjük, adjon meg relatív útvonalat (kezdő / nélkül).',
'mysqlserverstillhasdbs' => 'Nem lehet eltávolítani az adatbázis-szervert a vásárlók engedélyezési listájáról, mert még vannak rajta adatbázisok.',
'domaincannotbeedited' => 'Nincs jogosultsága a(z) %s domain szerkesztésére',
'invalidcronjobintervalvalue' => 'A cron feladat intervallumának a következők egyikének kell lennie: %s',
'phpgdextensionnotavailable' => 'A PHP GD kiterjesztés nem érhető el. Nem lehet ellenőrizni a képadatokat',
'2fa_wrongcode' => 'A megadott kód érvénytelen',
'gnupgextensionnotavailable' => 'A PHP GnuPG kiterjesztés nem érhető el. Nem lehet ellenőrizni a PGP nyilvános kulcsot',
'invalidpgppublickey' => 'A PGP nyilvános kulcs érvénytelen',
'invalid_validtime' => 'Az érvényességi idő másodpercben csak 10 és 120 között lehet',
'customerphpenabledbutnoconfig' => 'A vásárlónál a PHP aktiválva van, de nincs kiválasztva PHP-konfiguráció.',
'emaildomainstillhasaddresses' => 'Nem lehet deaktiválni a levelezési domain jelzőt, mert még vannak e-mail címek ehhez a domainhez.',
'invaliddocumentrooturl' => 'A megadott documentroot URL érvénytelen. Kérjük, adjon meg helyes URL-t vagy elérési utat.',
'local_user_invalid' => 'A megadott felhasználónév érvénytelen vagy nem létezik',
'local_user_isfroxloruser' => 'A megadott felhasználónév egy froxlor által kezelt felhasználónév, és ebben az összefüggésben nem használható',
'tls13requiredforhttp3' => 'A domain http3 jelzője be van kapcsolva, de az ssl-protocols nem tartalmazza a TLSv1.3-at',
'senderdomainnotowned' => 'A megadott "%s" domain nem használható.',
'emailhasnoaccount' => 'A megadott "%s" e-mail címnek nincs fiókja, nem lehet hozzáadni a feladó címet.',
],
'extras' => [
'description' => 'Itt hozzáadhat néhány extrát, például könyvtárvédelmet. A rendszernek időre van szüksége az új beállítások alkalmazásához minden változtatás után.',
'directoryprotection_add' => 'Könyvtárvédelem hozzáadása',
'view_directory' => 'Könyvtár tartalmának megjelenítése',
'pathoptions_add' => 'Útvonal opciók hozzáadása',
'directory_browsing' => 'Könyvtár tartalmának böngészése',
'pathoptions_edit' => 'Útvonal opciók szerkesztése',
'error404path' => '404',
'error403path' => '403',
'error500path' => '500',
'error401path' => '401',
'errordocument404path' => 'ErrorDocument 404',
'errordocument403path' => 'ErrorDocument 403',
'errordocument500path' => 'ErrorDocument 500',
'errordocument401path' => 'ErrorDocument 401',
'execute_perl' => 'Perl/CGI végrehajtása',
'htpasswdauthname' => 'Hitelesítés oka (AuthName)',
'directoryprotection_edit' => 'Könyvtárvédelem szerkesztése',
'export' => 'Adatmentés létrehozása',
'dump_web' => 'Webadatok belefoglalása',
'dump_mail' => 'Levelezési adatok belefoglalása',
'dump_dbs' => 'Adatbázisok belefoglalása',
'path_protection_label' => 'Fontos',
'path_protection_info' => 'Erősen javasoljuk a megadott útvonal védelmét, lásd "Extrák" -> "Könyvtárvédelem"',
],
'ftp' => [
'description' => 'Itt hozhatja létre és módosíthatja FTP-fiókjait. A változtatások azonnal életbe lépnek, és a fiókok azonnal használhatók.',
'account_add' => 'Fiók létrehozása',
'account_edit' => 'FTP-fiók szerkesztése',
'editpassdescription' => 'Állítson be új jelszót, vagy hagyja üresen, ha nem kívánja megváltoztatni.',
'sshkey_add' => 'SSH kulcs hozzáadása',
'sshkey_edit' => 'SSH kulcs szerkesztése',
],
'gender' => [
'title' => 'Megszólítás',
'male' => 'Úr',
'female' => 'Hölgy',
'undef' => '',
],
'imprint' => 'Jogi megjegyzések',
'index' => [
'customerdetails' => 'Vásárló adatai',
'accountdetails' => 'Fiók adatai',
],
'integrity_check' => [
'databaseCharset' => 'Adatbázis karakterkészlete (UTF-8 ajánlott)',
'domainIpTable' => 'IP <‐> domain hivatkozások',
'subdomainSslRedirect' => 'Hibás SSL-átirányítási jelző nem SSL-es domainekhez',
'froxlorLocalGroupMemberForFcgidPhpFpm' => 'froxlor-felhasználó az ügyfélcsoportokban (FCGID/php-fpm esetén)',
'webserverGroupMemberForFcgidPhpFpm' => 'Webszerver-felhasználó az ügyfélcsoportokban (FCGID/php-fpm esetén)',
'subdomainLetsencrypt' => 'SSL-port nélküli fő domaineknek nincsenek aktív SSL átirányítású aldomainjeik',
],
'logger' => [
'date' => 'Dátum',
'type' => 'Típus',
'action' => 'Művelet',
'user' => 'Felhasználó',
'truncate' => 'Napló ürítése',
'reseller' => 'Viszonteladó',
'admin' => 'Adminisztrátor',
'cron' => 'Ütemezett feladat',
'login' => 'Bejelentkezés',
'intern' => 'Belső',
'unknown' => 'Ismeretlen',
],
'login' => [
'username' => 'Felhasználónév',
'password' => 'Jelszó',
'language' => 'Nyelv',
'login' => 'Bejelentkezés',
'logout' => 'Kijelentkezés',
'profile_lng' => 'Profil nyelve',
'welcomemsg' => 'Kérjük, jelentkezzen be a fiókjához.',
'forgotpwd' => 'Elfelejtette jelszavát?',
'presend' => 'Jelszó visszaállítása',
'email' => 'E-mail cím',
'remind' => 'Jelszavam visszaállítása',
'usernotfound' => 'Felhasználó nem található!',
'backtologin' => 'Vissza a bejelentkezéshez',
'combination_not_found' => 'A felhasználó és e-mail cím kombinációja nem található.',
'2fa' => 'Kétfaktoros hitelesítés (2FA)',
'2facode' => 'Kérjük, adja meg a 2FA kódot',
'2faremember' => 'Böngésző megjegyzése',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Üdvözöljük,\\n\\ne-mail fiókja {EMAIL}\\nsikeresen beállításra került.\\n\\nEz egy automatikusan létrehozott\\ne-mail, kérjük, ne válaszoljon rá!\\n\\nÜdvözlettel, az adminisztrátor',
'subject' => 'E-mail fiók sikeresen beállítva',
],
'createcustomer' => [
'mailbody' => 'Tisztelt {SALUTATION},\\n\\níme a fiókja adatai:\\n\\nFelhasználónév: {USERNAME}\\nJelszó: {PASSWORD}\\n\\nKöszönjük,\\naz adminisztrátor',
'subject' => 'Fiók információk',
],
'pop_success_alternative' => [
'mailbody' => 'Tisztelt {SALUTATION},\\n\\ne-mail fiókja {EMAIL}\\nsikeresen beállításra került.\\nA jelszava: {PASSWORD}.\\n\\nEz egy automatikusan létrehozott\\ne-mail, kérjük, ne válaszoljon rá!\\n\\nÜdvözlettel, az adminisztrátor',
'subject' => 'E-mail fiók sikeresen beállítva',
],
'password_reset' => [
'subject' => 'Jelszó visszaállítása',
'mailbody' => 'Tisztelt {SALUTATION},\\n\\níme a link az új jelszó beállításához. Ez a link a következő 24 órában érvényes.\\n\\n{LINK}\\n\\nKöszönjük,\\naz adminisztrátor',
],
'new_database_by_customer' => [
'subject' => '[froxlor] Új adatbázis létrehozva',
'mailbody' => 'Tisztelt {CUST_NAME},
Ön éppen most hozott létre egy új adatbázist. Íme a megadott információk:
Adatbázis neve: {DB_NAME}
Jelszó: {DB_PASS}
Leírás: {DB_DESC}
DB-Hoszt: {DB_SRV}
phpMyAdmin: {PMA_URI}
Üdvözlettel, az adminisztrátor',
],
'new_ftpaccount_by_customer' => [
'subject' => 'Új ftp-felhasználó létrehozva',
'mailbody' => 'Tisztelt {CUST_NAME},
Ön éppen most hozott létre egy új ftp-felhasználót. Íme a megadott információk:
Felhasználónév: {USR_NAME}
Jelszó: {USR_PASS}
Útvonal: {USR_PATH}
Üdvözlettel, az adminisztrátor',
],
'trafficmaxpercent' => [
'mailbody' => 'Tisztelt {SALUTATION},\\n\\nÖn felhasználta a rendelkezésre álló {TRAFFIC} forgalomból {TRAFFICUSED} mennyiséget.\\nEz több mint {MAX_PERCENT}%%.\\n\\nÜdvözlettel, az adminisztrátor',
'subject' => 'Forgalmi korlát elérése',
],
'diskmaxpercent' => [
'mailbody' => 'Tisztelt {SALUTATION},\\n\\nÖn felhasználta a rendelkezésre álló {DISKAVAILABLE} tárhelyből {DISKUSED} mennyiséget.\\nEz több mint {MAX_PERCENT}%%.\\n\\nÜdvözlettel, az adminisztrátor',
'subject' => 'Tárhely korlát elérése',
],
'2fa' => [
'mailbody' => 'Üdvözöljük,\\n\\naz Ön 2FA bejelentkezési kódja: {CODE}.\\n\\nEz egy automatikusan létrehozott\\ne-mail, kérjük, ne válaszoljon rá!\\n\\nÜdvözlettel, az adminisztrátor',
'subject' => 'froxlor - 2FA Kód',
],
],
'menue' => [
'main' => [
'main' => 'Főoldal',
'changepassword' => 'Jelszó módosítása',
'changelanguage' => 'Nyelv módosítása',
'username' => 'Bejelentkezve mint: ',
'changetheme' => 'Téma módosítása',
'apihelp' => 'API segítség',
'apikeys' => 'API kulcsok',
],
'email' => [
'email' => 'E-mail',
'emails' => 'Címek',
'webmail' => 'Webmail',
'emailsoverview' => 'E-mail domainek áttekintése',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Adatbázisok',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domainek',
'settings' => 'Domainek áttekintése',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Fiókok',
'webftp' => 'WebFTP',
'sshkeys' => 'SSH kulcsok',
],
'extras' => [
'extras' => 'Extrák',
'directoryprotection' => 'Könyvtárvédelem',
'pathoptions' => 'Útvonal beállítások',
'export' => 'Adatexport',
],
'traffic' => [
'traffic' => 'Forgalom',
'current' => 'Aktuális hónap',
'overview' => 'Teljes forgalom',
],
'phpsettings' => [
'maintitle' => 'PHP konfigurációk',
'fpmdaemons' => 'PHP-FPM verziók',
],
'logger' => [
'logger' => 'Rendszernapló',
],
],
'message' => [
'norecipients' => 'Nem került e-mail kiküldésre, mert nincsenek címzettek az adatbázisban',
'success' => 'Sikeresen elküldve %s címzettnek',
],
'mysql' => [
'databasename' => 'Felhasználó/Adatbázis név',
'databasedescription' => 'Adatbázis leírása',
'database_create' => 'Adatbázis létrehozása',
'description' => 'Itt hozhatja létre és módosíthatja MySQL adatbázisait. A változtatások azonnal életbe lépnek, és az adatbázis azonnal használható. A bal oldali menüben találja a phpMyAdmin eszközt, amellyel könnyen kezelheti adatbázisát.
Kérjük, vegye figyelembe: A / útvonal nem engedélyezett az adminisztratív beállítások miatt, automatikusan /választott.aldomain.tld/ értékre lesz állítva, ha nem állítja be másik könyvtárra.',
'pathDescriptionSubdomain' => 'Ha a könyvtár nem létezik, automatikusan létrehozásra kerül.
Ha másik domainre szeretne átirányítani, akkor ennek a bejegyzésnek http:// vagy https:// előtaggal kell kezdődnie.
Ha az URL /-rel végződik, akkor mappának tekintjük, ha nem, akkor fájlként kezeljük.',
'back' => 'Vissza',
'reseller' => 'viszonteladó',
'admin' => 'admin',
'customer' => 'ügyfél/ügyfelek',
'send' => 'küldés',
'nosslipsavailable' => 'Jelenleg nincsenek ssl ip/port kombinációk ehhez a szerverhez',
'backtooverview' => 'Vissza az áttekintéshez',
'dateformat' => 'ÉÉÉÉ-HH-NN',
'dateformat_function' => 'Y-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Alapértelmezett',
'never' => 'Soha',
'active' => 'Aktív',
'please_choose' => 'Kérjük, válasszon',
'allow_modifications' => 'Módosítások engedélyezése',
'megabyte' => 'MegaByte',
'not_supported' => 'Nem támogatott: ',
'view' => 'megtekintés',
'toomanydirs' => 'Túl sok alkönyvtár. Visszatérés a manuális útvonal-kiválasztáshoz.',
'abort' => 'Megszakítás',
'not_activated' => 'nincs aktiválva',
'off' => 'ki',
'options' => 'Opciók',
'neverloggedin' => 'Még nem jelentkezett be',
'descriptionerrordocument' => 'Lehet URL, fájl útvonala vagy egyszerűen egy " " közé zárt szöveg. Hagyja üresen a szerver alapértelmezett értékének használatához.',
'unlock' => 'Feloldás',
'theme' => 'Téma',
'variable' => 'Változó',
'description' => 'Leírás',
'cancel' => 'Mégse',
'ssleditor' => 'SSL beállítások ehhez a domainhez',
'ssleditor_infoshared' => 'Jelenleg a szülődomain tanúsítványát használja',
'ssleditor_infoglobal' => 'Jelenleg globális tanúsítványt használ',
'dashboard' => 'Irányítópult',
'assigned' => 'Hozzárendelt',
'available' => 'Elérhető',
'news' => 'Hírek',
'newsfeed_disabled' => 'A hírcsatorna le van tiltva. Kattintson a szerkesztés ikonra a beállításokhoz való ugráshoz.',
'ftpdesc' => 'FTP leírás',
'letsencrypt' => 'Let\'s encrypt használata',
'set' => 'Alkalmaz',
'shell' => 'Shell',
'exportpath' => [
'title' => 'Az exportált adatok célútvonala',
'description' => 'Ez az az útvonal, ahol az export-archívum tárolva lesz. Ha web-adatok is szerepelnek, az összes fájl a kezdőkönyvtárból tárolva lesz, kivéve az itt megadott mappát.',
],
'export_pgp_public_key' => [
'title' => 'Nyilvános PGP kulcs a titkosításhoz',
'description' => 'Ez a nyilvános PGP kulcs, amelyet az export titkosításához használnak. Ha ezt a mezőt üresen hagyja, az export nem lesz titkosítva.',
],
'pgp_public_key' => 'Nyilvános PGP kulcs',
'none_value' => 'Nincs',
'viewlogs' => 'Naplófájlok megtekintése',
'not_configured' => 'A rendszer még nincs konfigurálva. Kattintson ide a konfigurációkhoz való ugráshoz.',
'ihave_configured' => 'Konfiguráltam a szolgáltatásokat',
'system_is_configured' => 'A rendszer már konfigurálva van',
'settings_before_configuration' => 'Kérjük, győződjön meg róla, hogy a beállításokat a szolgáltatások konfigurálása előtt módosította',
'image_field_delete' => 'A meglévő kép törlése',
'usage_statistics' => 'Erőforrás-használat',
'security_question' => 'Biztonsági kérdés',
'listing_empty' => 'Nincsenek bejegyzések',
'unspecified' => 'nincs megadva',
'settingsmode' => 'Mód',
'settingsmodebasic' => 'Alap',
'settingsmodeadvanced' => 'Haladó',
'settingsmodetoggle' => 'Kattintson a mód váltásához',
'modalclose' => 'Bezárás',
'managetablecolumnsmodal' => [
'title' => 'Táblázat oszlopainak kezelése',
'description' => 'Itt testreszabhatja a látható oszlopokat',
],
'mandatoryfield' => 'A mező kötelező',
'select_all' => 'Összes kiválasztása',
'unselect_all' => 'Összes kiválasztásának megszüntetése',
'searchtablecolumnsmodal' => [
'title' => 'Keresés a mezőkben',
'description' => 'Válassza ki a mezőt, amelyben keresni szeretne'
],
'upload_import' => 'Feltöltés és importálás',
'profile' => 'Profilom',
'use_checkbox_for_unlimited' => 'A "0" érték deaktiválja ezt az erőforrást. A jobb oldali jelölőnégyzet lehetővé teszi a "korlátlan" használatot.',
'use_checkbox_to_disable' => 'A letiltáshoz aktiválja a jelölőnégyzetet a beviteli mező jobb oldalán',
'sshkeydesc' => 'SSH kulcs leírás',
'ftpuser' => 'FTP felhasználó',
'sshpubkey' => 'SSH nyilvános kulcs',
'sshpubkeyph' => 'Illessze be az SSH nyilvános kulcsát ide',
'sshfingerprint' => 'Ujjlenyomat',
'start_setup' => 'Beállítások indítása',
'distro_mismatch' => 'Úgy tűnik, hogy új disztribúcióra frissített. Kérjük, ne felejtse el újrakonfigurálni a szolgáltatásokat.',
'set_new_distro' => 'Disztribúció beállítása',
'dismiss' => 'Elvetés',
],
'phpfpm' => [
'vhost_httpuser' => 'Helyi felhasználó a PHP-FPM-hez (froxlor vHost)',
'vhost_httpgroup' => 'Helyi csoport a PHP-FPM-hez (froxlor vHost)',
'ownvhost' => [
'title' => 'PHP-FPM engedélyezése a froxlor vHost számára',
'description' => 'Ha engedélyezve van, a froxlor is egy helyi felhasználó alatt fog futni',
],
'use_mod_proxy' => [
'title' => 'mod_proxy / mod_proxy_fcgi használata',
'description' => 'Engedélyezni kell, ha Debian 9.x (Stretch) vagy újabb verziót használ. Aktiválja a php-fpm mod_proxy_fcgi-n keresztüli használatához. Legalább apache-2.4.9 szükséges',
],
'ini_flags' => 'Adja meg a lehetséges php_flag értékeket a php.ini-hez. Egy bejegyzés soronként',
'ini_values' => 'Adja meg a lehetséges php_value értékeket a php.ini-hez. Egy bejegyzés soronként',
'ini_admin_flags' => 'Adja meg a lehetséges php_admin_flag értékeket a php.ini-hez. Egy bejegyzés soronként',
'ini_admin_values' => 'Adja meg a lehetséges php_admin_value értékeket a php.ini-hez. Egy bejegyzés soronként',
],
'privacy' => 'Adatvédelmi irányelvek',
'pwdreminder' => [
'success' => 'A jelszó visszaállítása sikeresen kérve. Kérjük, kövesse az e-mailben kapott utasításokat.',
'notallowed' => 'Ismeretlen felhasználó vagy a jelszó visszaállítása le van tiltva',
'changed' => 'A jelszava sikeresen frissítve lett. Most már bejelentkezhet az új jelszavával.',
'wrongcode' => 'Sajnáljuk, az aktiváló kód nem létezik vagy már lejárt.',
'choosenew' => 'Új jelszó beállítása',
],
'question' => [
'question' => 'Biztonsági kérdés',
'admin_customer_reallydelete' => 'Valóban törölni szeretné a(z) %s ügyfelet? Ez nem vonható vissza!',
'admin_domain_reallydelete' => 'Valóban törölni szeretné a(z) %s domaint? MEGJEGYZÉS: Az összes aldomain, ftp-fiók és e-mail cím/fiók, amely ehhez a domainhez kapcsolódik, eltávolításra kerül!',
'admin_domain_reallydisablesecuritysetting' => 'Valóban le szeretné tiltani ezt a biztonsági beállítást, az OpenBasedir-t?',
'admin_admin_reallydelete' => 'Valóban törölni szeretné a(z) %s adminisztrátort? Minden ügyfél és domain az Ön fiókjához lesz áthelyezve.',
'admin_template_reallydelete' => 'Valóban törölni szeretné a(z) \'%s\' sablont?',
'domains_reallydelete' => 'Valóban törölni szeretné a(z) %s domaint?',
'email_reallydelete' => 'Valóban törölni szeretné a(z) %s e-mail címet?',
'email_reallydelete_account' => 'Valóban törölni szeretné a(z) %s e-mail fiókot?',
'email_reallydelete_forwarder' => 'Valóban törölni szeretné a(z) %s továbbítót?',
'extras_reallydelete' => 'Valóban törölni szeretné a(z) %s könyvtárvédelmet?',
'extras_reallydelete_pathoptions' => 'Valóban törölni szeretné a(z) %s útvonal opciókat?',
'extras_reallydelete_export' => 'Valóban meg szeretné szakítani a tervezett exportálási feladatot?',
'ftp_reallydelete' => 'Valóban törölni szeretné a(z) %s FTP-fiókot?',
'mysql_reallydelete' => 'Valóban törölni szeretné a(z) %s adatbázist? Ez nem vonható vissza!',
'admin_configs_reallyrebuild' => 'Valóban újra szeretné építeni az összes konfigurációs fájlt?',
'admin_customer_alsoremovefiles' => 'Felhasználói fájlok is eltávolításra kerüljenek?',
'admin_customer_alsoremovemail' => 'Teljesen eltávolítja az e-mail adatokat a fájlrendszerből?',
'admin_customer_alsoremoveftphomedir' => 'Az FTP-felhasználó kezdőkönyvtára is eltávolításra kerüljön?',
'admin_ip_reallydelete' => 'Valóban törölni szeretné a(z) %s IP címet?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Biztos benne, hogy a domain dokumentumgyökere nem az ügyfél gyökérkönyvtárában lesz?',
'admin_counters_reallyupdate' => 'Valóban újra szeretné számolni az erőforrás-használatot?',
'admin_cleartextmailpws_reallywipe' => 'Valóban törölni szeretné az összes titkosítatlan e-mail fiók jelszavát a mail_users táblából? Ez nem vonható vissza! Az e-mail jelszavak titkosítatlan tárolásának beállítása is KI lesz kapcsolva',
'logger_reallytruncate' => 'Valóban törölni szeretné a(z) "%s" táblát?',
'admin_quotas_reallywipe' => 'Valóban törölni szeretné az összes kvótát a mail_users táblából? Ez nem vonható vissza!',
'admin_quotas_reallyenforce' => 'Valóban érvényesíteni szeretné az alapértelmezett kvótát minden felhasználóra? Ez nem vonható vissza!',
'phpsetting_reallydelete' => 'Valóban törölni szeretné ezeket a beállításokat? Az összes domain, amely jelenleg ezeket a beállításokat használja, az alapértelmezett konfigurációra lesz változtatva.',
'fpmsetting_reallydelete' => 'Valóban törölni szeretné ezeket a php-fpm beállításokat? Az összes php konfiguráció, amely jelenleg ezeket a beállításokat használja, az alapértelmezett konfigurációra lesz változtatva.',
'customer_reallyunlock' => 'Valóban fel szeretné oldani a(z) %s ügyfelet?',
'admin_integritycheck_reallyfix' => 'Valóban meg szeretné próbálni automatikusan javítani az összes adatbázis integritási problémát?',
'plan_reallydelete' => 'Valóban törölni szeretné a(z) %s tárhelytervet?',
'apikey_reallydelete' => 'Valóban törölni szeretné ezt az api-kulcsot?',
'apikey_reallyadd' => 'Valóban létre szeretne hozni egy új api-kulcsot?',
'dnsentry_reallydelete' => 'Valóban törölni szeretné ezt a zóna bejegyzést?',
'certificate_reallydelete' => 'Valóban törölni szeretné ezt a tanúsítványt?',
'cache_reallydelete' => 'Valóban törölni szeretné a gyorsítótárat?',
'please_enter_otp' => 'Kérjük, adja meg a 2FA kódot',
'admin_mysqlserver_reallydelete' => 'Valóban törölni szeretné ezt a MySQL-szervert?',
'email_reallydelete_sender' => 'Valóban törölni szeretné a(z) %s engedélyezett feladót?',
'sshkey_reallydelete' => 'Valóban törölni szeretné a(z) %s ssh kulcsot?',
],
'redirect_desc' => [
'rc_default' => 'alapértelmezett',
'rc_movedperm' => 'véglegesen áthelyezve',
'rc_found' => 'megtalálva',
'rc_seeother' => 'lásd másik',
'rc_tempred' => 'ideiglenes átirányítás',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Munkamenet időtúllépés',
'description' => 'Mennyi ideig kell egy felhasználónak inaktívnak lennie, mielőtt a munkamenet érvénytelenné válik (másodperc)?',
],
'accountprefix' => [
'title' => 'Ügyfél előtag',
'description' => 'Milyen előtagot kell az ügyfélfiókoknak kapniuk?',
],
'mysqlprefix' => [
'title' => 'SQL előtag',
'description' => 'Milyen előtagot kell a MySQL fiókoknak kapniuk?Használja a "RANDOM" értéket, hogy 3 számjegyű véletlenszerű előtagot kapjonHasználja a "DBNAME" értéket, hogy az adatbázis név mezőt használja az ügyfél névvel együtt előtagként.',
],
'ftpprefix' => [
'title' => 'FTP előtag',
'description' => 'Milyen előtagot kell az ftp fiókoknak kapniuk? Ha ezt megváltoztatja, akkor meg kell változtatnia a kvóta SQL lekérdezést az FTP szerver konfigurációs fájljában, ha használja! ',
],
'documentroot_prefix' => [
'title' => 'Kezdőkönyvtár',
'description' => 'Hol kell tárolni az összes kezdőkönyvtárat?',
],
'logfiles_directory' => [
'title' => 'Naplófájlok könyvtára',
'description' => 'Hol kell tárolni az összes naplófájlt?',
],
'logfiles_script' => [
'title' => 'Egyéni szkript a naplófájlok csövezéséhez',
'description' => 'Itt megadhat egy szkriptet, és szükség esetén használhatja a {LOGFILE}, {DOMAIN} és {CUSTOMER} helyőrzőket. Ha használni szeretné, akkor aktiválnia kell a Webszerver naplófájlok csövezése opciót is. Nincs szükség előtagolt cső karakterre.',
],
'logfiles_format' => [
'title' => 'Hozzáférési napló formátum',
'description' => 'Adjon meg egy egyéni naplóformátumot a webszerver specifikációinak megfelelően, hagyja üresen az alapértelmezettért. A formátumtól függően az idézőjelek közé kell tenni a karakterláncot. Ha nginx-szel használja, így fog kinézni: log_format frx_custom {CONFIGURED_VALUE}. Ha Apache-szal használja, így fog kinézni: LogFormat {CONFIGURED_VALUE} frx_custom. Figyelem: A kód nem lesz ellenőrizve hibákra. Ha hibákat tartalmaz, a webszerver lehet, hogy nem indul újra!',
],
'logfiles_type' => [
'title' => 'Hozzáférési napló típusa',
'description' => 'Válasszon a kombinált vagy vhost_combined közül.',
],
'logfiles_piped' => [
'title' => 'Webszerver naplófájlok csövezése a megadott szkripthez (lásd fent)',
'description' => 'Ha egyéni szkriptet használ a naplófájlokhoz, akkor aktiválnia kell ezt, hogy végrehajtásra kerüljön',
],
'ipaddress' => [
'title' => 'IP-cím',
'description' => 'Mi a szerver fő IP-címe?',
],
'hostname' => [
'title' => 'Hosztnév',
'description' => 'Mi a szerver hosztneve?',
],
'apachereload_command' => [
'title' => 'Webszerver újratöltési parancs',
'description' => 'Mi a webszerver parancsa a konfigurációs fájlok újratöltéséhez?',
],
'bindenable' => [
'title' => 'Névszerver engedélyezése',
'description' => 'Itt a névszerver globálisan engedélyezhető és letiltható.',
],
'bindconf_directory' => [
'title' => 'DNS szerver konfigurációs könyvtár',
'description' => 'Hol kell menteni a dns-szerver konfigurációs fájlokat?',
],
'bindreload_command' => [
'title' => 'DNS szerver újratöltési parancs',
'description' => 'Mi a parancs a dns szerver démon újratöltéséhez?',
],
'vmail_uid' => [
'title' => 'Levelek-UID',
'description' => 'Milyen UserID-t kell a leveleknek kapniuk?',
],
'vmail_gid' => [
'title' => 'Levelek-GID',
'description' => 'Milyen GroupID-t kell a leveleknek kapniuk?',
],
'vmail_homedir' => [
'title' => 'Levelek-kezdőkönyvtár',
'description' => 'Hol kell tárolni az összes levelet?',
],
'adminmail' => [
'title' => 'Feladó',
'description' => 'Mi a feladó címe a Panelből küldött e-maileknek?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin URL',
'description' => 'Mi a phpMyAdmin URL-je? (http(s)://-vel kell kezdődnie)',
],
'webmail_url' => [
'title' => 'Webmail URL',
'description' => 'Mi a webmail URL-je? (http(s)://-vel kell kezdődnie)',
],
'webftp_url' => [
'title' => 'WebFTP URL',
'description' => 'Mi a WebFTP URL-je? (http(s)://-vel kell kezdődnie)',
],
'language' => [
'description' => 'Mi a szerver alapértelmezett nyelve?',
],
'maxloginattempts' => [
'title' => 'Maximális bejelentkezési kísérletek',
'description' => 'Maximális bejelentkezési kísérletek száma, amely után a fiók letiltásra kerül.',
],
'deactivatetime' => [
'title' => 'Letiltási idő',
'description' => 'Idő (mp.), amíg egy fiók letiltásra kerül túl sok bejelentkezési próbálkozás után.',
],
'pathedit' => [
'title' => 'Útvonal bevitel típusa',
'description' => 'Útvonalat egy legördülő menüvel vagy egy beviteli mezővel kell kiválasztani?',
],
'nameservers' => [
'title' => 'Névszerverek',
'description' => 'Egy vesszővel elválasztott lista, amely az összes névszerver hosztnevét tartalmazza. Az első lesz az elsődleges.',
],
'mxservers' => [
'title' => 'MX szerverek',
'description' => 'Egy vesszővel elválasztott lista, amely egy számot és egy hosztnevet tartalmaz, szóközzel elválasztva (pl. \'10 mx.example.com\') az mx szervereket tartalmazza.',
],
'paging' => [
'title' => 'Bejegyzések oldalanként',
'description' => 'Hány bejegyzést kell megjeleníteni egy oldalon? (0 = lapozás letiltása)',
],
'defaultip' => [
'title' => 'Alapértelmezett IP/Port',
'description' => 'Válassza ki az összes IP-címet, amelyet alapértelmezettként szeretne használni új domain-ekhez',
],
'defaultsslip' => [
'title' => 'Alapértelmezett SSL IP/Port',
'description' => 'Válassza ki az összes SSL-kompatibilis IP-címet, amelyet alapértelmezettként szeretne használni új domain-ekhez',
],
'phpappendopenbasedir' => [
'title' => 'Útvonalak hozzáadása az OpenBasedir-hez',
'description' => 'Ezek az útvonalak (kettősponttal elválasztva) hozzáadódnak az OpenBasedir-nyilatkozathoz minden vHost-konténerben.',
],
'natsorting' => [
'title' => 'Természetes emberi rendezés használata a listanézetben',
'description' => 'A listákat web1 -> web2 -> web11 sorrendben rendezi, nem pedig web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Dokumentumgyökér letiltott felhasználók számára',
'description' => 'Amikor egy felhasználó letiltásra kerül, ez az útvonal lesz használva dokumentumgyökérként. Hagyja üresen, ha nem szeretne vHost-ot létrehozni.',
],
'mailpwcleartext' => [
'title' => 'E-mail fiókok jelszavainak titkosítatlan mentése az adatbázisban',
'description' => 'Ha ez be van állítva igenre, akkor az összes jelszó titkosítatlanul (olvashatóan mindenki számára, aki hozzáfér az adatbázishoz) lesz mentve a mail_users táblában. Csak akkor aktiválja ezt, ha SASL-t szeretne használni!',
],
'ftpdomain' => [
'title' => 'FTP fiókok @domain',
'description' => 'Az ügyfelek létrehozhatnak FTP fiókokat user@customerdomain?',
],
'mod_fcgid' => [
'title' => 'FCGID engedélyezése',
'description' => 'Használja ezt a PHP futtatásához a megfelelő felhasználói fiókkal.
Ehhez speciális webszerver konfiguráció szükséges Apache-hoz, lásd FCGID - kézikönyv',
'configdir' => [
'title' => 'Konfigurációs könyvtár',
'description' => 'Hol kell tárolni az összes fcgid-konfigurációs fájlt? Ha nem használ saját fordítású suexec binárist, ami a normál helyzet, akkor ennek az útnak a /var/www alatt kell lennie.
MEGJEGYZÉS: Ennek a mappának a tartalma rendszeresen törlődik, ezért kerülje az adatok kézi tárolását benne.
',
],
'tmpdir' => [
'title' => 'Ideiglenes könyvtár',
'description' => 'Hol kell tárolni az ideiglenes könyvtárakat',
],
'starter' => [
'title' => 'Folyamatok domainenként',
'description' => 'Hány folyamatot kell indítani/engedélyezni domainenként? A 0 érték ajánlott, mert a PHP akkor nagyon hatékonyan kezeli a folyamatok számát.',
],
'wrapper' => [
'title' => 'Wrapper a Vhostokban',
'description' => 'Hogyan legyen a wrapper beillesztve a Vhostokba',
],
'peardir' => [
'title' => 'Globális PEAR könyvtárak',
'description' => 'Mely globális PEAR könyvtárakat kell kicserélni minden php.ini konfigurációban? Különböző könyvtárakat kettősponttal kell elválasztani.',
],
'maxrequests' => [
'title' => 'Maximális kérések domainenként',
'description' => 'Hány kérést engedélyezzen domainenként?',
],
'defaultini' => 'Alapértelmezett PHP konfiguráció új domainekhez',
'defaultini_ownvhost' => 'Alapértelmezett PHP konfiguráció froxlor-vHosthoz',
'idle_timeout' => [
'title' => 'Tétlen időkorlát',
'description' => 'Időkorlát beállítása Mod FastCGI-hez.',
],
],
'sendalternativemail' => [
'title' => 'Alternatív e-mail cím használata',
'description' => 'A jelszó e-mailt egy másik címre küldje el az e-mail fiók létrehozása során',
],
'apacheconf_vhost' => [
'title' => 'Webszerver vHost konfigurációs fájl/könyvtárnév',
'description' => 'Hol legyen tárolva a vHost konfiguráció? Megadhat egy fájlt (minden vHost egy fájlban) vagy könyvtárat (minden vHost saját fájlban) itt.',
],
'apacheconf_diroptions' => [
'title' => 'Webszerver diroptions konfigurációs fájl/könyvtárnév',
'description' => 'Hol legyen tárolva a diroptions konfiguráció? Megadhat egy fájlt (minden diroptions egy fájlban) vagy könyvtárat (minden diroption saját fájlban) itt.',
],
'apacheconf_htpasswddir' => [
'title' => 'Webszerver htpasswd könyvtárnév',
'description' => 'Hol legyenek tárolva a htpasswd fájlok a könyvtárvédelemhez?',
],
'mysql_access_host' => [
'title' => 'MySQL-Hozzáférési-Gazdák',
'description' => 'Egy vesszővel elválasztott lista a gazdákról, ahonnan a felhasználók csatlakozhatnak a MySQL-szerverhez. Alhálózat engedélyezéséhez a hálózati maszk vagy cidr szintaxis érvényes.',
],
'webalizer_quiet' => [
'title' => 'Webalizer kimenet',
'description' => 'A webalizer-program részletessége',
],
'logger' => [
'enable' => 'Naplózás engedélyezve/letiltva',
'severity' => 'Naplózási szint',
'types' => [
'title' => 'Napló típus(ok)',
'description' => 'Adja meg a naplótípusokat. Több típus kiválasztásához tartsa lenyomva a CTRL-t a kiválasztás közben. Elérhető naplótípusok: syslog, fájl, mysql',
],
'logfile' => [
'title' => 'Napló fájlnév',
'description' => 'Csak akkor használatos, ha a napló típus tartalmazza a "fájl"-t. Ez a fájl a froxlor/logs/ könyvtárban lesz létrehozva. Ez a mappa védett a nyilvános hozzáférés ellen.',
],
'logcron' => 'Cron feladatok naplózása',
'logcronoption' => [
'never' => 'Soha',
'once' => 'Egyszer',
'always' => 'Mindig',
],
],
'ssl' => [
'use_ssl' => [
'title' => 'SSL használat engedélyezése',
'description' => 'Jelölje be, ha SSL-t szeretne használni a webszerveréhez',
],
'ssl_cert_file' => [
'title' => 'Az SSL tanúsítvány elérési útja',
'description' => 'Adja meg az elérési utat, beleértve a .crt vagy .pem fájl (fő tanúsítvány) nevét',
],
'openssl_cnf' => 'Alapértelmezések a tanúsítvány fájl létrehozásához',
'ssl_key_file' => [
'title' => 'Az SSL kulcsfájl elérési útja',
'description' => 'Adja meg az elérési utat, beleértve a privát kulcs fájl (.key többnyire) nevét',
],
'ssl_ca_file' => [
'title' => 'Az SSL CA tanúsítvány elérési útja (opcionális)',
'description' => 'Ügyfél hitelesítés, csak akkor állítsa be, ha tudja, mi az.',
],
'ssl_cipher_list' => [
'title' => 'Az engedélyezett SSL titkosítások konfigurálása',
'description' => 'Ez egy lista a titkosításokról, amelyeket használni szeretne (vagy nem szeretne) SSL használatakor. A titkosítások listájához és azok beillesztéséhez/kizárásához lásd a "CIPHER LIST FORMAT" és "CIPHER STRINGS" szakaszokat a titkosítások kézikönyv oldalán.
',
],
'apache24_ocsp_cache_path' => [
'title' => 'Apache 2.4: az OCSP tároló gyorsítótárának elérési útja',
'description' => 'Az OCSP válaszok tárolására használt gyorsítótár konfigurálása, amelyeket a TLS kézfogásokba foglalnak.',
],
'ssl_protocols' => [
'title' => 'A TLS protokoll verziójának konfigurálása',
'description' => 'Ez egy lista az SSL protokollokról, amelyeket használni szeretne (vagy nem szeretne) SSL használatakor. Megjegyzés: Néhány régebbi böngésző nem támogatja a legújabb protokoll verziókat.
Alapértelmezett érték:
TLSv1.2
',
],
'tlsv13_cipher_list' => [
'title' => 'Explicit TLSv1.3 titkosítások konfigurálása, ha használatban van',
'description' => 'Ez egy lista a titkosításokról, amelyeket használni szeretne (vagy nem szeretne) TLSv1.3 használatakor. A titkosítások listájához és azok beillesztéséhez/kizárásához lásd a TLSv1.3 dokumentációját.
Alapértelmezett érték üres',
],
],
'default_vhostconf' => [
'title' => 'Alapértelmezett vHost-beállítások',
'description' => 'Ennek a mezőnek a tartalma közvetlenül beillesztésre kerül ebbe az ip/port vHost konténerbe. Az alábbi változókat használhatja: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (ha alkalmazható) Figyelem: A kód nem lesz ellenőrizve hibákra. Ha hibákat tartalmaz, a webszerver nem indulhat újra!',
],
'apache_globaldiropt' => [
'title' => 'Könyvtár opciók az ügyfél előtaghoz',
'description' => 'Ennek a mezőnek a tartalma beillesztésre kerül az 05_froxlor_dirfix_nofcgid.conf apache konfigurációba. Ha üres, az alapértelmezett érték kerül használatra:
apache >=2.4 Require all granted AllowOverride All
apache <=2.2 Order allow,deny allow from all',
],
'default_vhostconf_domain' => [
'description' => 'Ennek a mezőnek a tartalma közvetlenül beillesztésre kerül a domain vHost konténerbe. Az alábbi változókat használhatja: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (ha alkalmazható) Figyelem: A kód nem lesz ellenőrizve hibákra. Ha hibákat tartalmaz, a webszerver nem indulhat újra!',
],
'decimal_places' => 'Tizedesjegyek száma a forgalom/webtér kimenetben',
'selfdns' => [
'title' => 'Ügyfél domain dns beállítások',
],
'selfdnscustomer' => [
'title' => 'Engedélyezze az ügyfeleknek a domain dns beállítások szerkesztését',
],
'unix_names' => [
'title' => 'UNIX kompatibilis felhasználónevek használata',
'description' => 'Lehetővé teszi a - és _ használatát a felhasználónevekben, ha Nem',
],
'allow_password_reset' => [
'title' => 'Jelszó visszaállítás engedélyezése az ügyfelek számára',
'description' => 'Az ügyfelek visszaállíthatják jelszavukat, és egy aktiváló linket küldünk az e-mail címükre',
],
'allow_password_reset_admin' => [
'title' => 'Jelszó visszaállítás engedélyezése az adminok számára',
'description' => 'Az adminok/viszonteladók visszaállíthatják jelszavukat, és egy aktiváló linket küldünk az e-mail címükre',
],
'mail_quota' => [
'title' => 'Postafiók-kvóta',
'description' => 'Az újonnan létrehozott postafiókok alapértelmezett kvótája (MegaByte).',
],
'mail_quota_enabled' => [
'title' => 'Postafiók-kvóta használata az ügyfelek számára',
'description' => 'Aktiválja a kvóták használatát a postafiókokon. Az alapértelmezett Nem, mivel ez speciális beállítást igényel.',
'removelink' => 'Kattintson ide az összes kvóta törléséhez a levelezési fiókoknál.',
'enforcelink' => 'Kattintson ide az alapértelmezett kvóta érvényesítéséhez az összes felhasználói levelezési fióknál.',
],
'session_allow_multiple_login' => [
'title' => 'Többszörös bejelentkezés engedélyezése',
'description' => 'Ha aktiválva van, egy felhasználó többször is bejelentkezhet.',
],
'panel_allow_domain_change_admin' => [
'title' => 'Domainek áthelyezésének engedélyezése adminok között',
'description' => 'Ha aktiválva van, megváltoztathatja egy domain adminisztrátorát a domain beállításoknál. Figyelem: Ha egy ügyfél nincs hozzárendelve ugyanahhoz az adminisztrátorhoz, mint a domain, az adminisztrátor láthatja az ügyfél összes többi domainjét!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Engedélyezze a domainek áthelyezését az ügyfelek között',
'description' => 'Ha aktiválva van, megváltoztathatja egy domain ügyfelét a domain beállításoknál. Figyelem: A froxlor megváltoztatja a documentroot-ot az új ügyfél alapértelmezett homedir-jére (+ domain-mappa, ha aktiválva van)',
],
'specialsettingsforsubdomains' => [
'description' => 'Ha igen, ezek az egyedi vHost-beállítások hozzáadódnak az összes aldomainhez; ha nem, az aldomain-speciális beállítások eltávolításra kerülnek.',
],
'panel_password_min_length' => [
'title' => 'Minimális jelszóhossz',
'description' => 'Itt beállíthatja a jelszavak minimális hosszát. \'0\' azt jelenti: nincs minimális hosszúsági követelmény.',
],
'system_store_index_file_subs' => [
'title' => 'Az alapértelmezett index fájl tárolása új almappákban is',
'description' => 'Ha engedélyezve van, az alapértelmezett index-fájl minden újonnan létrehozott aldomain-útvonalra elmentésre kerül (nem, ha a mappa már létezik!)',
],
'adminmail_return' => [
'title' => 'Válasz-cím',
'description' => 'Adjon meg egy e-mail címet, mint válasz-cím a panel által küldött levelekhez.',
],
'adminmail_defname' => 'Panel e-mail küldő neve',
'stdsubdomainhost' => [
'title' => 'Ügyfél alapértelmezett aldomain',
'description' => 'Milyen hosztnevet kell használni az ügyfél alapértelmezett aldomainjeinek létrehozásához. Ha üres, a rendszer-hosztnevet használja.',
],
'awstats_path' => 'AWStats \'awstats_buildstaticpages.pl\' elérési út',
'awstats_conf' => 'AWStats konfigurációs útvonal',
'defaultttl' => 'Domain TTL bind esetén másodpercben (alapértelmezett \'604800\' = 1 hét)',
'defaultwebsrverrhandler_enabled' => 'Alapértelmezett hibadokumentumok engedélyezése minden ügyfél számára',
'defaultwebsrverrhandler_err401' => [
'title' => 'Fájl/URL a 401-es hibához',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'Fájl/URL a 403-as hibához',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'Fájl/URL a 404-es hibához',
'defaultwebsrverrhandler_err500' => [
'title' => 'Fájl/URL az 500-as hibához',
'description' => '',
],
'ftpserver' => [
'desc' => 'Ha a pureftpd van kiválasztva, a .ftpquota fájlok a felhasználói kvótákhoz létrejönnek és naponta frissülnek',
],
'customredirect_enabled' => [
'title' => 'Ügyfél átirányítások engedélyezése',
'description' => 'Engedélyezze az ügyfelek számára, hogy kiválasszák az átirányításokhoz használt http-állapotkódot',
],
'customredirect_default' => [
'title' => 'Alapértelmezett átirányítás',
'description' => 'Állítsa be az alapértelmezett átirányítási kódot, amelyet akkor kell használni, ha az ügyfél nem állítja be magának',
],
'mail_also_with_mxservers' => 'Hozzon létre mail-, imap-, pop3- és smtp-"A rekordot" az MX-szerverekkel együtt',
'froxlordirectlyviahostname' => 'froxlor közvetlen elérése a hosztnéven keresztül',
'panel_password_regex' => [
'title' => 'Jelszavak reguláris kifejezése',
'description' => 'Itt beállíthat egy reguláris kifejezést a jelszavak összetettségére. Üres = nincs külön követelmény',
],
'mod_fcgid_ownvhost' => [
'title' => 'FCGID engedélyezése a froxlor vHosthoz',
'description' => 'Ha engedélyezve van, a froxlor is egy helyi felhasználó alatt fog futni',
],
'perl' => [
'suexecworkaround' => [
'title' => 'SuExec megoldás engedélyezése',
'description' => 'Csak akkor engedélyezze, ha az ügyfél docrootjai nincsenek az apache suexec útvonalán belül. Ha engedélyezve van, a froxlor szimbolikus linket hoz létre az ügyfél perl-engedélyezett könyvtárából + /cgi-bin/ a megadott útvonalra. Vegye figyelembe, hogy a perl csak a /cgi-bin/ alkönyvtárban fog működni, és nem magában a könyvtárban (ahogy ez a javítás nélkül történik!)',
],
'suexeccgipath' => [
'title' => 'Útvonal az ügyfél perl-engedélyezett könyvtár szimbolikus linkjeihez',
'description' => 'Csak akkor kell beállítania, ha a SuExec-megoldás engedélyezve van. FIGYELEM: Győződjön meg róla, hogy ez az útvonal a suexec útvonalán belül van, különben ez a megoldás haszontalan',
],
],
'awstats_awstatspath' => 'AWStats \'awstats.pl\' elérési út',
'awstats_icons' => [
'title' => 'AWstats ikonok mappájának elérési útja',
'description' => 'pl. /usr/share/awstats/htdocs/icon/',
],
'login_domain_login' => 'Bejelentkezés engedélyezése domainekkel',
'perl_server' => [
'title' => 'Perl szerver socket helye',
'description' => 'Egy egyszerű útmutató található itt: nginx.com',
],
'nginx_php_backend' => [
'title' => 'Nginx PHP háttér',
'description' => 'itt hallgat a PHP folyamat a nginx kéréseire, lehet egy unix socket vagy ip:port kombináció *NEM használatos php-fpm-mel',
],
'phpreload_command' => [
'title' => 'PHP újratöltési parancs',
'description' => 'ezt használják a PHP háttér újratöltésére, ha bármelyik használatban van Alapértelmezett: üres *NEM használatos php-fpm-mel',
],
'phpfpm' => [
'title' => 'php-fpm engedélyezése',
'description' => 'Ez speciális webszerver konfigurációt igényel, lásd PHP-FPM kézikönyv',
],
'phpfpm_settings' => [
'configdir' => 'php-fpm konfigurációs könyvtár',
'aliasconfigdir' => 'php-fpm konfigurációs alias-könyvtár',
'reload' => 'php-fpm újraindítási parancs',
'pm' => 'Folyamatkezelő vezérlés (pm)',
'max_children' => [
'title' => 'Gyermekfolyamatok száma',
'description' => 'A gyermekfolyamatok száma, amelyeket létre kell hozni, amikor a pm \'static\'-ra van állítva, és a maximális gyermekfolyamatok száma, amelyeket létre kell hozni, amikor a pm \'dynamic/ondemand\'-ra van állítva Egyenértékű a PHP_FCGI_CHILDREN-nel',
],
'start_servers' => [
'title' => 'A létrehozott gyermekfolyamatok száma indításkor',
'description' => 'Megjegyzés: Csak akkor használatos, ha a pm \'dynamic\'-ra van állítva',
],
'min_spare_servers' => [
'title' => 'A kívánt minimális számú tétlen szerverfolyamat',
'description' => 'Megjegyzés: Csak akkor használatos, ha a pm \'dynamic\'-ra van állítva Megjegyzés: Kötelező, ha a pm \'dynamic\'-ra van állítva',
],
'max_spare_servers' => [
'title' => 'A kívánt maximális számú tétlen szerverfolyamat',
'description' => 'Megjegyzés: Csak akkor használatos, ha a pm \'dynamic\'-ra van állítva Megjegyzés: Kötelező, ha a pm \'dynamic\'-ra van állítva',
],
'max_requests' => [
'title' => 'Kérések száma gyermekenként újraindítás előtt',
'description' => 'Végtelen kérésfeldolgozáshoz adja meg a \'0\' értéket. Egyenértékű a PHP_FCGI_MAX_REQUESTS-szel.',
],
'idle_timeout' => [
'title' => 'Tétlen időkorlát',
'description' => 'Időkorlát beállítása PHP FPM FastCGI-hez.',
],
'ipcdir' => [
'title' => 'FastCGI IPC könyvtár',
'description' => 'A könyvtár, ahol a php-fpm socketek tárolásra kerülnek a webszerver által. Ennek a könyvtárnak olvashatónak kell lennie a webszerver számára',
],
'limit_extensions' => [
'title' => 'Engedélyezett kiterjesztések',
'description' => 'Korlátozza a fő szkript kiterjesztéseit, amelyeket az FPM engedélyez a feldolgozásra. Ez megakadályozhatja a konfigurációs hibákat a webszerver oldalán. Csak a .php kiterjesztésekre korlátozza az FPM-et, hogy megakadályozza a rosszindulatú felhasználókat más kiterjesztések használatában php kód végrehajtására. Alapértelmezett érték: .php',
],
'envpath' => 'Útvonalak hozzáadása a PATH környezeti változóhoz. Hagyja üresen, ha nincs PATH környezeti változó',
'override_fpmconfig' => 'FPM-démon beállítások felülírása (pm, max_children, stb.)',
'override_fpmconfig_addinfo' => ' Csak akkor használatos, ha az "FPM-démon beállítások felülírása" "Igen"-re van állítva',
'restart_note' => 'Figyelem: A konfiguráció nem lesz ellenőrizve hibák szempontjából. Ha hibákat tartalmaz, előfordulhat, hogy a PHP-FPM nem indul újra!',
'custom_config' => [
'title' => 'Egyéni konfiguráció',
'description' => 'Egyéni konfiguráció hozzáadása minden PHP-FPM verzió példányhoz, például pm.status_path = /status a monitorozáshoz. Az alábbi változók itt használhatók. Figyelem: A konfiguráció nem lesz ellenőrizve hibák szempontjából. Ha hibákat tartalmaz, előfordulhat, hogy a PHP-FPM nem indul újra!',
],
'allow_all_customers' => [
'title' => 'Ezen konfiguráció hozzárendelése az összes jelenleg létező ügyfélhez',
'description' => 'Állítsa "igaz"-ra, ha szeretné hozzárendelni ezt a konfigurációt az összes jelenleg létező ügyfélhez, hogy használhassák. Ez a beállítás nem állandó, de többször is futtatható.',
],
],
'report' => [
'report' => 'Web- és forgalomhasználatról szóló jelentések küldésének engedélyezése',
'webmax' => [
'title' => 'Figyelmeztetési szint százalékban a webtárhelyhez',
'description' => 'Érvényes értékek 0-tól 150-ig. Ha 0-ra állítja, ez a jelentés kikapcsolódik.',
],
'trafficmax' => [
'title' => 'Figyelmeztetési szint százalékban a forgalomhoz',
'description' => 'Érvényes értékek 0-tól 150-ig. Ha 0-ra állítja, ez a jelentés kikapcsolódik.',
],
'report_web_bccadmin' => [
'title' => 'Jelentés másolat az adminisztrátornak (BCC)',
'description' => 'Ha aktiválva van, a használati jelentések másolata BCC-ben kerül elküldésre az adminisztrátornak',
],
],
'dropdown' => 'Legördülő lista',
'manual' => 'Kézi',
'default_theme' => 'Alapértelmezett téma',
'validate_domain' => 'Doménnevek ellenőrzése',
'diskquota_enabled' => 'Kvóta aktiválva?',
'diskquota_repquota_path' => [
'description' => 'Útvonal a repquota-hoz',
],
'diskquota_quotatool_path' => [
'description' => 'Útvonal a quotatool-hoz',
],
'diskquota_customer_partition' => [
'description' => 'Partíció, amelyen az ügyfelek fájljai tárolódnak',
],
'vmail_maildirname' => [
'title' => 'Maildir név',
'description' => 'Maildir könyvtár a felhasználó fiókjában. Általában \'Maildir\', néhány implementációban \'.maildir\', és közvetlenül a felhasználó könyvtárába, ha üresen hagyják.',
],
'catchall_enabled' => [
'title' => 'Catchall használata',
'description' => 'Szeretné biztosítani ügyfelei számára a catchall funkciót?',
],
'apache_24' => [
'title' => 'Apache 2.4 módosítások használata',
'description' => 'FIGYELEM: csak akkor használja, ha ténylegesen apache 2.4 vagy magasabb verziót telepített ellenkező esetben a webszerver nem fog tudni elindulni',
],
'nginx_fastcgiparams' => [
'title' => 'Útvonal a fastcgi_params fájlhoz',
'description' => 'Adja meg az nginx fastcgi_params fájljának útvonalát, beleértve a fájlnevet',
],
'documentroot_use_default_value' => [
'title' => 'Doménnév használata alapértelmezett értékként a DocumentRoot útvonalhoz',
'description' => 'Ha engedélyezve van és a DocumentRoot útvonal üres, az alapértelmezett érték a (al)doménnév lesz.
Példák: /var/customers/webs/customer_name/example.com/ /var/customers/webs/customer_name/subdomain.example.com/',
],
'panel_phpconfigs_hidesubdomains' => [
'title' => 'Aldomének elrejtése a PHP-konfiguráció áttekintésben',
'description' => 'Ha aktiválva van, az ügyfelek aldoménjei nem lesznek felsorolva a php-konfigurációk áttekintésében, csak az aldomének száma látható.
Megjegyzés: Ez csak akkor látható, ha engedélyezte az FCGID-t vagy a PHP-FPM-et',
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Standard aldomének elrejtése a PHP-konfiguráció áttekintésben',
'description' => 'Ha aktiválva van, az ügyfelek standard aldoménjei nem jelennek meg a php-konfigurációk áttekintésében
Megjegyzés: Ez csak akkor látható, ha engedélyezte az FCGID-t vagy a PHP-FPM-et',
],
'passwordcryptfunc' => [
'title' => 'Válassza ki, melyik jelszó-titkosítási módszert kell használni',
'description' => 'Válassza ki, melyik jelszó-titkosítási módszert kell használni. Ha megváltoztatja ezt a beállítást, csak az új jelszavak lesznek titkosítva az új módszerrel. A meglévő jelszavak nem változnak.',
],
'systemdefault' => 'Rendszer alapértelmezett',
'panel_allow_theme_change_admin' => 'Adminisztrátorok számára a téma változtatásának engedélyezése',
'panel_allow_theme_change_customer' => 'Ügyfelek számára a téma változtatásának engedélyezése',
'axfrservers' => [
'title' => 'AXFR szerverek',
'description' => 'IP-címek vesszővel elválasztott listája, amelyek számára engedélyezett a dns zónák átvitele (AXFR).',
],
'powerdns_mode' => [
'title' => 'PowerDNS működési mód',
'description' => 'Válassza ki a PowerDNS módot: Native a replikáció nélküli működéshez (Alapértelmezett) / Master, ha DNS replikációra van szükség.',
],
'customerssl_directory' => [
'title' => 'Webszerver ügyfél-ssl tanúsítványok könyvtára',
'description' => 'Hol kell létrehozni az ügyfél által megadott ssl-tanúsítványokat?
MEGJEGYZÉS: Ennek a mappának a tartalma rendszeresen törlődik, ezért kerülje az adatok manuális tárolását benne.
',
],
'allow_error_report_admin' => [
'title' => 'Adminisztrátorok/viszonteladók számára az adatbázis-hibák jelentésének engedélyezése a froxlor felé',
'description' => 'Kérjük, vegye figyelembe: Soha ne küldjön személyes (ügyfél)adatokat nekünk!',
],
'allow_error_report_customer' => [
'title' => 'Ügyfelek számára az adatbázis-hibák jelentésének engedélyezése a froxlor felé',
'description' => 'Kérjük, vegye figyelembe: Soha ne küldjön személyes (ügyfél)adatokat nekünk!',
],
'mailtraffic_enabled' => [
'title' => 'E-mail forgalom elemzése',
'description' => 'Levelezőszerver naplóinak elemzésének engedélyezése a forgalom kiszámításához',
],
'mdaserver' => [
'title' => 'MDA típusa',
'description' => 'A Mail Delivery Server típusa',
],
'mdalog' => [
'title' => 'MDA napló',
'description' => 'A Mail Delivery Server naplófájlja',
],
'mtaserver' => [
'title' => 'MTA típusa',
'description' => 'A Mail Transfer Agent típusa',
],
'mtalog' => [
'title' => 'MTA napló',
'description' => 'A Mail Transfer Agent naplófájlja',
],
'system_cronconfig' => [
'title' => 'Cron konfigurációs fájl',
'description' => 'Útvonal a cron-szolgáltatás konfigurációs fájljához. Ezt a fájlt a froxlor rendszeresen és automatikusan frissíti. Megjegyzés: Kérjük, győződjön meg róla, hogy ugyanazt a fájlnevet használja, mint a fő froxlor cronjob esetében (alapértelmezett: /etc/cron.d/froxlor)!
Ha FreeBSD-t használ, kérjük, adja meg itt az /etc/crontab útvonalat!',
],
'system_crondreload' => [
'title' => 'Cron-démon újratöltési parancs',
'description' => 'Adja meg a parancsot, amelyet végre kell hajtani a rendszer cron-démonjának újratöltéséhez',
],
'system_croncmdline' => [
'title' => 'Cron végrehajtási parancs (php-bináris)',
'description' => 'Parancs a cronjobjaink végrehajtásához. Csak akkor változtassa meg, ha tudja, mit csinál (alapértelmezett: "/usr/bin/nice -n 5 /usr/bin/php -q")!',
],
'system_cron_allowautoupdate' => [
'title' => 'Automatikus adatbázis-frissítések engedélyezése',
'description' => '
FIGYELEM:
Ez a beállítás lehetővé teszi a cronjob számára, hogy megkerülje a froxlor fájlok és az adatbázis verzióellenőrzését, és verzióeltérés esetén lefuttassa az adatbázis-frissítéseket.
Az automatikus frissítés mindig az alapértelmezett értékeket állítja be az új beállításokhoz vagy változtatásokhoz. Ez nem mindig felel meg az Ön rendszerének. Kérjük, gondolja át kétszer, mielőtt aktiválja ezt a beállítást.
',
],
'dns_createhostnameentry' => 'Bind-zone/config létrehozása a rendszer hosztnévhez',
'panel_password_alpha_lower' => [
'title' => 'Kisbetű',
'description' => 'A jelszónak tartalmaznia kell legalább egy kisbetűt (a-z).',
],
'panel_password_alpha_upper' => [
'title' => 'Nagybetű',
'description' => 'A jelszónak tartalmaznia kell legalább egy nagybetűt (A-Z).',
],
'panel_password_numeric' => [
'title' => 'Számok',
'description' => 'A jelszónak tartalmaznia kell legalább egy számot (0-9).',
],
'panel_password_special_char_required' => [
'title' => 'Speciális karakter',
'description' => 'A jelszónak tartalmaznia kell legalább egyet az alább meghatározott karakterek közül.',
],
'panel_password_special_char' => [
'title' => 'Speciális karakterek listája',
'description' => 'Ezen karakterek egyike szükséges, ha a fenti opció be van állítva.',
],
'apache_itksupport' => [
'title' => 'Apache ITK-MPM módosítások használata',
'description' => 'FIGYELEM: csak akkor használja, ha ténylegesen engedélyezve van az apache itk-mpm ellenkező esetben a webszerver nem fog tudni elindulni',
],
'letsencryptca' => [
'title' => 'ACME környezet',
'description' => 'A Let\'s Encrypt / ZeroSSL tanúsítványokhoz használandó környezet.',
],
'letsencryptchallengepath' => [
'title' => 'Let\'s Encrypt kihívások útvonala',
'description' => 'Az a könyvtár, ahonnan a Let\'s Encrypt kihívásokat globális aliason keresztül kell kínálni.',
],
'letsencryptkeysize' => [
'title' => 'Új Let\'s Encrypt tanúsítványok kulcsmérete',
'description' => 'Az új Let\'s Encrypt tanúsítványok kulcsmérete bitben.',
],
'letsencryptreuseold' => [
'title' => 'Let\'s Encrypt kulcs újrafelhasználása',
'description' => 'Ha aktiválva van, minden megújításkor ugyanaz a kulcs lesz használva, ellenkező esetben minden alkalommal új kulcs generálódik.',
],
'leenabled' => [
'title' => 'Let\'s Encrypt engedélyezése',
'description' => 'Ha aktiválva van, az ügyfelek lehetővé teszik a froxlor számára, hogy automatikusan generáljon és megújítson Let\'s Encrypt ssl-tanúsítványokat ssl IP/port-tal rendelkező domainekhez.
Kérjük, ne feledje, hogy engedélyezés esetén át kell néznie a webszerver konfigurációját, mert ez a funkció speciális beállítást igényel.',
],
'caa_entry' => [
'title' => 'CAA DNS rekordok generálása',
'description' => 'Automatikusan generál CAA rekordokat az SSL-engedélyezett domainekhez, amelyek Let\'s Encrypt-et használnak',
],
'caa_entry_custom' => [
'title' => 'További CAA DNS rekordok',
'description' => 'A DNS Tanúsítvány Kibocsátó Engedélyezés (CAA) egy internetes biztonsági mechanizmus, amely lehetővé teszi a domainnév tulajdonosok számára, hogy jelezzék a tanúsítvány-kibocsátóknak, hogy jogosultak-e digitális tanúsítványokat kibocsátani egy adott domainnévhez. Ezt egy új "CAA" Domain Name System (DNS) erőforrásrekord segítségével teszi.
Ennek a mezőnek a tartalma közvetlenül bekerül a DNS zónába (minden sor egy CAA rekordot eredményez). Ha a Let\'s Encrypt engedélyezve van ehhez a domainhez, ez a bejegyzés mindig automatikusan hozzáadódik, és nem kell manuálisan hozzáadni: 0 issue "letsencrypt.org" (Ha a domain wildcard domain, akkor ehelyett issuewild lesz használva). Az Incidens Jelentés engedélyezéséhez hozzáadhat egy iodef rekordot. Egy példa egy ilyen jelentés küldésére a me@example.com címre: 0 iodef "mailto:me@example.com"
Figyelem: A kód nem lesz ellenőrizve hibák szempontjából. Ha hibákat tartalmaz',
],
'exportenabled' => [
'title' => 'Adatexport engedélyezése ügyfelek számára',
'description' => 'Ha aktiválva van, az ügyfél képes lesz adatexport feladatokat ütemezni (cron-export), amely archívumot generál a saját docroot-jában (az ügyfél által választható alkönyvtárban)',
],
'dnseditorenable' => [
'title' => 'DNS szerkesztő engedélyezése',
'description' => 'Lehetővé teszi az adminisztrátorok és ügyfelek számára a domain dns bejegyzések kezelését',
],
'dns_server' => [
'title' => 'DNS szerver daemon',
'description' => 'Ne feledje, hogy a daemonokat a froxlor konfigurációs sablonjai segítségével kell beállítani',
],
'panel_customer_hide_options' => [
'title' => 'Menüelemek és forgalmi diagramok elrejtése az ügyfélpanelen',
'description' => 'Válassza ki az ügyfélpanelen elrejtendő elemeket. Több opció kiválasztásához tartsa lenyomva a CTRL gombot kiválasztás közben.',
],
'allow_allow_customer_shell' => [
'title' => 'Ügyfelek számára engedélyezze a shell hozzáférés engedélyezését ftp-felhasználók számára',
'description' => 'Kérjük, vegye figyelembe: A shell hozzáférés lehetővé teszi a felhasználó számára különböző binárisok végrehajtását a rendszeren. Rendkívül óvatosan használja. Kérjük, csak akkor aktiválja ezt, ha TÉNYLEG tudja, mit csinál!!!',
],
'available_shells' => [
'title' => 'Elérhető shell-ek listája',
'description' => 'Vesszővel elválasztott lista azokról a shell-ekről, amelyek elérhetők az ügyfél számára az ftp-felhasználóik számára való kiválasztásra.
Vegye figyelembe, hogy az alapértelmezett shell /bin/false mindig választható lesz (ha engedélyezve van), még akkor is, ha ez a beállítás üres. Ez az alapértelmezett érték az ftp-felhasználók számára minden esetben',
],
'le_froxlor_enabled' => [
'title' => 'Let\'s Encrypt engedélyezése a froxlor vhost számára',
'description' => 'Ha aktiválva van, a froxlor vhost automatikusan biztonságossá válik egy Let\'s Encrypt tanúsítvány használatával.',
],
'le_froxlor_redirect' => [
'title' => 'SSL-átirányítás engedélyezése a froxlor vhost számára',
'description' => 'Ha aktiválva van, minden http kérés a froxlor-hoz átirányításra kerül a megfelelő SSL oldalra.',
],
'option_unavailable_websrv' => ' Csak a következőkhöz érhető el: %s',
'option_unavailable' => ' Az opció nem érhető el más beállítások miatt.',
'letsencryptacmeconf' => [
'title' => 'Az acme.conf snippet útvonala',
'description' => 'A konfigurációs snippet fájlneve, amely lehetővé teszi a webszerver számára az acme kihívás kiszolgálását.',
],
'mail_use_smtp' => 'Levelező beállítása SMTP használatára',
'mail_smtp_host' => 'SMTP szerver megadása',
'mail_smtp_usetls' => 'TLS titkosítás engedélyezése',
'mail_smtp_auth' => 'SMTP hitelesítés engedélyezése',
'mail_smtp_port' => 'Csatlakozáshoz használt TCP port',
'mail_smtp_user' => 'SMTP felhasználónév',
'mail_smtp_passwd' => 'SMTP jelszó',
'mail_enable_allow_sender' => [
'title' => 'Engedélyezett feladók funkció engedélyezése',
'description' => 'Ha aktiválva van, lehetővé teszi a postafiók tulajdonosok számára, hogy más feladó címeket adjanak hozzá ehhez a postafiókhoz. Ezzel lehetővé válik más feladó címekkel történő levélküldés.',
],
'mail_allow_external_domains' => [
'title' => 'Külső domainek engedélyezése mint engedélyezett feladók',
'description' => 'Ha aktiválva van, a postafiók tulajdonosok külső domain-címeket is használhatnak engedélyezett feladóként (tehát olyan domaineket, amelyek nem tartoznak a Froxlor-hoz)',
],
'http2_support' => [
'title' => 'HTTP2 támogatás',
'description' => 'HTTP2 támogatás engedélyezése ssl-hez. CSAK AKKOR ENGEDÉLYEZZE, HA A WEBSZERVERE TÁMOGATJA EZT A FUNKCIÓT (nginx verzió 1.9.5+, apache2 verzió 2.4.17+)',
],
'http3_support' => [
'title' => 'HTTP3 támogatás',
'description' => 'HTTP3 támogatás engedélyezése ssl-hez. CSAK AKKOR ENGEDÉLYEZZE, HA A WEBSZERVERE TÁMOGATJA EZT A FUNKCIÓT (nginx verzió 1.25.0+)',
],
'nssextrausers' => [
'title' => 'libnss-extrausers használata libnss-mysql helyett',
'description' => 'Ne olvassa be a felhasználókat az adatbázisból, hanem fájlokból. Kérjük, csak akkor aktiválja, ha már elvégezte a szükséges konfigurációs lépéseket (rendszer -> libnss-extrausers). Csak Debian/Ubuntu esetén (vagy ha saját maga fordította a libnss-extrausers-t!)',
],
'le_domain_dnscheck' => [
'title' => 'Domainek DNS-ének ellenőrzése Let\'s Encrypt használatakor',
'description' => 'Ha aktiválva van, a froxlor ellenőrzi, hogy a domain, amely Let\'s Encrypt tanúsítványt kér, legalább egy rendszer IP címre feloldódik-e.',
],
'le_domain_dnscheck_resolver' => [
'title' => 'Külső névszerver használata DNS ellenőrzéshez',
'description' => 'Ha be van állítva, a froxlor ezt a DNS-t fogja használni a domainok DNS-ének ellenőrzéséhez a Let\'s Encrypt használatakor. Ha üres, a rendszer alapértelmezett DNS-feloldóját fogja használni.',
],
'phpsettingsforsubdomains' => [
'description' => 'Ha igen, a kiválasztott php-konfiguráció frissítve lesz minden aldomainre',
],
'leapiversion' => [
'title' => 'Válassza ki a Let\'s Encrypt ACME implementációt',
'description' => 'Jelenleg csak az ACME v2 implementáció támogatott a Let\'s Encrypt-hez.',
],
'enable_api' => [
'title' => 'Külső API használat engedélyezése',
'description' => 'A froxlor API használatához aktiválnia kell ezt az opciót. Részletesebb információkért lásd https://docs.froxlor.org/',
],
'api_customer_default' => '"API hozzáférés engedélyezése" alapértelmezett érték új ügyfeleknek',
'dhparams_file' => [
'title' => 'DHParams fájl (Diffie–Hellman kulcscsere)',
'description' => 'Ha itt meg van adva egy dhparams.pem fájl, az bele lesz foglalva a webszerver konfigurációjába. Hagyja üresen a kikapcsoláshoz. Példa: /etc/ssl/webserver/dhparams.pem
Ha a fájl nem létezik, automatikusan létrehozásra kerül a következő paranccsal: openssl dhparam -out /etc/ssl/webserver/dhparams.pem 4096. Ajánlott a fájlt előre létrehozni, mielőtt itt megadná, mivel a létrehozás elég sokáig tart és blokkolja a cronjob-ot.',
],
'errorlog_level' => [
'title' => 'Hibanapló szintje',
'description' => 'Adja meg a hibanapló szintjét. Az alapértelmezett "warn" apache-felhasználóknak és "error" nginx-felhasználóknak.',
],
'letsencryptecc' => [
'title' => 'ECC / ECDSA tanúsítvány kiállítása',
'description' => 'Ha érvényes kulcsméretnek van beállítva, a kiállított tanúsítvány ECC / ECDSA-t fog használni',
],
'froxloraliases' => [
'title' => 'Domain aliasok a froxlor vhost-hoz',
'description' => 'Vesszővel elválasztott lista a domainek hozzáadásához szerveraliasként a froxlor vhost-hoz',
],
'default_sslvhostconf' => [
'title' => 'Alapértelmezett SSL vHost-beállítások',
'description' => 'Ennek a mezőnek a tartalma közvetlenül bele lesz foglalva ebbe az ip/port vHost konténerbe. A következő változókat használhatja: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}, {FPMSOCKET} (ha alkalmazható) Figyelem: A kód nem lesz ellenőrizve hibákra. Ha hibákat tartalmaz, előfordulhat, hogy a webszerver nem indul újra!',
],
'includedefault_sslvhostconf' => 'Nem-SSL vHost-beállítások beillesztése az SSL-vHost-ba',
'apply_specialsettings_default' => 'Alapértelmezett érték a "Speciális beállítások alkalmazása minden aldomainre (*.example.com)" beállításhoz domain szerkesztésekor',
'apply_phpconfigs_default' => 'Alapértelmezett érték a "PHP-konfiguráció alkalmazása minden aldomainre" beállításhoz domain szerkesztésekor',
'awstats' => [
'logformat' => [
'title' => 'LogFormat beállítás',
'description' => 'Ha egyéni logformátumot használ a webszerverhez, módosítania kell az awstats LogFormat-ot is. Az alapértelmezett 1. További információkért nézze meg a dokumentációt itt.',
],
],
'hide_incompatible_settings' => 'Inkompatibilis beállítások elrejtése',
'soaemail' => 'SOA rekordokban használandó e-mail cím (ha üres, alapértelmezetten a panel beállításaiban megadott küldő címet használja)',
'imprint_url' => [
'title' => 'URL a jogi megjegyzésekhez / impresszumhoz',
'description' => 'Adjon meg egy URL-t a jogi megjegyzések / impresszum oldalához. A link látható lesz a bejelentkezési képernyőn és a láblécben bejelentkezés után.',
],
'terms_url' => [
'title' => 'URL a használati feltételekhez',
'description' => 'Adjon meg egy URL-t a használati feltételek oldalához. A link látható lesz a bejelentkezési képernyőn és a láblécben bejelentkezés után.',
],
'privacy_url' => [
'title' => 'URL az adatvédelmi irányelvekhez',
'description' => 'Adjon meg egy URL-t az adatvédelmi irányelvek / impresszum oldalához. A link látható lesz a bejelentkezési képernyőn és a láblécben bejelentkezés után.',
],
'logo_image_header' => [
'title' => 'Logó kép (Fejléc)',
'description' => 'Töltse fel saját logó képét, amely a fejlécben jelenik meg bejelentkezés után (ajánlott magasság 30px)',
],
'logo_image_login' => [
'title' => 'Logó kép (Bejelentkezés)',
'description' => 'Töltse fel saját logó képét, amely bejelentkezéskor jelenik meg',
],
'logo_overridetheme' => [
'title' => 'A témában meghatározott logó felülírása a "Logó kép" által (Fejléc és Bejelentkezés, lásd alább)',
'description' => 'Ezt "true"-ra kell állítani, ha használni szeretné a feltöltött logót; alternatívaként még mindig használhatja a téma-alapú "logo_custom.png" és "logo_custom_login.png" lehetőséget.',
],
'logo_overridecustom' => [
'title' => 'A témában meghatározott egyedi logó (logo_custom.png és logo_custom_login.png) felülírása a "Logó kép" által (Fejléc és Bejelentkezés, lásd alább)',
'description' => 'Állítsa "true"-ra, ha figyelmen kívül szeretné hagyni a téma-specifikus egyedi logókat a fejléchez és bejelentkezéshez, és helyette a "Logó kép"-et szeretné használni',
],
'createstdsubdom_default' => [
'title' => 'Előre kiválasztott érték az "Alapértelmezett aldomain létrehozása" opcióhoz ügyfél létrehozásakor',
'description' => '',
],
'froxlorusergroup' => [
'title' => 'Egyedi rendszercsoport minden ügyfél felhasználóhoz',
'description' => 'A libnss-extrausers (rendszerbeállítások) használata szükséges ennek érvénybe lépéséhez. Az üres érték kihagyja a létrehozást vagy eltávolítja a meglévő csoportot.',
],
'acmeshpath' => [
'title' => 'Az acme.sh útvonala',
'description' => 'Állítsa be, hogy hova van telepítve az acme.sh, beleértve az acme.sh szkriptet Az alapértelmezett /root/.acme.sh/acme.sh',
],
'update_channel' => [
'title' => 'froxlor frissítési csatorna',
'description' => 'Válassza ki a froxlor frissítési csatornáját. Az alapértelmezett "stable"',
],
'uc_stable' => 'stabil',
'uc_testing' => 'tesztelés',
'uc_nightly' => 'éjszakai',
'traffictool' => [
'toolselect' => 'Forgalomelemző',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
'goaccess' => 'goaccess'
],
'requires_reconfiguration' => 'Ezen beállítások módosítása szükségessé teheti a következő szolgáltatások újrakonfigurálását: %s',
'req_limit_per_interval' => [
'title' => 'HTTP kérések száma intervallumonként',
'description' => 'Korlátozza a HTTP kérések számát intervallumonként (lásd alább) a froxlor-hoz, az alapértelmezett "60"',
],
'req_limit_interval' => [
'title' => 'Sebességkorlátozási intervallum',
'description' => 'Adja meg az időt másodpercben a HTTP kérések számához, az alapértelmezett "60"',
],
'option_requires_otp' => 'Ez a beállítás OTP validációt igényel',
'panel_menu_collapsed' => [
'title' => 'Menüszekciók összecsukása',
'description' => 'Ha ki van kapcsolva, a bal oldali menüszekciók mindig ki lesznek nyitva.',
],
'le_renew_services' => [
'title' => 'A froxlor Let\'s Encrypt tanúsítvány használata ezekhez a szolgáltatásokhoz',
'description' => 'Ha "nincs"-re van állítva (vagy az alábbi megújítási hook parancs üres), nem történik SSL-lel kapcsolatos konfigurációs módosítás a kiválasztott szolgáltatásoknál.
A kiválasztott szolgáltatások újratöltési parancsát hozzá kell adni a megújítási hook parancshoz, különben a konfigurációs változtatások vagy a megújított tanúsítványok nem lesznek megfelelően alkalmazva.',
],
'le_renew_hook' => [
'title' => 'Let\'s Encrypt megújítási hook parancs',
'description' => 'Állítsa be erre a parancsra, amely újraindítja a fent kiválasztott szolgáltatásokat, hogy a megújított tanúsítványokat a szolgáltatás megfelelően használja.',
],
],
'spf' => [
'use_spf' => [
'title' => 'SPF aktiválása a domainekhez?',
'description' => 'Speciális DNS bejegyzést igényel a domainhez. Ha nem használja a névszerver funkciót, manuálisan kell kezelnie ezeket a bejegyzéseket.',
],
'spf_entry' => 'SPF bejegyzés minden domainhez',
],
'dmarc' => [
'use_dmarc' => [
'title' => 'DMARC aktiválása a domainekhez?',
'description' => 'Speciális DNS bejegyzést igényel a domainhez. Ha nem használja a névszerver funkciót, manuálisan kell kezelnie ezeket a bejegyzéseket.',
],
'dmarc_entry' => 'DMARC bejegyzés minden domainhez',
],
'ssl_certificates' => [
'certificate_for' => 'Tanúsítvány ehhez:',
'valid_from' => 'Érvényes ettől:',
'valid_until' => 'Érvényes eddig:',
'issuer' => 'Kibocsátó',
],
'success' => [
'success' => 'Információ',
'clickheretocontinue' => 'Kattintson ide a folytatáshoz',
'settingssaved' => 'A beállítások sikeresen mentve.',
'rebuildingconfigs' => 'Sikeresen hozzáadva a konfigurációs fájlok újraépítési feladatai',
'domain_import_successfully' => 'Sikeresen importálva %s domain.',
'exportscheduled' => 'Az exportálási feladat ütemezve lett. Kérjük, várjon a feldolgozásra',
'exportaborted' => 'Az ütemezett exportálás megszakítva',
'dns_record_added' => 'Rekord sikeresen hozzáadva',
'dns_record_deleted' => 'Rekord sikeresen törölve',
'testmailsent' => 'Teszt e-mail sikeresen elküldve',
'settingsimported' => 'Beállítások sikeresen importálva',
'sent_error_report' => 'Hibajelentés sikeresen elküldve. Köszönjük a közreműködését.',
],
'tasks' => [
'outstanding_tasks' => 'Függőben lévő cron-feladatok',
'REBUILD_VHOST' => 'Webszerver-konfiguráció újraépítése',
'CREATE_HOME' => 'Új ügyfél hozzáadása: %s',
'REBUILD_DNS' => 'Bind-konfiguráció újraépítése',
'CREATE_FTP' => 'Könyvtár létrehozása új ftp-felhasználónak',
'DELETE_CUSTOMER_FILES' => 'Ügyfél fájljainak törlése: %s',
'noneoutstanding' => 'Jelenleg nincsenek függőben lévő feladatok a froxlor számára',
'DELETE_EMAIL_DATA' => 'Ügyfél e-mail adatainak törlése.',
'DELETE_FTP_DATA' => 'Ügyfél ftp-fiók adatainak törlése.',
'REBUILD_RSPAMD' => 'Antispam-konfiguráció újraépítése.',
'CREATE_QUOTA' => 'Kvóta beállítása a fájlrendszeren',
'REBUILD_CRON' => 'A cron.d fájl újraépítése',
'CREATE_CUSTOMER_DATADUMP' => 'Adatexportálási feladat az ügyfél számára: %s',
'DELETE_DOMAIN_PDNS' => '%s domain törlése a PowerDNS adatbázisból',
'DELETE_DOMAIN_SSL' => '%s domain SSL fájljainak törlése',
'UPDATE_LE_SERVICES' => 'Rendszerszolgáltatások frissítése a Let\'s Encrypt számára',
],
'terms' => 'Használati feltételek',
'traffic' => [
'month' => 'Hónap',
'day' => 'Nap',
'months' => [
1 => 'Január',
2 => 'Február',
3 => 'Március',
4 => 'Április',
5 => 'Május',
6 => 'Június',
7 => 'Július',
8 => 'Augusztus',
9 => 'Szeptember',
10 => 'Október',
11 => 'November',
12 => 'December',
'jan' => 'Jan',
'feb' => 'Feb',
'mar' => 'Már',
'apr' => 'Ápr',
'may' => 'Máj',
'jun' => 'Jún',
'jul' => 'Júl',
'aug' => 'Aug',
'sep' => 'Szep',
'oct' => 'Okt',
'nov' => 'Nov',
'dec' => 'Dec',
'total' => 'Összesen',
],
'mb' => 'Forgalom',
'sumtotal' => 'Teljes forgalom',
'sumhttp' => 'HTTP forgalom',
'sumftp' => 'FTP forgalom',
'summail' => 'E-mail forgalom',
'customer' => 'Ügyfél',
'domain' => 'Domain',
'trafficoverview' => 'Forgalom összesítés',
'bycustomers' => 'Forgalom ügyfelenként',
'details' => 'Részletek',
'http' => 'HTTP',
'ftp' => 'FTP',
'mail' => 'E-mail',
'nocustomers' => 'Legalább egy ügyfélre van szükség a forgalmi jelentések megtekintéséhez.',
'top5customers' => 'Top 5 ügyfél',
'nodata' => 'Nincs adat a megadott időszakra.',
'ranges' => [
'last24h' => 'utolsó 24 óra',
'last7d' => 'utolsó 7 nap',
'last30d' => 'utolsó 30 nap',
'cm' => 'Aktuális hónap',
'last3m' => 'utolsó 3 hónap',
'last6m' => 'utolsó 6 hónap',
'last12m' => 'utolsó 12 hónap',
'cy' => 'Aktuális év',
],
'byrange' => 'Időszak szerint meghatározva',
],
'translator' => '',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'A froxlor egy újabb verziója telepítve lett, de még nincs beállítva. Csak az adminisztrátor jelentkezhet be és fejezheti be a frissítést.',
'update' => 'froxlor frissítés',
'proceed' => 'Folytatás',
'update_information' => [
'part_a' => 'A froxlor fájlok frissítve lettek a %s verzióra. A telepített verzió %s.',
'part_b' => '
Az ügyfelek nem tudnak bejelentkezni, amíg a frissítés be nem fejeződik. Folytatja?',
],
'noupdatesavail' => 'Már a legújabb %s verziójú froxlor van telepítve.',
'description' => 'Adatbázis frissítések futtatása a froxlor telepítéséhez',
'uc_newinfo' => 'Egy újabb %s verzió érhető el: "%s" (Az Ön jelenlegi verziója: %s)',
'notify_subject' => 'Új frissítés elérhető',
'dbupdate_required' => 'A froxlor fájlok frissítve lettek, adatbázis frissítés szükséges',
],
'usersettings' => [
'custom_notes' => [
'title' => 'Egyéni jegyzetek',
'description' => 'Szabadon írhat ide bármilyen jegyzetet, amire szüksége van. Ezek megjelennek az admin/ügyfél áttekintőben a megfelelő felhasználónál. A Markdown támogatott, a HTML eltávolításra kerül.',
'show' => 'Mutassa a jegyzeteket a felhasználó irányítópultján',
],
'api_allowed' => [
'title' => 'API hozzáférés engedélyezése',
'description' => 'Ha engedélyezve van a beállításokban, ez a felhasználó létrehozhat API kulcsokat és hozzáférhet a froxlor API-hoz',
'notice' => 'Az API hozzáférés nem engedélyezett az Ön fiókjához.',
],
'gui_access' => [
'title' => 'WebUI bejelentkezés engedélyezése',
'description' => 'Ha le van tiltva, a felhasználó nem tud bejelentkezni a froxlor webes felületére, de minden szolgáltatás (web, ftp, e-mail, adatbázisok, api-hozzáférés, stb.) normálisan működik.',
],
'shell_allowed' => [
'title' => 'Shell hozzáférés engedélyezése',
'description' => 'Ha aktiválva van, a felhasználó shell hozzáférést kap a rendszerhez SSH-n keresztül.',
],
],
'install' => [
'slogan' => 'froxlor Szerver Kezelőpanel',
'preflight' => 'Rendszer ellenőrzés',
'critical_error' => 'Kritikus hiba',
'suggestions' => 'Nem kötelező, de ajánlott',
'phpinfosuccess' => 'A rendszer PHP %s verzióval fut',
'suggestionsnote' => 'Nincsenek kritikus hibák, amelyek megakadályoznák a telepítést, de kérjük, kövesse az alábbi ajánlásokat az optimális élmény érdekében.',
'phpinfowarn' => 'A rendszer a PHP %s verziónál alacsonyabb verzióval fut',
'phpinfoupdate' => 'Frissítse a jelenlegi PHP verzióját %s-ról %s-ra vagy magasabbra',
'start_installation' => 'Telepítés indítása',
'check_again' => 'Újratöltés az újbóli ellenőrzéshez',
'switchmode_advanced' => 'Haladó opciók megjelenítése',
'switchmode_basic' => 'Haladó opciók elrejtése',
'dependency_check' => [
'title' => 'Üdvözöljük a froxlorban',
'description' => 'Ellenőrizzük a rendszert a függőségek szempontjából, hogy biztosítsuk, hogy minden szükséges PHP kiterjesztés és modul engedélyezve legyen, így a froxlor megfelelően működik.',
],
'database' => [
'top' => 'Adatbázis',
'title' => 'Adatbázis és felhasználó létrehozása',
'description' => 'A froxlor adatbázist igényel, és ezenkívül egy kiváltságos felhasználót is, hogy képes legyen felhasználókat és adatbázisokat létrehozni (GRANT opció). A megadott adatbázis és a nem kiváltságos adatbázis-felhasználó létrejön ebben a folyamatban. A kiváltságos felhasználónak léteznie kell.',
'user' => 'Nem kiváltságos adatbázis-felhasználó',
'dbname' => 'Adatbázis neve',
'force_create' => 'Adatbázis biztonsági mentése és felülírása, ha létezik?',
],
'admin' => [
'top' => 'Adminisztrátor felhasználó',
'title' => 'Hozzuk létre a fő adminisztrátor felhasználót.',
'description' => 'Ez a felhasználó minden jogosultságot megkap a beállítások módosításához és az erőforrások, például ügyfelek, domainek stb. hozzáadásához/frissítéséhez/törléséhez.',
'use_admin_email_as_sender' => 'Használja a fenti e-mail címet küldő címként. Ha nincs bejelölve, kérjük, adjon meg egy küldő címet alább.',
'use_autogenerated_email_as_sender' => 'Hagyja üresen az alapértelmezettért: admin@servername',
],
'system' => [
'top' => 'Rendszer beállítása',
'title' => 'Részletek a szerveréről',
'description' => 'Állítsa be a környezetét, valamint a szerverrel kapcsolatos adatokat és opciókat itt, hogy a froxlor tudjon a rendszeréről. Ezek az értékek kulcsfontosságúak a rendszer konfigurációjához és működéséhez.',
'ipv4' => 'Elsődleges IPv4 cím (ha alkalmazható)',
'ipv6' => 'Elsődleges IPv6 cím (ha alkalmazható)',
'servername' => 'Szerver neve (FQDN, nem IP-cím)',
'phpbackend' => 'PHP háttér',
'activate_newsfeed' => 'Az hivatalos hírcsatorna engedélyezése (külső forrás: https://inside.froxlor.org/news/)',
],
'install' => [
'top' => 'Beállítás befejezése',
'title' => 'Egy utolsó lépés...',
'description' => 'Az alábbi parancs letölti, telepíti és konfigurálja a szükséges szolgáltatásokat a rendszerén a telepítési folyamat során megadott adatok alapján.
Győződjön meg róla, hogy az alábbi parancsot root felhasználóként futtatja a szerver shelljében/termináljában, és legyen tisztában azzal, hogy ez a parancs felülírja a használt szolgáltatások bármely meglévő konfigurációját (biztonsági mentések készülnek)!. Ha nem szeretné felülírni a konfigurációkat, válassza az Én manuálisan konfigurálom a szolgáltatásokat opciót az oldal alján!',
'runcmd' => 'Futtassa az alábbi parancsot a telepítés befejezéséhez:',
'manual_config' => 'Én manuálisan konfigurálom a szolgáltatásokat, csak vigyen a bejelentkezéshez',
'waitforconfig' => 'Várakozás a szolgáltatások konfigurálására...',
],
'errors' => [
'wrong_ownership' => 'Győződjön meg róla, hogy a froxlor fájlok tulajdonosa %s:%s',
'missing_extensions' => 'A következő PHP kiterjesztések szükségesek és nincsenek telepítve',
'suggestedextensions' => 'A következő PHP kiterjesztések nem találhatók, de ajánlottak',
'databaseexists' => 'Az adatbázis már létezik, kérjük, állítsa be a felülírási opciót az újjáépítéshez, vagy válasszon másik nevet',
'unabletocreatedb' => 'A tesztadatbázis nem hozható létre',
'unabletodropdb' => 'A tesztadatbázis nem törölhető',
'mysqlusernameexists' => 'A megadott nem kiváltságos felhasználó már létezik. Kérjük, használjon másik felhasználónevet, vagy törölje először.',
'unabletocreateuser' => 'A tesztfelhasználó nem hozható létre',
'unabletodropuser' => 'A tesztfelhasználó nem törölhető',
'unabletoflushprivs' => 'A megadott kiváltságos felhasználó nem tudja frissíteni a jogosultságokat',
'nov4andnov6ip' => 'Meg kell adni egy IPv4- vagy IPv6-címet',
'servernameneedstobevalid' => 'A megadott szervernév nem tűnik FQDN-nek vagy hosztnévnek',
'websrvuserdoesnotexist' => 'A megadott webszerver-felhasználó nem létezik a rendszeren',
'websrvgrpdoesnotexist' => 'A megadott webszerver-csoport nem létezik a rendszeren',
'notyetconfigured' => 'Úgy tűnik, hogy a szolgáltatások még nem lettek konfigurálva (sikeresen). Kérjük, futtassa az alábbi parancsot, vagy jelölje be a négyzetet, hogy később megtegye.',
'mandatory_field_not_set' => 'A kötelező mező "%s" nincs beállítva!',
'unexpected_database_error' => 'Váratlan adatbázis-kivétel történt. %s',
'sql_import_failed' => 'Az SQL adatok importálása nem sikerült!',
'unprivileged_sql_connection_failed' => 'A nem kiváltságos SQL kapcsolat inicializálása nem sikerült!',
'privileged_sql_connection_failed' => 'A kiváltságos SQL kapcsolat inicializálása nem sikerült!',
'mysqldump_backup_failed' => 'Nem lehet adatbázis biztonsági mentést készíteni, a mysqldump hibát adott.',
'sql_backup_file_missing' => 'Nem lehet adatbázis biztonsági mentést készíteni, a biztonsági mentés fájl nem létezik.',
'backup_binary_missing' => 'Nem lehet adatbázis biztonsági mentést készíteni, győződjön meg róla, hogy telepítette a mysqldump-ot.',
'creating_configfile_failed' => 'Nem lehet konfigurációs fájlokat létrehozni, nem lehet írni a fájlt.',
'database_already_exiting' => 'Találtunk egy adatbázist, és nem engedtük felülírni!'
]
],
'welcome' => [
'title' => 'Üdvözöljük a froxlorban!',
'config_note' => 'Annak érdekében, hogy a froxlor megfelelően tudjon kommunikálni a háttérrel, konfigurálnia kell.',
'config_now' => 'Konfigurálás most'
],
];
================================================
FILE: lng/index.html
================================================
================================================
FILE: lng/it.lng.php
================================================
* @author Luca Piona
* @author Luca Longinotti
* @author Emilien
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'admin' => [
'overview' => 'Generale',
'ressourcedetails' => 'Risorse utilizzate',
'systemdetails' => 'Dettagli sistema',
'froxlordetails' => 'Dettagli froxlor',
'installedversion' => 'Versione installata',
'latestversion' => 'Ultima versione disponibile',
'lookfornewversion' => [
'clickhere' => 'Cerca sul web',
'error' => 'Errore durante la lettura',
],
'resources' => 'Risorse',
'customer' => 'Cliente',
'customers' => 'Clienti',
'customer_add' => 'Crea cliente',
'customer_edit' => 'Modifica cliente',
'domains' => 'Domini',
'domain_add' => 'Crea dominio',
'domain_edit' => 'Modifica dominio',
'subdomainforemail' => 'Sottodominio utilizzabile come dominio Email',
'admin' => 'Admin',
'admins' => 'Admin',
'admin_add' => 'Crea admin',
'admin_edit' => 'Modifica admin',
'customers_see_all' => 'Può vedere tutti i clienti?',
'change_serversettings' => 'Può cambiare le impostazioni del server?',
'server' => 'Sistema',
'serversettings' => 'Opzioni',
'rebuildconf' => 'Rigenera configurazione',
'stdsubdomain' => 'Sottodominio standard',
'stdsubdomain_add' => 'Crea sottodominio standard',
'phpenabled' => 'PHP abilitato',
'deactivated' => 'Disattiva',
'deactivated_user' => 'Disattiva utente',
'sendpassword' => 'Invia password',
'ownvhostsettings' => 'Impostazioni vHost speciali',
'configfiles' => [
'serverconfiguration' => 'Configurazione servizi',
'overview' => 'Panoramica',
'distribution' => 'Distribuzione',
'service' => 'Servizio',
'daemon' => 'Demone',
'etc' => 'Altro (Sistema)',
'choosedistribution' => '-- Scegli una distribuzione --',
'chooseservice' => '-- Scegli un servizio --',
'choosedaemon' => '-- Scegli un demone --',
'statistics' => 'Statistiche',
'compactoverview' => 'Visualizzazione-Compatta',
'wizard' => 'Wizard (assistente)',
'http' => 'Server WEB (HTTP)',
'dns' => 'Nameserver (DNS)',
'mail' => 'Server di posta elettronica (IMAP/POP3)',
'smtp' => 'Server di posta elettronica (SMTP)',
'ftp' => 'Server FTP',
],
'templates' => [
'templates' => 'Template',
'template_add' => 'Aggiungi template',
'template_edit' => 'Modifica template',
'action' => 'Azione',
'email' => 'Email',
'subject' => 'Soggetto:',
'mailbody' => 'Testo dell\'Email',
'createcustomer' => 'Email di benvenuto per i nuovi clienti',
'pop_success' => 'Benvenuto per ogni nuovo account Email',
'template_replace_vars' => 'Variabili da cambiare nel template:',
'FIRSTNAME' => 'Rimpiazzato con il nome del cliente.',
'NAME' => 'Rimpiazzato con il cognome del cliente.',
'USERNAME' => 'Rimpiazzato con il nome utente dell\'account.',
'PASSWORD' => 'Rimpiazzato con la password dell\'account.',
'EMAIL' => 'Rimapiazzato con l\'indirizzo dell\'account.',
'TRAFFIC' => 'Sostituito con il traffico che è stato assegnato al cliente.',
'TRAFFICUSED' => 'Sostituito con il traffico che è stato usato dal cliente.',
'pop_success_alternative' => 'Email di Benvenuto spedita all\'indirizzo alternativo per i nuovi account email',
'EMAIL_PASSWORD' => 'Sostituito con la password dell\'account POP3/IMAP.',
'index_html' => 'file index per le nuove cartelle create dai clienti',
'SERVERNAME' => 'Sostituito con il nomeserver.',
'CUSTOMER' => 'Sostituito con il nome utente del cliente.',
'ADMIN' => 'Sostituito con il nome utente dell\'amministratore.',
'CUSTOMER_EMAIL' => 'Sostituito con l\'indirizzo e-mail del cliente.',
'ADMIN_EMAIL' => 'Sostituito con l\'indirizzo e-mail dell\'amministratore.',
'filetemplates' => 'File Modelli',
'filecontent' => 'Contenuto File',
'new_database_by_customer' => 'Notifica al cliente quando un database è stato creato',
'new_ftpaccount_by_customer' => 'Notifica al cliente quando un utente FTP è stato creato',
'newdatabase' => 'Mail di notifica per i nuovi database',
'newftpuser' => 'Mail di notifica per i nuovi utenti ftp',
'CUST_NAME' => 'Nome del Cliente',
'DB_NAME' => 'Nome del Database',
'DB_PASS' => 'Password del Database',
'DB_DESC' => 'Descrizione del Database',
'DB_SRV' => 'Server del Database',
'PMA_URI' => 'URL a phpMyAdmin (se presente)',
'USR_NAME' => 'Nome utente FTP',
'USR_PASS' => 'Password FTP',
'USR_PATH' => 'Cartella utente FTP (rispetto alla cartella docroot del cliente)',
'forgotpwd' => 'Mail di notifica per il reset della password',
'password_reset' => 'Notifica al cliente per il reset della password',
'trafficmaxpercent' => 'Mail di notifica per i clienti che hanno raggiunto il limite di traffico',
'MAX_PERCENT' => 'Sostituito con spazio/limite di traffico per l\'invio dei report in precentuale.',
'USAGE_PERCENT' => 'Sostituito con l\'utilizzo del disco/limite di traffico, che è stato esaurito da parte del cliente in percentuale.',
'diskmaxpercent' => 'Mail di notifica per i clienti che hanno raggiunto il limite di spazio su disco',
'DISKAVAILABLE' => 'Sostituito con il spazio utilizzato in MB, che è stato assegnato al cliente.',
'DISKUSED' => 'Sostituito con il spazio utilizzato in MB, che è stato esaurito da parte del cliente.',
'SALUTATION' => 'Sostituito con un saluto corretto (nome o azienda)',
'COMPANY' => 'Sostituisce con il nome dell \'azienda del cliente',
'LINK' => 'Sostituito con il link di azzeramento password cliente.',
'SERVER_HOSTNAME' => 'Sostituisce il nome host del sistema (URL a froxlor)',
'SERVER_IP' => 'Sostituisce l\'indrizzo IP predefinito del server',
'SERVER_PORT' => 'Sostituisce la porta predefinita del server',
'DOMAINNAME' => 'Sostituisce il sottodominio predefinito dei clienti (può essere vuoto se non viene generato)',
],
'webserver' => 'Webserver',
'ipsandports' => [
'ipsandports' => 'IP e Porte',
'add' => 'Aggiungi IP/Porta',
'edit' => 'Modifica IP/Porta',
'ipandport' => 'IP/Porta',
'ip' => 'IP',
'port' => 'Porta',
'create_listen_statement' => 'Crea la direttiva Listen',
'create_namevirtualhost_statement' => 'Crea la direttiva NameVirtualHost',
'create_vhostcontainer' => 'Crea vHost-Container',
'create_vhostcontainer_servername_statement' => 'Crea la direttiva ServerName in vHost-Container',
'enable_ssl' => 'Questa è una porta SSL?',
'ssl_cert_file' => 'Percorso del certificato SSL (SSL certificate)',
'webserverdefaultconfig' => 'Configurazione predefinita Webserver',
'webserverdomainconfig' => 'Configurazione Dominio Webserver',
'webserverssldomainconfig' => 'COnfigura SSL Webserver',
'ssl_key_file' => 'Percorso al Keyfile SSL',
'ssl_ca_file' => 'Percorso al CA certificate SSL',
'default_vhostconf_domain' => 'Impostazioni predefinite vhost per ogni contenitore di dominio',
'docroot' => [
'title' => 'Imposta Cartella principale (vuoto = va in froxlor)',
'description' => 'Qui puoi definire una tua cartella principale (la destinazione di una richiesta) per questa combinazione IP/Porta. ATTENZIONE: Fai molta attenzione a quello che scrivi qui!',
],
'ssl_cert_chainfile' => [
'title' => 'Percorso al file catena dei certificati SSL',
'description' => 'Principalmente Bundle CA, o similare, presubilmente vuoi impostare questo se hai acquistato un certificato SSL.',
],
'ssl_paste_description' => 'Incolla il contenuto completo del tuo certificato nella casella di testo',
'ssl_cert_file_content' => 'Contenuto del certificato ssl',
'ssl_key_file_content' => 'Contenuto del file di chiave (privata) ssl',
'ssl_ca_file_content' => 'Contenuto del file ssl CA di autorità di certificazione (opzionale)',
'ssl_ca_file_content_desc' => '
Autenticazione client, imposta questo settaggio soltanto se sai di cosa si tratta.',
'ssl_cert_chainfile_content' => 'Contenuto del file di catena di certificato (opzionale)',
'ssl_cert_chainfile_content_desc' => '
Abitualmente Bundle CA o similare, probabilmente vuoi impostare questo settaggio se hai acquistato un certificato SSL.',
],
'memorylimitdisabled' => 'Disabilitato',
'valuemandatory' => 'Questo valore è obbligatorio',
'valuemandatorycompany' => 'O i campi "nome" e "cognome" O il capo "compagnia" devono essere riempiti',
'phpversion' => 'Versione PHP',
'mysqlserverversion' => 'Versione MySQL Server',
'webserverinterface' => 'Interfaccia Webserver',
'accountsettings' => 'Impostazioni Account',
'panelsettings' => 'Impostazioni Pannello',
'systemsettings' => 'Impostazioni di Sistema',
'webserversettings' => 'Impostazioni Server Web',
'mailserversettings' => 'Impostazioni Server di Posta',
'nameserversettings' => 'Impostazioni Nameserver',
'updatecounters' => 'Ricalcolo risorse',
'subcanemaildomain' => [
'never' => 'Mai',
'choosableno' => 'Selezionabile, predefinito no',
'choosableyes' => 'Selezionabile, predefinito si',
'always' => 'Sempre',
],
'webalizersettings' => 'Impostazioni Webalizer',
'webalizer' => [
'normal' => 'Normale',
'quiet' => 'Modesto',
'veryquiet' => 'Niente',
],
'domain_nocustomeraddingavailable' => 'Adesso non è possibile aggiungere un dominio. Prima è necessario aggiungere almeno un cliente.',
'loggersettings' => 'Impostazioni Log',
'logger' => [
'normal' => 'normale',
'paranoid' => 'paranoico',
],
'emaildomain' => 'Email dominio',
'email_only' => 'Solo email?',
'wwwserveralias' => 'Aggiungi a "www." ServerAlias',
'subject' => 'Oggetto',
'recipient' => 'Destinatario',
'message' => 'Scrivi un messaggio',
'text' => 'Messaggio',
'sslsettings' => 'Impostazioni SSL',
'dkimsettings' => 'Impostazioni DomainKey',
'caneditphpsettings' => 'È possibile modificare le impostazioni di dominio relative a php?',
'allips' => 'Tutti gli IP',
'awstatssettings' => 'Impostazioni Awstats',
'domain_dns_settings' => 'Impostazioni dominio dns',
'activated' => 'Attivato',
'statisticsettings' => 'Impostazioni Statistiche',
'or' => 'o',
'sysload' => 'Carico del sistema',
'noloadavailable' => 'non disponibile',
'nouptimeavailable' => 'non disponibile',
'nosubject' => '(Nessun Oggetto)',
'security_settings' => 'Opzioni di Sicurezza',
'know_what_youre_doing' => 'Modifica solo, se sai quello che stai facendo!',
'show_version_login' => [
'title' => 'Mostra la versione di froxlor quando si effettua l\'accesso',
'description' => 'Mostra la versione di froxlor in fondo-pagina di accesso',
],
'show_version_footer' => [
'title' => 'Mostra la versione di froxlor in fondo-pagina',
'description' => 'Mostra la versione di froxlor in fondo ad ogni pagina',
],
'froxlor_graphic' => [
'title' => 'Intestazione grafica per froxlor',
'description' => 'Quale grafica vuoi mostrare nell\'intestazione?',
],
'phpsettings' => [
'title' => 'Configurazione PHP',
'description' => 'Descrizione breve',
'actions' => 'Azioni',
'activedomains' => 'In uso per dominio/i',
'notused' => 'Configurazione non utilizzata',
'editsettings' => 'Modific impostazioni PHP',
'addsettings' => 'Crea una nuova impostazione PHP',
'viewsettings' => 'Mostra impostazioni PHP',
'phpinisettings' => 'Impostazioni php.ini',
'addnew' => 'Crea nuove impostazioni',
'binary' => 'PHP Binary',
'file_extensions' => 'Estensioni File',
'file_extensions_note' => '(senza punto, separate da spazi)',
'enable_slowlog' => 'Abilita slowlog (per dominio)',
'request_terminate_timeout' => 'Richiedi terminate-timeout',
'request_slowlog_timeout' => 'Richiedi slowlog-timeout',
],
'misc' => 'Varie',
'phpconfig' => [
'template_replace_vars' => 'Variabili che saranno sostituite nei file di configurazione',
'pear_dir' => 'Verrà sostituito con le impostazioni globali per la cartella pear.',
'open_basedir_c' => 'Inserirà un ; (punto e virgola) per commentare/disabilitare open_basedir se impostato',
'open_basedir' => 'Verrà sostituito con l\'impostazione open_basedir del dominio.',
'tmp_dir' => 'Verrà sostituito con la cartella temporanea del dominio.',
'open_basedir_global' => 'Verrà sostituito con il valore globale del percorso che sarà allegato al open_basedir',
'customer_email' => 'Verrà sostituito con l\'indirizzo email del cliente che possiede questo dominio.',
'admin_email' => 'Verrà sostituito con l\'indirizzo email dell\'amministratore di questo dominio.',
'domain' => 'Verrà sostituito con il dominio.',
'customer' => 'Verrà sostituito con il nome utente del cliente che possiede questo dominio.',
'admin' => 'Verrà sostituito con il nome utente dell\'amministratore che possiede questo dominio.',
],
'expert_settings' => 'Impostazioni Avanzate!',
'mod_fcgid_starter' => [
'title' => 'Processi PHP per questo dominio (vuoto per lasciare il valore predefinito)',
],
'phpserversettings' => 'Impostazioni PHP',
'mod_fcgid_maxrequests' => [
'title' => 'Richieste PHP massime per questo dominio (vuoto per lasciare il valore predefinito)',
],
'spfsettings' => 'Impostazioni Dominio SPF',
'specialsettingsforsubdomains' => 'Applica le impostazioni speciali a tutti i sottodomini (*.esempio.com)',
'accountdata' => 'Dati conto',
'contactdata' => 'Dati contatto',
'servicedata' => 'Dati di servizio',
'newerversionavailable' => 'È disponibile una nuova versione di Floxlor',
'cron' => [
'cronsettings' => 'Impostazioni Cronjob',
'add' => 'Aggiungi cronjob',
],
'cronjob_edit' => 'Modifica cronjob',
'warning' => 'ATTENZIONE - Leggi attentamente!',
'lastlogin_succ' => 'Ultimo accesso',
'ftpserver' => 'Server FTP',
'ftpserversettings' => 'Impostazioni del Server FTP',
'webserver_user' => 'Utente Webserver',
'webserver_group' => 'Gruppo Webserver',
'perlenabled' => 'Perl abilitato',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Utente locale per FCGID (froxlor vhost)',
'mod_fcgid_group' => 'Gruppo locale per FCGID (froxlor vhost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[se presente]',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Traffico',
'domaintraffic' => 'Domimi',
'customertraffic' => 'Clienti',
'serversoftware' => 'Software per Server',
'store_defaultindex' => 'Archivio del file indice predefinito al percorso radice clienti',
'assignedmax' => 'Assegnato / Max',
'usedmax' => 'Usato / Max',
'used' => 'Usato',
'speciallogwarning' => '
AVVISO: Cambiando questa impostazione perderai tutte le vecchie statistiche per questo dominio.
',
'speciallogfile' => [
'title' => 'File file log seperato',
'description' => 'Spunta qui per un log di accesso separato per questo dominio',
],
'domain_editable' => [
'title' => 'Permetti la modifica del dominio',
'desc' => 'Se settato a si, il cliente è abilitato a modificare varie impostazioni del dominio. Se settato su no, il cliente non può modificare nulla.',
],
'phpfpm.ininote' => 'Non tutti i valori che potresti volere settare possono essere usati nella configurazione del pool php-fpm.',
'phpinfo' => 'PHPinfo()',
'selectserveralias' => 'valore ServerAlias per il dominio',
'selectserveralias_desc' => 'Scegli se froxlor deve creare un settaggio wildcard (*.dominio.tld), o un alias WWW (www.dominio.tld) o nessun alias',
'show_news_feed' => 'Mostra il feed notizie sul cruscotto dell \'amministratore',
'cronsettings' => 'Impostazioni Cronjob',
'integritycheck' => 'Validazione Database',
'integrityid' => '#',
'integrityname' => 'Nome',
'integrityresult' => 'Risultato',
'integrityfix' => 'Risolvi problemi automaticamente',
'customer_show_news_feed' => 'Mostra feed di notizie personalizzati sul cruscotto dei clienti',
'customer_news_feed_url' => 'Feed RSS- per il feed di notizie personalizzato',
'movetoadmin' => 'Trasferisci cliente',
'movecustomertoadmin' => 'Trasferisci cliente all\'amministratore/rivenditore selezionato Lascia questo vuoto per nessuna modifica. Se l\'amministratore desiderato non appare nella lista, il suo massimale di clienti e stato ragggiunto.',
'note' => 'Nota',
],
'changepassword' => [
'old_password' => 'Vecchia password',
'new_password' => 'Nuova password',
'new_password_confirm' => 'Nuova password (verifica)',
'new_password_ifnotempty' => 'Nuova password (vuota = non cambia)',
'also_change_ftp' => ' cambia la password dell\'account FTP principale?',
'also_change_stats' => ' modificare anche la password di statistic',
],
'country' => [
'AF' => 'Afganistan',
'AX' => 'Isole Aland',
'AL' => 'Albania',
'DZ' => 'Algeria',
'AS' => 'American Samoa',
'AD' => 'Andorra',
'AO' => 'Angola',
'AI' => 'Anguilla',
'AQ' => 'Antarctica',
'AG' => 'Antigua and Barbuda',
'AR' => 'Argentina',
'AM' => 'Armenia',
'AW' => 'Aruba',
'AU' => 'Australia',
'AT' => 'Austria',
'AZ' => 'Azerbaijan',
'BS' => 'Bahamas',
'BH' => 'Bahrain',
'BD' => 'Bangladesh',
'BB' => 'Barbados',
'BY' => 'Belarus',
'BE' => 'Belgium',
'BZ' => 'Belize',
'BJ' => 'Benin',
'BM' => 'Bermuda',
'BT' => 'Bhutan',
'BO' => 'Bolivia, Stato Plurinazionale della',
'BQ' => 'Bonaire, Saint Eustatius e Saba',
'BA' => 'Bosnia e Herzegovina',
'BW' => 'Botswana',
'BV' => 'Bouvet Island',
'BR' => 'Brasile',
'IO' => 'Territorio Britannico del oceano indiano',
'BN' => 'Brunei Darussalam',
'BG' => 'Bulgaria',
'BF' => 'Burkina Faso',
'BI' => 'Burundi',
'KH' => 'Cambogia',
'CM' => 'Camerun',
'CA' => 'Canada',
'CV' => 'Capo Verde',
'KY' => 'Isole Cayman',
'CF' => 'Repubblica dell\'Africa Centrale',
'TD' => 'Chad',
'CL' => 'Chile',
'CN' => 'Cina',
'CX' => 'Isola di Natale',
'CC' => 'Isole Cocos (Keeling)',
'CO' => 'Colombia',
'KM' => 'Comoros',
'CG' => 'Congo',
'CD' => 'Congo, Repubblica democratica del',
'CK' => 'Isole Cook',
'CR' => 'Costa Rica',
'CI' => 'Costa D\'avorio',
'HR' => 'Croazia',
'CU' => 'Cuba',
'CW' => 'Curacao',
'CY' => 'Cipro',
'CZ' => 'Repubblica Ceca',
'DK' => 'Danimarca',
'DJ' => 'Djibouti',
'DM' => 'Dominica',
'DO' => 'Repubblica Dominicana',
'EC' => 'Ecuador',
'EG' => 'Egitto',
'SV' => 'El Salvador',
'GQ' => 'Guinea Equatoriale',
'ER' => 'Eritrea',
'EE' => 'Estonia',
'ET' => 'Etiopia',
'FK' => 'Isole Falkland (Malvinas)',
'FO' => 'Isole Faroe',
'FJ' => 'Fiji',
'FI' => 'Finlandia',
'FR' => 'Francia',
'GF' => 'Guiana Francese',
'PF' => 'Polinesia Francese',
'TF' => 'Territori Francesi del Sud',
'GA' => 'Gabon',
'GM' => 'Gambia',
'GE' => 'Georgia',
'DE' => 'Germania',
'GH' => 'Ghana',
'GI' => 'Gibilterra',
'GR' => 'Grecia',
'GL' => 'Groenlandia',
'GD' => 'Grenada',
'GP' => 'Guadeloupe',
'GU' => 'Guam',
'GT' => 'Guatemala',
'GG' => 'Guernsey',
'GN' => 'Guinea',
'GW' => 'Guinea-Bissau',
'GY' => 'Guyana',
'HT' => 'Haiti',
'HM' => 'Isola Heard e Isola McDonald',
'VA' => 'Stato del Vaticano',
'HN' => 'Honduras',
'HK' => 'Hong Kong',
'HU' => 'Ungheria',
'IS' => 'Islanda',
'IN' => 'India',
'ID' => 'Indonesia',
'IR' => 'Iran, Repubblica Islamica del',
'IQ' => 'Iraq',
'IE' => 'Irlanda',
'IM' => 'Isola Man',
'IL' => 'Israele',
'IT' => 'ITALIA',
'JM' => 'Giamaica',
'JP' => 'Giappone',
'JE' => 'Jersey',
'JO' => 'Giordania',
'KZ' => 'Kazakistan',
'KE' => 'Kenya',
'KI' => 'Kiribati',
'KP' => 'Corea, Repubblica popolare della',
'KR' => 'Corea, Repubblica della',
'KW' => 'Kuwait',
'KG' => 'Kyrgyzstan',
'LA' => 'Lao, Repubblica popolare del',
'LV' => 'Lettonia',
'LB' => 'Libano',
'LS' => 'Lesotho',
'LR' => 'Liberia',
'LY' => 'Libia',
'LI' => 'Liechtenstein',
'LT' => 'Lituania',
'LU' => 'Lussemburgo',
'MO' => 'Macao',
'MK' => 'Macedonia',
'MG' => 'Madagascar',
'MW' => 'Malawi',
'MY' => 'Malesia',
'MV' => 'Maldive',
'ML' => 'Mali',
'MT' => 'Malta',
'MH' => 'Isole Marshall',
'MQ' => 'Martinique',
'MR' => 'Mauritania',
'MU' => 'Mauritius',
'YT' => 'Mayotte',
'MX' => 'Messico',
'FM' => 'Micronesia, Stati Federali del',
'MD' => 'Moldavia',
'MC' => 'Monaco',
'MN' => 'Mongolia',
'ME' => 'Montenegro',
'MS' => 'Montserrat',
'MA' => 'Marocco',
'MZ' => 'Mozambico',
'MM' => 'Myanmar',
'NA' => 'Namibia',
'NR' => 'Nauru',
'NP' => 'Nepal',
'NL' => 'Olanda',
'NC' => 'Nuova Caledonia',
'NZ' => 'Nuova Zelanda',
'NI' => 'Nicaragua',
'NE' => 'Niger',
'NG' => 'Nigeria',
'NU' => 'Niue',
'NF' => 'Isole Norfolk',
'MP' => 'Isole Mariana Settentrionali',
'NO' => 'Norvegia',
'OM' => 'Oman',
'PK' => 'Pakistan',
'PW' => 'Palau',
'PS' => 'Territorio Occupato della Palestina',
'PA' => 'Panama',
'PG' => 'Papua Nuova Guinea',
'PY' => 'Paraguay',
'PE' => 'Peru',
'PH' => 'Filippine',
'PN' => 'Pitcairn',
'PL' => 'Polonia',
'PT' => 'Portogallo',
'PR' => 'Porto Rico',
'QA' => 'Qatar',
'RE' => 'Reunion',
'RO' => 'Romania',
'RU' => 'Russia',
'RW' => 'Ruanda',
'BL' => 'Saint Barthelemy',
'SH' => 'Saint Helena, Ascension and Tristan Da Cunha',
'KN' => 'Saint Kitts and Nevis',
'LC' => 'Saint Lucia',
'MF' => 'Saint Martin (French Part)',
'PM' => 'Saint Pierre and Miquelon',
'VC' => 'Saint Vincent and the Grenadines',
'WS' => 'Samoa',
'SM' => 'San Marino',
'ST' => 'Sao Tome and Principe',
'SA' => 'Arabia Saudita',
'SN' => 'Senegal',
'RS' => 'Serbia',
'SC' => 'Seychelles',
'SL' => 'Sierra Leone',
'SG' => 'Singapore',
'SX' => 'Sint Maarten (Dutch Part)',
'SK' => 'Slovacchia',
'SI' => 'Slovenia',
'SB' => 'Isole Solomon',
'SO' => 'Somalia',
'ZA' => 'Africa del Sud',
'GS' => 'South Georgia and the South Sandwich Islands',
'ES' => 'Spagna',
'LK' => 'Sri Lanka',
'SD' => 'Sudan',
'SR' => 'Suriname',
'SJ' => 'Svalbard and Jan Mayen',
'SZ' => 'Swaziland',
'SE' => 'Svezia',
'CH' => 'Svizzera',
'SY' => 'Siria',
'TW' => 'Taiwan, Provincia della Cina',
'TJ' => 'Tajikistan',
'TZ' => 'Tanzania',
'TH' => 'Tailandia',
'TL' => 'Timor-Leste',
'TG' => 'Togo',
'TK' => 'Tokelau',
'TO' => 'Tonga',
'TT' => 'Trinidad and Tobago',
'TN' => 'Tunisia',
'TR' => 'Turchia',
'TM' => 'Turkmenistan',
'TC' => 'Turks and Caicos Islands',
'TV' => 'Tuvalu',
'UG' => 'Uganda',
'UA' => 'Ucraina',
'AE' => 'Emirati Arabi Uniti',
'GB' => 'Gran Bretagna',
'US' => 'Stati Uniti d\'America',
'UM' => 'Stati Uniti, Isole Minori',
'UY' => 'Uruguay',
'UZ' => 'Uzbekistan',
'VU' => 'Vanuatu',
'VE' => 'Venezuela',
'VN' => 'Vietnam',
'VG' => 'Isole Vergini Brittaniche',
'VI' => 'Isole Vergini, U.S.',
'WF' => 'Wallis and Futuna',
'EH' => 'Sahara Occidentale',
'YE' => 'Yemen',
'ZM' => 'Zambia',
'ZW' => 'Zimbabue',
],
'cron' => [
'cronname' => 'Nome cronjob',
'lastrun' => 'ultima esecuzione',
'interval' => 'intervallo',
'isactive' => 'abilitato',
'description' => 'descrizione',
'changewarning' => 'La modifica di questi valori può avere conseguenze negative nel comportamento di froxlor e dei suoi processi automatizzati Per favore modifica questi valori solo se sei sicuro di quello che stai facendo!',
],
'crondesc' => [
'cron_unknown_desc' => 'nessuna descrizione fornita',
'cron_tasks' => 'generazione del file di configurazione',
'cron_legacy' => 'legacy (vecchi) cronjob',
'cron_traffic' => 'calcolo del traffico',
'cron_usage_report' => 'Invia i report di utilizzo web e del traffico',
'cron_mailboxsize' => 'Calcolo dimensioni caselle di posta',
],
'cronjob' => [
'cronjobsettings' => 'impostazioni Cronjob',
'cronjobinterval' => 'Durata intervallo',
'cronjobintervalv' => 'valore di intervallo Runtime',
],
'cronjobs' => [
'notyetrun' => 'Non ancora avviato',
],
'cronmgmt' => [
'minutes' => 'minuti',
'hours' => 'ore',
'days' => 'giorni',
'weeks' => 'settimane',
'months' => 'mesi',
],
'customer' => [
'documentroot' => 'Cartella Principale',
'name' => 'Cognome',
'firstname' => 'Nome',
'company' => 'Ditta',
'street' => 'Via',
'zipcode' => 'CAP',
'city' => 'Città',
'phone' => 'Telefono',
'fax' => 'Fax',
'email' => 'Email',
'customernumber' => 'ID Cliente',
'diskspace' => 'Spazio Web (MB)',
'traffic' => 'Traffico (GB)',
'mysqls' => 'Database MySQL',
'emails' => 'Indirizzi Email',
'accounts' => 'Account Email',
'forwarders' => 'Reindirizzamenti Email',
'ftps' => 'Account FTP',
'subdomains' => 'Sottodomini',
'domains' => 'Domini',
'title' => 'Titolo',
'country' => 'Paese',
'email_quota' => 'Limite E-mail',
'email_imap' => 'E-mail IMAP',
'email_pop3' => 'E-mail POP3',
'mail_quota' => 'Limite Mail',
'sendinfomail' => 'Inviami i dati via email',
'generated_pwd' => 'Password suggerita',
'usedmax' => 'Usato / Massimo',
'services' => 'Servizi',
],
'diskquota' => 'Quota',
'dns' => [
'destinationip' => 'Dominio IP',
'a_record' => 'A-Record (IPv6 optionale)',
'mxrecords' => 'Definisci MX records',
'txtrecords' => 'Definisci TXT records',
'txtexample' => 'Esempio (SPF-entry): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'standardip' => 'IP predefinito del server',
'cname_record' => 'Record CNAME',
'standardmx' => 'Record MX predefinito del server',
'mxconfig' => 'Record MX personalizzati',
'priority10' => 'Priorità 10',
'priority20' => 'Priorità 20',
],
'domain' => [
'openbasedirpath' => 'Percorso OpenBasedir',
'docroot' => 'Percorso del campo sopra',
'homedir' => 'Cartella Home',
],
'domains' => [
'description' => 'Qui puoi creare (sotto)domini e cambiare il loro percorso. Il sistema, dopo ogni cambiamento, necessita di un po\' di tempo per applicare le nuove impostazioni.',
'domainsettings' => 'Opzioni del dominio',
'domainname' => 'Nome del dominio',
'subdomain_add' => 'Crea sottodominio',
'subdomain_edit' => 'Modifica il (sotto)dominio',
'wildcarddomain' => 'Crea una wildcarddomain?',
'aliasdomain' => 'Alias per questo dominio',
'noaliasdomain' => 'Nessun alias per il dominio',
'hasaliasdomains' => 'Ha domini alias',
'statstics' => 'Statistiche d\'utilizzo',
'isassigneddomain' => 'È dominio assegnato',
'add_date' => 'Aggiunto a froxlor',
'registration_date' => 'Aggiunto al registro',
'topleveldomain' => 'Dominio di primo livello (TLD)',
'associated_with_domain' => 'Associato',
'aliasdomains' => 'Alias domini',
'redirectifpathisurl' => 'Codice di redirezione (Predefinito: vuoto)',
'redirectifpathisurlinfo' => 'È necessario selezionare uno di questi se hai inserito un URL come percorso',
'ipandport_multi' => [
'title' => 'Indirizzi IP',
'description' => 'Specifica uno o più indirizzi IP per il dominio.
NOTA: L\'indirizzo IP non può essere modificato quando il dominio è configurato come alias-domain di un altro dominio.
',
],
'ipandport_ssl_multi' => [
'title' => 'Indirizzi IP SSL',
],
'ssl_redirect' => [
'title' => 'Reindirizzamento SSL',
'description' => 'Questa opzione crea un reindirizzamento per vhosts non-sll in modo che tutte le richieste vengono reindirizzate ai SSL-vhost.
praticamente una richiesta a http://dominio.tld/ ti reindirizzera a https://dominio.tld/',
],
'serveraliasoption_wildcard' => 'Wildcard (*.dominio.tld)',
'serveraliasoption_www' => 'WWW (www.dominio.tld)',
'serveraliasoption_none' => 'Nessun alias',
'domain_import' => 'Importa Dominii',
'import_separator' => 'Separatore',
'import_offset' => 'Offset',
'import_file' => 'File CSV',
'import_description' => 'Per ottenere informazioni dettagliate sulla struttura del file di importazione e su come importare con successo, visita https://docs.froxlor.org/latest/admin-guide/domain-import/',
],
'emails' => [
'description' => 'Qui puoi creare e cambiare i tuoi indirizzi Email. Un account è come la bucalettere davanti a casa tua. Se qualcuno ti manda un\'Email, essa sarà recapitata all\'interno del tuo account.
Per scaricare le tue Email usa le seguenti impostazioni nel tuo programma di posta elettronica: (I dati scritti in corsivo vanno cambiati con i tuoi!) Hostname: Nome del dominio Username: Nome dell\'account / Indirizzo Email Password: La password scelta',
'emailaddress' => 'Indirizzo Email',
'emails_add' => 'Crea indirizzo Email',
'emails_edit' => 'Modifica indirizzo Email',
'catchall' => 'Catch-all',
'iscatchall' => 'Definisci come indirizzo catch-all?',
'account' => 'Account',
'account_add' => 'Crea account',
'account_delete' => 'Cancella account',
'from' => 'Da',
'to' => 'Per',
'forwarders' => 'Reindirizzamenti',
'forwarder_add' => 'Crea reindirizzamento',
'alternative_emailaddress' => 'Indirizzo email alternativo',
'quota' => 'Limite',
'noquota' => 'Nessun limite',
'updatequota' => 'Aggiorna Limite',
'quota_edit' => 'Cambia limite E-Mail',
'noemaildomainaddedyet' => 'Non hai ancora un (email-)dominio nel tuo account.',
'back_to_overview' => 'Torna indietro nel riepilogo',
],
'error' => [
'error' => 'Errore',
'directorymustexist' => 'La cartella %s deve esistere. Per favore creala tramite il tuo client FTP.',
'filemustexist' => 'Il file %s deve esistere.',
'allresourcesused' => 'Hai già usato tutte le tue risorse.',
'domains_cantdeletemaindomain' => 'Non puoi cancellare un dominio usato come dominio Email.',
'domains_canteditdomain' => 'Non puoi modificare questo dominio. La funzione è stata disabilitata dall\'admin.',
'domains_cantdeletedomainwithemail' => 'Non puoi cancellare un dominio usato come dominio Email. Cancella prima tutti gli indirizzi Email che lo utilizzano.',
'firstdeleteallsubdomains' => 'Prima di creare un dominio wildcard, cancella tutti i sottodomini presenti per quel dominio.',
'youhavealreadyacatchallforthisdomain' => 'Hai già definito un catchall per questo dominio.',
'ftp_cantdeletemainaccount' => 'Non puoi cancellare il tuo account FTP principale.',
'login' => 'Il nome utente o la password da te immessi sono incorretti. Per favore riprova!',
'login_blocked' => 'Questo account è stato sospeso per i troppi tentativi di login falliti. Riprovi tra %s secondi.',
'notallreqfieldsorerrors' => 'Alcuni campi sono stati lasciati vuoti o sono stati riempiti incorrettamente.',
'oldpasswordnotcorrect' => 'La vecchia password non è corretta.',
'youcantallocatemorethanyouhave' => 'Non puoi assegnare più risorse di quante ne possieda tu stesso.',
'mustbeurl' => 'Non hai inserito un\'indirizzo valido o completo (per es. http://qualchedominio.com/errore404.htm).',
'invalidpath' => 'Non hai scelto un\'indirizzo valido.',
'stringisempty' => 'Manca il dato nel campo.',
'stringiswrong' => 'Dato incorretto.',
'newpasswordconfirmerror' => 'La nuova password non corrisponde a quella vecchia.',
'mydomain' => '\'Dominio\'',
'mydocumentroot' => '\'Documentroot\'',
'loginnameexists' => 'Il login %s esiste già.',
'emailiswrong' => 'L\'indirizzo Email %s contiene caratteri invalidi o è incompleto.',
'loginnameiswrong' => 'Il login %s contiene caratteri invalidi.',
'userpathcombinationdupe' => 'La combinazione tra nome utente e percorso esiste già.',
'patherror' => 'Errore! Il percorso non può essere vuoto.',
'errordocpathdupe' => 'Le opzioni per la cartella %s esistono già.',
'adduserfirst' => 'Per favore crea prima un utente ...',
'domainalreadyexists' => 'Il dominio %s è già assegnato ad un cliente.',
'nolanguageselect' => 'Nessuna lingua selezionata.',
'nosubjectcreate' => 'Devi definire un titolo per questo template Email.',
'nomailbodycreate' => 'Devi definiro un testo per questo template Email.',
'templatenotfound' => 'Il template non è stato trovato.',
'alltemplatesdefined' => 'Non puoi definire altri template, tutte le lingue sono già definite.',
'wwwnotallowed' => 'www non è ammesso come sottodominio.',
'subdomainiswrong' => 'Il sottodominio %s contiene caratteri invalidi.',
'domaincantbeempty' => 'Il nome dominio non può essere vuoto.',
'domainexistalready' => 'Il dominio %s esiste già.',
'domainisaliasorothercustomer' => 'Il dominio alias selezionato è a sua volta un dominio alias o appartiene ad un altro cliente.',
'emailexistalready' => 'L\'indirizzo Email %s esiste già.',
'maindomainnonexist' => 'Il dominio principale %s non esiste.',
'destinationnonexist' => 'Per favore crea il tuo reindirizzamento nel campo \'Destinazione\'.',
'destinationalreadyexistasmail' => 'Il reindirizzamento a %s esiste già come indirizzo Email attivo.',
'destinationalreadyexist' => 'Hai già definito un reindirizzamento per %s .',
'destinationiswrong' => 'Il reindirizzamento %s contiene caratteri invalidi o è incompleto.',
'ipstillhasdomains' => 'La combinazione IP/Porta che vuoi eliminare ha ancora dei domini assegnati, per favore riassegna questi domini ad altre combinazioni IP/Porta prima di eliminare questa.',
'cantdeletedefaultip' => 'Non puoi eliminare la combinazione IP/Porta default dei rivenditori, per favore imposta un\'altra combinazione IP/Porta come default dei rivenditori prima di eliminare questa.',
'cantdeletesystemip' => 'Non puoi eliminare l\'ultima IP di sistema, crea un\'altra combinazione IP/Porta per l\'IP di sistema o cambia l\'IP di sistema.',
'myipaddress' => '\'IP\'',
'myport' => '\'Porta\'',
'myipdefault' => 'Devi selezionare una combinazione IP/Porta che diventerà default.',
'myipnotdouble' => 'Questa combinazione IP/Porta esiste già.',
'admin_domain_emailsystemhostname' => 'Spiacente, l\'hostname di sistema non può essere usato come dominio di un cliente',
'cantchangesystemip' => 'Non puoi cambiare l\'ultima IP di sistema, crea un\'altra combinazione IP/Porta per l\'IP di sistema o cambia l\'IP di sistema.',
'loginnameissystemaccount' => 'Non puoi creare account che siano analoghi a quelli di sistema (per esempio quelli che iniziano con "%s"). Digita un\'altro nome account.',
'sessiontimeoutiswrong' => '"Timeout Sessione" deve essere un numero.',
'maxloginattemptsiswrong' => '"Numero Massimo Tentativi Login" deve essere un numero.',
'deactivatetimiswrong' => '"Durata Disattivamento" deve essere un numero.',
'accountprefixiswrong' => '&quopt;Prefisso Utente" incorretto.',
'mysqlprefixiswrong' => '&quopt;Prefisso SQL" incorretto.',
'ftpprefixiswrong' => '&quopt;Prefisso FTP" incorretto.',
'ipiswrong' => '"Indirizzo IP" incorretto. È permesso solo un indirizzo IP valido.',
'vmailuidiswrong' => '"UID Email" incorretto. È permessa solo una UID numerica.',
'vmailgidiswrong' => '"GID Email" incorretto. È permessa solo una GID numerica.',
'adminmailiswrong' => '"Mittente" incorretto. È permesso solo un indirizzo Email valido.',
'pagingiswrong' => 'Valore degli "Elementi da visualizzare per pagina" incorretto. Sono permessi solo numeri.',
'phpmyadminiswrong' => 'Il link a phpMyAdmin è invalido.',
'webmailiswrong' => 'Il link alla WebMail è invalido.',
'webftpiswrong' => 'Il link al WebFTP è invalido.',
'stringformaterror' => 'Il valore per il campo "%s" non è nel formato atteso.',
'youcantdeleteyourself' => 'Non puoi cancellare te stesso per motivi di sicurezza.',
'youcanteditallfieldsofyourself' => 'Nota: non puoi modificare tutti i campi del tuo account per motivi di sicurezza.',
'documentrootexists' => 'La cartella "%s" è già presente per questo cliente. Cancella la cartella prima di aggiungere nuovamente il cliente.',
'formtokencompromised' => 'La richiesta sembra essere compromessa. Per motivi di sicurezza sei stato disconnesso.',
'logerror' => 'Errore Log: %s',
'nomessagetosend' => 'Non hai inserito un messaggio.',
'norecipientsgiven' => 'Non hai specificato alcun destinatario',
'errorsendingmail' => 'Il messaggio a "%s" fallito',
'cannotreaddir' => 'Impossibile leggere la cartella "%s"',
'invalidip' => 'Indirizzo IP non valido: %s',
'invalidmysqlhost' => 'Indirizzo MySQL non valido: %s',
'cannotuseawstatsandwebalizeratonetime' => 'Non è possibile abilitare Webalizer e Awstats allo stesso tempo, si prega di sceglierne uno solo',
'cannotwritetologfile' => 'Impossibile aprire il file di log %s in scrittura',
'vmailquotawrong' => 'Il limite deve essere un numero positivo.',
'allocatetoomuchquota' => 'Si è tentato di allocare %s MB Limite, ma non c\'è abbastanza spazio disponibile.',
'missingfields' => 'Non tutti i campi obbligatori sono stati compilati.',
'accountnotexisting' => 'L\'account di posta elettronica dato non esiste.',
'nopermissionsorinvalidid' => 'Non hai i permessi necessari per modificare le impostazioni o è stato fornito un ID non valido.',
'phpsettingidwrong' => 'Una configurazione PHP con questo ID non esiste',
'descriptioninvalid' => 'La descrizione è troppo corta, La descrizione è troppo corta o troppo lunga o contiene caratteri non validi.',
'info' => 'Info',
'filecontentnotset' => 'Il file non può essere vuoto!',
'index_file_extension' => 'L\'estensione file del file index deve essere compresa tra 1 e 6 caratteri. L\'estensione può contenere solo i caratteri a-z, A-Z and 0-9',
'customerdoesntexist' => 'Il cliente che si è selezionato non esiste.',
'admindoesntexist' => 'L\'amministratore che si è selezionato non esiste.',
'ipportdoesntexist' => 'La combinazione IP/Porta selezionata non esiste.',
'usernamealreadyexists' => 'Esiste già il nome utente: %s',
'plausibilitychecknotunderstood' => 'Il controllo non ha capito la risposta di plausibilità',
'errorwhensaving' => 'Verificato un errore durante il salvataggio del campo %s',
'hiddenfieldvaluechanged' => 'Il valore per il campo nascosto "%s" è cambiato durante la modifica delle impostazioni.
Questo non è solitamente un grosso problema, ma le impostazioni potrebbe non essere salvate a causa di questo.',
'notrequiredpasswordlength' => 'La password scritta è troppo corta. Si prega di scrivere una password lunga almeno %s caratteri.',
'overviewsettingoptionisnotavalidfield' => 'Woops, un campo che dovrebbe essere mostrato come opzione in Impostazioni-Principale non è un tipo esclusivo. Si possono rimproverare gli sviluppatori per questo. Questo non deve accadere!',
'pathmaynotcontaincolon' => 'Il percorso che hai inserito non dovrebbe contenere i due punti (:). Inserisci un percorso valido.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'La complessita della password specificata non è soddisfacente. Si prega di contattare l\'amministratore se avete domande sulla complessità della password',
'intvaluetoolow' => 'Il numero dato è troppo basso (campo %s)',
'intvaluetoohigh' => 'Il numero dato è troppo alto (campo %s)',
'phpfpmstillenabled' => 'PHP-FPM è attivo. Si prega di disattivarlo prima di attivare FCGID',
'fcgidstillenabled' => 'FCGID è attivo. Si prega di disattivarlo prima di attivare PHP-FPM',
'domains_cantdeletedomainwithaliases' => 'Non è possibile cancellare un dominio che viene utilizzato per alias-domains. È necessario eliminare prima gli alias.',
'user_banned' => 'Il tuo account è stato bannato. Contatta l\'amministratore per maggiori informazioni.',
'loginnameiswrong2' => 'Il nome utente contiente troppi caratteri. Sono permessi soltanto %s caratteri.',
'session_timeout' => 'Valore troppo basso',
'session_timeout_desc' => 'Non dovresti settare il timeout della sessione ad un valore minore di 1 minuto.',
'invalidhostname' => 'Il nome del Host non può essere vuoto o contenere spazi',
'operationnotpermitted' => 'Operazione non permessa!',
'featureisdisabled' => 'Funzionalità %s è disabilitata. Perfavore contatta il tuo fornitore di servizi.',
'usercurrentlydeactivated' => 'L\'utente %s è attualmente disabilitato',
'setlessthanalreadyused' => 'Non puoi impostare dei limiti minori per \'%s\', di quanto questo utente abbia già utilizzato ',
'stringmustntbeempty' => 'Il valore per il campo %s non può essere vuoto',
'sslcertificateismissingprivatekey' => 'Devi specificare una chiave privata per il tuo certificato',
'sslcertificatewrongdomain' => 'Il certificato fornito non appartiene a questo dominio',
'sslcertificateinvalidcert' => 'Il contenuto del certificato fornito non sembra essere un certificato valido',
'sslcertificateinvalidcertkeypair' => 'La chiave privata fornita non sembra appartenere al certificato fornito',
'sslcertificateinvalidca' => 'Il certificato CA fornito non sembra essere un certificato valido',
'sslcertificateinvalidchain' => 'I dati della catena di certificato non sembrano essere un certificato valido',
'givendirnotallowed' => 'La cartella fornita nel campo %s non è permessa.',
'sslredirectonlypossiblewithsslipport' => 'L\'utilizzo del reindirizzamento SSL è possibile soltanto quando il dominio ha almeno una combinazione IP/porta assegnata ed abilitata SSL.',
'fcgidstillenableddeadlock' => 'FCGID è attualmente attivo. Perfavore disattivalo prima di cambiare ad un server web diverso da Apache2',
'send_report_title' => 'Invia rapporto errori',
'send_report_desc' => 'Grazie per aver communicato questo errore, aiutandoci a migliorare froxlor. Questa è la mail che verrà inviata agli svillupatori di froxlor:',
'send_report' => 'Invia rapporto',
'send_report_error' => 'Errore nell invio del rapporto: %s',
'notallowedtouseaccounts' => 'Il tuo account non permette l\'utilizzo di IMAP/POP3. Non puoi aggiungere account di posta elettronica.',
'cannotdeletehostnamephpconfig' => 'Questa configurazione PHP è utilizzata dal vhost froxlor e non può essere eliminata.',
'cannotdeletedefaultphpconfig' => 'Questa configurazione PHP è impostata come predefinita e non può essere eliminata.',
'passwordshouldnotbeusername' => 'La password deve essere diversa dal nome utente.',
'no_phpinfo' => 'Ci dispiace, impossibile leggere phpinfo()',
'moveofcustomerfailed' => 'Trasferimento del cliente all\'amministratore/rivenditore selezionato fallito. Considera che tutte le altre modfiche al cliente sono state applicate con successo a questa fase.
Messaggio d\'errore: %s',
'domain_import_error' => 'Il seguente errore è occorsonell \'importazione di dominii: %s',
],
'extras' => [
'description' => 'Qui puoi aggiungere alcune opzioni extra, per esempio impostare delle cartelle protette. Il sistema, dopo ogni cambiamento, necessita di un po\' di tempo per applicare le nuove impostazioni.',
'directoryprotection_add' => 'Aggiungi protezione cartella',
'view_directory' => 'Mostra protezione cartella',
'pathoptions_add' => 'Aggiungi opzioni cartella',
'directory_browsing' => 'Visualizza file e cartelle',
'pathoptions_edit' => 'Modifica opzioni cartella',
'errordocument404path' => 'URL to ErrorDocument 404',
'errordocument403path' => 'URL to ErrorDocument 403',
'errordocument500path' => 'URL to ErrorDocument 500',
'errordocument401path' => 'URL to ErrorDocument 401',
'execute_perl' => 'Esegui perl/CGI',
'htpasswdauthname' => 'Argomento di Autenticazione (AuthName)',
'directoryprotection_edit' => 'modifica la protezione della directory',
],
'ftp' => [
'description' => 'Qui puoi creare e modificare i tuoi account FTP. I cambiamenti sono effettuati in tempo reale e gli account si possono usare immediatamente.',
'account_add' => 'Crea account',
'account_edit' => 'Modifica acocunt FTP',
'editpassdescription' => 'Imposta una nuova password o lascia vuoto per non cambiarla.',
],
'gender' => [
'title' => 'Titolo',
'male' => 'Sig.',
'female' => 'Sig.ra',
'undef' => '',
],
'index' => [
'customerdetails' => 'Dettagli Cliente',
'accountdetails' => 'Dettagli Account',
],
'logger' => [
'date' => 'Data',
'type' => 'Tipo',
'action' => 'Azione',
'user' => 'Utente',
'truncate' => 'Log vuoto',
'reseller' => 'Rivenditore',
'admin' => 'Amministratore',
'cron' => 'Cronjob',
'login' => 'Login',
'intern' => 'Interno',
'unknown' => 'Sconosciuto',
],
'login' => [
'username' => 'Nome Utente',
'password' => 'Password',
'language' => 'Lingua',
'login' => 'Login',
'logout' => 'Logout',
'profile_lng' => 'Scegli la lingua',
'forgotpwd' => 'Dimenticato la password?',
'presend' => 'Reimposta la password',
'email' => 'Indirizzo E-mail',
'remind' => 'Reimposta la mia password',
'usernotfound' => 'Utente non trovata!',
'backtologin' => 'Torna al login',
'combination_not_found' => 'Combinazione utente-indirizzo email non trovata.',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Salve,\\n\\nil tuo indirizzo Email {EMAIL}\\nè stato configurato con successo.\\n\\nQuesta è un\'Email creata automaticamente,\\n per favore non rispondere!\\n\\nCordiali saluti, Amministratore.',
'subject' => 'Indirizzo Email configurato con successo',
],
'createcustomer' => [
'mailbody' => 'Salve {FIRSTNAME} {NAME},\\n\\nqueste sono le informazioni per il tuo account:\\n\\nNome Utente: {USERNAME}\\nPassword: {PASSWORD}\\n\\nGrazie,\\nAmministratore.',
'subject' => 'Informazioni account',
],
'pop_success_alternative' => [
'mailbody' => 'Salve,\\n\\nil tuo account email {EMAIL}\\nè stato creato correttamente.\\nLa tua password è {PASSWORD}.\\n\\nQuesta è un\'email creata automaticamente,\\n si prega di non rispondere a questa email!\\n\\nCordiali Saluti, Amministratore.',
'subject' => 'Account email creato correttamente',
],
'password_reset' => [
'subject' => 'Reimposta password',
'mailbody' => 'Salve {USERNAME},\\n\\nla tua password froxlor è stata reimpostata!\\nLa nuova password è: {LINK}\\n\\nGrazie,\\n Team froxlor',
],
'new_database_by_customer' => [
'subject' => '[froxlor] Nuovo database creato',
'mailbody' => 'Hello {CUST_NAME},
hai appena aggiunto un nuovo database. Ecco le informazioni inserite:
Nome database: {DB_NAME}
Password: {DB_PASS}
Descrizione: {DB_DESC}
DB-Hostname: {DB_SRV}
{PMA_URI}
Cordiali Saluti, Team froxlor',
],
'new_ftpaccount_by_customer' => [
'subject' => 'Nuovo utente ftp creato',
'mailbody' => 'Salve {CUST_NAME},
hai appena aggiunto un nuovo utente ftp. Ecco le informazioni inserite:
Nome utente: {USR_NAME}
Password: {USR_PASS}
Percorso: {USR_PATH}
Cordiali Saluti, Team froxlor',
],
'trafficmaxpercent' => [
'mailbody' => 'Salve {NAME},\\n\\nhai utilizzato {TRAFFICUSED} MB di {TRAFFIC} MB traffico disponibile.\\nQuesto è più del {MAX_PERCENT}%%.\\n\\nCordiali Saluti, il Team froxlor',
'subject' => 'Raggiunto il limite di traffico',
],
'diskmaxpercent' => [
'mailbody' => 'Salve {NAME},\\n\\nhai utilizzato {DISKUSED} MB di {DISKAVAILABLE} MB di spazio disponibile.\\nQuesto è più del {MAX_PERCENT}%%.\\n\\nCordiali Saluti, il Team froxlor',
'subject' => 'Raggiungere il limite di spazio su disco',
],
],
'menu' => [
'message' => 'Messaggi',
],
'menue' => [
'main' => [
'main' => 'Principale',
'changepassword' => 'Cambia la password',
'changelanguage' => 'Cambia la lingua',
'username' => 'Utente: ',
'changetheme' => 'Cambia tema',
],
'email' => [
'email' => 'Email',
'emails' => 'Indirizzi',
'webmail' => 'WebMail',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Database',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domini',
'settings' => 'Opzioni',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Account',
'webftp' => 'WebFTP',
],
'extras' => [
'extras' => 'Extra',
'directoryprotection' => 'Cartelle Protette',
'pathoptions' => 'Opzioni Cartelle',
],
'traffic' => [
'traffic' => 'Traffico',
'current' => 'Mese corrente',
'table' => 'Traffico',
],
'phpsettings' => [
'maintitle' => 'Configurazioni PHP',
],
'logger' => [
'logger' => 'Log di Sistema',
],
],
'message' => [
'norecipients' => 'Nessuna e-mail è stata inviata perch¸ non ci sono i destinatari nel database',
'success' => 'Inviato correttamente il messaggio a %s recipients',
],
'mysql' => [
'description' => 'Qui puoi creare e modificare il tuo database MySQL Le modifiche sono istantanee e puoi usare subito il database. Nel menù a sinistra trovi phpMyAdmin con cui puoi amministrare il tuo database.
Per usare i database nei tuoi script php usa le seguenti impostazioni: (Le parole in corsivo devono essere modificate con quello che hai scritto!) Hostname: Utente: Nome database Password: La password che hai scelto Database: Nome database',
'databasename' => 'Nome database',
'databasedescription' => 'Descrizione database',
'database_create' => 'Crea database',
'mysql_server' => 'Server MySQL',
'database_edit' => 'Modifica database',
'size' => 'Dimensione',
],
'panel' => [
'edit' => 'Modifica',
'delete' => 'Cancella',
'create' => 'Crea',
'save' => 'Salva',
'yes' => 'Si',
'no' => 'No',
'emptyfornochanges' => 'lasciare vuoto se non si vuole cambiare',
'emptyfordefault' => 'lasciare vuoto per l\'impostazione di default',
'path' => 'Percorso',
'toggle' => 'Cambia',
'next' => 'Prossimo',
'dirsmissing' => 'La cartella fornita non è stata trovata.',
'urloverridespath' => 'URL (sovrascrive il percorso)',
'pathorurl' => 'Percorso o URL',
'ascending' => 'ascendente',
'descending' => 'discendente',
'search' => 'Cerca',
'used' => 'utilizzato',
'translator' => 'Traduttore',
'reset' => 'Annulla le modifiche',
'pathDescription' => 'Se la cartella non esiste, viene creata automaticamente.',
'back' => 'Indietro',
'reseller' => 'rivenditore',
'admin' => 'amministratore',
'customer' => 'cliente/i',
'send' => 'invia',
'nosslipsavailable' => 'Attualmente non ci sono combinazioni ssl ip/porta per questo server',
'backtooverview' => 'Ritorna alla pagina precedente',
'dateformat' => 'DD-MM-YYYY',
'dateformat_function' => 'd-m-Y',
'timeformat_function' => 'H:i:s',
'default' => 'Predefinito',
'never' => 'Mai',
'active' => 'Attivo',
'please_choose' => 'Scegli',
'allow_modifications' => 'Permetti modifiche',
'megabyte' => 'MegaByte',
'not_supported' => 'Non supportato in: ',
'view' => 'view',
'toomanydirs' => 'Troppe sottocartelle. Rifare tornando indietro nella selezione manuale della cartella.',
'abort' => 'Termina',
'not_activated' => 'non attivato',
'off' => 'off',
'options' => 'opzioni',
'neverloggedin' => 'Nessun login effettuato',
'descriptionerrordocument' => 'Può essere un URL, un percorso ad un file o solo una stringa con un " " Lasciare vuoto per usare il valore di default del server.',
'unlock' => 'unlock',
'theme' => 'Tema',
'variable' => 'Variabile',
'description' => 'Descrizione',
'pathDescriptionEx' => '
Se vuoi redirezionare ad un altro dominio, questo valore deve iniziare con http:// or https://.',
'pathDescriptionSubdomain' => 'Se la cartella non esiste, viene creata automaticamente.
Se vuoi redirezionare ad un altro dominio, questo valore deve iniziare con http:// or https://.
Se la URL termina con / è considerata una cartella, altrimenti verrà trattata come un file.',
'cancel' => 'Annulla',
'ssleditor' => 'Impostazioni SSL per questo dominio',
'dashboard' => 'Cruscotto',
'assigned' => 'Assegnato',
'available' => 'Disponibile',
'news' => 'Notizie',
'ftpdesc' => 'Descrizione FTP',
],
'phpfpm' => [
'vhost_httpuser' => 'Utente locale per PHP-FPM (froxlor vHost)',
'vhost_httpgroup' => 'Gruppo locale per PHP-FPM (froxlor vHost)',
'ownvhost' => [
'title' => 'Abilita PHP-FPM per i vHost froxlor',
'description' => 'Se abilitato, froxlor potrà essere avviato attraverso un utente locale',
],
'use_mod_proxy' => [
'title' => 'Usa mod_proxy / mod_proxy_fcgi',
'description' => 'Attiva l\'utilizzo di php-fpm attraverso mod_proxy_fcgi. Richiede almeno apache-2.4.9',
],
],
'pwdreminder' => [
'success' => 'La password è stata reimpostata con successo. A questo punto riceverai una email con la nuova password.',
'notallowed' => 'Il reimposta password è disabilitato',
'changed' => 'La tua password è stata aggiornata con successo. Puoi accedere con le tue nuove credenziali.',
'wrongcode' => 'Ci dispiace, il tuo codice di attivazione non esiste o è già scaduto.',
'choosenew' => 'Setta la nuova password',
],
'question' => [
'question' => 'Domanda di sicurezza',
'admin_customer_reallydelete' => 'Sei sicuro di voler cancellare il cliente %s? Quest\'azione non potrà essere annullata!',
'admin_domain_reallydelete' => 'Sei sicuro di voler cancellare il dominio %s?',
'admin_domain_reallydisablesecuritysetting' => 'Sei sicuro di voler disattivare queste opzioni di sicurezza (OpenBasedir)?',
'admin_admin_reallydelete' => 'Sei sicuro di voler cancellare l\'admin %s? Tutti i clienti e i domini saranno affidati all\'amministratore principale.',
'admin_template_reallydelete' => 'Sei sicuro di voler cancellare il template \'%s\'?',
'domains_reallydelete' => 'Sei sicuro di voler cancellare il dominio %s?',
'email_reallydelete' => 'Sei sicuro di voler cancellare l\'indirizzo Email %s?',
'email_reallydelete_account' => 'Sei sicuro di voler cancellare l\'account Email di %s?',
'email_reallydelete_forwarder' => 'Sei sicuro di voler cancellare il reindirizzamento a %s?',
'extras_reallydelete' => 'Sei sicuro di voler cancellare la protezione per la cartella %s?',
'extras_reallydelete_pathoptions' => 'Sei sicuro di voler cancellare le opzioni cartella per %s?',
'ftp_reallydelete' => 'Sei sicuro di voler cancellare l\'account FTP %s?',
'mysql_reallydelete' => 'Sei sicuro di voler cancellare il database %s? Quest\'azione non potrà essere annullata!',
'admin_configs_reallyrebuild' => 'Sei sicuro di voler rigenerare i file di configurazione per Apache e Bind?',
'admin_customer_alsoremovefiles' => 'Cancellare anche i file dell\'utente?',
'admin_ip_reallydelete' => 'Vuoi veramente eliminare l\'indirizzo IP %s?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Sei sicuro di volere la cartella base dei dati web di questo dominio al di fuori della cartella base del cliente?',
'admin_counters_reallyupdate' => 'Sei sicuro di voler ricacolare il consumo delle risorse?',
'admin_cleartextmailpws_reallywipe' => 'Sei sicuro di voler cancellare tutte le password in chiaro degli account email dalla tabella mail_users? Attenzione non si può tornare indietro!',
'logger_reallytruncate' => 'Sei sicuro di voler troncare la tabella "%s"?',
'admin_quotas_reallywipe' => 'Sei sicuro di voler cancellare tutti i limiti dalla tabella mail_users? Questa operazione non può essere annullata!',
'admin_quotas_reallyenforce' => 'Sei sicuro di voler impostare il limite predefinito a tutti gli utenti? Questa operazione non può essere annullata!',
'phpsetting_reallydelete' => 'Do you really want to delete these settings? All domains which use these settings currently will be changed to the default config.',
'customer_reallyunlock' => 'Sei sicuro di voler sbloccare il cliente %s?',
'admin_customer_alsoremovemail' => 'Eliminare completamente i dati della posta elettronica dal filesystem??',
'admin_customer_alsoremoveftphomedir' => 'Rimuovere anche la cartella homedir dell\'utente FTP?',
'admin_integritycheck_reallyfix' => 'Vuoi veramente provare a risolvere i problemi di integrità del database automaticamente?',
],
'redirect_desc' => [
'rc_default' => 'Predefinito',
'rc_movedperm' => 'spostato in modo permanente',
'rc_found' => 'trovato',
'rc_seeother' => 'vedi gli altri',
'rc_tempred' => 'reindirizzamento temporaneo',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Timeout della sessione',
'description' => 'Quanto tempo un utente deve rimanere inattivo prima che la sessione diventi invalida (secondi)?',
],
'accountprefix' => [
'title' => 'Prefisso Cliente',
'description' => 'Che prefisso dovrebbero avere gli account dei clienti?',
],
'mysqlprefix' => [
'title' => 'Prefisso SQL',
'description' => 'Che prefisso dovrebbero avere i database SQL?',
],
'ftpprefix' => [
'title' => 'Prefisso FTP',
'description' => 'Che prefisso vuoi che per gli account ftp? Se si modifica questo devi anche modificare il limite (Quota) della query SQL nel file di configurazione del server FTP nel caso in cui venga usata! ',
],
'documentroot_prefix' => [
'title' => 'Cartella dati web',
'description' => 'Dove devono essere immagazzinati tutti i dati web?',
],
'logfiles_directory' => [
'title' => 'Cartella logfiles',
'description' => 'Dove devono essere immagazzinati tutti i log?',
],
'ipaddress' => [
'title' => 'Indirizzo IP',
'description' => 'Qual\'è l\'indirizzo IP di questo server?',
],
'hostname' => [
'title' => 'Hostname',
'description' => 'QUal\'è l\'hostname di questo server?',
],
'apachereload_command' => [
'title' => 'Comando riavvio Apache',
'description' => 'Qual\'è il comando per riavviare Apache?',
],
'bindconf_directory' => [
'title' => 'Cartella configurazione Bind',
'description' => 'Dove sono i file di configurazione per Bind?',
],
'bindreload_command' => [
'title' => 'Comando riavvio Bind',
'description' => 'Qual\'è il comando per riavviare Bind?',
],
'vmail_uid' => [
'title' => 'UID Email',
'description' => 'Che UserID dovrebbe avere l\'utente che gestisce le Email?',
],
'vmail_gid' => [
'title' => 'GID Email',
'description' => 'Che GroupID dovrebbe avere l\'utente che gestisce le Email?',
],
'vmail_homedir' => [
'title' => 'Cartella Email',
'description' => 'Dove devono essere immagazzinate tutte le Email?',
],
'adminmail' => [
'title' => 'Mittente',
'description' => 'Qual\'è l\'indirizzo del mittente delle Email provenienti dal pannello?',
],
'phpmyadmin_url' => [
'title' => 'URL phpMyAdmin',
'description' => 'Qual\'è l\'URL di phpMyAdmin? (deve cominciare per http://)',
],
'webmail_url' => [
'title' => 'URL WebMail',
'description' => 'Qual\'è l\'URL della WebMail? (deve cominciare per http://)',
],
'webftp_url' => [
'title' => 'URL WebFTP',
'description' => 'Qual\'è l\'URL del WebFTP? (deve cominciare per http://)',
],
'language' => [
'description' => 'Qual\'è la lingua standard del tuo server?',
],
'maxloginattempts' => [
'title' => 'Numero massimo tentativi login',
'description' => 'Numero massimo di tentativi di login prima che l\'account sia disattivato.',
],
'deactivatetime' => [
'title' => 'Durata disattivamento',
'description' => 'Tempo (sec.) di disattivazione dell\'account dopo troppi tentativi di login.',
],
'pathedit' => [
'title' => 'Modalità di scelta percorsi/cartelle',
'description' => 'Un percorso/cartella andrà scelto attraverso un menu a tendina o inserendolo a mano?',
],
'nameservers' => [
'title' => 'Nameservers',
'description' => 'Lista degli hostname (separati dalla virgola) di tutti i nameserver. Il primo della lista sarà il impostato come primario.',
],
'mxservers' => [
'title' => 'MX servers',
'description' => 'Lista dei server mx (separati dalla virgola) numero spazio hostname (es. \'10 mx.example.com\').',
],
'paging' => [
'title' => 'Elementi da visualizzare per pagina',
'description' => 'Quanti elementi dovrebbero essere visualizzati su una pagina? (0 = disattiva impaginazione)',
],
'defaultip' => [
'title' => 'IP/Porta default',
'description' => 'Qual\'è la combinazione IP/Porta default?',
],
'phpappendopenbasedir' => [
'title' => 'Percoso da aggiungere a OpenBasedir',
'description' => 'Questi percorsi (separati da colonne) verranno aggiunti allo statement OpenBasedir in ognuno vhost-container.',
],
'natsorting' => [
'title' => 'Usa l\'ordinamento naturale in vista elenco',
'description' => 'Disponi la lista come web1 -> web2 -> web11 al posto di web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Docroot per gli utenti disattivati',
'description' => 'Quando un utente viene disattivato questo percorso viene usato come suo docroot. Lascia vuoto per non creare un vhost a tutti.',
],
'mailpwcleartext' => [
'title' => 'Salva le password in chiaro degli account email nel database',
'description' => 'Se impostato a Si, tutte le password saranno salvate in chiaro (saranno leggibili a chiunque abbia accesso al database) nella tabella mail_users. Attiva questa opzione solo se necessaria!',
'removelink' => 'Clicca qui per cancellare tutte le password in chiaro dalla tabella.',
],
'ftpdomain' => [
'title' => 'Account FTP @domain',
'description' => 'I Clienti possono creare account ftp utente@dominiocliente?',
],
'mod_fcgid' => [
'title' => 'Includi PHP via mod_fcgid/suexec',
'description' => 'Usa mod_fcgid/suexec/libnss_mysql per avviare PHP con il corrispondente account-utente. Questo richiede una speciale configurazione del Webserver. Tutte le opzioni seguenti sono validi solo se il modulo è abilitato.',
'configdir' => [
'title' => 'Cartella della configurazione',
'description' => 'Dove vuoi che venga salvata la configurazione di fcgid? Se non ti sei compilato suexec da solo, di solito questo percorso è /var/www',
],
'tmpdir' => [
'title' => 'Cartella Temp',
'description' => 'Dove va salvata la cartella temp',
],
'starter' => [
'title' => 'Processi per Dominio',
'description' => 'Quanti processi dovrebbero essere avviati/permessi per ogni dominio? Il valore 0 è raccomandato poichè PHP si autogestisce i processi in modo molto efficiente.',
],
'wrapper' => [
'title' => 'Wrapper in Vhosts',
'description' => 'Come dovrebbe essere il wrapper incluso nel Vhosts',
],
'peardir' => [
'title' => 'Cartella globale di PEAR',
'description' => 'Quali sono le cartelle globali di PEAR che dovrebbero essere sostituite in ogni configurazione php.ini? Più cartelle devono essere separate da : (due punti).',
],
'maxrequests' => [
'title' => 'Richieste massime per dominio',
'description' => 'Quante richieste dovrebbero essere permesse per dominio?',
],
'defaultini' => 'Configurazione di default di PHP per i nuovi domini',
'defaultini_ownvhost' => 'Configurazione di Default di PHP per froxlor-vhost',
'idle_timeout' => [
'title' => 'Timeout Inattività',
'description' => 'Impostazione Timeout per il Mod FastCGI.',
],
],
'sendalternativemail' => [
'title' => 'Usa un\'indirizzo email alternativo',
'description' => 'Invia la password dell\'email a un\'indirizzo diverso da quello creato',
],
'apacheconf_vhost' => [
'title' => 'File/cartella della configurazione vhost del Webserver',
'description' => 'Dove vuoi che venga salvata la configurazione vhost? Qui puoi scegliere un file (tutti i vhosts in un file) o una cartella (ogni vhost avrà il suo file).',
],
'apacheconf_diroptions' => [
'title' => 'Webserver diroptions configuration file/dirname',
'description' => 'Dove vuoi che venga salvata la configurazione dir-options? Qui puoi scegliere un file (tutti i vhosts in un file) o una cartella (ogni vhost avrà il suo file).',
],
'apacheconf_htpasswddir' => [
'title' => 'Cartella htpasswd del Webserver',
'description' => 'Dove vuoi che vengano salvati i file htpasswd per la protezione delle cartelle?',
],
'mysql_access_host' => [
'description' => 'Lista degli host (separati da una virgola) a cui gli utenti possono collegarsi al server MySQL.',
'title' => 'Hosts Accesso MySQL',
],
'webalizer_quiet' => [
'description' => 'Verbosità del programma webalizer',
'title' => 'Webalizer output',
],
'logger' => [
'enable' => 'Abilita/Disabilita Log',
'severity' => 'Livello Log',
'types' => [
'title' => 'Tipo di Log',
'description' => 'Specificare tipo di Log. Per selezionare più tipi, tenere premuto CTRL durante la selezione. Tipi di log disponibili: syslog, file, mysql',
],
'logfile' => 'Percorso completo e nome del file del Log',
'logcron' => 'Log cronjobs (one run)',
],
'ssl' => [
'openssl_cnf' => 'Defaults per la creazione del file Cert',
'use_ssl' => [
'title' => 'Abilita utilizzo SSL',
'description' => 'Spunta questo se vuoi usare SSL per il tuo server web',
],
'ssl_cert_file' => [
'title' => 'Percorso al certificato SSL',
'description' => 'Specifica il percorso includendo il nome del file .crt o .pem (certificato principale)',
],
'ssl_key_file' => [
'title' => 'Percorso al file di chiave SSL',
'description' => 'Specifica il percorso includendo il nome del file per la chiave privata (abitualmente.key)',
],
'ssl_ca_file' => [
'title' => 'Percorso al certificato della CA (autoritá certificatrice) SSL (opzionale)',
'description' => 'Autenticazione client, da settare soltanto se desiderato.',
],
'ssl_cipher_list' => [
'title' => 'Configura le cifrature SSL permesse',
'description' => 'Questa è una lista di cifrature che vuoi (o non vuoi) usare nelle communicazioni SSL. Per una lista delle cifrature e come includerle od escluderle, vedi le sezioni "CIPHER LIST FORMAT" e "CIPHER STRINGS" sulla man-page per le cifrature.
',
],
],
'default_vhostconf' => [
'title' => 'Impostazioni default vhost',
'description' => 'Il contenuto di questo campo sarà incluso direttamente nel contenitore di dominio vhost. Attenzione: Il codice non sarà controllato per eventuali errori. Se contiene errori, il webserver non riavviarsi correttamente!',
],
'decimal_places' => 'Numero di cifre decimali del traffico/spazio web in uscita',
'webalizer_enabled' => 'Abilita le statistiche webalizer',
'awstats_enabled' => 'Abilita le statistiche awstats',
'selfdns' => [
'title' => 'Impostazioni dominio dns del cliente',
],
'selfdnscustomer' => [
'title' => 'Consenti ai clienti di modificare le impostazioni DNS del dominio',
],
'unix_names' => [
'title' => 'Usa nomi utente UNIX compatibile',
'description' => 'Consente di utilizzare - e _ nei nomi utente se No',
],
'allow_password_reset' => [
'title' => 'Consenti ai clienti di reimpostare la password',
'description' => 'I clienti possono reimpostare la propria password e una nuova password verrà inviata al loro indirizzo e-mail',
],
'allow_password_reset_admin' => [
'title' => 'Consenti di reimpostare la password agli ammministratori',
'description' => 'Amministratori/rivenditori possono reimpostare la propria password e una nuova password verrà inviata al loro indirizzo e-mail',
],
'mail_quota' => [
'title' => 'Limite casella email',
'description' => 'Limite predefinito per una nuova casella email creata (MegaByte).',
],
'mail_quota_enabled' => [
'title' => 'Usa limiti per le caselle email dei clienti',
'description' => 'Attiva per utilizzare i limiti nelle caselle email. Predefinito No poich¸ questo richiede una configurazione speciale.',
'removelink' => 'Clicca qui per togliere tutti i limiti dalle caselle email.',
'enforcelink' => 'Clicca qui per applicare il limite predefinito a tutte le caselle email degli utenti.',
],
'index_file_extension' => [
'description' => 'Quale estensione di file deve essere usata per il file index nelle cartelle del cliente appena creato? Questa estensione di file sarà utilizzata se Lei o uno dei vostri amministratori ha creato il proprio file modello di index.',
'title' => 'Estensione file per il file index delle cartelle dei clienti appena creati',
],
'session_allow_multiple_login' => [
'title' => 'Permettere login multipli',
'description' => 'Se attivato un utente può accedere più volte.',
],
'panel_allow_domain_change_admin' => [
'title' => 'Permettere di spostare domini tra gli amministratori',
'description' => 'Se attivato si può cambiare l\'amministratore di un dominio dalle impostazioni del dominio Attenzione: Se un cliente non viene assegnato allo stesso amministratore e dominio, l\'amministratore può vedere tutti gli altri domini di questo cliente!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Permetti di spostare domini tra i clienti',
'description' => 'Se attivato si può cambiare il cliente di un dominio dalle impostazioni del dominio. Attenzione: froxlor non cambierà alcun percorso. Ciò potrebbe rendere inutilizzabile un dominio!',
],
'cron' => [
'debug' => [
'title' => 'Debug Cronscript',
'description' => 'Attiva per mantenere il file lock dopo l\'avvio di cron, solo per debug Attenzione:Mantenendo il file di lock al successivo avvio cron potrebbe non funzionare correttamente',
],
],
'specialsettingsforsubdomains' => [
'description' => 'Se si queste impostazioni personalizzate dei vhost saranno aggiunte a tutti sottodomini; se no le impostazioni speciali dei sottodomini verranno rimosse.',
],
'panel_password_min_length' => [
'title' => 'Lunghezza minima della password',
'description' => 'Qui è possibile impostare una lunghezza minima per le password.\'0\' significa: nessuna lunghezza minima richiesta.',
],
'system_store_index_file_subs' => [
'title' => 'Salva il file index predefinito anche nelle nuove sottocartelle',
'description' => 'Se abilitato, il file index predefinito viene memorizzato per ogni cartella sottodominio appena creata (non se la cartella esiste già!)',
],
'adminmail_return' => [
'title' => 'Indirizzo di Risposta',
'description' => 'Definire un indirizzo email come \'Indirizzo di Risposta\' per le email inviate dal Pannello',
],
'adminmail_defname' => 'Nome del mittente del Pannello nell\'email',
'stdsubdomainhost' => [
'title' => 'Sottodominio standard cliente',
'description' => 'Quale hostname dovrebbe essere usato per creare sottodomini standard per i clienti. Se vuoto, viene utilizzato l\'hostname del sistema.',
],
'awstats_path' => 'Percorso a AWStats \'awstats_buildstaticpages.pl\'',
'awstats_conf' => 'Cartella della configurazione di AWStats',
'defaultttl' => 'Dominio TTL per impegnare in secondi (predefinito \'604800\' = 1 settimana)',
'defaultwebsrverrhandler_enabled' => 'Abilita errordocuments in automatico per tutti i clienti',
'defaultwebsrverrhandler_err401' => [
'title' => 'File/URL per l\'errore 401',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'File/URL per l\'errore 403',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'File/URL per l\'errore 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'File/URL per l\'errore 500',
'description' => '',
],
'ftpserver' => [
'desc' => 'Se pureftpd è selezionato i file .ftpquota per i limiti dell\'utente sono creati e aggiornati giornalmente',
],
'customredirect_enabled' => [
'title' => 'Permetti ai clienti le redirezioni',
'description' => 'Consente ai clienti di scegliere il codice di stato http per le redirezioni che verranno utilizzate',
],
'customredirect_default' => [
'title' => 'Redirezione Predefinita',
'description' => 'Imposta il codice della redirezione predefinito che dovrebbe essere usato se il cliente non lo imposta',
],
'mail_also_with_mxservers' => 'Crea mail-, imap-, pop3- and smtp-"A record" anche con MX-Servers impostato',
'froxlordirectlyviahostname' => 'Accedi direttamente a froxlor via hostname',
'panel_password_regex' => [
'title' => 'Espressione per le password',
'description' => 'Qui è possibile impostare una espressione regolare per la complessità delle password. Vuoto = nessun requisito specificato',
],
'mod_fcgid_ownvhost' => [
'title' => 'Abilita FCGID per i vhost froxlor',
'description' => 'Se attivato, froxlor verrà eseguito con un utente locale ATTENZIONE:Questo richiede una configurazione manuale, vedi FCGID - handbook',
],
'perl' => [
'suexecworkaround' => [
'title' => 'Abilita SuExec workaround (solo con Apache)',
'description' => 'Abilita solo se la docroots del cliente non sono all\'interno del percorso suexec di Apache Se attivato, froxlor genererà un link simbolico dalla cartella perl abilitata dei clienti + /cgi-bin/ al percorso specificato. Nota: Perl funziona solo nelle sottocartelle /cgi-bin/ e non nella cartella stessa (come farebbe normalmente senza questa correzione!)',
],
'suexeccgipath' => [
'title' => 'Percorso dei link simbolici della cartella abilitata perl del cliente',
'description' => 'Imposta questo solo se la soluzione SuExec è abilitata. ATTENZIONE: Assicurati che questo percorso sia all\'interno del percorso suexec oppure questa soluzione è inutile',
],
],
'awstats_awstatspath' => 'Percorso AWStats \'awstats.pl\'',
'awstats_icons' => [
'title' => 'Percorso della cartella delle icone di AWstats',
'description' => 'es. /usr/share/awstats/htdocs/icon/',
],
'login_domain_login' => 'Permetti il login con i domini',
'nginx_php_backend' => [
'title' => 'Nginx PHP backend',
'description' => 'questo è dove in ascolto il processo PHP per le richieste da nginx, può essere un socket unix combinazione IP:Porta',
],
'phpreload_command' => [
'title' => 'Comando riavvio PHP',
'description' => 'questo viene utilizzato per ricaricare il backend PHP se è in uso Predefinito: vuoto',
],
'phpfpm_settings' => [
'configdir' => 'Cartella di configurazione php-fpm',
'reload' => 'comando di riavvio php-fpm',
'pm' => 'Gestore processi (pm)',
'max_children' => [
'title' => 'Il numero di processi figli',
'description' => 'Il numero di processi figli che vengono creati quando il pm è impostato a \'static\' e il numero massimo di processi figli che vengono creati quando il pm è impostato a \'dynamic\' Equivalente a PHP_FCGI_CHILDREN',
],
'start_servers' => [
'title' => 'Il numero di processi figli creati all\'avvio',
'description' => 'Nota: Usato solo quando il pm è impostato a \'dynamic\'',
],
'min_spare_servers' => [
'title' => 'Il numero minimo di processi inattivi nel server',
'description' => 'Nota: Usato solo quando il pm è impostato a \'dynamic\' Nota: Obbligatorio quando il pm è impostato a \'dynamic\'',
],
'max_spare_servers' => [
'title' => 'Il numero massimo di processi inattivi nel server',
'description' => 'Nota: Usato solo quando il pm è impostato a \'dynamic\' Nota: Obbligatorio quando il pm è impostato a \'dynamic\'',
],
'max_requests' => [
'title' => 'Richieste per figli prima di rigenerare',
'description' => 'Per le richieste senza fine specificare \'0\'. Equivalente a PHP_FCGI_MAX_REQUESTS.',
],
'aliasconfigdir' => 'Configurazione cartella Alias per php-fpm',
'idle_timeout' => [
'title' => 'Timeout Inattività',
'description' => 'Impostazione Timeout per PHP5 FPM FastCGI.',
],
'ipcdir' => [
'title' => 'Cartella FastCGI IPC',
'description' => 'La cartella nella quale verrano salvati i socket php-fpm dal server web. Questa cartella deve essere leggibile dal server Web',
],
],
'report' => [
'report' => 'Abilita l\'invio dei report di utilizzo web e del traffico',
'webmax' => 'Percentuale di avviso per lo spazio web',
'trafficmax' => 'Percentuale di avviso per il traffico',
],
'dropdown' => 'Dropdown',
'manual' => 'Manuale',
'default_theme' => 'Tema predefinito',
'validate_domain' => 'Convalida dei domini',
'bindenable' => [
'title' => 'Abilita Nameserver',
'description' => 'Qui il Nameserver può essere abilitato e disabilitato globalmente.',
],
'default_vhostconf_domain' => [
'description' => 'Il contenuto di questo campo verrà incluso direttamente nella configurazione del contenitore del dominio vHost. ATTENZIONE: Non verrano verificati eventuali errori del codice contenuto. Se conterrà degli errori, vi è il rischio che il server WEB non si avvii più!',
],
'phpfpm' => [
'title' => 'Abilita php-fpm',
'description' => 'Questa impostazione richiede una configurazione speciale del server web. Vedi il manuale PHP-FPM',
],
'diskquota_enabled' => 'Quota attivita?',
'diskquota_repquota_path' => [
'description' => 'Percorso a repquota',
],
'diskquota_quotatool_path' => [
'description' => 'Percorso al quotatool',
],
'diskquota_customer_partition' => [
'description' => 'Partizione, sulla quale sono salvati i dati dei clienti',
],
'vmail_maildirname' => [
'title' => 'nome Maildir',
'description' => 'cartella Maildir nell account utente. Normalmente \'Maildir\', in alcune implementazioni \'.maildir\', e direttamente nella cartella utente se lasciato vuoto.',
],
'catchall_enabled' => [
'title' => 'Usa Catchall',
'description' => 'Vuoi offrire ai tuoi clienti la funzionalità di catchall?',
],
'apache_24' => [
'title' => 'Usa impostazioni per Apache 2.4',
'description' => 'ATTENZIONE: spunta soltanto se hai installato la versione 2.4 o superiore di Apache altrimenti il tuo server Web non si avvierà',
],
'nginx_fastcgiparams' => [
'title' => 'Percorso al file fastcgi_params',
'description' => 'Specifica il percorso al file fastcgi_params di nginx includendo il nome del file',
],
'documentroot_use_default_value' => [
'title' => 'Usa il nome del dominio come valore predefinito per il percorso DocumentRoot (radice dei documenti)',
'description' => 'Se abilitato ed il percorso radice DocumentRoot è vuoto, il valore predefinito sarà il nome del (sotto)dominio.
Esempio: /var/customers/nome_cliente/example.com/ /var/customers/nome_cliente/sottodominio.example.com/',
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Nascondi i sottodominii predefiniti nel riepilogo di configurazione PHP',
'description' => 'Se attivato i sottodomini predefiniti dei clienti non saranno visualizzati nel riepilogo della configurazione php
Nota: Questo è solo visibile se avete abilitato FCGID o PHP-FPM',
],
'passwordcryptfunc' => [
'title' => 'Scegli quale metodo crittografico deve essere usato per le password',
],
'systemdefault' => 'Predefinito di sistema',
'panel_allow_theme_change_admin' => 'Permetti agli amministratori di cambiare il tema',
'panel_allow_theme_change_customer' => 'Permetti ai clienti di cambiare il tema',
'axfrservers' => [
'title' => 'Server AXFR',
'description' => 'Un elenco separato da virgole di indirizzi IP autorizzati a trasferire zone dns (AXFR).',
],
'customerssl_directory' => [
'title' => 'Cartella dei certificati ssl clienti del Webserver',
'description' => 'Dove devono esssere creati i certificati ssl cliente?
NOTA: Il contenuto di questa cartella viene cancellato regolarmente, onde evitare il salvataggio manuale di dati in essa.
',
],
'allow_error_report_admin' => [
'title' => 'Permetti agli amministratori/rivenditori di inviare errori di database a froxlor',
'description' => 'Attenzione: Non inviarci MAI dati personali (dei clienti)!',
],
'allow_error_report_customer' => [
'title' => 'Permetti ai clienti di inviare errori di database a froxlor',
'description' => 'Attenzione: Non inviarci MAI dati personali (dei clienti)!',
],
'mailtraffic_enabled' => [
'title' => 'Analizza traffico posta',
'description' => 'Abilita l\\\'analisi dei log del server di posta per calcolare il traffico',
],
'mdaserver' => [
'title' => 'tipo MDA',
'description' => 'Tipo del Server di consegna di posta',
],
'mdalog' => [
'title' => 'log MDA',
'description' => 'File log del Server di consegna di posta',
],
'mtaserver' => [
'title' => 'tipo MTA',
'description' => 'Tipo agente di trasferimento di posta',
],
'mtalog' => [
'title' => 'log MTA',
'description' => 'File log dell\\\'agente di trasferimento di posta',
],
'system_cronconfig' => [
'title' => 'File di configurazione Cron',
'description' => 'Percorso al file di configurazione del servizio cron. Questo file verrà aggiornato regolarmente ed automaticamente da froxlor.
Nota: Perfavore sii sicuro di usare lo stesso nome di file come per il cronjob principale di froxlor (predefinito: /etc/cron.d/froxlor)!
Se usi FreeBSD, qui specifica: /etc/crontab!',
],
'system_crondreload' => [
'title' => 'Commando per riavviare il servizio Cron',
'description' => 'Specifica il commando da eseguire per riavviare il servizio cron del tuo sistema',
],
'system_croncmdline' => [
'title' => 'Commando di esecuzione Cron (binario php)',
'description' => 'Commando per eseguire i nostri cronjob. Modificalo soltanto se sai cosa stai facendo (predefinito: "/usr/bin/nice -n 5 /usr/bin/php -q")!',
],
'system_cron_allowautoupdate' => [
'title' => 'Permetti aggiornamenti automatici del database',
'description' => '
ATTENZIONE:
Questa impostazione permette al cronjob di bypassare la verifica di versione dei file e database di froxlors ed esegue gli aggiornamenti di database in caso si verificasse un disallineamento di versione.
l\'aggiornamento automatico imposterà sempre i valori predefiniti per nuove impostazioni o modifiche. Questo, non sempre potrebbe essere congruo ed adeguato per il vostro sistema. Pensaci due volte prima di attivare questa opzione
',
],
'dns_createhostnameentry' => 'Crea la zone/config di bind per il nome host del sistema',
'panel_password_alpha_lower' => [
'title' => 'Caratteri minuscoli',
'description' => 'La Password deve contenere almeno una lettera minuscola (a-z).',
],
'panel_password_alpha_upper' => [
'title' => 'Caratteri maiuscoli',
'description' => 'La Password deve contenere almeno una lettere maiuscola (A-Z).',
],
'panel_password_numeric' => [
'title' => 'Numeri',
'description' => 'La Password deve contenere almeno un numero (0-9).',
],
'panel_password_special_char_required' => [
'title' => 'Caratteri speciali',
'description' => 'La Password deve contenere almeno uno dei caratteri speciali definiti nel campo sottostante.',
],
'panel_password_special_char' => [
'title' => 'Lista dei caratteri speciali',
'description' => 'Uno di questi caratteri è richiesto se è attivata l\'opzione soprastante.',
],
],
'spf' => [
'use_spf' => 'Attiva SPF per i domini?',
'spf_entry' => 'Impostazioni SPF per tutti i domini',
],
'success' => [
'success' => 'Informazioni',
'clickheretocontinue' => 'Clicca qui per continuare',
'settingssaved' => 'Le impostazioni sono state salvate con successo.',
'rebuildingconfigs' => 'Inseriti con successo i lavori per la ricostruzione del file di configurazione',
'domain_import_successfully' => 'Importato %s dominii con successo.',
],
'tasks' => [
'outstanding_tasks' => 'Processi Cron in sospeso',
'REBUILD_VHOST' => 'Ricostruzione della configurazione del webserver',
'CREATE_HOME' => 'Aggiunto il nuovo cliente %s',
'REBUILD_DNS' => 'Ricostruzione della configurazione di bind',
'CREATE_FTP' => 'Creazione delle cartelle per i nuovi utenti ftp',
'DELETE_CUSTOMER_FILES' => 'Eliminazione dei file del cliente %s',
'noneoutstanding' => 'Attualmente non ci sono processi in sospeso per froxlor',
'CREATE_QUOTA' => 'Setta quota al filesystem',
'DELETE_EMAIL_DATA' => 'Elimina i dati di posta elettronica del cliente.',
'DELETE_FTP_DATA' => 'Elimina i dati account-ftp del cliente.',
'REBUILD_CRON' => 'Ricostruisci il file cron.d',
],
'traffic' => [
'month' => 'Mese',
'day' => 'Giorno',
'months' => [
1 => 'Gennaio',
2 => 'Febbraio',
3 => 'Marzo',
4 => 'Aprile',
5 => 'Maggio',
6 => 'Giugno',
7 => 'Luglio',
8 => 'Agosto',
9 => 'Settembre',
10 => 'Ottobre',
11 => 'Novembre',
12 => 'Dicembre',
'jan' => 'Gen',
'feb' => 'Feb',
'mar' => 'Mar',
'apr' => 'Apr',
'may' => 'Mag',
'jun' => 'Giu',
'jul' => 'Lug',
'aug' => 'Ago',
'sep' => 'Set',
'oct' => 'Ott',
'nov' => 'Nov',
'dec' => 'Dic',
'total' => 'Totale',
],
'mb' => 'Traffico (MB)',
'distribution' => 'FTP | HTTP | Mail',
'sumhttp' => 'Sommatoria Traffico in ingresso HTTP',
'sumftp' => 'Sommatoria Traffico in ingresso FTP',
'summail' => 'Sommatoria Traffico in ingresso Mail',
'customer' => 'Cliente',
'domain' => 'Domini',
'trafficoverview' => 'Riepilogo del traffico di',
'details' => 'Dettagli',
'http' => 'HTTP (MiB)',
'ftp' => 'FTP (MiB)',
'mail' => 'Mail (MiB)',
],
'translator' => 'Luca Longinotti, Luca Piona, Emilien, Christian Munari',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'Una nuova versione di froxlor è stata installata ma non ancora impostata. Solo l\'amministratore può accedere e completare l\'aggiornamento.',
'update' => 'Aggiorna froxlor',
'proceed' => 'Procedi',
'update_information' => [
'part_a' => 'I file di froxlor sono stati aggiornati alla versione %s. La versione installata è %s.',
'part_b' => '
I clienti non potranno accedere fino a quando l\'aggiornamento non sarà completato. Procedere?',
],
'noupdatesavail' => 'È già presente l\'ultima versione di froxlor.',
],
'usersettings' => [
'custom_notes' => [
'title' => 'Note personali',
'description' => 'Sentiti libero di inserire qualsi nota vuoi o necessiti qui. Apparirano nel riepilogo dell\'amministratore/cliente perl \'utente corrispondente.',
'show' => 'Mostra le tue note nel cruscotto dell\'utente',
],
],
];
================================================
FILE: lng/nl.lng.php
================================================
* @author Sander Klein
* @author Frits Letteboer
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'admin' => [
'overview' => 'Overzicht',
'ressourcedetails' => 'Gebruikte resources',
'systemdetails' => 'Systeem Details',
'installedversion' => 'Geïnstalleerde Versie',
'latestversion' => 'Laatste Versie',
'lookfornewversion' => [
'clickhere' => 'zoeken via webservice',
'error' => 'Fout tijdens lezen',
],
'customer' => 'Klant',
'customers' => 'Klanten',
'customer_add' => 'Maak klant',
'customer_edit' => 'Bewerk klant',
'domains' => 'Domeinen',
'domain_add' => 'Maak domein',
'domain_edit' => 'Bewerk domein',
'subdomainforemail' => 'Subdomein als emaildomein',
'admin' => 'Beheerder',
'admins' => 'Beheerders',
'admin_add' => 'Maak beheerder',
'admin_edit' => 'Bewerk beheerder',
'customers_see_all' => 'Kan alle klanten zien?',
'change_serversettings' => 'Kan server instellingen aanpassen?',
'serversettings' => 'Instellingen',
'rebuildconf' => 'Configuratie bestanden opnieuw aanmaken',
'stdsubdomain' => 'Standaard subdomein',
'stdsubdomain_add' => 'Maak standard subdomein',
'deactivated' => 'Gedeactiveerd',
'deactivated_user' => 'Gebruiker deactiveren',
'sendpassword' => 'Verstuur wachtwoord',
'ownvhostsettings' => 'Eigen vHost-Instellingen',
'configfiles' => [
'serverconfiguration' => 'Configuratie',
'overview' => 'Overzicht',
'wizard' => 'Wizard',
'distribution' => 'Distributie',
'service' => 'Dienst',
'etc' => 'Overigen (Systeem)',
'choosedistribution' => '-- Kies een distributie --',
'chooseservice' => '-- Kies een dienst --',
'choosedaemon' => '-- Kies een daemon --',
'statistics' => 'Statistieken',
'compactoverview' => 'Compacte weergave',
],
'templates' => [
'templates' => 'Sjablonen',
'template_add' => 'Maak sjabloon',
'template_edit' => 'Bewerk sjabloon',
'action' => 'Actie',
'email' => 'E-Mail',
'subject' => 'Onderwerp',
'mailbody' => 'Mail inhoud',
'createcustomer' => 'Welkomst bericht voor nieuwe klanten',
'pop_success' => 'Welkomst bericht voor e-mail nieuw account',
'template_replace_vars' => 'Variabelen die aangepast worden in het sjabloon:',
'FIRSTNAME' => 'Vervangen door de voornaam van de klant.',
'NAME' => 'Vervangen door de naam van de klant.',
'USERNAME' => 'Vervangen door de gebruikersnaam van de klant.',
'PASSWORD' => 'Vervangen door het wachtwoord van de klant.',
'EMAIL' => 'Vervangen door het adres van het POP3/IMAP account.',
'TRAFFIC' => 'Wordt vervangen door aan klant toegewezen dataverkeer.',
'TRAFFICUSED' => 'Wordt vervangen door het verbruikte dataverkeer.',
'pop_success_alternative' => 'Welkomstmail voor nieuwe emailaccounts, gestuurd naar een alternatief emailadres',
'EMAIL_PASSWORD' => 'Vervangen door het POP3/IMAP-wachtwoord.',
'index_html' => 'Standaardpagina voor nieuwe mappen/domeinen',
'SERVERNAME' => 'Wordt vervangen door de naam van de server.',
'CUSTOMER' => 'Wordt vervangen door de inlognaam van de klant.',
'ADMIN' => 'Wordt vervangen door de inlognaam van de beheerder.',
'CUSTOMER_EMAIL' => 'Wordt vervangen door het e-mailadres van de klant.',
'ADMIN_EMAIL' => 'Wordt vervangen door het e-mailadres van de beheerder.',
'filetemplates' => 'Bestandssjablonen',
'filecontent' => 'Bestandsinhoud',
'new_database_by_customer' => 'Klantnotificatie wanneer een database is aangemaakt',
'new_ftpaccount_by_customer' => 'Klantnotificatie wanneer een FTP-gebruiker is aangemaakt',
'newdatabase' => 'Notificatie mails voor nieuwe databases',
'newftpuser' => 'Notificatie mails voor nieuwe FTP-gebruikers',
'CUST_NAME' => 'Naam klant',
'DB_NAME' => 'Naam database',
'DB_PASS' => 'Wachtwoord database',
'DB_DESC' => 'Beschrijving database',
'DB_SRV' => 'Database server',
'PMA_URI' => 'URL naar phpMyAdmin (indien opgegeven)',
'USR_NAME' => 'Gebruikersnaam FTP',
'USR_PASS' => 'Wachtwoord FTP',
'USR_PATH' => 'Map FTP (relatief aan docroot van klant)',
'forgotpwd' => 'Notificatie mails voor opnieuw instellen wachtwoord',
'password_reset' => 'Klantnotificatie voor opnieuw instellen wachtwoord',
],
'ipsandports' => [
'ipsandports' => 'IP-adressen en Poorten',
'add' => 'Maak IP/Poort',
'edit' => 'Bewerk IP/Poort',
'ipandport' => 'IP/Poort',
'ip' => 'IP',
'port' => 'Poort',
'create_listen_statement' => '\'Listen\'-regel genereren',
'create_namevirtualhost_statement' => '\'NameVirtualHost\'-regel genereren',
'create_vhostcontainer' => 'vHost-Container genereren',
'create_vhostcontainer_servername_statement' => '\'ServerName\'-regel vHost-Container genereren',
'enable_ssl' => 'Is dit een SSL-poort?',
'ssl_cert_file' => 'Pad naar SSL-certificaat',
'webserverdefaultconfig' => 'Standaarconfiguratie webserver',
'webserverdomainconfig' => 'Domeinconfiguratie webserver',
'webserverssldomainconfig' => 'SSL-configuratie webserver',
'ssl_key_file' => 'Pad naar SSL keyfile',
'ssl_ca_file' => 'Pad naar SSL CA certificaat',
'default_vhostconf_domain' => 'Standaard VHost-instellingen voor iedere domeincontainer',
'docroot' => [
'title' => 'Aangepaste docroot (leeg = verwijzing naar froxlor)',
'description' => 'U kunt voor deze IP/poortcombinatie een aangepaste document-root opgeven. LET OP: Pas op wat u hier neerzet!',
],
],
'memorylimitdisabled' => 'Gedeactiveerd',
'valuemandatory' => 'Deze waarde is verplicht',
'valuemandatorycompany' => 'De waarde "naam" en "voornaam" of "bedrijf" moet ingevoerd worden',
'phpversion' => 'PHP-Versie',
'phpmemorylimit' => 'PHP-Geheugen-Limiet',
'mysqlserverversion' => 'MySQL Server Versie',
'mysqlclientversion' => 'MySQL Client Versie',
'accountsettings' => 'Account-instellingen',
'panelsettings' => 'Paneel-instellingen',
'systemsettings' => 'Systeem-instellingen',
'webserversettings' => 'Webserver-instellingen',
'mailserversettings' => 'Mailserver-instellingen',
'nameserversettings' => 'Nameserver-instellingen',
'updatecounters' => 'Gebruikte bronnen herberekenen',
'subcanemaildomain' => [
'never' => 'Nooit',
'choosableno' => 'Kiesbaar, standaard nee',
'choosableyes' => 'Kiesbaar, standaard ja',
'always' => 'Altijd',
],
'webalizersettings' => 'Instellingen voor Webalizer',
'webalizer' => [
'normal' => 'Normaal',
'quiet' => 'Stil',
'veryquiet' => 'Geen uitvoer',
],
'domain_nocustomeraddingavailable' => 'Het is niet mogelijk een domein toe te voegen. U dient tenminste een klant aan te maken.',
'loggersettings' => 'Instellingen voor logs',
'logger' => [
'normal' => 'normaal',
'paranoid' => 'paranoide',
],
'emaildomain' => 'Emaildomein',
'email_only' => 'Alleen email?',
'wwwserveralias' => 'Voeg een "www." ServerAlias toe',
'subject' => 'Onderwerp',
'recipient' => 'Ontvanger',
'message' => 'Bericht schrijven',
'text' => 'Bericht',
'sslsettings' => 'Instellingen voor SSL',
'dkimsettings' => 'Instellingen voor DomainKeys',
'allips' => 'Alle IP\'s',
'awstatssettings' => 'Instellingen voor AWstats',
'domain_dns_settings' => 'DNS-instellingen voor domein',
'activated' => 'Geactiveerd',
'statisticsettings' => 'Instellingen voor statistieken',
'or' => 'of',
'sysload' => 'Systeembelasting',
'noloadavailable' => 'niet beschikbaar',
'nouptimeavailable' => 'niet beschikbaar',
'nosubject' => '(Geen onderwerp)',
'security_settings' => 'Beveiliging',
'know_what_youre_doing' => 'Verander dit alleen wanneer u zeker weet wat u doet!',
'show_version_login' => [
'title' => 'Toon versie van froxlor bij het inloggen',
'description' => 'Toont de versie van froxlor in de voettekst van de inlogpagina',
],
'show_version_footer' => [
'title' => 'Toon versie van froxlor in de voettekst',
'description' => 'Toont de versie van froxlor in de voettekst op de rest van de pagina\'s',
],
'froxlor_graphic' => [
'title' => 'Kopgrafiek voor froxlor',
'description' => 'Afbeelding die getoond wordt in de kop',
],
'phpsettings' => [
'title' => 'PHP Configuratie',
'description' => 'Korte omschrijven',
'actions' => 'Actie\'s',
'activedomains' => 'Wordt gebruikt door domein(en)',
'notused' => 'Configuratie niet in gebruik',
'editsettings' => 'Instellingen voor PHP aanpassen',
'addsettings' => 'Nieuwe instellingen voor PHP aanmaken',
'viewsettings' => 'Instellingen voor PHP weergeven',
'phpinisettings' => 'Instellingen in php.ini',
'addnew' => 'Nieuwe instellingen aanmaken',
'binary' => 'PHP Uitvoerbaar bestand',
'file_extensions' => 'Bestandsextensies',
'file_extensions_note' => '(zonder punt, gescheiden door spaties)',
],
'misc' => 'Diversen',
'phpconfig' => [
'template_replace_vars' => 'Variabelen die worden vervangen in de instellingen',
'pear_dir' => 'Wordt vervangen door de globale pear-map.',
'open_basedir_c' => 'Voegt een ; (puntkomma) toe om open_basedir in- of uit te schakelen',
'open_basedir' => 'Wordt vervangen door de open_basedir-instellingen voor het domein.',
'tmp_dir' => 'Wordt vervangen door de tijdelijke map voor dit domein',
'open_basedir_global' => 'Wordt vervangen door de globale waarde van het pad dat wordt toegevoegd aan de open_basedir.',
'customer_email' => 'Wordt vervangen door het e-mailadres van de klant van het domein.',
'admin_email' => 'Wordt vervangen door het e-mailadres van de beheerder van het domein.',
'domain' => 'Wordt vervangen door het domein.',
'customer' => 'Wordt vervangen door de loginnaam van de eigenaar van het domein.',
'admin' => 'Wordt vervangen door de loginnaam van de beheerder van het domein.',
],
'expert_settings' => 'Instellingen voor experts!',
'mod_fcgid_starter' => [
'title' => 'Aantal PHP-processen voor dit domein. (Leeg betekent standaardinstellingen.)',
],
'phpserversettings' => 'PHP Instellingen',
'mod_fcgid_maxrequests' => [
'title' => 'Maximaal aantal PHP verzoeken voor dit domein (leeg geldt als standaardwaarde)',
],
'spfsettings' => 'SPF-instellingen domein',
'specialsettingsforsubdomains' => 'Speciale instellingen toepassen op alle subdomeinen (*.example.com)',
'accountdata' => 'Accountgegevens',
'contactdata' => 'Contactgegevens',
'servicedata' => 'Ondersteuningsgegevens',
'newerversionavailable' => 'Er is een nieuwe versie van froxlor beschikbaar',
'cron' => [
'cronsettings' => 'Instellingen cron-taken',
'add' => 'Cron-taak toevoegen',
],
'cronjob_edit' => 'Cron-taak aanpassen',
'warning' => 'WAARSCHUWING - Let op!',
'lastlogin_succ' => 'Laatste login',
'ftpserver' => 'FTP Server',
'ftpserversettings' => 'Instellingen FTP-server',
'webserver_user' => 'Gebruikersnaam webserver',
'webserver_group' => 'Groepnaam webserver',
'perlenabled' => 'Perl ingeschakeld',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Lokale gebruiker voor FCGID (froxlor vhost)',
'mod_fcgid_group' => 'Lokale groep voor FCGID (froxlor vhost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[niet opgegeven]',
'store_defaultindex' => 'Standaard indexbestand opslaan in map klant',
'phpfpm_settings' => 'PHP-FPM',
],
'changepassword' => [
'old_password' => 'Oud wachtwoord',
'new_password' => 'Nieuw wachtwoord',
'new_password_confirm' => 'Nieuw wachtwoord (bevestigen)',
'new_password_ifnotempty' => 'Nieuw wachtwoord (leeg = niet veranderen)',
'also_change_ftp' => ' wijzig ook het wachtwoord van het hoofd FTP account',
'also_change_stats' => ' wijzig ook het wachtwoord van de statistieken',
],
'cron' => [
'cronname' => 'naam cron-taak',
'lastrun' => 'laatst uitgevoerd',
'interval' => 'interval',
'isactive' => 'actief',
'description' => 'beschrijving',
'changewarning' => 'Het aanpassen van de ze waarden kunnen van negatieve invloed zijn op het gedrag van froxlor en haar geautomatiseerde taken. Pas deze waarden alleen aan wanneer u *zeer zeker* bent van wat u doet.',
],
'crondesc' => [
'cron_unknown_desc' => 'geen beschrijving opgegeven',
'cron_tasks' => 'aanmaken configuratiebestanden',
'cron_legacy' => 'oude cron-taak',
'cron_traffic' => 'berekenen verkeersgegevens',
],
'cronjob' => [
'cronjobsettings' => 'Instellingen cron-taak',
'cronjobinterval' => 'Interval uitvoeren',
],
'cronjobs' => [
'notyetrun' => 'Nog niet uitgevoerd',
],
'cronmgmt' => [
'seconds' => 'seconden',
'minutes' => 'minuten',
'hours' => 'uren',
'days' => 'days',
'weeks' => 'weken',
'months' => 'maanden',
],
'customer' => [
'name' => 'Naam',
'firstname' => 'Voornaam',
'company' => 'Bedrijfsnaam',
'street' => 'Straat',
'zipcode' => 'Postcode',
'city' => 'Plaats',
'phone' => 'Telefoonnummer',
'fax' => 'Faxnummer',
'email' => 'Email',
'customernumber' => 'Klant ID',
'diskspace' => 'Webruimte (MB)',
'traffic' => 'Verkeer (GB)',
'emails' => 'E-mail-Adressen',
'subdomains' => 'Sub-Domein(en)',
'domains' => 'Domein(en)',
'title' => 'Titel',
'country' => 'Land',
'email_quota' => 'quotem voor e-mail',
'email_imap' => 'E-mail IMAP',
'email_pop3' => 'E-mail POP3',
'mail_quota' => 'Mailquotum',
'sendinfomail' => 'Stuur gegevens naar mij via e-mail',
],
'dns' => [
'destinationip' => 'IP domein',
'standardip' => 'Standaard server IP',
'a_record' => 'A-record (IPv6 optioneel)',
'cname_record' => 'CNAME-record',
'mxrecords' => 'MX-records',
'standardmx' => 'Standaard server MX-record',
'mxconfig' => 'Aangepaste MX-records',
'priority10' => 'Prioriteit 10',
'priority20' => 'Prioriteit 20',
'txtrecords' => 'TXT-records',
'txtexample' => 'Voorbeeld (SPF-regel): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
],
'domain' => [
'openbasedirpath' => 'OpenBasedir-pad',
'docroot' => 'Pad van bovenstaand veld',
'homedir' => 'Home directory',
],
'domains' => [
'description' => 'Hier kunt u nieuwe (sub-) domeinen maken en de paden aanpassen. Het systeem heeft een paar minuten nodig om de wijzigingen door te voeren na iedere varandering.',
'domainsettings' => 'Domein instellingen',
'domainname' => 'Domeinnaam',
'subdomain_add' => 'Maak subdomein',
'subdomain_edit' => 'Bewerk (sub)domein',
'wildcarddomain' => 'Maak als wildcarddomein?',
'aliasdomain' => 'Alias voor domein',
'noaliasdomain' => 'Geen alias domein',
'hasaliasdomains' => 'Heeft alias domein(en)',
'statstics' => 'Gebruiksstatistieken',
'isassigneddomain' => 'Is toegewezen domein',
'add_date' => 'Toegevoegd aan froxlor',
'registration_date' => 'Toegevoegd aan register',
'topleveldomain' => 'Top-Level-Domein',
'associated_with_domain' => 'Toegekend',
'aliasdomains' => 'Alternatieve domeinnamen',
'redirectifpathisurl' => 'Doorverwijzingscode (standaard: leegt)',
'redirectifpathisurlinfo' => 'U dient deze alleen op te geven indien u een URL als pad hebt opgegeven',
],
'emails' => [
'description' => 'Hier kunt u e-mail adressen maken en wijzigen. Een account is net als een brievenbus voor uw huis. Als iemand u mail stuurt wordt dit op uw account bezorgd.
Om uw emails te downloaden moet u het volgende instellen in uw mailprogramma: (De schuingedrukte gegevens moeten gewijzigd worden in wat u ingegeven heeft!) Servernaam: Domeinnaam Gebruikersnaam: Account naam / E-mailadres Wachtwoord: het door u ingegeven wachtwoord',
'emailaddress' => 'E-mailadres',
'emails_add' => 'Maak nieuw e-mailadres',
'emails_edit' => 'Bewerk e-mailadres',
'catchall' => 'Catchall',
'iscatchall' => 'Definieer als catchall-adres?',
'account_add' => 'Maak nieuw account',
'account_delete' => 'Verwijder account',
'from' => 'Van',
'to' => 'Aan',
'forwarder_add' => 'Maak forwarder',
'alternative_emailaddress' => 'Alternatief emailadres',
'quota' => 'Quotum',
'noquota' => 'Geen quotum',
'updatequota' => 'Quotum aanpassen',
'quota_edit' => 'E-mailquotum aanpassen',
'noemaildomainaddedyet' => 'U hebt nog geen (email-)domein gekoppeld aan uw account.',
],
'error' => [
'error' => 'Fout',
'directorymustexist' => 'De map %s bestaat niet. Maak hem eerst aan met uw FTP client.',
'filemustexist' => 'Het bestand %s bestaat niet.',
'allresourcesused' => 'U heeft al uw resources al gebruikt.',
'domains_cantdeletemaindomain' => 'U kunt een domein dat gebruikt wordt als email-domein niet verwijderen.',
'domains_canteditdomain' => 'U kunt dit domein niet aanpassen. Dit is door de admin onbruikbaar gemaakt.',
'domains_cantdeletedomainwithemail' => 'U kunt een domein dat gebruikt wordt als email-domein niet verwijderen. Verwijder eerst alle e-mail adressen.',
'firstdeleteallsubdomains' => 'U moet eerst alle subdomeinen verwijderen voor u een wildcard domein kunt maken.',
'youhavealreadyacatchallforthisdomain' => 'U heeft al een catchall voor dit domein aangemaakt.',
'ftp_cantdeletemainaccount' => 'U kunt uw hoofd FTP account niet verwijderen',
'login' => 'De door u ingegeven gebruikersnaam en wachtwoord zijn verkeerd. Probeer opnieuw!',
'login_blocked' => 'Dit account is inactief vanwege teveel login fouten. Probeer het nog eens over %s seconden.',
'notallreqfieldsorerrors' => 'U heeft niet alle velden goed, of helemaal niet ingevuld.',
'oldpasswordnotcorrect' => 'Het oude wachtwoord is niet correct.',
'youcantallocatemorethanyouhave' => 'U kunt niet meer resources gebruiken dan die u bezit.',
'mustbeurl' => 'U heeft geen goed of compleet URL ingegeven (bijv. http://eenserver.com/error404.htm)',
'invalidpath' => 'U heeft geen goed URL ingegeven (misschien een probleem met dirlisting?)',
'stringisempty' => 'Geen waarde in invoerveld',
'stringiswrong' => 'Verkeerde waarde in invoerveld',
'newpasswordconfirmerror' => 'Het nieuwe wachtwoord en de bevestiging zijn niet gelijk',
'loginnameexists' => 'Loginnaam %s bestaat al',
'emailiswrong' => 'E-mailadres %s bevat illegale karakters of is niet compleet',
'loginnameiswrong' => 'Loginnaam %s bevat illegale karakters',
'userpathcombinationdupe' => 'Combinatie van Gebruikersnaam en Pad bestaat reeds',
'patherror' => 'Generale Fou! Pad kan niet leeg zijn',
'errordocpathdupe' => 'Optie voor pad %s bestaat reeds',
'adduserfirst' => 'Maak klant eerst aan, aub',
'domainalreadyexists' => 'Het domein %s is al aan een klant toegewezen',
'nolanguageselect' => 'Geen taal geselecteerd.',
'nosubjectcreate' => 'U moet een onderwerp ingeven voor dit e-mail sjabloon.',
'nomailbodycreate' => 'U moet een tekst ingeven voor dit e-mail sjabloon.',
'templatenotfound' => 'Sjabloon niet gevonden.',
'alltemplatesdefined' => 'U kunt niet meer sjablonen definiëren, alle talen worden al ondersteund.',
'wwwnotallowed' => 'www is niet toegestaan voor subdomeinen.',
'subdomainiswrong' => 'Het subdomein %s bevat illegale karakters.',
'domaincantbeempty' => 'De domeinnaam kan niet leeg zijn.',
'domainexistalready' => 'Het domein %s bestaat reeds.',
'domainisaliasorothercustomer' => 'Het geselecteerde alias domein verwijst naar zichzelf of is van een andere gebruiker.',
'emailexistalready' => 'Het e-mail adres %s bestaat reeds.',
'maindomainnonexist' => 'Het hoofd-domein %s bestaat niet.',
'destinationnonexist' => 'Maak uw forwarder in het veld \'Destination\' alstublieft.',
'destinationalreadyexistasmail' => 'De forwarder naar %s bestaat reeds als actief e-mail adres.',
'destinationalreadyexist' => 'U heeft al een forwarder die verwijst naar %s .',
'destinationiswrong' => 'De forwarder naar %s bevat illegale karakter(s) of is niet compleet.',
'ipstillhasdomains' => 'De IP/Port combinatie die u verwijderen wilt heeft nog domeinen toegewezen, wijs deze opnieuw to aan andere IP/Poort combinaties voordat u deze IP/Poort combinatie verwijderd.',
'cantdeletedefaultip' => 'U kunt de standaard reseller IP/Poort combinatie niet verwijderen, maak eerst een andere IP/Port combinatie standaard voor reseller voor dat u deze IP/Port combinatie verwijderd.',
'cantdeletesystemip' => 'U kunt het laatste IP/Poort combinatie van het systeem niet verwijderen, maak eerste een andere IP/Port combinatie aan voor het systeem of wijzig het IP-adres van het systeem.',
'myipaddress' => '\'IP\'',
'myport' => '\'Poort\'',
'myipdefault' => 'U moet een IP/Poort combinatie selecteren die standaard moet worden.',
'myipnotdouble' => 'Deze IP/Poort combinatie bestaat reeds.',
'cantchangesystemip' => 'U kunt het laatste system IP niet wijzigen, maak eerst een nieuwe IP/Poort combinatie aan of wijzig het ip-adres van het systeem.',
'sessiontimeoutiswrong' => 'Alleen numerieke "Session Timeout" zijn toegestaan.',
'maxloginattemptsiswrong' => 'Alleen numerieke "Maximaal aantal inlogpogingen" zijn toegestaan.',
'deactivatetimiswrong' => 'Alleen numerieke "Deactiveringstijd" zijn toegestaan.',
'accountprefixiswrong' => 'Het "Klant voorvoegsel" is verkeerd.',
'mysqlprefixiswrong' => 'Het "SQL voorvoegsel" is verkeerd.',
'ftpprefixiswrong' => 'Het "FTP voorvoegsel" is verkeerd.',
'ipiswrong' => 'Het "IP-Adres" is verkeerd. Alleen een geldig ip-adres is toegestaan.',
'vmailuidiswrong' => 'Het "Mails-uid" is verkeerd. Alleen een numeriek UID is toegestaan.',
'vmailgidiswrong' => 'Het "Mails-gid" is verkeerd. Alleen een numeriek GID is toegestaan.',
'adminmailiswrong' => 'Het "Afzender-adres" is verkeerd. Alleen geldige e-mail adressen zijn toegestaan.',
'pagingiswrong' => 'Het aantal "Vermeldingen per pagina" is verkeerd. Alleen numerieke karakters zijn toegestaan.',
'phpmyadminiswrong' => 'De phpMyAdmin-link is niet een geldige link.',
'webmailiswrong' => 'De WebMail-link is niet een geldige link.',
'webftpiswrong' => 'De WebFTP-link is niet een geldige link.',
'stringformaterror' => 'De waarde voor het veld "%s" is niet in het verwachte formaat.',
'loginnameissystemaccount' => 'U kunt geen accounts aanmaken die gelijk zijn aan systeem accounts (bijvoorbeeld beginnend met "%s"). Kies een andere accountnaam aub.',
'youcantdeleteyourself' => 'U kunt uw eigen account, omwille van veiligheidsredenen, niet verwijderen.',
'youcanteditallfieldsofyourself' => 'Opmerking: U kunt, om veiligheidsredenen, niet alle velden van uw account aanpassen.',
'documentrootexists' => 'De map "%s" voor deze klant bestaat reeds. Verwijder deze map alvorens het account aan te maken.',
'formtokencompromised' => 'Het verzoek lijkt te zijn gecompromitteerd. U bent veiligheidshalve uitgelogd.',
'logerror' => 'Log-Fout: %s',
'nomessagetosend' => 'U hebt geen bericht opgegeven.',
'norecipientsgiven' => 'U hebt geen ontvanger opgegeven',
'errorsendingmail' => 'Het versturen van het bericht naar "%s" is mislukt',
'cannotreaddir' => 'De map "%s" kan niet gelezen worden',
'invalidip' => '%s is een ongeldig IP-adres',
'invalidmysqlhost' => 'Ongeldig adres voor MySQL-host: %s',
'cannotuseawstatsandwebalizeratonetime' => 'U kunt Webalizer en AWstats niet tegelijkertijd gebruiken. Kies een van de twee.',
'cannotwritetologfile' => 'Kan logbestand %s niet openen om naartoe te schrijven',
'vmailquotawrong' => 'Het quotum dient een positief getal te zijn.',
'allocatetoomuchquota' => 'U probeerde %s MB Quotum toe te kennen, maar u heeft niet voldoende over.',
'missingfields' => 'Niet alle vereiste velden zijn ingevuld.',
'accountnotexisting' => 'Het opgegeven e-mailaccount bestaat niet.',
'nopermissionsorinvalidid' => 'U hebt geen toestemming om deze instellingen te wijzigen, of u hebt een ongeldig ID opgegeven.',
'phpsettingidwrong' => 'Een configuratie voor PHP met dit ID bestaat niet',
'descriptioninvalid' => 'De omschrijving is te kort, te lang of bevat ongeldige karakters.',
'info' => 'Informatie',
'filecontentnotset' => 'Het bestand mag niet leeg zijn!',
'index_file_extension' => 'Het achtervoegsel dient tussen de 1 en 6 tekens lang te zijn. Het mag alleen tekens zal a-z, A-Z en 0-9 bevatten.',
'customerdoesntexist' => 'De gekozen klant bestaat niet.',
'admindoesntexist' => 'De gekozen beheerder bestaat niet.',
'ipportdoesntexist' => 'De kozen combinatie poort/IP-adres bestaat niet.',
'admin_domain_emailsystemhostname' => 'De naam van de server kan niet gebruikt worden als domein voor e-mail.',
'usernamealreadyexists' => 'De gebruikersnaam %s is reeds in gebruik.',
'errorwhensaving' => 'Fout tijdens opslaan veld %s',
'hiddenfieldvaluechanged' => 'De waarde van het verborgen veld "%s" is gewijzigd tijdens het aanpassen van de instellingen.
Dit is normaliter geen groot probleem maar heeft wel verhinderd dat de instellingen niet zijn opgeslagen.',
'notrequiredpasswordlength' => 'Het opgegeven wachtwoord is te kort. Geef tenminste %s tekens op.',
'overviewsettingoptionisnotavalidfield' => 'Woops, a field that should be displayed as an option in the settings-overview is not an excepted type. You can blame the developers for this. This should not happen!',
'pathmaynotcontaincolon' => 'Het opgegeven pad mag geen dubbele punt (":") bevatten. Geef een correct pad op.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'Er is niet voldaan aan de complexiteit voor het wachtwoord (regex: %s)',
'intvaluetoolow' => 'Het opgegeven nummer is te laag (veld %s)',
'intvaluetoohigh' => 'Het opgegeven nummer is te hoog (veld %s)',
'phpfpmstillenabled' => 'PHP-FPM is op dit moment actief. Schakel dit eerst uit voordat u FCGID inschakelt',
'fcgidstillenabled' => 'FCGID is op dit moment actief. Schakel dit eerst uit voordat u PHP-FPM inschakelt',
],
'extras' => [
'description' => 'Hier kunt u wat extra instellingen doen zoals map beveiliging. Het systeem heeft enkele minuten nodig om elke wijziging door te voeren.',
'directoryprotection_add' => 'Map beveiliging toevoegen',
'view_directory' => 'map inhoud laten zien',
'pathoptions_add' => 'Pad opties toevoegen',
'directory_browsing' => 'map inhoud browsen',
'pathoptions_edit' => 'Pad opties bewerken',
'errordocument404path' => 'URL naar Foutdocument 404',
'errordocument403path' => 'URL naar Foutdocument 403',
'errordocument500path' => 'URL naar Foutdocument 500',
'errordocument401path' => 'URL naar Foutducument 401',
'execute_perl' => 'perl/CGI uitvoeren',
'htpasswdauthname' => 'Reden voor authenticatie (AuthName)',
'directoryprotection_edit' => 'mapbeveiliging aanpassen',
],
'ftp' => [
'description' => 'Hier kunt u nieuwe FTP accounts maken of bestaande accounts wijzigen. De wijzigingen worden direct doorgevoerd en het account kan direct gebruikt worden.',
'account_add' => 'Maak nieuw account',
'account_edit' => 'FTP account aanpassen',
'editpassdescription' => 'Nieuw wachtwoord of leeg voor het oude wachtwoord.',
],
'index' => [
'customerdetails' => 'Klant Details',
'accountdetails' => 'Account Details',
],
'logger' => [
'date' => 'Datum',
'type' => 'Type',
'action' => 'Actie',
'user' => 'Gebruiker',
'truncate' => 'Log legen',
],
'login' => [
'username' => 'Gebruikersnaam',
'password' => 'Wachtwoord',
'language' => 'Taal',
'login' => 'Inloggen',
'logout' => 'Uitloggen',
'profile_lng' => 'Profiel taal',
'forgotpwd' => 'Wachtwoord vergeten?',
'presend' => 'Wachtwoord opnieuw instellen',
'email' => 'E-mailadres',
'remind' => 'Mijn wachtwoord opnieuw instellen',
'usernotfound' => 'Gebruiker niet gevonden!',
'backtologin' => 'Terug naar inlogpagina',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Hallo,\\n\\nUw mail account {EMAIL}\\nis succesvol aangemaakt.\\n\\nDit is een automatisch verstuurde\\ne-mail, beantwoord deze niet AUB!\\n\\nMet vriendelijke groet, uw beheerder',
'subject' => 'Mail account succesvol aangemaakt',
],
'createcustomer' => [
'mailbody' => 'Hallo {FIRSTNAME} {NAME},\\n\\nhierbij uw account informatie:\\n\\nGebruikersnaam: {USERNAME}\\nWachtwoord: {PASSWORD}\\n\\nMet vriendelijke groet,\\nuw beheerder',
'subject' => 'Account informatie',
],
'pop_success_alternative' => [
'mailbody' => 'Hallo,\\n\\nuw mailaccount {EMAIL}\\nis met succes opgezet.\\nUw wachtwoord is {PASSWORD}.\\n\\nDit is een automatisch gegenereerde\\ne-mail, u kunt hierop niet antwoorden!\\n\\nMet vriendelijk groet, uw beheerder',
'subject' => 'Mailaccount actief gemaakt',
],
'password_reset' => [
'subject' => 'Wachtwoord opnieuw instellen',
'mailbody' => 'Hallo {USERNAME},\\n\\nuw wachtwoord voor froxlor is opnieuw ingesteld!\\nHet nieuwe wachtwoord is: {LINK}\\n\\nMet vriendelijke groet,\\nuw beheerder',
],
'new_database_by_customer' => [
'subject' => '[froxlor] Nieuwe database aangemaakt',
'mailbody' => 'Geachte {CUST_NAME},
u hebt zojuist een nieuwe database aangemaakt. Hier zijn nogmaals de ingevoerde gegevens:
Naam database: {DB_NAME}
Wachtwoord: {DB_PASS}
Beschrijving: {DB_DESC}
Hostnaam database: {DB_SRV}
phpMyAdmin: {PMA_URI}
Met vriendelijke groet, uw beheerder',
],
'new_ftpaccount_by_customer' => [
'subject' => 'Nieuwe FTP-gebruiker aangemaakt',
'mailbody' => 'Geachte {CUST_NAME},
u hebt zojuist een nieuwe FTP-gebruiker aangemaakt. Hier is de opgegeven informatie:
Gebruikersnaam: {USR_NAME}
Wachtwoord: {USR_PASS}
Pad: {USR_PATH}
Met vriendelijke groet, uw beheerder',
],
],
'menu' => [
'message' => 'Berichten',
],
'menue' => [
'main' => [
'main' => 'Main',
'changepassword' => 'Wijzig wachtwoord',
'changelanguage' => 'Wijzig taal',
'username' => 'Ingelogd als: ',
],
'email' => [
'emails' => 'Adressen',
],
'domains' => [
'domains' => 'Domeinen',
'settings' => 'Instellingen',
],
'extras' => [
'directoryprotection' => 'Map beveiliging',
'pathoptions' => 'pad opties',
],
'traffic' => [
'traffic' => 'Dataverkeer',
'current' => 'Deze maand',
],
'phpsettings' => [
'maintitle' => 'PHP Configuratie\'s',
],
'logger' => [
'logger' => 'Systeemlog',
],
],
'message' => [
'norecipients' => 'Er is geen email verstuurd omdat er geen ontvangers in de database zijn',
'success' => 'Bericht verzonden naar ontvangers %s',
],
'mysql' => [
'databasename' => 'gebruiker/database naam',
'databasedescription' => 'database omschrijving',
'database_create' => 'Maak database',
'description' => 'Hier kunt u MySQL-Databases maken en wijzigen. De wijzigingen worden direct gemaakt en de database kan direkt gebruikt worden. In het menu dat links staat vind u de tool phpMyAdmin welke u kunt gebruiken om uw database makkelijk te beheren.
Om gebruikt te maken van uw database in uw eigen php programmas kunt u de volgende instellingen gebruiken: (De gegeven in italics moeten aangepast worden in wat u ingevoerd heeft!) Hostnaam: Gebruikersnaam: Databasenaam Wachtwoord: het wachtwoord dat u gekozen heeft Database: Databasenaam',
],
'panel' => [
'edit' => 'bewerken',
'delete' => 'verwijderen',
'create' => 'nieuw',
'save' => 'opslaan',
'yes' => 'ja',
'no' => 'nee',
'emptyfornochanges' => 'leeg laten voor huidige instelling',
'emptyfordefault' => 'leeg laten voor de standaard instellingen',
'path' => 'Pad',
'toggle' => 'In- of uitschalen',
'next' => 'volgende',
'dirsmissing' => 'De opgegeven map bestaat niet.',
'urloverridespath' => 'URL (Vervangt path)',
'pathorurl' => 'Pad of URL',
'ascending' => 'oplopend',
'descending' => 'aflopend',
'search' => 'Zoeken',
'used' => 'gebruikt',
'translator' => 'Vertaler',
'reset' => 'wijzigingen verwerpen',
'pathDescription' => 'Indien de map niet bestaat wordt deze automatisch aangemaakt.
Indien u wilt doorverwijzen naar een ander domein dient deze te beginnen met http:// of https://',
'back' => 'Back',
'reseller' => 'wederverkoper',
'admin' => 'beheerder',
'customer' => 'klant(en)',
'send' => 'verzenden',
'nosslipsavailable' => 'Er zijn op dit moment geen SSL IP/poorten beschikbaar',
'backtooverview' => 'Terug naar overzicht',
'dateformat' => 'YYYY-MM-DD',
'dateformat_function' => 'Y-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Standaard',
'never' => 'Nooit',
'active' => 'Actief',
'please_choose' => 'Maak een keuze',
'allow_modifications' => 'Aanpassingen toestaan',
'megabyte' => 'MegaByte',
'not_supported' => 'Wordt niet ondersteund in: ',
'view' => 'weergeven',
'toomanydirs' => 'Teveel submappen. Er wordt teruggevallen op handmatige invoer.',
'abort' => 'Afbreken',
'not_activated' => 'niet actief',
'off' => 'uit',
'options' => 'opties',
'neverloggedin' => 'Nog niet ingelogd',
'descriptionerrordocument' => 'Kan een URL, pad naar een bestand of een tekenreeks zijn die is omsloten door " " Laat leeg voor de standaardwaarde.',
'unlock' => 'ontgrendelen',
],
'pwdreminder' => [
'success' => 'Wachtwoord opnieuw ingesteld. U ontvangt spoedig een e-mail met uw nieuwe wachtwoord.',
'notallowed' => 'Het opnieuw instellen van wachtwoorden is uitgeschakeld',
],
'question' => [
'question' => 'Beveiligingsvraag',
'admin_customer_reallydelete' => 'Weet u zeker dat u de klant %s wilt verwijderen? Dit kan niet ongedaan worden gemaakt!',
'admin_domain_reallydelete' => 'Weet u zeker dat u het domein %s wilt verwijderen?',
'admin_domain_reallydisablesecuritysetting' => 'Weet u echt heel zeker dat deze beveiligingsinstellingen wilt deactiveren (OpenBasedir)?',
'admin_admin_reallydelete' => 'Weet u zeker dat u de admin %s verwijderen wilt? Iedere klant en domein zal worden toegewezen aan de hoofd administrator.',
'admin_template_reallydelete' => 'Weet u zeker dat u het sjabloon \'%s\' verwijderen wilt?',
'domains_reallydelete' => 'Weet u zeker dat u het domein %s verwijderen wilt?',
'email_reallydelete' => 'Weet u zeker dat u het e-mail adres %s verwijderen wilt?',
'email_reallydelete_account' => 'Weet u zeker dat het e-mail account van %s verwijderen wilt?',
'email_reallydelete_forwarder' => 'Weet u zeker dat u de forwarder %s verwijderen wilt?',
'extras_reallydelete' => 'Weet u zeker dat u de map beveiliging voor de map %s verwijderen wilt?',
'extras_reallydelete_pathoptions' => 'Weet u zeker dat u de pad-opties voor %s verwijderen wilt?',
'ftp_reallydelete' => 'Weet u zeker dat u het FTP account %s verwijderen wilt?',
'mysql_reallydelete' => 'Weet u zeker dat u de database %s verwijderen wilt? Dit kan niet ongedaan gemaakt worden!',
'admin_configs_reallyrebuild' => 'Weet u zeker dat u de configuratie bestanden voor Apache en Bind opnieuw wilt opbouwen?',
'admin_ip_reallydelete' => 'Weet u zeker dat u het IP adres %s verwijderen wilt?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Weet u zeker dat u de document root voor dit domein niet in de klant-root van de klant wil hebben?',
'admin_counters_reallyupdate' => 'Weet u zeker dat u gebruikte bronnen wilt herberekenen?',
'admin_cleartextmailpws_reallywipe' => 'Weet u zeker dat u alle onversleutelde wachtwoorden wilt verwijderen? Deze opdracht is niet terug te draaien!',
'logger_reallytruncate' => 'Weet u zeker dat u de tabel "%s" wilt legen?',
'admin_quotas_reallywipe' => 'Weet u zeker dat u alle quota wilt verwijderen? Dit is niet terug te draaien!',
'admin_quotas_reallyenforce' => 'Weet u zeker dat u quota wilt afdwingen? Dit is niet terug te draaien!',
'phpsetting_reallydelete' => 'Weet u zeker dat u deze instellingen wilt verwijderen? Alle domeinen die deze configuratie gebruiken zullen terugvallen op de standaardinstellingen.',
'customer_reallyunlock' => 'Weet u zeker dat u klant %s? wilt ontgrendelen',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Sessie Timeout',
'description' => 'Hoe lang moet een gebruiker inactief zijn voor dat de sessie ongeldig wordt (seconden)?',
],
'accountprefix' => [
'title' => 'Klant Voorvoegsel',
'description' => 'Welk voorvoegsel moet een klant account hebben?',
],
'mysqlprefix' => [
'title' => 'SQL Voorvoegsel',
'description' => 'Welk voorvoegsel moet een mysql account hebben?',
],
'ftpprefix' => [
'title' => 'FTP Voorvoegsel',
'description' => 'Welk voorvoegsel dienen nieuwe FTP-accounts te krijgen? Indien u dit wijzigt, dient ook de query voor Quota in het configuratiebestand van de FTP-server aan te passen! ',
],
'documentroot_prefix' => [
'title' => 'Document map',
'description' => 'Waar zullen alle gegeven opgeslagen worden?',
],
'logfiles_directory' => [
'title' => 'Logfiles map',
'description' => 'Waar zullen alle log-file opgeslagen worden?',
],
'ipaddress' => [
'title' => 'IP-Adres',
'description' => 'Wat is het IP-adres van deze server?',
],
'hostname' => [
'title' => 'Hostnaam',
'description' => 'Wat is de hostnaam van deze server?',
],
'apachereload_command' => [
'title' => 'Apache reload commando',
'description' => 'Wat is het commando op apache te herladen?',
],
'bindconf_directory' => [
'title' => 'Bind configuratie map',
'description' => 'Waar staan de bind configuratie bestanden?',
],
'bindreload_command' => [
'title' => 'Bind reload commando',
'description' => 'Wat is het command om bind te herladen?',
],
'vmail_uid' => [
'title' => 'Mails-Uid',
'description' => 'Welk UserID moeten de e-mails hebben?',
],
'vmail_gid' => [
'title' => 'Mails-Gid',
'description' => 'Welke GroupID moeten e-mails hebben?',
],
'vmail_homedir' => [
'title' => 'Mails-Homedir',
'description' => 'Waar moeten alle e-mail opgeslagen worden?',
],
'adminmail' => [
'title' => 'Afzender',
'description' => 'Wat is de afzender voor e-mail verstuurd vanuit het Panel?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin URL',
'description' => 'Wat is de URL die verwijst naar phpMyAdmin? (moet beginnen met http://)',
],
'webmail_url' => [
'title' => 'WebMail URL',
'description' => 'Wat is de URL die verwijst naar WebMail? (moet beginnen met http://)',
],
'webftp_url' => [
'title' => 'WebFTP URL',
'description' => 'Wat is de URL die verwijst naar WebFTP? (moet beginnen met http://)',
],
'language' => [
'description' => 'Wat is uw standaard server taal?',
],
'maxloginattempts' => [
'title' => 'Maximaal aantal inlog pogingen',
'description' => 'Maximaal aantal inlog pogingen voor het account gedeactiveerd wordt.',
],
'deactivatetime' => [
'title' => 'Deactiveringstijd',
'description' => 'Tijd (in seconden) dat een account gedeactiveerd wordt na te veel inlogpogingen.',
],
'pathedit' => [
'title' => 'Manier van Pad ingeven',
'description' => 'Moet het pad geselecteerd worden met een \'dropdown\' menu of met een invoerveld?',
],
'paging' => [
'title' => 'Vermeldingen per pagina',
'description' => 'Hoeveel vermeldingen er getoond moeten worden per pagina? (0 = alles laten zien)',
],
'defaultip' => [
'title' => 'Standaard IP/Poort',
'description' => 'Wat is de standaard IP/Poort combinatie?',
],
'phpappendopenbasedir' => [
'title' => 'Pad dat toegevoegd wordt aan OpenBasedir',
'description' => 'Deze paden (gescheiden door dubbele punten) zullen worden toegevoegd aan het OpenBasedir-statement in iedere vhost-container.',
],
'natsorting' => [
'title' => 'Gebruik een natuurlijke manier van sorteren',
'description' => 'Lijsten worden gesorteerd zoals web1 -> web2 -> web11 in plaats van web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Pad naar webinhoud voor gedeactiveerde gebruikers',
'description' => 'Wanneer een gebruiker geactiveerd is, wordt dit pad gebruikt voor zijn/haar webinhoud.',
],
'mailpwcleartext' => [
'title' => 'Sla het wachtwoord ook onversleuteld op in de database',
'description' => 'Indien ingesteld op JA worden wachtwoorden in klare tekst opgeslagen in de database (zichtbaar voor iedereen die toegang heeft tot de tabel mail_users). Activeer dit alleen wanneer u gebruik gaat maken van SASL!',
'removelink' => 'Klik hier om alle onversleutelde wachtwoorden uit de database te verwijderen',
],
'ftpdomain' => [
'title' => 'FTP accounts @domein',
'description' => 'Kunnen klanten FTP-accounts in de vorm gebruiker@domein aanmaken?',
],
'mod_fcgid' => [
'title' => 'PHP insluiten via mod_fcgid/suexec',
'description' => 'Gebruik mod_fcgid/suexec/libnss_mysql om PHP uit te voeren onder het gebruikersaccount. Dit vereist een aangepaste configuratie van de webserver. Alle volgende optie\'s zijn alleen geldig wanneer deze module actief is.',
'configdir' => [
'title' => 'Configuratiemap',
'description' => 'Waar dienen alle configuratiebestanden voor FCGID te worden opgeslagen? Indien u geen aangepaste versie van SuExec gebruikt, zoals gebruikelijk is, dient dit pad onder /var/www/ te liggen',
],
'tmpdir' => [
'title' => 'Map voor tijdelijke bestanden',
'description' => 'Waar dienen de tijdelijke mappen te worden opgeslagen?',
],
'starter' => [
'title' => 'Processen per domein',
'description' => 'Hoeveel processen moeten gestart/toegestaan worden per domein? De waarde 0 wordt aangeraden, aangezien PHP zelf het aantal processen goed kan inschatten.',
],
'wrapper' => [
'title' => 'Wrapper in vhosts',
'description' => 'Hoe moet de wrapper ingesloten worden in vhosts?',
],
'peardir' => [
'title' => 'Globale PEAR-mappen',
'description' => 'Welke PEAR-mappen dienen te worden ingesloten in elke php.ini? Bij meerdere mappen dienen deze te worden gescheiden door dubbele punten.',
],
'maxrequests' => [
'title' => 'Maximaal aantal verzoeken per domein',
'description' => 'Toegestane aantal verzoeken per domein',
],
'defaultini' => 'Standaard PHP-configuratie voor nieuwe domeinen',
'defaultini_ownvhost' => 'Standaard configuratie voor froxlor-vHost',
],
'sendalternativemail' => [
'title' => 'Gebruik alternatief emailadres',
'description' => 'Stuur het wachtwoord naar een ander adres dan het adres dat opgegeven werd tijdens het aanmaken van het emailadres.',
],
'apacheconf_vhost' => [
'title' => 'Bestands-/mapnaam voor vhost-configuratie webserver',
'description' => 'Waar dient het vhost-configuratiebestand opgeslagen te worden? U kunt hier zowel een bestand (alle configuratie\'s in 1 bestand) of een map (apart bestand voor iedere configuratie) opgeven.',
],
'apacheconf_diroptions' => [
'title' => 'Bestands-/mapnaam voor diroptions-configuratie webserver',
'description' => 'Waar dient het diroptions-configuratiebestand opgeslagen te worden? U kunt hier zowel een bestand (alle configuratie\'s in 1 bestand) of een map (apart bestand voor iedere configuratie) opgeven.',
],
'apacheconf_htpasswddir' => [
'title' => 'Mapnaam htpasswd-bestanden webserver',
'description' => 'Waar dienen de htpasswd-bestanden, voor beveiligde toegang, opgeslagen te worden?',
],
'mysql_access_host' => [
'title' => 'Toegangshosts voor MySQL',
'description' => 'Een door komma\'s gescheiden lijst met hosts waarvandaan gebruikers verbinding mogen maken met de MySQL-server.',
],
'webalizer_quiet' => [
'title' => 'Uitvoer Webalizer',
'description' => 'Informatieniveau van Webalizer',
],
'logger' => [
'enable' => 'Logs in-/uitgeschakeld',
'severity' => 'Logniveau',
'types' => [
'title' => 'Log-type(s)',
'description' => 'Om meerdere types te selecteren, houd u CTRL ingedrukt terwijl u selecteert. Beschikbare types zijn: syslog, bestand, mysql',
],
'logfile' => 'Pad naar logfile, inclusief bestandsnaam',
'logcron' => 'Cronjobs loggen',
'logcronoption' => [
'never' => 'Nooit',
'once' => 'Eenmalig',
'always' => 'Altijd',
],
],
'ssl' => [
'openssl_cnf' => 'Standaardinstellingen certificaat',
],
'default_vhostconf' => [
'title' => 'Standaard vhost-instellingen',
'description' => 'De inhoud van dit veld wordt rechtstreeks in de vhost-container geplaatst. N.B.: Deze code wordt niet op fouten gecontroleerd. In geval van fouten kan het zijn dat de webserver niet meer start!',
],
'decimal_places' => 'Aantal getallen achter de komma in uitvoer dataverkeer',
'webalizer_enabled' => 'Webalizer activeren',
'awstats_enabled' => 'AWstats activeren',
'selfdns' => [
'title' => 'Instellingen voor klantdomein',
],
'selfdnscustomer' => [
'title' => 'Klanten toestaan de DNS-instellingen van het domein te wijzigen',
],
'unix_names' => [
'title' => 'Gebruik gebruikersnamen die compatible zijn met UNIX',
'description' => 'Staat het gebruik van - en _ in gebruikersnaam toe, indien ingesteld op Nee',
],
'allow_password_reset' => [
'title' => 'Klanten toestaan hun wachtwoord opnieuw in te stellen',
'description' => 'Klanten kunnen hun wachtwoorden opnieuw instellen. Het nieuwe wachtwoord wordt hen per e-mail toegestuurd.',
],
'allow_password_reset_admin' => [
'title' => 'Beheerders/wederverkopers toestaan hun wachtwoorden opnieuw in te stellen.',
'description' => 'Beheerders/wederverkopers kunnen hun wachtwoorden opnieuw instellen. Het nieuwe wachtwoord wordt hen per e-mail toegestuurd.',
],
'mail_quota' => [
'title' => 'Quotum voor mailbox',
'description' => 'Het standaard quotum voor nieuwe mailboxen (MegaByte).',
],
'mail_quota_enabled' => [
'title' => 'Gebruik mailbox-quota voor mailboxen',
'description' => 'Activeert het gebruik van quota voor mailboxen. Standaard is Nee, aangezien dit verdere configuratie vereist.',
'removelink' => 'Klik hier om alle quota van mailbox te verwijderen.',
'enforcelink' => 'Klik hier om het standaard quotum af te dwingen voor alle accounts.',
],
'index_file_extension' => [
'description' => 'Welk achtervoegsel moet gebruikt worden voor het indexbestand? Dit achtervoegsel wordt gebruikt wanneer een van de beheerders een eigen indexsjabloon heeft gemaakt.',
'title' => 'Achtervoegsel van het indexbestand in nieuwe mappen voor klanten.',
],
'session_allow_multiple_login' => [
'title' => 'Meerdere logins toestaan',
'description' => 'Indien dit is ingeschakeld kan een klant meerdere malen tegelijkertijd inloggen.',
],
'panel_allow_domain_change_admin' => [
'title' => 'Het verplaatsen van domeinen tussen beheerders toestaan',
'description' => 'Indien actief, kunt u een domein toewijzen aan een andere beheerder. Let op: Indien een klant niet is toegewezen aan de beheerder van het domein, kan de betreffende beheerde alle domeinen van deze klant zien!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Het verplaatsen van domeinen tussen klanten toestaan',
'description' => 'Indien actief, kunt u de klant van een domein veranderen. Let op: froxlor zal niet het pad aanpassen. Dit kan ervoor zorgen dat het domein onbruikbaar wordt!',
],
'cron' => [
'debug' => [
'title' => 'Foutopsporing cronscript',
'description' => 'Activeer dit om het lockbestand te bewaren nadat de cron-taak is afgehandeld, zodat het gerbuikt kan worden voor het opsporen van fouten. Let op:Het vastzetten van het lockbestand kan ervoor zorgen dat de volgende cron-taak niet naar behoren functioneert.',
],
],
'specialsettingsforsubdomains' => [
'description' => 'Indien "Ja" zullen deze aangepaste VHost-instellingen worden toegepast op alle subdomeinen.',
],
'panel_password_min_length' => [
'title' => 'Minimumlengte wachtwoord',
'description' => 'Hier kunt u een minimumlengte voor wachtwoorden opgeven. \'0\' betekent geen minimumlengte.',
],
'system_store_index_file_subs' => [
'title' => 'Standaard indexbestand ook plaatsen in nieuwe submappen',
'description' => 'Indien actief wordt dit bestand automatisch geplaatst in nieuw aangemaakte submappen (indien deze nog niet bestaat).',
],
'adminmail_return' => [
'title' => 'Reply-To adres',
'description' => 'Geef een e-mailadres dat gebruikt wordt als antwoord-aan adres voor mails die verzonden worden door het paneel.',
],
'adminmail_defname' => 'Panel e-mail sender name',
'stdsubdomainhost' => [
'title' => 'Standaarddomein voor klanten',
'description' => 'Welke hostnaam dient gebruikt te worden voor standaard subdomeinen voor klanten. Indien leeg zal de naam van het systeem gebruikt worden.',
],
'awstats_path' => 'Pad naar \'awstats_buildstaticpages.pl\' van AWStats',
'awstats_conf' => 'AWStats configuratiepad',
'defaultttl' => 'Standaard TTL voor domeinen in seconden (standaard \'604800\' = 1 week)',
'defaultwebsrverrhandler_enabled' => 'Standaard foutdocumenten voor alle klanten activeren',
'defaultwebsrverrhandler_err401' => [
'title' => 'Bestand/URL voor foutcode 401',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'Bestand/URL voor foutcode 403',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'Bestand/URL voor foutcode 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'Bestand/URL voor foutcode 500',
'description' => '',
],
'ftpserver' => [
'desc' => 'Indien PureFTPD geselecteerd is, worden .ftpquota bestanden dagelijks aangemaakt en/of bijgewerkt',
],
'customredirect_enabled' => [
'title' => 'Klanten toestaan doorverwijzingen te maken',
'description' => 'Klanten toestaan de HTTP-statuscode aan te passen die voor doorverwijzingen gebruikt worden',
],
'customredirect_default' => [
'title' => 'Standaard doorverwijzing',
'description' => 'Kies de standaard doorverwijzingscode indien de klant dit zelf niet gedaan heeft',
],
'mail_also_with_mxservers' => 'Maak mail-, imap-, pop3- en smtp-"A record" ook wanneer MX-Servers zijn ingesteld',
'froxlordirectlyviahostname' => 'froxlor is direct toegankelijk via hostnaam',
'panel_password_regex' => [
'title' => 'Reguliere expressie voor wachtwoorden',
'description' => 'Hier kunt u een reguliere expressie opgeven voor de complexiteit van wachtwoorden. Leeg betekent geen speciale complexiteit',
],
'mod_fcgid_ownvhost' => [
'title' => 'FCGID inschakelen voor de VHost voor froxlor',
'description' => 'Indien ingeschakeld wordt froxlor ook uitgevoerd onder een lokale gebruiker Let op:Dit vereist handmatige configuratie, zie FCGID - handbook',
],
'perl' => [
'suexecworkaround' => [
'title' => 'Om SuExec heenwerken (Geldt alleen voor Apache)',
'description' => 'Schakel dit alleen in indien de documentmappen van klanten niet in het pad van Apache SuExec vallen. Indien ingeschakeld zal froxlor een symbolische link maken voor het pad waarvoor Perl actief is + /cgi-bin/. Merk op dat Perl dan alleen werkt in de submap /cgi-bin/ en niet in de map zelf (zoals het werkt zonder deze oplossing!)',
],
'suexeccgipath' => [
'title' => 'Pad naar symbolische links naar Perl-mappen van klanten',
'description' => 'U dient dit alleen op te geven indien "Om SuExec heenwerken" actief is. LET OP: Zorg ervoor dat deze map onder het pad van SuExec valt, anders is deze oplossing waardeloos',
],
],
'awstats_awstatspath' => 'Pad naar AWStats \'awstats.pl\'',
'awstats_icons' => [
'title' => 'Pad naar iconen AWstats icons',
'description' => 'bijvoorbeeld /usr/share/awstats/htdocs/icon/',
],
'login_domain_login' => 'Login met domeinen toestaan',
'nginx_php_backend' => [
'title' => 'Nginx PHP backend',
'description' => 'dit is waar het PHP-proces luistert naar verzoeken van nginx, kan een unix socket van ip:poort combinatie zijn',
],
'phpreload_command' => [
'title' => 'Commando voor het herladen van PHP',
'description' => 'wordt gebruikt om de PHP backend opnieuw te laden, indien actief Standaard: leeg',
],
'phpfpm' => 'php-fpm inschakelen',
'phpfpm_settings' => [
'configdir' => 'Configuratiemap van php-fpm',
'reload' => 'Commando voor het herstarten van php-fpm',
'pm' => 'Process manager control (pm)',
'max_children' => [
'title' => 'Het aantal subprocessen',
'description' => 'Het aantal subprocessen dat gestart wordt indien PM is ingesteld op \'statisch\' en het maximum aantal subprocessen wanneer PM is ingesteld op \'dynamisch\' Gelijk aan PHP_FCGI_CHILDREN',
],
'start_servers' => [
'title' => 'Het aantal subprocessen bij het starten',
'description' => 'Noot: Wordt alleen gebruikt indien PM is ingesteld op \'dynamisch\'',
],
'min_spare_servers' => [
'title' => 'Het gewenste minimum aantal vrije subprocessen',
'description' => 'Noot: Wordt alleen gebruikt indien PM is ingesteld op \'dynamisch\' Noot: Verplicht wanneer PM ingesteld is op \'dynamisch\'',
],
'max_spare_servers' => [
'title' => 'THet gewenste minimum aantal vrije subprocessen',
'description' => 'Noot: Wordt alleen gebruikt indien PM is ingesteld op \'dynamisch\' Noot: Verplicht wanneer PM ingesteld is op \'dynamisch\'',
],
'max_requests' => [
'title' => 'Verzoeken voor subproces voordat het opnieuw gestart wordt',
'description' => 'Voor het eindeloos verwerken kunt u deze waarde instellen op \'0\'. Gelijk aan PHP_FCGI_MAX_REQUESTS.',
],
],
],
'spf' => [
'use_spf' => 'SPF voor domeinen activeren?',
'spf_entry' => 'SPF regel voor alle domeinen',
],
'success' => [
'success' => 'Informatie',
'clickheretocontinue' => 'Klik hier om verder te gaan',
'settingssaved' => 'De instellingen zijn opgeslagen.',
],
'tasks' => [
'outstanding_tasks' => 'Uitstaande cron-taken',
'REBUILD_VHOST' => 'Bezig met opnieuw opbouwen van de configuratie van de webserver',
'CREATE_HOME' => 'Klant met naam %s wordt toegevoegd',
'REBUILD_DNS' => 'Opnieuw opbouwen bind-configuratie',
'CREATE_FTP' => 'Map aanmaken voor nieuwe FTP-gebruiker',
'DELETE_CUSTOMER_FILES' => 'Verwijderen klantbestanden van %s',
'noneoutstanding' => 'Er zijn op dit moment geen uitstaande taken voor froxlor',
],
'traffic' => [
'month' => 'Maand',
'day' => 'Dag',
'months' => [
1 => 'Januari',
2 => 'Februari',
3 => 'Maart',
4 => 'April',
5 => 'Mei',
6 => 'Juni',
7 => 'Juli',
8 => 'Augustus',
9 => 'September',
10 => 'Oktober',
11 => 'November',
12 => 'December',
],
'mb' => 'Datavekeer (MB)',
'distribution' => 'FTP | HTTP | Mail',
'sumhttp' => 'Samenvatting HTTP-verkeer in',
'sumftp' => 'Samenvatting FTP-verkeer in',
'summail' => 'Samenvatting Mail-verkeer in',
],
'translator' => 'Sander Klein/Frits Letteboer',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'Een nieuwere versie van froxlor is geinstalleerd maar is nog niet geconfigureerd. Alleen de beheerder kan inloggen en de update voltooien.',
'update' => 'froxlor Update',
'proceed' => 'Verdergaan',
'update_information' => [
'part_a' => 'De bestanden van froxlor zijn bijgewerkt naar versie %s. De geinstalleerde versie is %s.',
'part_b' => '
Klanten kunnen niet inloggen totdat de update voltooid is. Verdergaan?',
],
'noupdatesavail' => 'U gebruikt reeds de meest recente versie van froxlor.',
],
];
================================================
FILE: lng/pt.lng.php
================================================
* @author Ricardo Luiz Costa
* @author Thiago Goncalves de Castro
* @author Rafael Andrade
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'admin' => [
'overview' => 'Visão geral',
'ressourcedetails' => 'Recursos usados',
'systemdetails' => 'Detalhes do sistema',
'froxlordetails' => 'Detalhes do froxlor',
'installedversion' => 'Versão instalada',
'latestversion' => 'Ultima Versão',
'lookfornewversion' => [
'clickhere' => 'procurar pela internet',
'error' => 'Erro de leitura',
],
'resources' => 'Recursos',
'customer' => 'Cliente',
'customers' => 'Clientes',
'customer_add' => 'Criar cliente',
'customer_edit' => 'Editar cliente',
'domains' => 'Domínios',
'domain_add' => 'Criar domínio',
'domain_edit' => 'Editar domínio',
'subdomainforemail' => 'Subdomínio como "emaildomains"',
'admin' => 'Administrador',
'admins' => 'Administradores',
'admin_add' => 'Criar administrador',
'admin_edit' => 'Editar administrador',
'customers_see_all' => 'Mostrar todos os clientes',
'change_serversettings' => 'Alterar configuraççes do servidor?',
'server' => 'Sistema',
'serversettings' => 'Configurações',
'rebuildconf' => 'Escrever de novo os configs',
'stdsubdomain' => 'Subdomínio padrão',
'stdsubdomain_add' => 'Criar Subdomínio padrão',
'phpenabled' => 'PHP Habilitado',
'deactivated' => 'Desativado',
'deactivated_user' => 'Desativar usuário',
'sendpassword' => 'Enviar senha',
'ownvhostsettings' => 'Own vHost-Settings',
'configfiles' => [
'serverconfiguration' => 'Configurações',
'overview' => 'Visão Geral',
'wizard' => 'Assistente',
'distribution' => 'Distribuição',
'service' => 'Serviço',
'daemon' => 'Daemon',
'http' => 'Servidor Web (HTTP)',
'dns' => 'Servidor de Nomes (DNS)',
'mail' => 'Servidor de Emails (POP3/IMAP)',
'smtp' => 'Servidor de Emails (SMTP)',
'ftp' => 'Servidor FTP',
'etc' => 'Outros (Sistema)',
'choosedistribution' => 'Escolha uma distribuição',
'chooseservice' => 'Escolha um serviço',
'choosedaemon' => 'Escolha um daemon',
'statistics' => 'Estatísticas',
],
'templates' => [
'templates' => 'Templates',
'template_add' => 'Adicionar template',
'template_edit' => 'Editar template',
'action' => 'Ação',
'email' => 'E-Mail',
'subject' => 'Assunto',
'mailbody' => 'Mensagem',
'createcustomer' => 'E-mail de boas-vindas para novos clientes',
'pop_success' => 'E-mail de boas-vindas para nova conta de e-mail',
'template_replace_vars' => 'Variaveis para serem substituidas no template:',
'FIRSTNAME' => 'Altere para o primeiro nome do cliente.',
'NAME' => 'Altere para o nome do cliente.',
'USERNAME' => 'Altere para nome da conta do cliente.',
'PASSWORD' => 'Altere com a senha da conta do cliente.',
'EMAIL' => 'Altere com os dados do servidor POP3/IMAP.',
'TRAFFIC' => 'Substituído com o tráfego, o que foi atribuído ao cliente.',
'TRAFFICUSED' => 'Substituído com o tráfego, que foi esgotado pela cliente.',
'pop_success_alternative' => 'Bem-vindo para novas contas e-mail enviado ao endereço alternativo',
'EMAIL_PASSWORD' => 'Substituído a senha da conta POP3/IMAP.',
'index_html' => 'Indice de arquivo recém-criado no diretório de cliente',
'SERVERNAME' => 'Substitua pelo nome do servidor.',
'CUSTOMER' => 'Substitua pelo login do cliente.',
'ADMIN' => 'Substitua pelo login do admin.',
'CUSTOMER_EMAIL' => 'Substitua pelo endereço de email do cliente.',
'ADMIN_EMAIL' => 'Substitua pelo endereço de email do administrador.',
'filetemplates' => 'Modelo de Arquivo',
'filecontent' => 'Conteúdo do Arquivo',
],
'ipsandports' => [
'ipsandports' => 'IPs e Portas',
'add' => 'Adicionar IP/Porta',
'edit' => 'Editar IP/Porta',
'ipandport' => 'IP/Porta',
'ip' => 'IP',
'port' => 'Porta',
'create_listen_statement' => 'Criar instrução de escuta',
'create_namevirtualhost_statement' => 'Criar instrução de NameVirtualHost',
'create_vhostcontainer' => 'Criar vHost-Container',
'create_vhostcontainer_servername_statement' => 'Criar instrução de ServerName no vHost-Container',
'enable_ssl' => 'Esta é uma porta SSL?',
'ssl_cert_file' => 'Caminho para o certificado SSL',
],
'valuemandatory' => 'Este valor é imperativo.',
'valuemandatorycompany' => 'Qualquer um "nome" e "nome" o "companhia" deve ser enchido.',
'webserver' => 'Servidor Web',
'memorylimitdisabled' => 'Desabilitado',
'serversoftware' => 'Servidor de Software',
'phpversion' => 'Versão do PHP',
'phpmemorylimit' => 'Memória Limite do PHP',
'mysqlserverversion' => 'Versão do MySQL Server',
'mysqlclientversion' => 'Versão do MySQL Client',
'webserverinterface' => 'Interface do Servidor Web',
'accountsettings' => 'Configurações de Conta',
'panelsettings' => 'Painel de Controle',
'systemsettings' => 'Configurações do Sistema',
'webserversettings' => 'Configurações do WebServer',
'mailserversettings' => 'Configurações do Servidor de Email',
'nameserversettings' => 'Configurações dos Servidores de Nomes',
'updatecounters' => 'Recalcular utilização de recursos',
'subcanemaildomain' => [
'never' => 'Nunca',
'choosableno' => 'Escolhe, default não',
'choosableyes' => 'Escolher, default sim',
'always' => 'Sempre',
],
'webalizersettings' => 'Configurações do Webalizer',
'webalizer' => [
'normal' => 'Normal',
'quiet' => 'Quieto',
'veryquiet' => 'Sem Saída',
],
'domain_nocustomeraddingavailable' => 'Não adicionar um domínio corretamente. Você primeiro precisa adicionar um cliente.',
'loggersettings' => 'Configurações de Logs',
'logger' => [
'normal' => 'normal',
'paranoid' => 'paranóico',
],
'emaildomain' => 'Domínio de Email',
'email_only' => 'Somente Email?',
'wwwserveralias' => 'Adicionar um "www." ServerAlias',
'subject' => 'Assunto',
'recipient' => 'Destinatário',
'message' => 'Escrever uma mensagem',
'text' => 'Mensagem',
'sslsettings' => 'Configuração de SSL',
'dkimsettings' => 'Configurações de Chave de Domínios',
'caneditphpsettings' => 'Pode alterar as configurações PHP relacionadas com o domínio?',
'allips' => 'Todos os IPs',
'awstatssettings' => 'Configurações Awtats',
'domain_dns_settings' => 'Configurações de DNS',
'activated' => 'Ativado',
'statisticsettings' => 'Configurações de Estatísticas',
'or' => 'ou',
'sysload' => 'Carga do Sistema',
'noloadavailable' => 'Não disponível',
'nouptimeavailable' => 'Não disponível',
'nosubject' => '(Sem Assunto)',
'accountdata' => 'Data da Conta',
'contactdata' => 'Data de Contato',
'servicedata' => 'Data de Serviço',
'security_settings' => 'Opções de Segurança',
'know_what_youre_doing' => 'Somente altere, se você sabe o que está fazendo',
'show_version_login' => [
'title' => 'Mostrar versão do froxlor no login',
'description' => 'Mostar a versão do froxlor no rodapé da página de login',
],
'show_version_footer' => [
'title' => 'Mostar versão do froxlor no rodapé',
'description' => 'Mostar a versão do froxlor no rodapé do resto das páginas',
],
'froxlor_graphic' => [
'title' => 'Cabeçalho gráfico do froxlor',
'description' => 'Quais gráficos devem aparece no topor',
],
'phpsettings' => [
'title' => 'Configurações do PHP',
'description' => 'Descrição',
'actions' => 'Ações',
'activedomains' => 'Em uso pelo(s) domínio(s)',
'notused' => 'Configuração não está em uso',
'editsettings' => 'Alterar Configuração do PHP',
'addsettings' => 'Criar novas configurações do PHP',
'viewsettings' => 'Visualizar Configuração do PHP',
'phpinisettings' => 'Configurações do php.ini',
'addnew' => 'Criar novas configurações',
'binary' => 'Binário do PHP',
'file_extensions' => 'Extensões de arquivos',
'file_extensions_note' => '(Sem pontos, separados por espaços)',
],
'misc' => 'Variados',
'phpconfig' => [
'template_replace_vars' => 'As variáveis que serão substituídas nas Configurações',
'pear_dir' => 'Serão substituídos com a definição global para o diretório pear.',
'open_basedir' => 'Serão substituídos com a definição do domínio open_basedir.',
'tmp_dir' => 'Substituído com o diretório temporário do domínio.',
'open_basedir_global' => 'Serão substituídos com o valor global do caminho que será anexado ao open_basedir.',
'customer_email' => 'Serão substituídos com o endereço de e-mail do cliente que é dono desse domínio.',
'admin_email' => 'Serão substituídos por e-mail do administrador quem possui esse domínio.',
'domain' => 'Serão substituídos com o domínio.',
'customer' => 'Será substituída pelo nome do login do cliente que é dono desse domínio.',
'admin' => 'Será substituída pelo nome de login do administrador que possui esse domínio.',
],
'expert_settings' => 'Configurações Avançadas',
'mod_fcgid_starter' => [
'title' => 'Processos PHP para este domínio (vazio para usar valor padrão)',
],
'phpserversettings' => 'Configuração do PHP',
'mod_fcgid_maxrequests' => [
'title' => 'Máximo de requisições php para este domínio (vazio para valor default)',
],
],
'changepassword' => [
'old_password' => 'Senha atual',
'new_password' => 'Nova senha',
'new_password_confirm' => 'Repita a nova senha',
'new_password_ifnotempty' => 'Nova senha (em branco = não alterar)',
'also_change_ftp' => ' trocar tambem a senha da conta principal de FTP',
'also_change_stats' => 'Troca a senha das estatísticas',
],
'cronjobs' => [
'notyetrun' => 'Ainda não está rodando',
],
'customer' => [
'documentroot' => 'Diretório home',
'name' => 'Sobrenome',
'firstname' => 'Primeiro nome',
'company' => 'Empresa',
'street' => 'Endereço',
'zipcode' => 'CEP',
'city' => 'Cidade',
'phone' => 'Telefone',
'fax' => 'Fax',
'email' => 'E-mail',
'customernumber' => 'Cliente ID',
'diskspace' => 'Espaço de disco (MB)',
'traffic' => 'Tráfego (GB)',
'mysqls' => 'Bancos de dados-MySQL',
'emails' => 'Endereços de e-mail',
'accounts' => 'Contas de e-mail',
'forwarders' => 'Redirecionamentos de e-mail',
'ftps' => 'Contas de FTP',
'subdomains' => 'Sub-Domínio(s)',
'domains' => 'Domínio(s)',
'email_quota' => 'E-mail Quota',
'email_imap' => 'E-mail IMAP',
'email_pop3' => 'E-mail POP3',
'mail_quota' => 'Quota de Email',
'title' => 'Título',
'country' => 'País',
],
'dkim' => [
'dkim_prefix' => [
'title' => 'Prefixo',
'description' => 'Por favor, especifique o caminho para o os arquivos DKIM RSA, bem como para os arquivos de configuração para o plugin Milter',
],
'dkim_domains' => [
'title' => 'Nome de arquivo de domínios',
'description' => 'Nome do Arquivo dos Domínios do DKIM, parâmetro especificado na configuração do dkim-Milter',
],
'dkim_dkimkeys' => [
'title' => 'Nome de arquivo de chaves',
'description' => 'Nome do ArquivoDKIM KeyList do parâmetro especificado na configuração dkim-Milter',
],
'dkimrestart_command' => [
'title' => 'Comando para reiniciar o Milter',
'description' => 'Por favor especifique um comando para reiniciar o DKIM Milter',
],
'use_dkim' => [
'title' => 'Ativar suporte para DKIM?',
'description' => 'Você deseja usar o sistema de chaves de domínio (DKIM) ?',
],
],
'dns' => [
'destinationip' => 'Domínio IP',
'standardip' => 'IP padrão do servidor',
'a_record' => 'Gravar-A(Opcional IPV6)',
'cname_record' => 'Gravar-CNAME',
'mxrecords' => 'Definir entradas MX',
'standardmx' => 'Servidor MX padrão',
'mxconfig' => 'Registros MX personalizados',
'priority10' => 'Prioridade 10',
'priority20' => 'Prioridade 20',
'txtrecords' => 'Difinir entradas TXT',
'txtexample' => 'Exemplo (Entrada-SPF): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
],
'domain' => [
'docroot' => 'trajeto da linha acima de',
'homedir' => 'diretório da casa',
'openbasedirpath' => 'Caminho do OpenBaseDir',
],
'domains' => [
'description' => 'Aqui você pode criar (sub-)domínios e alterar seu destino. O sistema irá levar algum tempo para aplicar as novas configurações depois de salvas.',
'domainsettings' => 'Configurar Domínio',
'domainname' => 'Nome do domínio',
'subdomain_add' => 'Criar Sub-domínio',
'subdomain_edit' => 'Editar (sub)domínio',
'wildcarddomain' => 'Criar um wildcarddomain?',
'aliasdomain' => 'Aliás para o domínio',
'noaliasdomain' => 'Não domínio do aliás',
'hasaliasdomains' => 'Possui alinhas de domínio(s)',
'statstics' => 'Estatísticas de Uso',
'isassigneddomain' => 'É um domínio assinado',
'add_date' => 'Adicionado no froxlor',
'registration_date' => 'Adicionado no Registro',
'topleveldomain' => 'Top-Level-Domain',
'associated_with_domain' => 'Associado',
'aliasdomains' => 'Encaminhamento de domínios',
],
'emails' => [
'description' => 'Aqui você pode criar e alterer seus e-mails. Uma conta é como uma caixa de correio na frente de sua casa. Quando alguem envia para você um e-mail, ele é colocado nesta conta.
Para baixar seus e-mails use as seguintes configurações no seu propraga de e-mails favorito: (Os dados em italico devem ser substituidos pelo equivalente da conta que você criou!) Hostname: Nome de seu domínio Usuário: Nome da conta / Endereço de e-mail Senha: a senha que você escolheu',
'emailaddress' => 'Endereços de e-mail',
'emails_add' => 'Criar e-mail',
'emails_edit' => 'Editar e-mail',
'catchall' => 'Pega tudo',
'iscatchall' => 'Definir como endereço pega tudo?',
'account' => 'Conta',
'account_add' => 'Criar conta',
'account_delete' => 'Excluir conta',
'from' => 'Origem',
'to' => 'Destino',
'forwarders' => 'Redirecionamentos',
'forwarder_add' => 'Criar redirecionamento',
'alternative_emailaddress' => 'Endereço de E-mail alternativo',
'quota' => 'Quota',
'noquota' => 'Sem quota',
'updatequota' => 'Atualizar',
],
'error' => [
'error' => 'Erro',
'directorymustexist' => 'O diretório %s deve existir. Por favor crie ele primeiro com seu programa de FTP.',
'filemustexist' => 'O arquivo %s deve existir.',
'allresourcesused' => 'Você já usou todos os seus recursos.',
'domains_cantdeletemaindomain' => 'Você não pode deletar um domínio que esta sendo usado como email-domain.',
'domains_canteditdomain' => 'Você não pode editar este domínio. Ele foi desabilitado pelo administrador.',
'domains_cantdeletedomainwithemail' => 'Você não pode deletar um domínio que é usado como email-domain. Delete todos as contas de e-mail primeiro.',
'firstdeleteallsubdomains' => 'Você deve deletar todos subdomínios antes de poder criar um wildcard domain.',
'youhavealreadyacatchallforthisdomain' => 'Você já definiu uma conta pega tudo para este domínio.',
'ftp_cantdeletemainaccount' => 'Você não pode deletar a conta principal de FTP',
'login' => 'O usuário ou senha digitados, não estão corretos. Por favor tente novamente!',
'login_blocked' => 'Esta conta está suspensa por exceder as tentativas de login permitidas. Por favor tente novamente em %s segundos.',
'notallreqfieldsorerrors' => 'Você não preencheu todos os campos ou preencheu algum campo incorretamente.',
'oldpasswordnotcorrect' => 'A senha antiga não confere.',
'youcantallocatemorethanyouhave' => 'Você não pode alocar mais recursos do que você mesmo possui.',
'mustbeurl' => 'Você não digitou uma URL válida (ex. http://seudominio.com/erro404.htm)',
'invalidpath' => 'Optou por um URL não válido (eventuais problemas na lista do directório)',
'stringisempty' => 'Faltando informação no campo',
'stringiswrong' => 'Erro na informação do campo',
'newpasswordconfirmerror' => 'A nova senha e a confirmação não conferem',
'mydomain' => '\'Domínio\'',
'mydocumentroot' => '\'Documento principal\'',
'loginnameexists' => 'Login %s já existe',
'emailiswrong' => 'E-mail %s contém caracteres inválidos ou está incompleto',
'loginnameiswrong' => 'Login %s contém caracteres inválidos',
'loginnameiswrong2' => 'Login contém muitos caracteres. Somente %s caracteres são aceitos.',
'userpathcombinationdupe' => 'Usuario e caminho já existem',
'patherror' => 'Erro geral! o caminho não pode ficar em branco',
'errordocpathdupe' => 'Opção de caminho %s já existe',
'adduserfirst' => 'Por favor crie um cliente primeiro',
'domainalreadyexists' => 'O domínio %s já está apontado para outro cliente',
'nolanguageselect' => 'Nenhum idioma selecionado.',
'nosubjectcreate' => 'Você deve definir um nome para este e-mail template.',
'nomailbodycreate' => 'Você deve definir o texto para este e-mail template.',
'templatenotfound' => 'Template não encontrado.',
'alltemplatesdefined' => 'Você não pode definir mais templates, todos idiomas já suportados.',
'wwwnotallowed' => 'www não é permitido como nome de subdomínio.',
'subdomainiswrong' => 'O subdomínio %s contém caracteres inválidos.',
'domaincantbeempty' => 'O nome do domínio não pode estar vazio.',
'domainexistalready' => 'O domínio %s já existe.',
'domainisaliasorothercustomer' => 'O domínio-alias escolhido é ele próprio um domínio-alias ou este pertence a um outro cliente.',
'emailexistalready' => 'O E-mail %s já existe.',
'maindomainnonexist' => 'O domínio principal %s não existe.',
'destinationnonexist' => 'Por favor crie seu redirecionamento no campo \'Destino\'.',
'destinationalreadyexistasmail' => 'O redirecionamento %s já existe como uma conta de e-mail.',
'destinationalreadyexist' => 'Você já definiu um redirecionamento para %s .',
'destinationiswrong' => 'O redirecionamento %s contém caracteres inválidos ou incompletos.',
'ipstillhasdomains' => 'O IP/Porta que você quer deletar ainda possui domínios associados e eles, por favor altere o IP/Porta destes domínios antes de deletá-los.',
'cantdeletedefaultip' => 'Você não pode deletar o IP/Porta padrão do revendedor, por favor defina outro IP/Porta como padrão antes deletar o IP/Porta desejado',
'cantdeletesystemip' => 'Você não pode deletar o IP do sistema, nem criar uma nova combinação IP/Porta para o sistema ou trocar o IP do sistema.',
'myipaddress' => '\'IP\'',
'myport' => '\'Porta\'',
'myipdefault' => 'Você precisa selecionar o IP/Porta que será padrão.',
'myipnotdouble' => 'Esta combinação IP/Porta já existe.',
'cantchangesystemip' => 'Você não pode mudar o último sistema IP, para criar uma outra combinação nova de IP/Port para o sistema IP ou para mudar o sistema IP',
'loginnameissystemaccount' => 'Você não pode criar os clientes que são similares aos systemaccounts. Incorpore por favor um outro accountname.',
'admin_domain_emailsystemhostname' => 'Desculpe. Você não pode usar o hostname do servidor como domínio de email',
'sessiontimeoutiswrong' => 'Apenas numeros "Timeout da sessão" permitido.',
'maxloginattemptsiswrong' => 'Apenas numero "Tentativa maxima de Login" permitido.',
'deactivatetimiswrong' => 'Apenas numero "Desativar Tempo" permitido.',
'accountprefixiswrong' => 'O "Prefixo" está errado.',
'mysqlprefixiswrong' => 'O "Prefixo SQL" está errado.',
'ftpprefixiswrong' => 'O "Prefixo FTP" está errado.',
'ipiswrong' => 'O "Endereço-IP" está errado. Apenas um Endereço-IP válido é permitido.',
'vmailuidiswrong' => 'O "UID do E-mail" Está errado. Só é permitido um número de ID.',
'vmailgidiswrong' => 'O "GID do E-mail" Está errado. Só é permitido um número de ID.',
'adminmailiswrong' => 'O "Endereço de Envio" está errado. Apenas um endereço de e-mail válido é permitido.',
'pagingiswrong' => 'O "Entradas por páginas"-value está errado. Somente caracteres númericos são permitidos.',
'phpmyadminiswrong' => 'O caminho para o phpMyAmin não é válido',
'webmailiswrong' => 'O caminho para o Webmail não é válido',
'webftpiswrong' => 'O caminho para o WebFTP não é válido',
'stringformaterror' => 'O valor par ao campo "%s" não esta no formato correto.',
'youcantdeleteyourself' => 'Você não pode apagar você mesmo por motivos de segurança',
'youcanteditallfieldsofyourself' => 'Nota: Você não pode editar todos os campos de sua própria conta por motivos de segurança',
'documentrootexists' => 'O Diretório "%s" já existe para este usuario. Por favor remova-o e depois tente novamente.',
'formtokencompromised' => 'O Pedido parece estar correto. Por motivos de segurança você está desconectado.',
'logerror' => 'Log-Erro: %s',
'nomessagetosend' => 'Você não entrou com uma mensagem',
'norecipientsgiven' => 'Você não especificou um destinatário',
'errorsendingmail' => 'A mensagem para "%s" falhou',
'cannotreaddir' => 'Não é possível ler o diretório "%s"',
'vmailquotawrong' => 'A tamanho da quota deve ser entre 1 e 999',
'invalidip' => 'Endereço de IP Inválido: %s',
'invalidmysqlhost' => 'Endereço de servidor MySQL inválido: %s',
'cannotuseawstatsandwebalizeratonetime' => 'Você não pode ativar Webalizer e Awstats ao mesmo tempo, por favor, escolha uma delas',
'cannotwritetologfile' => 'Não pode abrir arquivo de log %s para escrita',
'missingfields' => 'Nem todos os campos necessários estavam no campo.',
'accountnotexisting' => 'Esta conta não existe.',
'nopermissionsorinvalidid' => 'Você não tem permissões suficientes para alterar essa configuração ou um ID inválido foi dado.',
'phpsettingidwrong' => 'Não existe uma configuração de PHP para este ID',
'descriptioninvalid' => 'A descrição é muito curta, muito longa ou contém caracteres ilegais',
'info' => 'Informações',
'filecontentnotset' => 'O arquivo não pode ser vazio',
'index_file_extension' => 'A extensão do índice do arquivo deve ficar entre 1 e 6 caracteres. A prorrogação só pode conter caracteres como az, AZ e 0-9',
'customerdoesntexist' => 'O cliente que você escolheu não existe',
'admindoesntexist' => 'O administrador que você escolheu não existe',
'ipportdoesntexist' => 'A combinação de IP/Porta que você escolheu não existe',
],
'extras' => [
'description' => 'Aqui você pode adicoionar alguns recursos extras, como por exemplo um diretório protegido. O sistema ira precisar de algum tempo para aplicar suas alterações depois de salvas.',
'directoryprotection_add' => 'Adicionar diretório pretogido',
'view_directory' => 'Mostrar conteúdo do diretório',
'pathoptions_add' => 'Adicionar opções de caminho',
'directory_browsing' => 'Pesquizar conteúdo de diretório',
'pathoptions_edit' => 'Esitar opções de caminhos',
'errordocument404path' => 'URL para página de erro 404',
'errordocument403path' => 'URL para página de erro 403',
'errordocument500path' => 'URL para página de erro 500',
'errordocument401path' => 'URL para página de erro 401',
],
'ftp' => [
'description' => 'Aqui você pode criar e alterar suas contas de FTP. As alterações são instantâneas e podem ser utilizadas imediatamente depois de salvas.',
'account_add' => 'Criar conta',
],
'index' => [
'customerdetails' => 'Detalhes dos Clientes',
'accountdetails' => 'Detalhes das Contas',
],
'logger' => [
'date' => 'Data',
'type' => 'Tipo',
'action' => 'Ação',
'user' => 'Usuário',
'truncate' => 'Log Vazio',
],
'login' => [
'username' => 'Usuário',
'password' => 'Senha',
'language' => 'Idioma',
'login' => 'Login',
'logout' => 'Sair',
'profile_lng' => 'Idioma padrão',
'forgotpwd' => 'Perdeu sua senha?',
'presend' => 'Resetar senha',
'email' => 'Endereço de E-mail',
'remind' => 'Resetar minha senha',
'usernotfound' => 'Úsuario não encontrado',
'backtologin' => 'Voltar ao Login',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Olá,\\n\\n sua conta de e-mail {EMAIL}\\n foi criada com sucesso.\\n\\nEsta é uma mensagem automática\\neMail, por favor não responda!\\n\\nAtenciosamente, Equipe de desenvolvimento do froxlor',
'subject' => 'Conta de e-mail criada com sucesso!',
],
'createcustomer' => [
'mailbody' => 'Olá {FIRSTNAME} {NAME},\\n\\nseguem os detalhes de sua nova conta de e-mail:\\n\\nUsuario: {USERNAME}\\nSenha: {PASSWORD}\\n\\nObrigado,\\nEquipe de desenvolvimento do froxlor',
'subject' => 'Informações da conta',
],
'pop_success_alternative' => [
'mailbody' => 'Oi,\\n\\nSua conta de email {EMAIL}\\nfoi configurada corretamente.\\nSua senha é{PASSWORD}.\\n\\nEmail criado automaticamente\\n, Por favor não responda!\\n\\nCumprimentos, Equipe froxlor.',
'subject' => 'Conta de email criada com sucesso',
],
'password_reset' => [
'subject' => 'Reset de Senha',
'mailbody' => 'Oi {USERNAME},\\n\\nsua senha do froxlor foi resetada!\\nA nova senha é: {LINK}\\n\\nObrigado,\\nequipe froxlor',
],
],
'menu' => [
'message' => 'Mensagens',
],
'menue' => [
'main' => [
'main' => 'Principal',
'changepassword' => 'Trocar senha',
'changelanguage' => 'Trocar idioma',
'username' => 'Logado como',
],
'email' => [
'email' => 'E-mail',
'emails' => 'Endereços',
'webmail' => 'WebMail',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Banco de dados',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domínios',
'settings' => 'Configurações',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Contas',
'webftp' => 'WebFTP',
],
'extras' => [
'extras' => 'Extras',
'directoryprotection' => 'Diretório protegido',
'pathoptions' => 'Opções de caminhos',
],
'traffic' => [
'traffic' => 'Tráfego',
'current' => 'Mês corrente',
],
'phpsettings' => [
'maintitle' => 'Configurações do PHP',
],
'logger' > [
'logger' => 'Sistema-Log',
],
],
'message' => [
'norecipients' => 'Email não enviado porque não tem destinatário no banco de dados',
'success' => 'Mensagens enviadas para %s destinatários com sucesso',
],
'mysql' => [
'description' => 'Aqui você pode criar e alterar seus bancos de dados MySQL. As alterações são instantâneas e podem ser utilizadas imediatamente depois de salvas. No menu do lado esquerdo você pode encontrar a ferramenta phpMyAdmin e com ela facilmente administrar seus bancos de dados.
Para usar seu banco de dados com scripts em PHP use as seguintes configurações: (Os dados em italico devem ser substituidos pelo equivalente do banco de dados que você criou!) Hostname: Usuario: Nome do banco de dadose Senha: a senha que você escolheu Banco de dados: Nome do banco de dados',
'databasename' => 'Usuario / Nome do banco de dados',
'databasedescription' => 'Descrição do banco de dados',
'database_create' => 'Criar banco de dados',
],
'panel' => [
'edit' => 'Editar',
'delete' => 'Deletar',
'create' => 'Criar',
'save' => 'Salvar',
'yes' => 'Sim',
'no' => 'Não',
'emptyfornochanges' => 'Sair sem salvar',
'emptyfordefault' => 'Restaurar padrão',
'path' => 'Caminho',
'toggle' => 'Toggle',
'next' => 'Próximo',
'dirsmissing' => 'Directório não disponível ou ilegível',
'urloverridespath' => 'URL (Caminho Completo)',
'pathorurl' => 'Caminho ou URL',
'ascending' => 'Crescente',
'descending' => 'Decrescente',
'search' => 'Procurar',
'used' => 'Usado',
'translator' => 'Tradutor',
'reset' => 'Descartar Mudanças',
'pathDescription' => 'Se o diretório não existir, será criado automaticamente',
'back' => 'Volta',
'reseller' => 'Revenda',
'admin' => 'Administrador',
'customer' => 'Cliente(s)',
'send' => 'Enviar',
'nosslipsavailable' => 'Não existem atualmente IP SSL / Porta para este servidor.',
'backtooverview' => 'Voltar para Visão Geral',
'dateformat' => 'AAAA-MM-DD',
'dateformat_function' => 'A-m-d',
'timeformat_function' => 'H:i:S',
'default' => 'Padrão',
'never' => 'Nunca',
'active' => 'Ativo',
'please_choose' => 'Por favor escolha',
'allow_modifications' => 'Aceita alteraçoes',
'not_supported' => 'Não suportado em:',
'view' => 'Visualizar',
],
'pwdreminder' => [
'success' => 'Redefinição de senha com sucesso. Você agora deve receber um e-mail com sua nova senha.',
'notallowed' => 'Reset de senhas está desativado',
],
'question' => [
'question' => 'Pergunta de segurança',
'admin_customer_reallydelete' => 'Você realmente deseja deletar o cliente %s? Este comando não poderá ser cancelado!',
'admin_domain_reallydelete' => 'Você realmente deseja deletar o domínio %s?',
'admin_domain_reallydisablesecuritysetting' => 'Você realmente deseja desativar estas configurações de segurança (OpenBasedir)?',
'admin_admin_reallydelete' => 'Você realmente deseja deletar o administrador %s? Todos clientes e domínios serão realocados para o administrador principal.',
'admin_template_reallydelete' => 'Você realmente deseja deletar o template \'%s\'?',
'domains_reallydelete' => 'Você realmente deseja deletar o domínio %s?',
'email_reallydelete' => 'Você realmente deseja deletar o e-mail %s?',
'email_reallydelete_account' => 'Você realmente deseja deletar a conta de e-mail %s?',
'email_reallydelete_forwarder' => 'Você realmente deseja deletar o redirecionamento %s?',
'extras_reallydelete' => 'Você realmente deseja deletar a proteção do diretório %s?',
'extras_reallydelete_pathoptions' => 'Você realmente deseja deletar o caminho %s?',
'ftp_reallydelete' => 'Você realmente deseja deletar a conta de FTP %s?',
'mysql_reallydelete' => 'Você realmente deseja deletar o banco de dados %s? Este comando não poderá ser cancelado!',
'admin_configs_reallyrebuild' => 'Está certo que quer deixar reconfigurar os ficheiros de configuração de Apache e Bind?',
'admin_customer_alsoremovefiles' => 'Remover arquivos do usuário também?',
'admin_customer_alsoremovemail' => 'Remover todos os dados de e-mail do sistema de arquivos?',
'admin_customer_alsoremoveftphomedir' => 'Remover o diretório home do usuário FTP?',
'admin_ip_reallydelete' => 'Você realmente deseja deletar este endereço IP?',
'admin_domain_reallydocrootoutofcustomerroot' => 'É você certo, você quer a raiz do original para este domínio, não estando dentro do customerroot do cliente?',
'admin_counters_reallyupdate' => 'Você deseja recalcular os recursos utilizados?',
'logger_reallytruncate' => 'Você realmente deseja dividir a tabela "%s"?',
'admin_quotas_reallywipe' => 'Você realmente deseja limpar todas as quotas na tabela mail_users? Isto não pode ser revertido',
'phpsetting_reallydelete' => 'Você realmente deseja apagar esta configuração? Todos os domínios que atualmente utilizam esta configuração serão alterada para a configuração padrão.',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Tempo esgotado',
'description' => 'Quanto tempo o usuario deve estar inativo para ser desconectado (segundos)?',
],
'accountprefix' => [
'title' => 'Prefixo do cliente',
'description' => 'Qual o prefixo "customeraccounts" deve ter?',
],
'mysqlprefix' => [
'title' => 'SQL Prefixo',
'description' => 'Qual prefixo as contas mysql devem ter?',
],
'ftpprefix' => [
'title' => 'FTP Prefixo',
'description' => 'Qual prefixo as contas de FTP devem ter?',
],
'documentroot_prefix' => [
'title' => 'Diretório de documentação',
'description' => 'Aonde os documentos dever ser gravados?',
],
'logfiles_directory' => [
'title' => 'Diretório de LOG',
'description' => 'Aonde os arquivos de log dever ser gravados?',
],
'ipaddress' => [
'title' => 'Endereços de IP',
'description' => 'Quais os Endereços IP deste servidor?',
],
'hostname' => [
'title' => 'Hostname',
'description' => 'Qual o Hostname deste servidor?',
],
'apachereload_command' => [
'title' => 'Comando de reiniciar o Apache',
'description' => 'Qual o comando para reiniciar o apache?',
],
'bindenable' => [
'title' => 'Habilitar Servidor de Nomes',
'description' => 'Aqui o servidor de nomes pode ser habilitado ou desabilitado globalmente.',
],
'bindconf_directory' => [
'title' => 'Diretório de configuração do Bind',
'description' => 'Aonde estão os arquivos de configuração do bind?',
],
'bindreload_command' => [
'title' => 'Comando de reiniciar o Bind',
'description' => 'Qual o comando para reiniciar o bind?',
],
'vmail_uid' => [
'title' => 'Mails-Uid',
'description' => 'Qual UserID os e-mails devem ter?',
],
'vmail_gid' => [
'title' => 'Mails-Gid',
'description' => 'Qual GroupID os e-mails devem ter?',
],
'vmail_homedir' => [
'title' => 'Mails-Homedir',
'description' => 'Aonde os e-mails devem ser gravados?',
],
'adminmail' => [
'title' => 'Remetente',
'description' => 'Qual o remetente dos e-mails enviados pelo painel?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin URL',
'description' => 'Qual a URL do phpMyAdmin? (deve iniciar com http://)',
],
'webmail_url' => [
'title' => 'WebMail URL',
'description' => 'Qual a URL do WebMail? (deve iniciar com http://)',
],
'webftp_url' => [
'title' => 'WebFTP URL',
'description' => 'Qual a URL do WebFTP? (deve iniciar com http://)',
],
'language' => [
'description' => 'Qual o idioma padrão do servidor?',
],
'maxloginattempts' => [
'title' => 'Tentativas maximas de Login',
'description' => 'Tentativas maximas de Login para a conta ser desativada.',
],
'deactivatetime' => [
'title' => 'Tempo que a conta deve permanecer desativada',
'description' => 'Tempo (sec.) qua a conta permanece desativada depois de muitas tentativas de login.',
],
'pathedit' => [
'title' => 'File-Método de entrada',
'description' => 'A escolha do file tem que ser feita através do Dropdown-Menu ou pode ser feita manualmente?',
],
'paging' => [
'title' => 'Entradas por pagina',
'description' => 'Quantas entradas devem ser mostradas por pagina? (0 = desabilitar paginas)',
],
'nameservers' => [
'title' => 'Servidores DNS',
],
'mxservers' => [
'title' => 'Servidores de Email',
'description' => 'Uma lista separada por vírgulas que contém o numero de prioridade e o hostname separados por um espaço (por exemplo: \'mx.example.com 10 \'), contendo os servidores mx.',
],
'defaultip' => [
'title' => 'IP/Porta Padrão',
'description' => 'Qual é a IP/Porta Padrão?',
],
'phpappendopenbasedir' => [
'title' => 'Caminho para adicionar OpenBasedir',
'description' => 'Estes caminhos (separados por dois pontos) serão acrescentados ao OpenBasedir em cada vhost.',
],
'natsorting' => [
'title' => 'Usar classificação natural na visualização',
'description' => 'Ordenar listas como: web1 -> web2 -> web11 ao invéz de web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Docroots desativado para usuários',
'description' => 'Quando um usuário estiver desativado, esse caminho é usado como seu docroot. Deixe em branco para não criar um vhost a todos.',
],
'mailpwcleartext' => [
'title' => 'Salva as senhas de usuários sempre criptografia no banco de dados',
'description' => 'Se você selecionar sim, todas as senhas serão guardadas descriptografadas (Poderá ser lido por todos com acesso ao banco de dados ) na tabela mail_users-table. Somente ative essa opção se você realmente precise!',
'removelink' => 'Clique aqui para limpar todas as senhas não criptografadas da tabela Você realmente deseja limpar todas as senhas não encriptadas a partir da tabela mail_users? Isto não pode ser revertido!',
],
'ftpdomain' => [
'title' => 'Contas FTP @domínio',
'description' => 'Clientes podem criar contas de FTP user@domíniodocliente?',
],
'mod_fcgid' => [
'title' => 'Incluir PHP via mod_fcgid/suexec',
'description' => 'Use mod_fcgid/suexec/libnss_mysql to run PHP with the corresponding useraccount. This needs a special Apache configuration. All following options are only valid if the module is enabled.',
'configdir' => [
'title' => 'Diretório de configuração',
'description' => 'Aonde todos os arquivos de configuração do fcgid vão ser guardados? Se você não utiliza um binário compilado, está é uma situação normal, deve estar dentro de /var/www/',
],
'tmpdir' => [
'title' => 'Diretório Temporário',
'description' => 'Aonde os arquivos temporários devem ser guardados',
],
'starter' => [
'title' => 'Processos por domínio',
'description' => 'Quantos processos devem ser iniciadas / permitidas por domínio? O valor 0 é recomendado. O PHP irá então gerir a quantidade de processos.',
],
'wrapper' => [
'title' => 'Wrapper in Vhosts',
'description' => 'Como os wrapper vão ser incluídos nos vhosts',
],
'peardir' => [
'title' => 'Diretórios globais do PEAR',
'description' => 'Diretórios globais do PEAR que deverão ser substituídos em cada configuração php.ini? Diferentes diretórios devem ser separados por dois pontos.',
],
'maxrequests' => [
'title' => 'Máximo de solicitações por Domínio',
'description' => 'Quantas solicitações serão aceitas por domínio?',
],
],
'sendalternativemail' => [
'title' => 'Utilize endereço de e-mail alternativo',
'description' => 'Enviar e-mail a senha para um endereço diferente durante uma criação de conta de e-mail',
],
'apacheconf_vhost' => [
'title' => 'Arquivo/Diretório de configurações do Apache Vhost',
'description' => 'Onde as configuração de Vhost devem ser guardadas? Você pode especificar um arquivo (todos os vhosts em um arquivo) ou diretório (cada vhost com seu próprio arquivo) aqui.',
],
'apacheconf_diroptions' => [
'title' => 'Configuração de diretório do Apache Arquivo/Nome do Diretório.',
'description' => 'Quando as opções de configuração de diretório deve ser armazenada? Você poderia especificar um arquivo (todas as opções em um arquivo) ou diretório ( cada opção no seu próprio arquivo).',
],
'apacheconf_htpasswddir' => [
'title' => 'Apache htpasswd dirname',
'description' => 'Onde deve ser o diretório de arquivos htpasswd?',
],
'mysql_access_host' => [
'title' => 'Hosts de Acesso MySQL',
'description' => 'Uma lista separada por vírgulas de hosts a partir do qual os utilizadores devem ter a possibilidade de conectar-se ao MySQL-Server.',
],
'webalizer_quiet' => [
'title' => 'Saida do Webalizer',
'description' => 'Modo verbose do webalizer',
],
'logger' => [
'enable' => 'Habilitar/Desabilitar Logs',
'severity' => 'Nível de Logs',
'types' => [
'title' => 'Tipos de Log(s)',
'description' => 'Especificar tipos de logs separados por vírgula. Tipos de lógs disponíveis: syslog, file, mysql',
],
'logfile' => 'Caminho do Arquivo de Log incluindo nome de arquivo',
'logcron' => 'Logar tarefas do cron',
'logcronoption' => [
'never' => 'Nunca',
'once' => 'Uma vez',
'always' => 'Sempre',
],
],
'ssl' => [
'openssl_cnf' => 'Padrão para criar o arquivo de certificado',
],
'default_vhostconf' => [
'title' => 'Configuração de Vhost padrão',
'description' => 'O conteúdo deste campo será incluído a cada novo vhost criado. Atenção: O código será checado para algum erro. Se contiver erros, o apache pode não iniciar mais',
],
'mail_quota' => [
'title' => 'Quota de Email',
'description' => 'Quota default para novas caixas criadas',
],
'mail_quota_enabled' => [
'title' => 'Usar quota para clientes',
'description' => 'Ative para usar cotas em caixas de email. Padrão é Não visto que requer uma configuração especial.',
'removelink' => 'Clique aqui para limpar todas as quotas para as contas de email.',
],
'decimal_places' => 'Número de casas decimais no tráfego / espaço de paginas web',
'webalizer_enabled' => 'Ativar estatísticas webalizer',
'awstats_enabled' => 'Ativar estatísticas awstats',
'selfdns' => [
'title' => 'Configurações DNS-Domiio personalizadas',
],
'selfdnscustomer' => [
'title' => 'Aceita clientes para editar configurações de DNS',
],
'unix_names' => [
'title' => 'Usar nomes compatíveis com UNIX',
'description' => 'Aceita você usar - and _ em nomes de usuários se Noestiver marcado',
],
'allow_password_reset' => [
'title' => 'Aceita reset de senha por clientes',
'description' => 'Os clientes podem redefinir sua senha e serão enviadas para seu endereço de e-mail',
],
'allow_password_reset_admin' => [
'title' => 'Ativa reset de senhas pelos administradores',
'description' => 'Admins / Revendedor pode redefinir sua senha e a nova senha será enviada para seu endereço de e-mail',
],
'index_file_extension' => [
'description' => 'Qual extensão deve ser utilizada para o índice no arquivo recém-criado no diretório do cliente? Esta extensão será utilizado, se você ou um de seus administradores criou o seu próprio índice no arquivo modelo.',
'title' => 'Extensão do arquivo recém-criado no Ãndice do diretório do cliente.',
],
'session_allow_multiple_login' => [
'title' => 'Ativa login múltiplo',
'description' => 'Se ativado um usuário pode ter múltiplos logins',
],
'panel_allow_domain_change_admin' => [
'title' => 'Ativa mover domínios entre admins',
'description' => 'If activated you can change the admin of a domain at domainsettings. Attention: If a customer isn\'t assigned to the same admin as the domain, the admin can see every other domain of that customer!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Ativa mover domínios entre clientes',
'description' => 'Se ativado você pode trocar o cliente de um domínio para administração de outro. Attention: froxlor não troca nenhum caminho. Isto pode fazer com que domínios parem de funcionar',
],
],
'traffic' => [
'month' => 'Mês',
'day' => 'Diariamente',
'months' => [
1 => 'Janeiro',
2 => 'Fevereiro',
3 => 'Março',
4 => 'Abril',
5 => 'Maio',
6 => 'Junho',
7 => 'Julho',
8 => 'Agosto',
9 => 'Setembro',
10 => 'Outubro',
11 => 'Novembro',
12 => 'Dezembro',
],
'mb' => 'Tráfego (MB)',
'distribution' => 'FTP | HTTP | E-Mail',
'sumhttp' => 'Resumo Tráfego de HTTP em',
'sumftp' => 'Resumo Tráfego de FTP em',
'summail' => 'Resumo Tráfego de HTTP em',
],
'translator' => 'Ricardo Luiz Costa, Rafael Andrade, Thiago Goncalves de Castro',
];
================================================
FILE: lng/se.lng.php
================================================
* @author Staffan Starberg
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'admin' => [
'overview' => 'Översikt',
'ressourcedetails' => 'Använda resurser',
'systemdetails' => 'System Detaljer',
'froxlordetails' => 'froxlor Detaljer',
'installedversion' => 'Installerad version av froxlor',
'latestversion' => 'Senaste version av froxlor',
'lookfornewversion' => [
'clickhere' => '[Sök senaste verison av froxlor via Internet]',
'error' => 'Fel vid läsning, kontrollera uppkopplingen mot froxlor',
],
'resources' => 'Resurser',
'customer' => 'Kunder',
'customers' => 'Kunder',
'customer_add' => '[Skapa en ny kund]',
'customer_edit' => 'Ändra ny kund',
'domains' => 'Domäner',
'domain_add' => '[Skapa en ny domän]',
'domain_edit' => 'Tillåt ändring av domänen',
'subdomainforemail' => 'Sub-domän som E-postdomän (Subdomains as emaildomains)',
'admin' => 'Admin',
'admins' => 'Admins',
'admin_add' => '[Skapa en ny admin]',
'admin_edit' => 'Ändra admin',
'customers_see_all' => 'Kan se alla kunder?',
'change_serversettings' => 'Kan ändra serverinställningar?',
'server' => 'Systemet',
'serversettings' => 'Inställningar',
'rebuildconf' => 'Uppdatera konfig filer',
'stdsubdomain' => 'Standard subdomän',
'stdsubdomain_add' => '[Skapa en ny standard subdomän]',
'phpenabled' => 'PHP påslagen',
'deactivated' => 'Inaktiv',
'deactivated_user' => 'Avaktivera användare',
'sendpassword' => 'Skicka lösenord',
'ownvhostsettings' => 'Egna vHost-Inställningar',
'configfiles' => [
'serverconfiguration' => 'Konfiguration',
'overview' => 'Översikt',
'wizard' => 'Guide',
'mail' => 'E-postserver (POP3/IMAP)',
'smtp' => 'E-postserver (SMTP)',
],
'templates' => [
'templates' => 'Mallar',
'template_add' => '[Lägg till en ny mall]',
'template_edit' => 'Ändra en befintlig mall',
'action' => 'Action',
'email' => 'E-Post',
'subject' => 'Rubrik (subjekt)',
'mailbody' => 'E-Postinnehåll (Mail body)',
'createcustomer' => 'E-Post till nya kunder (Välkommen)',
'pop_success' => 'E-Post för nya konton (Välkommen)',
'template_replace_vars' => 'Variabler som kan ändras i mallen:',
'FIRSTNAME' => 'Ändra till kundens förnamn.',
'NAME' => 'Ändra till kundens efternamn.',
'USERNAME' => 'Ändra till kundens kontonamns användarnamn.',
'PASSWORD' => 'Ändra till kundens kontonamns lösenord.',
'EMAIL' => 'Ändra till adressen för POP3/IMAP kontot.',
'TRAFFIC' => 'Ersatt med trafikbegrnsningen som var tilldelad till kunden.',
'TRAFFICUSED' => 'Ersatt med trafikbegrnsningen som var överskriden av kunden.',
'pop_success_alternative' => 'Välkommstmeddelande för nya E-post konton som skickas till den alternativa adressen',
'EMAIL_PASSWORD' => 'Ersatt med POP3/IMAP kontots lösenord.',
],
'ipsandports' => [
'ipsandports' => 'IPs and Ports',
'add' => '[Lägg till IP/Port]',
'edit' => 'Ändra IP/Port',
'create_listen_statement' => 'Skapa "Listen statement"',
'create_namevirtualhost_statement' => 'Skapa NameVirtualHost statement',
'create_vhostcontainer' => 'Skapa vHost-Container',
'create_vhostcontainer_servername_statement' => 'Skapa ServerName statement i vHost-Container',
],
'memorylimitdisabled' => 'Avstängd',
'valuemandatory' => 'Denna ruta måste fyllas i',
'valuemandatorycompany' => 'Fyll i "förnamn" och "efternamn" eller "företagsnamn"',
'serversoftware' => 'Webserver version',
'phpversion' => 'PHP-Version',
'phpmemorylimit' => 'PHP-Minnesgräns',
'mysqlserverversion' => 'MySQL Server Version',
'mysqlclientversion' => 'MySQL Klient Version',
'webserverinterface' => 'Webserver Interface',
'accountsettings' => 'Kontoinställningar',
'panelsettings' => 'Panelinställningar',
'systemsettings' => 'Systeminställningar',
'webserversettings' => 'Webserverinställningar',
'mailserversettings' => 'E-postserverinställningar',
'nameserversettings' => 'Namnserverinställningar',
'updatecounters' => 'Uppdatera status',
'subcanemaildomain' => [
'never' => 'Aldrig',
'choosableno' => 'Valbar, standardvärdet är Nej',
'choosableyes' => 'Valbar, standardvärdet är Ja',
'always' => 'Alltid',
],
'webalizersettings' => 'Webalizer inställningar',
'webalizer' => [
'normal' => 'Normal',
'quiet' => 'Tyst',
'veryquiet' => 'Väldigt tyst',
],
'domain_nocustomeraddingavailable' => 'Det går inte att skapa en ny domän innan det finns mins en upplagd kund.',
],
'changepassword' => [
'old_password' => 'Gammalt lösenord',
'new_password' => 'Nytt lösenord',
'new_password_confirm' => 'Nytt lösenord (verifiera)',
'new_password_ifnotempty' => 'Nytt lösenord (Tomt fältet = inga ändringar)',
'also_change_ftp' => ' Ändra även lösenord för huvud FTP kontot',
'also_change_stats' => ' Ändra även lösenord för statistik',
],
'customer' => [
'documentroot' => 'Hemkatalog',
'name' => 'Efternamn',
'firstname' => 'Förnamn',
'company' => 'Företag',
'street' => 'Postadress',
'zipcode' => 'Postnummer',
'city' => 'Postort',
'phone' => 'Telefon',
'fax' => 'Fax',
'email' => 'E-post',
'customernumber' => 'Kundnummer',
'diskspace' => 'Webb (MB)',
'traffic' => 'Trafik (GB)',
'mysqls' => 'SQL_DBas',
'emails' => 'E-post_adresser',
'accounts' => 'E-post_konton',
'forwarders' => 'E-post_skicka_vidare',
'ftps' => 'FTP_Kto',
'subdomains' => 'Sub-Domäner',
'domains' => 'Domäner',
],
'domain' => [
'openbasedirpath' => 'OpenBasedir-path',
'docroot' => 'Sökvägen från ovanstående fält',
'homedir' => 'Hemkatalog',
],
'domains' => [
'description' => 'Här kan du skapa (sub-)domäner och ändra i dem. Systemet behöver dock lite tid på sig att genomföra ändringarna.',
'domainsettings' => 'Domäninställningar',
'domainname' => 'Domännamn',
'subdomain_add' => '[Skapa en ny subdomän]',
'subdomain_edit' => 'Ändra (sub)domän',
'wildcarddomain' => 'Skapa som ospecificerad domän (Create as wildcarddomain?)',
'aliasdomain' => 'Alias for domän',
'noaliasdomain' => '(inget alias)',
'hasaliasdomains' => 'Domänen har redan alias',
'statstics' => 'Användarstatistik',
'isassigneddomain' => 'Tilldelad domän ',
],
'emails' => [
'description' => 'Här kan du skapa eller ändra dina E-postadresser. Ett konto är som en brevlåda utanför huset. Om någon skickar dig E-post kommer det att hamna i din brevlåda (ditt konto).
För att hämta din E-post så skall du använda följande inställningar i ditt E-postprogram: (Text i kursiv stil italics måste ändras till det som motsvaras av det du knappade in tidigare!) Servernamn (Hostname): Domännamn (Domainname) Användarnamn (Username): Konto namn (Account name) / E-postadress Lösenord (Password): lösenordet som du valde',
'emailaddress' => 'E-postadress',
'emails_add' => '[Skapa en E-postadress]',
'emails_edit' => 'Ändra E-postadressen',
'catchall' => 'Maildump',
'iscatchall' => 'Skapa en maildump?',
'account' => 'Konto',
'account_add' => 'Skapa konto',
'account_delete' => 'Radera konto',
'from' => 'Från',
'to' => 'Till',
'forwarders' => 'Skicka vidare:',
'forwarder_add' => '[Skapa ny "skicka vidare"]',
'alternative_emailaddress' => 'Alternative e-mail-address',
],
'error' => [
'error' => 'Följande fel har uppstått',
'directorymustexist' => 'Katalogen %s måste finnas. Skapa den med ditt FTP program.',
'filemustexist' => 'Filen %s måste existera.',
'allresourcesused' => 'Du har redan skapt så många konton som du har tillstånd till.',
'domains_cantdeletemaindomain' => 'Du kan inte radera en domän som användes för E-post.',
'domains_canteditdomain' => 'Endast administratörer kan ändra denna domän.',
'domains_cantdeletedomainwithemail' => 'Du kan inte radera en domän som användes för E-post. Radera alla E-postadresser först',
'firstdeleteallsubdomains' => 'Du måste radera alla sub-domäner innan du kan skapa en maildump (wildcard domain).',
'youhavealreadyacatchallforthisdomain' => 'Du har redan skapat en maildump för denna domän.',
'ftp_cantdeletemainaccount' => 'Det går inte att radera huvud FTP kontot för domänen',
'login' => 'Användarnamnet eller lösenordet var felaktigt, försök igen!',
'login_blocked' => 'Kontot har blivit avstängt på grund av för många felaktiga inloggningsförsök. Försök igen om %s sekunder.',
'notallreqfieldsorerrors' => 'Du har inte fyllt i alla fält eller så har du skrivit in något som inte accepteras.',
'oldpasswordnotcorrect' => 'Det gamla lösenordet är fel.',
'youcantallocatemorethanyouhave' => 'Du kan inte skapa fler resurser än du äger själv (You cannot allocate more resources than you own for yourself).',
'mustbeurl' => 'Du har inte skrivit in en korrekt url (e.g. http://somedomain.com/error404.htm)',
'invalidpath' => 'Du har inte valt en korrekt url (Kanske har du lagt till en katalogsäkerhet så att katalogerna inte kan visas?)',
'stringisempty' => 'Du måste skriva in något i fältet',
'stringiswrong' => 'Fel inatningsfält',
'newpasswordconfirmerror' => 'New password and confirmation does not match',
'mydomain' => '\'Domain\'',
'mydocumentroot' => '\'Documentroot\'',
'loginnameexists' => 'Login-Name %s är upptaget',
'emailiswrong' => 'E-post-Adressen "%s" innehåller ogiltiga tecken eller så är den inte komplett',
'loginnameiswrong' => 'Login-Namnet %s innehåller ogiltiga tecken',
'userpathcombinationdupe' => 'Användarnamnet och sökvägen tillsammans finns redan',
'patherror' => 'Generellt Fel! sökvägen till katalogen kan inte vara tom',
'errordocpathdupe' => 'Option för sökvägen %s finns redan',
'adduserfirst' => 'Skapa användaren först',
'domainalreadyexists' => 'Domänen %s ägs redan av en kund',
'nolanguageselect' => 'Inget språk är valt.',
'nosubjectcreate' => 'Du måste ha ett rubrik för denna E-postmall.',
'nomailbodycreate' => 'Du måste ha skrivit in en E-post text för denna mall.',
'templatenotfound' => 'E-postmallen hittades inte.',
'alltemplatesdefined' => 'Du kan inte skapa flera mallar, alla språk finns redan.',
'wwwnotallowed' => 'www är inte tillåtet att använda för subdomäner.',
'subdomainiswrong' => 'Subdomänen %s innehåller ogiltiga tecken.',
'domaincantbeempty' => 'Fältet för domännamn får inte vara tommt.',
'domainexistalready' => 'Domänen %s finns redan.',
'domainisaliasorothercustomer' => 'Den valda domänen är antingen en aliasdomän eller så ägs den redan av en annan kund.',
'emailexistalready' => 'E-postadressen %s finns redan.',
'maindomainnonexist' => 'Huvuddomänen %s finns inte.',
'destinationnonexist' => 'Skapa en forwarder i fältet \'Destination\'.',
'destinationalreadyexistasmail' => 'Denna forwarder %s, finns redan som aktiv E-postadress.',
'destinationalreadyexist' => 'Du har redan skapat en forwarder till %s .',
'destinationiswrong' => 'Denna forwarder: %s innehåller ogiltiga tecken eller så är den inte komplett adress.',
'ipstillhasdomains' => 'IP/Port kombinationen som du vill radera har fortfarande domäner anslutna till sig, Flytta dessa till någon annan IP/Port kombination innan du raderar denna IP/Port kombination.',
'cantdeletedefaultip' => 'Det går inte att ta bort den förvalda återförsäljarens IP/Port kombination, Välj en annan IP/Port kombination som förval för återförsäljare innan du raderar denna IP/Port kombination.',
'cantdeletesystemip' => 'Det går inte att radera den sista system IP:n, Antingen skapar man en ny IP/Port kombination för system IP eller så ändrar man system IP:n.',
'myipaddress' => '\'IP\'',
'myport' => '\'Port\'',
'myipdefault' => 'Man måste välja en IP/Port kombination som skall bli standardvärdet.',
'myipnotdouble' => 'Denna IP/Port kombination finns redan.',
'cantchangesystemip' => 'Man kan inte ändra den senaste system IP-adressen. Skapa en helt ny IP/Port kombination för system IP:n eller ändra system IP-adressen.',
'sessiontimeoutiswrong' => 'Bara siffror "Session Timeout" är tillåtna.',
'maxloginattemptsiswrong' => 'Bara siffror "Max Login Attempts" är tillåtna.',
'deactivatetimiswrong' => 'Bara siffror "Deactivate Time" är tillåtna.',
'accountprefixiswrong' => 'Det här "Customerprefix" är fel.',
'mysqlprefixiswrong' => 'Det här "SQL Prefix" är fel.',
'ftpprefixiswrong' => 'Det här "FTP Prefix" är fel.',
'ipiswrong' => 'Den här "IP-Address" är fel. Endast en giltig IP-adress är tillåten.',
'vmailuidiswrong' => 'Den här "Mails-uid" är fel. Endast numerisk UID är tillåtenis allowed.',
'vmailgidiswrong' => 'Den här "Mails-gid" är fel. Endast numerisk GID är tillåtenis allowed.',
'adminmailiswrong' => 'Den här "Sender-address" är fel. Endast en giltig E-postadress är tillåten.',
'pagingiswrong' => 'Den här "Entries per Page"-värdet är fel. Endast siffror är tillåtna.',
'phpmyadminiswrong' => 'Den här phpMyAdmin-link är inte en giltig länk.',
'webmailiswrong' => 'Den här WebMail-link är inte en giltig länk.',
'webftpiswrong' => 'Den här WebFTP-link är inte en giltig länk.',
'stringformaterror' => 'Värdet för fältet "%s" har inte rätt format.',
'loginnameissystemaccount' => 'Det går inte att skapa ett konto som liknar ett systemkonto (Om det till exempel börjar med "%s"). Vlj ett annat kontonamn.',
'youcantdeleteyourself' => 'Av säkerhetsskäl går inte att redera ditt eget konto.',
'youcanteditallfieldsofyourself' => 'Notera: Av säkerhetsskäl går det inte att ändra ditt eget konto.',
'documentrootexists' => 'Katalogen "%s" finns redan hos den här kunden. Radera detta först innan kunden skapas igen.',
'formtokencompromised' => 'Den säkra anslutningen till froxlor har avslutats och du har av säkerhetsskäl automatiskt loggats ur.',
],
'extras' => [
'description' => 'Här kan du ändra övriga saker såsom katalogskydd mm. Systemet behöver dock lite tid på sig att genomföra ändringarna.',
'directoryprotection_add' => '[Skapa ett nytt katalogskydd]',
'view_directory' => 'Visa kataloginnehåll',
'pathoptions_add' => '[Skapa ny regel för sökvägar]',
'directory_browsing' => 'Visning av katalogstruktur',
'pathoptions_edit' => 'Ändra sökvägsinställningar',
],
'ftp' => [
'description' => 'Här kan du skapa eller änra i dina FTP konton. Ändringen genomförs omedelbart så man kan använda det nya/ändrade kontot direkt.',
'account_add' => '[Skapa ett nytt FTP konto]',
],
'index' => [
'customerdetails' => 'Kunddetaljer',
'accountdetails' => 'Kontodetaljer',
],
'login' => [
'username' => 'Användarnamn',
'password' => 'Lösenord',
'language' => 'Språk',
'login' => 'Logga in',
'logout' => 'Logga ut',
'profile_lng' => 'Profilspråk',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Hej,\\n\\nDitt E-postkonto {EMAIL}\\nhar nu skapats.\\n\\nDetta är ett automatgenererat E-post meddelande\\n, Det går därför inte att svara på detta meddelande!\\n',
'subject' => 'E-postkontot är nu skapat',
],
'createcustomer' => [
'mailbody' => 'Hej {FIRSTNAME} {NAME},\\n\\nHär kommer kontoinformationen för ditt konto:\\n\\nAnvändarnamn (Username): {USERNAME}\\nLösenord (Password): {PASSWORD}\\n\\n',
'subject' => 'Kontoinformation',
],
'pop_success_alternative' => [
'mailbody' => 'Hej,\\n\\nditt E-postkonto {EMAIL}\\nhar ny skapats.\\nDitt lösenord är {PASSWORD}.\\n\\nDetta är ett automatgenererat E-postmeddelande som det INTE går att svara på!\\n\\nLycka till önskar, froxlor',
'subject' => 'E-postkontot är nu skapat',
],
],
'menue' => [
'main' => [
'main' => 'Huvudsidan',
'changepassword' => 'Ändra lösenord',
'changelanguage' => 'Ändra språk',
'username' => 'Inloggad som: ',
],
'email' => [
'email' => 'E-post',
'emails' => 'E-post',
'webmail' => 'WebMail',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Databaser',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domäner',
'settings' => 'Inställningar',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Konton',
'webftp' => 'WebFTP',
],
'extras' => [
'extras' => 'Extras',
'directoryprotection' => 'Katalog säkerhet',
'pathoptions' => 'Inställningar sökväg',
],
'traffic' => [
'traffic' => 'Trafik',
'current' => 'Nuvarande månad',
],
],
'mysql' => [
'databasename' => 'Användare/databasnamn',
'databasedescription' => 'Beskrivning av databasen',
'database_create' => '[Skapa en ny databas]',
'description' => 'Här ändras eller skapas MySQL-Databaser. Ändringen sker omedelbart och databasen kan användas direkt. I menyn på vänster sida finns verktyget phpMyAdmin med vilket man enkelt kan ändra i sin databas.
För att använda databasen i dina egna php-scripts använd följande inställningar: (Data med kursiv stil italics måste ändras till det du matat in!) Servernamn (Hostname): Användarnamn (Username): Databsnamn (Databasename) Lösenord (Password): Lösenordet som du har valt Databas (Database): Databasnamn (Databasename)',
],
'panel' => [
'edit' => 'Ändra',
'delete' => 'Radera',
'create' => 'Skapa',
'save' => 'Spara',
'yes' => 'Ja',
'no' => 'Nej',
'emptyfornochanges' => 'Tomt fält = ingen ändring',
'emptyfordefault' => 'Förvalt värde används om fältet lämnas tommt',
'path' => 'Sökväg (Path)',
'toggle' => 'Växla (Toggle)',
'next' => 'nästa',
'dirsmissing' => 'Kan inte hitta eller läsa katalogen!',
'urloverridespath' => 'URL (skriver över sökvägen)',
'pathorurl' => 'Sökväg eller URL',
'ascending' => 'Stigande',
'descending' => 'Fallande',
'search' => 'Sök',
'used' => 'använd',
'translator' => 'Översättare',
'reset' => 'Avbryt ändringarna',
'pathDescription' => 'Katalogen kommer att skapas om den inte redan finns.',
'back' => 'Tillbaka',
],
'question' => [
'question' => 'Säkerhetsfråga',
'admin_customer_reallydelete' => 'Är du säker på att du vill radera kunden %s? Om du väljer att radera går det inte att ångra sig efteråt!',
'admin_domain_reallydelete' => 'Är du riktigt säker på att du vill radera domänen %s?',
'admin_domain_reallydisablesecuritysetting' => 'Är du riktigt säker på att du vill avaktivera säkerhetsinställningarna (OpenBasedir and/or SafeMode)?',
'admin_admin_reallydelete' => 'Är du riktigt säker på att du vill radera adminkontot %s? Alla kunder och domäner kommer att flyttas till ditt konto istället.',
'admin_template_reallydelete' => 'Är du riktigt säker på att du vill radera mallen \'%s\'?',
'domains_reallydelete' => 'Är du riktigt säker på att du vill radera domänen %s?',
'email_reallydelete' => 'Är du riktigt säker på att du vill radera E-postadressen %s?',
'email_reallydelete_account' => 'Är du riktigt säker på att du vill radera E-postkontot %s?',
'email_reallydelete_forwarder' => 'Är du riktigt säker på att du vill radera forwardern till %s?',
'extras_reallydelete' => 'Är du riktigt säker på att du vill radera katalogsäkerheten (directory protection) för %s?',
'extras_reallydelete_pathoptions' => 'Är du riktigt säker på att du vill radera katalogalternativen (path options) för %s?',
'ftp_reallydelete' => 'Är du riktigt säker på att du vill radera FTP kontot %s?',
'mysql_reallydelete' => 'Är du riktigt säker på att du vill radera databasen %s? Om du väljer att radera går det inte att ångra sig efteråt!',
'admin_configs_reallyrebuild' => 'Är du riktigt säker på att du vill skapa nya konfigurationsfiler för apache och bind?',
'admin_ip_reallydelete' => 'Är du säker på att du vill radera IP addressen %s?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Dokumentkatalogen för denna domän inte kommer att ligga under kundkatalogen, är du säker på att du vill ändra detta?',
'admin_counters_reallyupdate' => 'Vill du uppdatera alla statusberäkningar för kunder och admins?',
'admin_cleartextmailpws_reallywipe' => 'Är du säker på att du vill radera alla okrupterade lösenord från tabellen mail_users? Du kan INTE ändra dig efteråt!',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Sessionen har avslutats för att den tog för lång tid att utföra (session Timeout)',
'description' => 'Tiden (i sekunder) som användaren får vara inaktiv innan han måste logga in igen är (seconds)?',
],
'accountprefix' => [
'title' => 'Kund ID (Customer prefix)',
'description' => 'Vilket prefix skall användas till ett kundkonto?',
],
'mysqlprefix' => [
'title' => 'SQL ID (SQL Prefix)',
'description' => 'Vilket prefix skall användas till mysql?',
],
'ftpprefix' => [
'title' => 'FTP ID (FTP Prefix)',
'description' => 'Vilket prefix skall användas till ftp?',
],
'documentroot_prefix' => [
'title' => 'Hemkatalog',
'description' => 'Vilken sökväg skall det vara till hemkatalogen?',
],
'logfiles_directory' => [
'title' => 'Loggfilernas hemkatalog (Logfiles directory)',
'description' => 'Vilken sökväg skall det vara till loggfilernas hemkatalog?',
],
'ipaddress' => [
'title' => 'IP-Adress',
'description' => 'Vilken IP-adress har denna server?',
],
'hostname' => [
'title' => 'Datornamn (Hostname)',
'description' => 'Villket Datornamn (Hostname) har denna server?',
],
'apachereload_command' => [
'title' => 'Ladda om Apache kommandot (Apache reload)',
'description' => 'Ange sökvägen till programmet som laddar om Apache (reload apache) konfigurationsfiler?',
],
'bindconf_directory' => [
'title' => 'Bind konfigurationskatalog (Bind config directory)',
'description' => 'Vilken sökväg skall det vara till bind:s konfigurationsfiler?',
],
'bindreload_command' => [
'title' => 'Ange sökvägen till programmet som laddar om Bind (reload bind) konfigurationsfiler?',
'description' => 'Ange sökvägen till programmet som laddar om Bind (reload bind) konfigurationsfiler?',
],
'vmail_uid' => [
'title' => 'Mails-UID',
'description' => 'Vilket användarID (UserID) ska E-posten ha?',
],
'vmail_gid' => [
'title' => 'Mails-GID',
'description' => 'Vilket gruppID (GroupID) ska E-posten ha?',
],
'vmail_homedir' => [
'title' => 'E-post hemkatalog',
'description' => 'I vilken katalog skall E-posten sparas?',
],
'adminmail' => [
'title' => 'Avsändare',
'description' => 'Vilken avsändaradress skall E-post från admin panelen ha?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin URL',
'description' => 'Vilken URL är det till phpMyAdmin? (Måste börja med http(s)://)',
],
'webmail_url' => [
'title' => 'WebMail URL',
'description' => 'Vilken URL är det till WebMail? (Måste börja med http(s)://)',
],
'webftp_url' => [
'title' => 'WebFTP URL',
'description' => 'Vilken URL är det till WebFTP? (Måste börja med http(s)://)',
],
'language' => [
'description' => 'Vilket språk skall användas som standardspråk?',
],
'maxloginattempts' => [
'title' => 'Max antal Login försök',
'description' => 'Maximalt antal inloggningsförsök innan kontot stängs av.',
],
'deactivatetime' => [
'title' => 'Avstängningstid',
'description' => 'Tid (sec.) som kontot stängs av efter för många felaktiga försök.',
],
'pathedit' => [
'title' => 'Typ av (path input)',
'description' => 'Skall en sökväg väljas i en rullist eller matas in för hand?',
],
'nameservers' => [
'title' => 'Nameservers',
'description' => 'En kommaseparerad lista med namnet (hostname) på alla DNS:er. Den första blir den första som söks (primary).',
],
'mxservers' => [
'title' => 'MX servers',
'description' => 'En kommaseparerad lista med nummer och namn separerade men mellanslag (ex. \'10 mx.example.com\') innehåller mx servrarna.',
],
'paging' => [
'title' => 'Antal rader per sida',
'description' => 'Hur många rader skall det vara på en sida? (0 = Stäng av sidbrytning)',
],
'defaultip' => [
'title' => 'Förvald IP/Port',
'description' => 'Vilken är den förvalda IP/Port kombinationen?',
],
'phpappendopenbasedir' => [
'title' => 'Sökväg att lägga till OpenBasedir',
'description' => 'Dessa sökvägar (separerade med kolon) kommer att läggas till OpenBasedir-statement i alla vhost-container.',
],
'natsorting' => [
'title' => 'Använd mänsklig sortertering i listvisning',
'description' => 'Sorterar listan så här web1 -> web2 -> web11 istället för web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Dokumentroot för avstängda användare',
'description' => 'När en användare är avstängd kommer denna sökväg att användas som dokumentroot. Lämna fältet tommt om du inte vill skapa någon vhost.',
],
'mailpwcleartext' => [
'title' => 'Spara även lösenord till E-postkonton okrypterade i databassen',
'description' => 'Om du valt Ja så kommer alla lösenord att sparas okrypterade (klartext, fullt läsbara för alla som har rättigheter till databasen) i tabellen mail_users-table. Aktivera detta endast om du är säker på vad du gör!',
'removelink' => 'Klicka här för att radera alla okrypterade lösenord från tabellen.',
],
'ftpdomain' => [
'title' => 'FTP konton @domain',
'description' => 'Kunder kan skapa Ftp accounts user@customerdomain?',
],
'mod_fcgid' => [
'title' => 'Inkludera PHP via mod_fcgid/suexec',
'description' => 'Använd mod_fcgid/suexec/libnss_mysql för att köra PHP med tillhörande användarkonto. Denna inställning behöver en speciell apache-konfiguration!',
'configdir' => [
'title' => 'FCGI konfigurationskatalog',
'description' => 'I vilken katalog skall alla fcgi-konfigurationfiler lagras?',
],
'tmpdir' => [
'title' => 'FCGI temporärkatalog',
],
],
'sendalternativemail' => [
'title' => 'Använd en alternativ E-postadress',
'description' => 'Skicka lösenord med E-post till adressen under email-account-creation',
],
'apacheconf_vhost' => [
'title' => 'Apache vhost konfiguration fil/katalognamn',
'description' => 'Var skall vhost konfigurationen sparas? Det går att specificera alla vhost i en fil eller en katalog där alla filerna ligger (varje vhost i sin egen fil).',
],
'apacheconf_diroptions' => [
'title' => 'Apache diroptions konfiguration fil/katalognamn',
'description' => 'Var skall diroptions konfigurationen sparas? Det går att specificera alla diroptions i en fil eller en katalog där alla filerna ligger (varje diroptions i sin egen fil).',
],
'apacheconf_htpasswddir' => [
'title' => 'Apache htpasswd katalognamn',
'description' => 'Var skall htpasswd konfigurationen för katalogsäkerheten?',
],
'mysql_access_host' => [
'description' => 'En kommaseparerad lista med datornamn som tillåts att kontakta MySQL servern.',
],
],
'traffic' => [
'month' => 'Månad',
'day' => 'Dag',
'months' => [
1 => 'Januari',
2 => 'Februari',
3 => 'Mars',
4 => 'April',
5 => 'Maj',
6 => 'Juni',
7 => 'Juli',
8 => 'Augusti',
9 => 'September',
10 => 'Oktober',
11 => 'November',
12 => 'December',
],
'mb' => 'Trafik (MB)',
'distribution' => 'FTP | HTTP | Mail',
'sumhttp' => 'Summa HTTP-Trafik i',
'sumftp' => 'Summa FTP-Trafik i',
'summail' => 'Summa E-posttrafik i',
],
'translator' => 'Staffan Starberg',
];
================================================
FILE: lng/sk.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => 'Čeština',
'de' => 'Nemčina',
'en' => 'Angličtina',
'fr' => 'Francúzština',
'hu' => 'Maďarčina',
'it' => 'Taliančina',
'nl' => 'Holandčina',
'pt' => 'Portugalčina',
'se' => 'Švédčina',
'sk' => 'Slovenčina',
'es' => 'Španielčina',
'ca' => 'Katalánčina',
'zh_CN' => 'Čínčina (Zjednodušená)',
],
'2fa' => [
'2fa' => 'Možnosti 2FA',
'2fa_enabled' => 'Aktivovať dvojfázové overenie (2FA)',
'2fa_removed' => '2FA úspešne odobraté',
'2fa_added' => '2FA úspešne aktivované Zobraziť podrobnosti 2FA',
'2fa_add' => 'Aktivovať 2FA',
'2fa_delete' => 'Deaktivovať 2FA',
'2fa_verify' => 'Overiť kód',
'2fa_overview_desc' => 'Tu môžete aktivovať dvojfaktorové overovanie vášho účtu.
Môžete buď použiť autentifikátor-aplikáciu (jednorazové heslo / TOTP) alebo nechať froxlor po každom úspešnom prihlásení pomocou jednorazového hesla poslať e-mail na vašu e-mailovú adresu.',
'2fa_email_desc' => 'Váš účet je nastavený na používanie jednorazových hesiel cez e-mail. Ak chcete deaktivovať, kliknite na "Deaktivovať 2FA"',
'2fa_ga_desc' => 'Váš účet je nastavený tak, aby používal jednorazové heslá založené na čase prostredníctvom autentifikačnej aplikácie. Naskenujte nižšie uvedený QR kód pomocou požadovanej autentifikačnej aplikácie na generovanie kódov. Ak chcete deaktivovať, kliknite na "Deaktivovať 2FA"',
'2fa_not_activated' => 'Dvojfázové overovanie nie je povolené',
'2fa_not_activated_for_user' => 'Dvojfaktorové overenie nie je pre aktuálneho používateľa povolené',
'type_2fa' => 'Stav 2FA',
],
'admin' => [
'overview' => 'Prehľad',
'ressourcedetails' => 'Využitie zdrojov',
'systemdetails' => 'Podrobnosti o systéme',
'froxlordetails' => 'Podrobnosti o froxlore',
'installedversion' => 'Nainštalovaná verzia',
'latestversion' => 'Najnovšia verzia',
'lookfornewversion' => [
'clickhere' => 'Vyhľadávať prostredníctvom webovej služby',
'error' => 'Pri čítaní došlo k chybe',
],
'resources' => 'Zdroje',
'customer' => 'Zákazník',
'customers' => 'Zákazníci',
'customers_list_desc' => 'Spravovať svojich zákazníkov',
'customer_add' => 'Vytvoriť zákazníka',
'customer_edit' => 'Upraviť zákazníka',
'username_default_msg' => 'Nechajte prázdne pre automaticky generovanú hodnotu',
'password_default_msg' => 'Automaticky vygenerované, ak je prázdne',
'domains' => 'Domény',
'domain_add' => 'Vytvoriť doménu',
'domain_edit' => 'Upraviť doménu',
'subdomainforemail' => 'Subdomény ako e-mailové domény',
'admin' => 'Admin',
'admins' => 'Administrátori',
'admin_add' => 'Vytvoriť administrátora',
'admin_edit' => 'Upraviť administrátora',
'customers_see_all' => 'Môžete pristupovať k ďalším správcom/predajcom?',
'change_serversettings' => 'Môže zmeniť nastavenia servera?',
'server' => 'Systém',
'serversettings' => 'Nastavenia',
'serversettings_desc' => 'Spravujte váš systém froxlor',
'rebuildconf' => 'Znovu vytvoriť konfiguračné súbory',
'stdsubdomain' => 'Štandardná subdoména',
'stdsubdomain_add' => 'Vytvoriť štandardnú subdoménu',
'phpenabled' => 'PHP povolené',
'deactivated' => 'Deaktivované',
'deactivated_user' => 'Deaktivovať používateľa',
'sendpassword' => 'Poslať heslo',
'ownvhostsettings' => 'Vlastné nastavenia vHost-servera',
'configfiles' => [
'serverconfiguration' => 'Konfigurácia',
'overview' => 'Prehľad',
'wizard' => 'Sprievodca',
'distribution' => 'Distribúcia',
'service' => 'Služba',
'daemon' => 'Daemon',
'http' => 'Webový server (HTTP)',
'dns' => 'Nameserver (DNS)',
'mail' => 'Poštový server (IMAP/POP3)',
'smtp' => 'Mailový server (SMTP)',
'ftp' => 'FTP server',
'etc' => 'Ostatné (Systém)',
'choosedistribution' => '-- Vyberte distribúciu --',
'chooseservice' => '-- Vyberte službu --',
'choosedaemon' => '-- Zvoľte daemon --',
'statistics' => 'Štatistiky',
'compactoverview' => 'Kompaktný prehľad',
'legend' => '
Chystáte sa nakonfigurovať službu/daemon
',
'commands' => 'Príkazy: Tieto príkazy majú byť spustené riadok po riadku ako používateľ root v shelli. Je bezpečné skopírovať celý blok a vložiť ho do konzoly.',
'files' => 'Konfiguračné súbory: Príkazy pred textovými poľami by mali otvoriť editor s cieľovým súborom. Stačí skopírovať a vložiť obsah do editora a uložiť súbor. Upozornenie: MySQL heslo nebolo z bezpečnostných dôvodov nahradené. Prosím nahraďte "FROXLOR_MYSQL_PASSWORD" samostatne alebo použite formulár javascript nižšie na nahradenie na webe. Ak ste zabudli heslo k MySQL, nájdete ho v "lib/userdata.inc.php"',
'importexport' => 'Importovať/Exportovať',
'finishnote' => 'Súbor parametrov bol úspešne vygenerovaný. Teraz spustite nasledujúci príkaz ako root:',
'description' => 'Konfigurácia systémových služieb',
'minihowto' => 'Na tejto stránke môžete zobraziť rôzne konfiguračné šablóny pre každú službu, (opätovne)konfigurovať špecifické služby v prípade potreby alebo exportovať aktuálny výber do JSON súboru na použitie v skriptoch CLI alebo na inom serveri.
Poznámka: zvýraznené služby neodrážajú aktuálne nastavenia, ale zobrazujú požiadavky/odporúčania z vašich aktuálnych hodnôt nastavení.',
'skipconfig' => 'Ne(re)konfigurovať',
'recommendednote' => 'Odporúčané/požadované služby na základe aktuálnych nastavení systému',
'selectrecommended' => 'Vybrať odporúčané',
'downloadselected' => 'Exportovať vybrané',
],
'templates' => [
'templates' => 'Šablóny e-mailov',
'template_add' => 'Pridať šablónu',
'template_fileadd' => 'Pridať šablónu súboru',
'template_edit' => 'Upraviť šablónu',
'action' => 'Akcia',
'email' => 'E-mailové a súborové šablóny',
'subject' => 'Predmet',
'mailbody' => 'Text e-mailu',
'createcustomer' => 'Uvítací e-mail pre nových zákazníkov',
'pop_success' => 'Uvítací e-mail pre nové e-mailové účty',
'template_replace_vars' => 'Premenné, ktoré majú byť nahradené v šablóne:',
'SALUTATION' => 'Nahradené správnym oslovením (meno alebo názov spoločnosti)',
'FIRSTNAME' => 'Nahradené krstným menom zákazníka.',
'NAME' => 'Nahradené menom zákazníka.',
'COMPANY' => 'Nahrádza názov firmy zákazníka',
'USERNAME' => 'Nahradí používateľským menom zákazníka.',
'PASSWORD' => 'Nahradí heslom zákazníka.',
'EMAIL' => 'Nahradené adresou účtu POP3/IMAP.',
'CUSTOMER_NO' => 'Nahradí číslo zákazníka',
'TRAFFIC' => 'Nahradené prenosom, ktorý bol priradený zákazníkovi.',
'TRAFFICUSED' => 'Nahradené prenosom, ktorý bol zákazníkom vyčerpaný.',
'pop_success_alternative' => 'Uvítací e-mail pre nové e-mailové účty odoslaný na alternatívnu adresu',
'EMAIL_PASSWORD' => 'Nahradí heslom účtu POP3/IMAP.',
'index_html' => 'indexový súbor pre novo vytvorené adresáre zákazníkov',
'unconfigured_html' => 'súbor indexu pre nenastavené/neznáme domény',
'unconfigured_content_fallback' => 'Táto doména vyžaduje konfiguráciu prostredníctvom panela pre správu servera froxlor, pretože momentálne nie je priradená žiadnemu zákazníkovi.',
'file_extension' => [
'description' => 'Prípona súboru pre index musí byť v rozsahu 1 až 6 znakov. Prípona môže obsahovať iba znaky ako a-z, A-Z a 0-9
Predvolená: html',
'title' => 'Prípona súboru pre šablónu súboru',
],
'SERVERNAME' => 'Nahradené názvom servera.',
'CUSTOMER' => 'Nahradené prihlasovacím menom zákazníka. Iba pre "indexový súbor pre novo vytvorené adresáre zákazníkov"',
'ADMIN' => 'Nahradené prihlasovacím menom správcu. Iba pre "indexový súbor pre novo vytvorené adresáre zákazníkov"',
'CUSTOMER_EMAIL' => 'Nahradené e-mailovou adresou zákazníka. Iba pre "indexový súbor pre novo vytvorené adresáre zákazníkov"',
'ADMIN_EMAIL' => 'Nahradené e-mailovou adresou správcu. Iba pre "indexový súbor pre novo vytvorené adresáre zákazníkov"',
'filetemplates' => 'Šablóny súborov',
'filecontent' => 'Obsah súboru',
'new_database_by_customer' => 'Upozornenie zákazníka na vytvorenie databázy',
'new_ftpaccount_by_customer' => 'Upozornenie zákazníka na vytvorenie ftp používateľa',
'newdatabase' => 'Notifikačné e-maily o nových databázach',
'newftpuser' => 'Notifikačné e-maily o nových ftp používateľoch',
'CUST_NAME' => 'Meno zákazníka',
'DB_NAME' => 'Názov databázy',
'DB_PASS' => 'Heslo databázy',
'DB_DESC' => 'Popis databázy',
'DB_SRV' => 'Databázový server',
'PMA_URI' => 'URL na phpMyAdmin (ak bolo poskytnuté)',
'USR_NAME' => 'FTP používateľské meno',
'USR_PASS' => 'FTP heslo',
'USR_PATH' => 'Domovský adresár FTP (relatívny k adresáru customer-docroot)',
'forgotpwd' => 'Notifikačné e-maily o obnovení hesla',
'password_reset' => 'Upozornenie pre zákazníka na obnovenie hesla',
'trafficmaxpercent' => 'Upozornenie pre zákazníkov pri vyčerpaní daného maximálneho percenta prenosu',
'MAX_PERCENT' => 'Nahradené limitom využitia disku/limitu prenosu pre odosielanie správ v percentách.',
'USAGE_PERCENT' => 'Nahradené využitím disku / prenosom, ktorý bol zákazníkom vyčerpaný v percentách.',
'diskmaxpercent' => 'Oznamovací e-mail pre zákazníkov, ak je vyčerpané maximum percent z disku',
'DISKAVAILABLE' => 'Nahradené využitím disku, ktorý bol priradený zákazníkovi.',
'DISKUSED' => 'Nahradené využitím disku, ktorý bol zákazníkom vyčerpaný.',
'LINK' => 'Nahradené odkazom na obnovenie hesla zákazníka.',
'SERVER_HOSTNAME' => 'Nahradí názov systémového hostiteľa (URL do froxlor)',
'SERVER_IP' => 'Nahradí predvolenú IP adresu servera',
'SERVER_PORT' => 'Nahradí predvolený port servera',
'DOMAINNAME' => 'Nahrádza štandardnú subdoménu zákazníka (môže byť prázdna, ak nie je vygenerovaná žiadna)',
],
'webserver' => 'Webový server',
'createzonefile' => 'Vytvoriť DNS zónu pre doménu',
'custombindzone' => 'Vlastný / nespravovaný súbor zóny',
'bindzonewarning' => 'pre predvolené nastavenie POZOR: Ak používate zonefile, budete musieť ručne spravovať všetky požadované záznamy aj pre všetky podzóny.',
'ipsandports' => [
'ipsandports' => 'IP adresy a porty',
'add' => 'Pridať IP/port',
'edit' => 'Upraviť IP/port',
'ipandport' => 'IP/Port',
'ip' => 'IP',
'ipnote' => '
Poznámka: Hoci sú súkromné IP adresy povolené, niektoré funkcie ako DNS sa nemusia správať správne. Používajte iba súkromné IP adresy, ak si tým istí.
',
'port' => 'Port',
'create_listen_statement' => 'Vytvoriť Listen statement',
'create_namevirtualhost_statement' => 'Vytvoriť zápis VirtualHost',
'create_vhostcontainer' => 'Vytvoriť vHost-Container',
'create_vhostcontainer_servername_statement' => 'Vytvoriť zápis ServerName v kontajneri vHost-Container',
'enable_ssl' => 'Je toto SSL port?',
'ssl_cert_file' => 'Cesta k certifikátu SSL',
'webserverdefaultconfig' => 'Predvolené nastavenia webservera',
'webserverdomainconfig' => 'Konfigurácia domény webservera',
'webserverssldomainconfig' => 'Konfigurácia webservera SSL',
'ssl_key_file' => 'Cesta k súboru kľúča SSL',
'ssl_ca_file' => 'Cesta k SSL CA certifikátu',
'default_vhostconf_domain' => 'Predvolené nastavenia vHost pre každý kontajner domény',
'ssl_cert_chainfile' => [
'title' => 'Cesta k súboru SSL CertificateChainFile',
'description' => 'Väčšinou CA_Bundle alebo podobný, pravdepodobne ho budete chcieť nastaviť, ak ste si zakúpili SSL certifikát.',
],
'docroot' => [
'title' => 'Vlastný docroot (prázdny = ukazuje na froxlor)',
'description' => 'Tu môžete definovať vlastný koreňový adresár dokumentu (cieľ požiadavky) pre túto kombináciu IP/port. POZOR: Dávajte pozor, čo tu zadávate!',
],
'ssl_paste_description' => 'Vložte celý obsah certifikátu do textového poľa',
'ssl_cert_file_content' => 'Obsah certifikátu SSL',
'ssl_key_file_content' => 'Obsah súboru SSL (súkromného) kľúča',
'ssl_ca_file_content' => 'Obsah súboru SSL CA (nepovinné)',
'ssl_ca_file_content_desc' => '
Overovanie klienta, nastavte to len ak viete, čo robíte.',
'ssl_cert_chainfile_content' => 'Obsah súboru certifikačného reťazca (nepovinné)',
'ssl_cert_chainfile_content_desc' => '
Najčastejšie CA_Bundle alebo podobný, pravdepodobne ho budete chcieť nastaviť, ak ste si zakúpili SSL certifikát.',
'ssl_default_vhostconf_domain' => 'Predvolené nastavenia SSL vHost pre každý kontajner domény',
],
'memorylimitdisabled' => 'Zakázané',
'valuemandatory' => 'Táto hodnota je povinná',
'valuemandatorycompany' => 'Musí byť vyplnené buď "meno" a "krstné meno" alebo "názov spoločnosti"',
'serversoftware' => 'Softvér servera',
'phpversion' => 'Verzia PHP',
'mysqlserverversion' => 'Verzia MySQL servera',
'webserverinterface' => 'Rozhranie webservera',
'accountsettings' => 'Nastavenia účtu',
'panelsettings' => 'Nastavenia panela',
'systemsettings' => 'Systémové nastavenia',
'webserversettings' => 'Nastavenia webservera',
'mailserversettings' => 'Nastavenia mailového servera',
'nameserversettings' => 'Nastavenia nameservera',
'updatecounters' => 'Prepočítať využitie zdrojov',
'subcanemaildomain' => [
'never' => 'Nikdy',
'choosableno' => 'Voliteľné, predvolene nie',
'choosableyes' => 'Voliteľné, predvolene áno',
'always' => 'Vždy',
],
'wipecleartextmailpwd' => 'Vymazať heslo v čistom texte',
'webalizersettings' => 'Nastavenia Webalizéra',
'webalizer' => [
'normal' => 'Normálny',
'quiet' => 'Tiché',
'veryquiet' => 'Žiadny výstup',
],
'domain_nocustomeraddingavailable' => 'Momentálne nie je možné pridať doménu. Najprv musíte pridať aspoň jedného zákazníka.',
'loggersettings' => 'Nastavenia logovania',
'logger' => [
'normal' => 'normálny',
'paranoid' => 'paranoidný',
],
'emaildomain' => 'E-mailová doména',
'email_only' => 'Iba e-mail?',
'wwwserveralias' => 'Pridať "www." ServerAlias',
'subject' => 'Predmet',
'recipient' => 'Príjemca',
'message' => 'Napísať správu',
'text' => 'Správa',
'sslsettings' => 'Nastavenia SSL',
'specialsettings_replacements' => 'Môžete použiť nasledujúce premenné: {DOMAIN}, {DOCROOT}, {CUSTOMER}{IP}, {PORT}{SCHEME}, {FPMSOCKET} (ak je relevantné) ',
'antispam_settings' => 'Nastavenia Antispamu',
'caneditphpsettings' => 'Môže zmeniť nastavenia PHP domény?',
'allips' => 'Všetky IP adresy',
'awstatssettings' => 'Nastavenia AWstats',
'domain_dns_settings' => 'Nastavenia doménového DNS',
'activated' => 'Aktivované',
'statisticsettings' => 'Nastavenia štatistík',
'or' => 'alebo',
'sysload' => 'Systémové zaťaženie',
'noloadavailable' => 'nie je k dispozícii',
'nouptimeavailable' => 'nie je k dispozícii',
'nosubject' => '(Bez predmetu)',
'security_settings' => 'Možnosti zabezpečenia',
'know_what_youre_doing' => 'Meňte iba ak viete, čo robíte!',
'show_version_login' => [
'title' => 'Zobraziť verziu froxlor pri prihlásení',
'description' => 'Zobraziť verziu froxlor v päte na prihlasovacej stránke',
],
'show_version_footer' => [
'title' => 'Zobraziť verziu froxlor v päte',
'description' => 'Zobraziť verziu froxlor v päte na ostatných stránkach',
],
'froxlor_graphic' => [
'title' => 'Grafické záhlavie pre froxlor',
'description' => 'Aká grafika by mala byť zobrazená v záhlaví',
],
'phpsettings' => [
'title' => 'PHP konfigurácia',
'description' => 'Stručný popis',
'actions' => 'Akcie',
'activedomains' => 'Používa sa pre doménu/y',
'notused' => 'Konfigurácia sa nepoužíva',
'editsettings' => 'Zmeniť nastavenia PHP',
'addsettings' => 'Vytvoriť nové nastavenia PHP',
'viewsettings' => 'Zobraziť nastavenia PHP',
'phpinisettings' => 'php.ini nastavenia',
'addnew' => 'Vytvoriť novú konfiguráciu PHP',
'binary' => 'PHP Binary',
'fpmdesc' => 'PHP-FPM konfigurácia',
'file_extensions' => 'Prípony súborov',
'file_extensions_note' => '(bez bodky, oddelené medzerami)',
'enable_slowlog' => 'Povoliť slowlog (pre každú doménu)',
'request_terminate_timeout' => 'Časový limit ukončenia požiadavky',
'request_slowlog_timeout' => 'Časový limit slowlogu',
'activephpconfigs' => 'Používa sa pre php-config(y)',
'pass_authorizationheader' => 'Predávanie hlavičiek HTTP AUTH BASIC/DIGEST z Apache do PHP',
],
'misc' => 'Ostatné',
'fpmsettings' => [
'addnew' => 'Vytvoriť novú verziu PHP',
'edit' => 'Zmeniť verziu PHP'
],
'phpconfig' => [
'template_replace_vars' => 'Premenné, ktoré budú nahradené v konfigurácii',
'pear_dir' => 'Bude nahradené globálnym nastavením pre adresár pearl.',
'open_basedir_c' => 'Vloží ; (bodkočiarka) do komentára/vypne open_basedir pri nastavení',
'open_basedir' => 'Bude nahradené nastavením domény open_basedir.',
'tmp_dir' => 'Bude nahradené dočasným adresárom domény.',
'open_basedir_global' => 'Bude nahradená globálnou hodnotou cesty, ktorá bude pripojená k open_basedir (pozri nastavenia webservera).',
'customer_email' => 'Bude nahradené e-mailovou adresou zákazníka, ktorý vlastní túto doménu.',
'admin_email' => 'Bude nahradené e-mailovou adresou správcu, ktorý vlastní túto doménu.',
'domain' => 'Bude nahradené doménou.',
'customer' => 'Bude nahradené prihlasovacím menom zákazníka, ktorý vlastní túto doménu.',
'admin' => 'Bude nahradené prihlasovacím menom správcu, ktorý vlastní túto doménu.',
'docroot' => 'Bude nahradené koreňovým adresárom domény.',
'homedir' => 'Bude nahradené domovským adresárom zákazníka.',
],
'expert_settings' => 'Pokročilé nastavenia!',
'mod_fcgid_starter' => [
'title' => 'PHP procesy pre túto doménu (prázdne pre predvolenú hodnotu)',
],
'phpserversettings' => 'Nastavenia PHP',
'mod_fcgid_maxrequests' => [
'title' => 'Maximálny počet php požiadaviek pre túto doménu (ponechajte prázdne pre predvolenú hodnotu)',
],
'spfsettings' => 'Nastavenia SPF domén',
'specialsettingsforsubdomains' => 'Použiť špeciálne nastavenia pre všetky subdomény (*.example.com)',
'accountdata' => 'Údaje o účte',
'contactdata' => 'Kontaktné údaje',
'servicedata' => 'Údaje o službe',
'newerversionavailable' => 'Je k dispozícii novšia verzia froxloru.',
'newerversiondetails' => 'Aktualizovať na verziu %s teraz? (Vaša aktuálna verzia je: %s)',
'extractdownloadedzip' => 'Extrahovať stiahnutý archív "%s"?',
'cron' => [
'cronsettings' => 'Nastavenia Cronjobu',
'add' => 'Pridať cronjob',
],
'cronjob_edit' => 'Upraviť cronjob',
'warning' => 'VAROVANIE - Berte prosím na vedomie!',
'lastlogin_succ' => 'Posledné prihlásenie',
'ftpserver' => 'FTP Server',
'ftpserversettings' => 'Nastavenia FTP servera',
'webserver_user' => 'Používateľské meno webservera',
'webserver_group' => 'Názov skupiny webservera',
'perlenabled' => 'Perl povolený',
'fcgid_settings' => 'FCGID',
'mod_fcgid_user' => 'Lokálny používateľ pre FCGID (froxlor vHost)',
'mod_fcgid_group' => 'Lokálna skupina pre FCGID (froxlor vHost)',
'perl_settings' => 'Perl/CGI',
'notgiven' => '[neposkytnuté]',
'store_defaultindex' => 'Uložiť predvolený indexový súbor zákazníkovi docroot',
'phpfpm_settings' => 'PHP-FPM',
'traffic' => 'Prenos',
'traffic_sub' => 'Podrobnosti o využití prenosu',
'domaintraffic' => 'Domény',
'customertraffic' => 'Zákazníci',
'assignedmax' => 'Priradené / Max',
'usedmax' => 'Použité / Max',
'used' => 'Využité',
'speciallogwarning' => '
Pozor: Zmenou tohto nastavenia stratíte všetky staré štatistiky pre túto doménu.
',
'speciallogfile' => [
'title' => 'Oddeliť súbor logu',
'description' => 'Povolením tejto možnosti získate pre túto doménu samostatný súbor protokolu prístupu',
],
'domain_editable' => [
'title' => 'Povoliť úpravy domény',
'desc' => 'Ak je nastavené áno, môže zákazník zmeniť niekoľko nastavení domény. Ak je nastavené nie, zákazník nemôže nič meniť.',
],
'writeaccesslog' => [
'title' => 'Zapisovať protokol prístupu',
'description' => 'Povolením tejto možnosti získate súbor protokolu prístupu pre túto doménu',
],
'writeerrorlog' => [
'title' => 'Zapísať protokol chýb',
'description' => 'Povolením tejto funkcie získate súbor s protokolom chýb pre túto doménu',
],
'phpfpm.ininote' => 'Nie všetky hodnoty, ktoré chcete definovať, môžu byť použité v konfigurácii php-fpm poolu',
'phpinfo' => 'PHPinfo()',
'selectserveralias' => 'Hodnota ServerAlias pre doménu',
'selectserveralias_desc' => 'Vyberte, či by froxlor mal vytvoriť wildcard-entry (*.domain.tld), WWW-alias (www.domain.tld) alebo žiadny alias',
'show_news_feed' => [
'title' => 'Zobraziť novinky na admin nástenke',
'description' => 'Povolením zobrazíte oficiálne novinky froxlor (https://inside.froxlor.org/news/) na vašej nástenke a nikdy nezmeškáte dôležité informácie alebo oznámenia o vydaní.',
],
'cronsettings' => 'Nastavenia Cronjobu',
'integritycheck' => 'Overenie databázy',
'integrityname' => 'Názov',
'integrityresult' => 'Výsledok',
'integrityfix' => 'Automaticky opraviť problémy',
'customer_show_news_feed' => 'Zobraziť novinky na ovládacom paneli zákazníka',
'customer_news_feed_url' => [
'title' => 'Použiť vlastný RSS-feed',
'description' => 'Zadajte vlastný RSS kanál, ktorý bude zobrazený vašim zákazníkom na ich nástenke. Ponechajte prázdne pre použitie oficiálneho froxlor newsfeedu (https://inside.froxlor.org/news/).',
],
'movetoadmin' => 'Presunúť zákazníka',
'movecustomertoadmin' => [
'title' => 'Presunúť zákazníka na vybraného administrátora/predajcu',
'description' => 'Ponechajte prázdne pre žiadnu zmenu. Ak sa požadovaný administrátor nezobrazuje v zozname, jeho zákaznícky limit bol dosiahnutý.',
],
'note' => 'Poznámka',
'mod_fcgid_umask' => [
'title' => 'Umask (predvolené: 022)',
],
'apcuinfo' => 'APCu info',
'opcacheinfo' => 'OPcache Info',
'letsencrypt' => [
'title' => 'Použiť Let\'s Encrypt',
'description' => 'Získajte zdarma certifikát od Let\'s Encrypt. Certifikát bude vytvorený a obnovený automaticky. POZNÁMKA: Ak sú povolené wildcards, táto možnosť bude automaticky zakázaná.',
],
'autoupdate' => 'Automatická aktualizácia',
'server_php' => 'PHP',
'dnsenabled' => 'Povoliť DNS editor',
'froxlorvhost' => 'froxlor VirtualHost nastavenia',
'hostname' => 'Názov servera',
'memory' => 'Využitie pamäte',
'webserversettings_ssl' => 'Nastavenia SSL Webservera',
'domain_hsts_maxage' => [
'title' => 'HTTP Strict Transport Security (HSTS)',
'description' => 'Zadajte hodnotu maximálneho veku pre hlavičku Strict-Transport-Security Hodnota 0 zakáže HSTS pre doménu. Väčšina používateľov nastavuje hodnotu 31536000 (jeden rok).',
],
'domain_hsts_incsub' => [
'title' => 'Zahrnúť HSTS pre akúkoľvek subdoménu',
'description' => 'Voliteľná direktíva „includeSubDomains", ak je prítomná, signalizuje UA, že zásady HSTS sa vzťahujú na tohto hostiteľa HSTS aj na všetky subdomény názvu domény hostiteľa.',
],
'domain_hsts_preload' => [
'title' => 'Zahrnúť doménu do zoznamu prednahrania HSTS',
'description' => 'Ak chcete, aby bola táto doména zahrnutá do HSTS preload listu spravovaného Chrome (a používaného Firefoxom a Safari), použite túto aktiváciu. Odoslanie preload direktívy z vašich stránok môže mať TRVALÉ NÁSLEDKY a zabrániť používateľom v prístupe na vaše stránky a všetky ich subdomény. Pred odoslaním hlavičky s "preload" si prosím prečítajte podrobnosti na https://hstspreload.org/#removal.',
],
'domain_ocsp_stapling' => [
'title' => 'Stapling OCSP',
'description' => 'Podrobné vysvetlenie stapling OCSP pozri Wikipedia',
'nginx_version_warning' => ' VAROVANIE: Nginx verzia 1.3.7 alebo vyššia je vyžadovaná pre OCSP stapling. Ak je vaša verzia staršia, webový server NEBUDE správne spustený, kým je povolený OCSP stapling!',
],
'domain_http2' => [
'title' => 'HTTP2 podpora',
'description' => 'Navštívte Wikipedia pre podrobné vysvetlenie HTTP2 protokolu',
],
'domain_http3' => [
'title' => 'HTTP3 podpora',
'description' => 'Navštívte Wikipedia pre podrobné vysvetlenie HTTP3 protokolu',
'nginx_version_warning' => ' VAROVANIE: Je vyžadovaná Nginx verzia 1.25.0 alebo vyššia a pre HTTP/3 je vyžadovaný ssl-protokol TLSv1.3. Ak je vaša verzia staršia, webový server sa pri zapnutom HTTP/3 správne nespustí!',
],
'testmail' => 'Test SMTP',
'phpsettingsforsubdomains' => 'Použiť php konfiguráciu na všetky subdomény:',
'plans' => [
'name' => 'Názov plánu',
'description' => 'Popis',
'last_update' => 'Naposledy aktualizované',
'plans' => 'Hostingové plány',
'plan_details' => 'Detaily plánu',
'add' => 'Pridať nový plán',
'edit' => 'Upraviť plán',
'use_plan' => 'Použiť plán',
],
'notryfiles' => [
'title' => 'Žiadne automatické generovanie try_files',
'description' => 'Tu zvoľte áno, ak chcete v špeciálnom nastavení zadať vlastnú direktívu try_files (potrebnú napríklad pre niektoré pluginy WordPressu).',
],
'logviewenabled' => 'Povoliť prístup k protokolom prístupu/chýb',
'novhostcontainer' => '
Žiadna z IP adries a portov nemá povolenú možnosť "Vytvoriť vHost-Container", mnoho nastavení tu nebude k dispozícii',
'ownsslvhostsettings' => 'Vlastné SSL vHost-nastavenia',
'domain_override_tls' => 'Prepísať nastavenia systémového TLS',
'domain_override_tls_addinfo' => ' Používa sa iba v prípade, že "Prepísať nastavenia TLS systému" je nastavené na "Áno"',
'domain_sslenabled' => 'Povoliť použitie SSL',
'domain_honorcipherorder' => 'Dodržiavať poradie šifry (servera), predvolené nie',
'domain_sessiontickets' => 'Povoliť TLS sessiontickety (RFC 5077), predvolené áno',
'domain_sessionticketsenabled' => [
'title' => 'Povoliť použitie ticketov TLS globálne',
'description' => 'Predvolené áno Vyžaduje apache-2.4.11+ alebo nginx-1.5.9+',
],
'domaindefaultalias' => 'Predvolená hodnota serverAlias pre nové domény',
'smtpsettings' => 'Nastavenia SMTP',
'smtptestaddr' => 'Odoslať testovací e-mail na',
'smtptestnote' => 'Nižšie uvedené hodnoty odrážajú vaše aktuálne nastavenia a možno ich upraviť iba tu (pozri odkaz v pravom hornom rohu)',
'smtptestsend' => 'Odoslať testovací e-mail',
'mysqlserver' => [
'mysqlserver' => 'MySQL Server',
'dbserver' => 'Server #',
'caption' => 'Popis',
'host' => 'Názov servera / IP',
'port' => 'Port',
'user' => 'Oprávnený používateľ',
'add' => 'Pridať nový MySQL server',
'edit' => 'Upraviť MySQL server',
'password' => 'Heslo oprávneného používateľa',
'password_emptynochange' => 'Nové heslo, ponechajte prázdne pre zachovanie aktuálneho',
'allowall' => [
'title' => 'Povoliť použitie tohto servera všetkým aktuálne existujúcim zákazníkom',
'description' => 'Nastavte túto hodnotu na „true", ak chcete povoliť používanie tohto databázového servera všetkým existujúcim zákazníkom, aby naň mohli pridávať databázy. Toto nastavenie nie je trvalé, ale možno ho spustiť viackrát.',
],
'testconn' => 'Otestovať pripojenie pri ukladaní',
'ssl' => 'Použiť SSL pre pripojenie k databázovému serveru',
'ssl_cert_file' => 'Cesta k súboru SSL Certifikačnej autority',
'verify_ca' => 'Povoliť overenie serverového SSL certifikátu',
],
'settings_importfile' => 'Zvoliť importovaný súbor',
'documentation' => 'Dokumentácia',
'adminguide' => 'Admin sprievodca',
'userguide' => 'Používateľský manuál',
'apiguide' => 'Sprievodca API',
'domain_duplicate' => 'Duplikovať doménu',
'domain_duplicate_named' => 'Duplikovať %s',
'backups' => [
'backups' => 'Zálohy',
],
'emaildomainwarning' => '
VAROVANIE: Zmenou tohto nastavenia trvale vymažete všetky existujúce e-mailové adresy a účty.
',
],
'apcuinfo' => [
'clearcache' => 'Vymazať APCu vyrovnávaciu pamäť',
'generaltitle' => 'Všeobecné informácie o vyrovnávacej pamäti',
'version' => 'Verzia APCu',
'phpversion' => 'Verzia PHP',
'host' => 'APCu hostiteľ',
'sharedmem' => 'Zdieľaná pamäť',
'sharedmemval' => '%d Segment(y) s %s (%s pamäti)',
'start' => 'Čas spustenia',
'uptime' => 'Doba prevádzky',
'upload' => 'Podpora nahrávania súborov',
'cachetitle' => 'Informácie o vyrovnávacej pamäti',
'cvar' => 'Premenné vo vyrovnávacej pamäti',
'hit' => 'Zásahy',
'miss' => 'Nevyužité',
'reqrate' => 'Miera požiadaviek (zásahy, nevyužité)',
'creqsec' => 'požiadavky vyrovnávacej pamäte za sekundu',
'hitrate' => 'Rýchlosť zásahu',
'missrate' => 'Nevyužitá miera',
'insrate' => 'Insert Rate',
'cachefull' => 'Plný počet vyrovnávacej pamäti',
'runtime' => 'Nastavenia spustenia',
'memnote' => 'Využitie pamäti',
'total' => 'Celkom',
'free' => 'Voľné',
'used' => 'Využité',
'hitmiss' => 'Zásahy & Nevyužité',
'detailmem' => 'Podrobné využitie pamäti a fragmentácia',
'fragment' => 'Fragmentácia',
'nofragment' => 'Bez fragmentácie',
'fragments' => 'Fragmentácia',
],
'apikeys' => [
'no_api_keys' => 'Neboli nájdené žiadne API kľúče',
'key_add' => 'Pridať nový kľúč',
'apikey_removed' => 'Api kľúč s Id #%s bol úspešne odstránený',
'apikey_added' => 'Bol úspešne vygenerovaný nový api kľúč',
'clicktoview' => 'Kliknite pre zobrazenie',
'allowed_from' => 'Povolené od',
'allowed_from_help' => 'Čiarkami oddelený zoznam Ip adries / sietí. Predvolené nastavenie je prázdne (povoliť od všetkých).',
'valid_until' => 'Platné do',
'valid_until_help' => 'Dátum platnosti, formát RRRR-MM-DDTh:mm',
],
'changepassword' => [
'old_password' => 'Staré heslo',
'new_password' => 'Nové heslo',
'new_password_confirm' => 'Potvrdiť heslo',
'new_password_ifnotempty' => 'Nové heslo (prázdne = žiadna zmena)',
'also_change_ftp' => ' tiež zmeniť heslo hlavného FTP účtu',
'also_change_stats' => ' tiež zmeniť heslo pre stránku so štatistikou',
'also_change_global_mysql' => 'tiež zmeniť heslo pre globálny MySQL účet',
],
'cron' => [
'cronname' => 'názov cronjobu',
'lastrun' => 'posledné spustenie',
'interval' => 'interval',
'isactive' => 'povolené',
'description' => 'popis',
'changewarning' => 'Zmena týchto hodnôt môže mať negatívny vplyv na správanie froxlor a jeho automatických úloh. Zmeňte hodnoty tu iba ak ste si istí, že viete, čo robíte.',
],
'crondesc' => [
'cron_unknown_desc' => 'nebol zadaný žiadny popis',
'cron_tasks' => 'Generovanie konfiguračných súborov',
'cron_legacy' => 'starší (starý) cronjob',
'cron_traffic' => 'Výpočet dátovej prevádzky',
'cron_usage_report' => 'Hlásenie o prevádzke a webe',
'cron_mailboxsize' => 'Výpočet veľkosti schránky',
'cron_letsencrypt' => 'Aktualizácia certifikátu Let\'s Encrypt',
'cron_export' => 'Spracovanie úloh exportu dát',
'cron_backup' => 'Spracovanie úloh zálohovania systému a zákazníkov',
],
'cronjob' => [
'cronjobsettings' => 'Nastavenia Cronjobu',
'cronjobintervalv' => 'Hodnota intervalu behu',
'cronjobinterval' => 'Interval behu',
],
'cronjobs' => [
'notyetrun' => 'Ešte nespustené',
],
'cronmgmt' => [
'minutes' => 'minút',
'hours' => 'hodín',
'days' => 'dní',
'weeks' => 'týždňov',
'months' => 'mesiacov',
],
'customer' => [
'documentroot' => 'Domovský adresár',
'name' => 'Názov',
'firstname' => 'Krstné meno',
'lastname' => 'Priezvisko',
'company' => 'Firma',
'nameorcompany_desc' => 'Krstné meno/priezvisko alebo firma je povinná',
'street' => 'Ulica',
'zipcode' => 'PSČ',
'city' => 'Mesto',
'phone' => 'Mobil',
'fax' => 'Fax',
'email' => 'Email',
'customernumber' => 'ID zákazníka',
'diskspace' => 'Webový priestor',
'traffic' => 'Prevádzka',
'mysqls' => 'Databázy MySQL',
'emails' => 'E-mailové adresy',
'accounts' => 'E-mailové účty',
'forwarders' => 'E-mailoví preposielatelia',
'ftps' => 'FTP účty',
'subdomains' => 'Subdomény',
'domains' => 'Domény',
'mib' => 'MiB',
'gib' => 'GiB',
'title' => 'Názov',
'country' => 'Krajina',
'email_quota' => 'Kvóta e-mailu',
'email_imap' => 'E-mail IMAP',
'email_pop3' => 'E-mail POP3',
'sendinfomail' => 'Poslať mi dáta e-mailom',
'generated_pwd' => 'Návrh hesla',
'usedmax' => 'Použité / Max',
'services' => 'Služby',
'letsencrypt' => [
'title' => 'Použiť Let\'s Encrypt',
'description' => 'Získajte zadarmo certifikát od Let\'s Encrypt. Certifikát bude vytvorený a obnovený automaticky.',
],
'selectserveralias_addinfo' => 'Túto možnosť možno nastaviť pri úprave domény. Jej počiatočná hodnota je zdedená z nadradenej domény.',
'total_diskspace' => 'Celkový priestor na disku',
'mysqlserver' => 'Použiteľný mysql-server',
],
'diskquota' => 'Kvóta',
'antispam' => [
'config_file' => [
'title' => 'Súbor s nastavením Antispamu',
'description' => 'Zadajte názov súboru pre pravidlá e-mail-antispamu',
],
'reload_command' => [
'title' => 'Príkaz na reštart systému Milter',
'description' => 'Zadajte príkaz reštartu pre službu rspamd',
],
'activated' => [
'title' => 'Aktivovať antispam?',
'description' => 'Chcete použiť rspamd ako antispam službu?',
],
'dkim_keylength' => [
'title' => 'DKIM dĺžka kľúča',
'description' => 'Upozornenie: Zmeny sa budú vzťahovať iba na nové kľúče
Vyžaduje určitú položku dns pre doménu. Ak nepoužívate funkciu nameserver, budete musieť tieto položky ručne spravovať.',
],
'spam_tag_level' => [
'title' => 'Úroveň Spam tagu',
'description' => 'Počet bodov, ktorý je potrebný na označenie e-mailu ako spam Predvolené: 7.0'
],
'rewrite_subject' => [
'title' => 'Prepisovať predmet',
'description' => 'Či pridať ***SPAM*** do predmetu e-mailu, ak je to vhodné',
],
'spam_kill_level' => [
'title' => 'Úroveň likvidácie spamu',
'description' => 'Počet bodov, ktorý je potrebný na úplné vyradenie e-mailu Predvolené: 14.0'
],
'bypass_spam' => [
'title' => 'Obísť spamfilter',
'description' => 'Aktiváciou obídete/zakážete filtrovanie spamu pre túto adresu. Predvolené: nie'
],
'policy_greylist' => [
'title' => 'Použiť greylisting',
'description' => 'Prichádzajúce e-maily budú chránené greylisting. Predvolené: áno'
],
'required_spf_dns' => 'Požadovaný SPF DNS záznam',
'required_dmarc_dns' => 'Požadovaný DMARC DNS záznam',
'required_dkim_dns' => 'Požadovaný DKIM DNS záznam',
'default_select' => [
'on_changeable' => 'Aktivované, nastaviteľné',
'off_changeable' => 'Deaktivované, nastaviteľné',
'on_unchangeable' => 'Aktivované, nedá sa nastaviť',
'off_unchangeable' => 'Deaktivované, nedá sa nastaviť',
],
'default_bypass_spam' => [
'title' => 'Obchádzať predvolenú hodnotu emailového spam filtra',
'description' => 'Či majú nové e-mailové účty v predvolenom nastavení aktivovanú funkciu „Obísť spamfilter" a či je toto nastavenie zákazníkom nastaviteľné. Predvolené nastavenie: Deaktivované, nastaviteľné'
],
'default_spam_rewrite_subject' => [
'title' => 'Prepisovať predvolenú hodnotu predmetu',
'description' => 'Či majú nové e-mailové účty v predvolenom nastavení aktivovanú funkciu „Prepisovať predmet" a či je toto nastavenie zákazníkom nastaviteľné. Predvolené nastavenie: Aktivované, nastaviteľné'
],
'default_policy_greylist' => [
'title' => 'Použiť predvolenú hodnotu greylisting',
'description' => 'Či majú nové e-mailové účty v predvolenom nastavení aktivovanú funkciu „Použiť greylisting" a či je toto nastavenie zákazníkom nastaviteľné. Predvolené nastavenie: Aktivované, nastaviteľné'
],
],
'dns' => [
'destinationip' => 'IP domény(y)',
'standardip' => 'Štandardná IP adresa servera',
'a_record' => 'A-záznam (voliteľne IPv6)',
'cname_record' => 'Záznam CNAME',
'mxrecords' => 'Definovať MX záznamy',
'standardmx' => 'Štandardný MX záznam servera',
'mxconfig' => 'Vlastné MX záznamy',
'priority10' => 'Priorita 10',
'priority20' => 'Priorita 20',
'txtrecords' => 'Definovať TXT záznamy',
'txtexample' => 'Príklad (SPF-entry): v=spf1 ip4:xxx.xxx.xx.0/23 -all',
'howitworks' => 'Tu môžete spravovať DNS položky pre vašu doménu. Pamätajte, že froxlor automaticky vygeneruje NS/MX/A/AAAA záznamy za vás. Vlastné položky majú prednosť, automaticky sa vygenerujú iba chýbajúce položky.',
'nis2note' => [
'title' => 'NIS2 info',
'content' => 'DNS hosting/autoritatívne DNS služby môžu byť považované za digitálne služby s vyššími bezpečnostnými a oznamovacími povinnosťami podľa EU-NIS2. Skontrolujte, či sa na vaše nastavenie vzťahuje NIS2 a aké opatrenia sú vyžadované.'
],
],
'dnseditor' => [
'edit' => 'upraviť DNS',
'records' => 'záznamy',
'notes' => [
'A' => '32-bitová adresa IPv4 používaná na mapovanie názvov hostiteľov na IP adresu hostiteľa.',
'AAAA' => '128-bitová IPv6 adresa, používaná na mapovanie mien na IP adresu hostiteľa.',
'CAA' => 'Záznam zdroja CAA umožňuje držiteľovi mena domény DNS určiť jednu alebo viac certifikačných autorít (CA), ktoré sú oprávnené vydávať certifikáty pre túto doménu. Štruktúra: značka tag[issue|issuewild|iodef|contactmail|contactphone] hodnota Príklad: 0 issue "ca.example.net" 0 iodef "mailto:security@example.com"',
'CNAME' => 'Alias názvu domény, vyhľadávanie DNS bude pokračovať opakovaním vyhľadávania s novým názvom. Možné iba pre subdomény!',
'DNAME' => 'Vytvorí alias pre celý podstrom stromu domény',
'LOC' => 'Informácie o geografickej polohe pre názov domény. Štruktúra: ( d1 [m1 [s1]] {"N"|"S"} d2 [m2 [s2]] {"E"|"W"} alt["m"] [siz["m"] [hp["] [vp["m"]]]] ) d1: [0 . 90] (stupne zemepisnej šírky)
d2: [0 .. 180] (stupnica zemepisnej dĺžky)
m1, m2: [0 .. 59] (minúty zemepisnej šírky/dĺžky)
s1, s2: [0 .. 59. 99] (sekundy zemepisnej šírky/dĺžky)
t [-100000.00 .. 42849672.95] BY . 1 (výška v metroch)
veľkosť, hp, vp: [0 .. 90000000. 0] (veľkosť/presnosť v metroch) Príklad: 52 22 23.000 N 4 53 32.000 E -2,00m 000m 10000m',
'MX' => 'Záznam o výmene e-mailov, namapuje doménu na mailserver pre túto doménu. Príklad: 10 mail.example.com Poznámka: Pre prioritu použite pole vyššie',
'NS' => 'Deleguje zónu DNS, aby použila dané autoritatívne menné servery.',
'RP' => 'Záznam zodpovednej osoby Štruktúra: mailbox[nahraďte @ bodkou] txt-record-name Príklad: team.froxlor.org. froxlor.org.',
'SRV' => 'Záznam polohy služby, používaný pre novšie protokoly namiesto vytvárania záznamov špecifických pre protokol, ako je MX. Štruktúra: prioritná váhový port cieľ Príklad: 0 5 5060 sipserver.example.com. Poznámka: Pre prioritu použite pole vyššie',
'SSHFP' => 'Záznam zdroja SSHFP sa používa na zverejnenie odtlačkov prsta kľúča bezpečného shellu (SSH) v DNS. Štruktúra: typ algoritmu Algoritmy: 0: vyhradené, 1: RSA, 2: DSA, 3: ECDSA, 4: Ed25519, 6: Typy Ed448 0: vyhradené, 1: SHA-1, 2: SHA-256 Príklad: 2 1 123456789abcdef67890123456789abcdef67890',
'TLSA' => 'TLSA (TLS Authentication) záznam slúži na zverejnenie odtlačku prsta certifikátu TLS/SSL. Bežne sa používa pre DANE. TLSA záznamy môžu byť dôveryhodné iba vtedy, ak je DNSSEC povolená na vašej doméne. Štruktúra: typ odtlačku prsta využitie certifikátu: 0: PKIX-T, 1: PKIX-EE, 2: DANE-TA, 3: DANE-EE selektor: 0: Použite celý certifikát 1: Použite podradený verejný kľúč Zodpovedajúci typ: 0: Bez Hash, 1: SHA-256 Hash, 2:SHA-512 Hash Príklad: 3 1 123456789abcdef67890123456789abcdef123456789abcdef123456789abcde',
'TXT' => 'Voľne definovaný, popisný text.'
]
],
'domain' => [
'openbasedirpath' => 'OpenBasedir-cesta',
'inherited' => 'Rovnaké ako nadradená doména',
'docroot' => 'Cesta z poľa vyššie',
'homedir' => 'Domovský adresár',
'docparent' => 'Nadradený adresár cesty z poľa uvedeného vyššie',
'ssl_certificate_placeholder' => '---- BEGIN CERTIFICATE---' . PHP_EOL . '[...]' . PHP_EOL . '----END CERTIFICATE----',
'ssl_key_placeholder' => '---- BEGIN RSA PRIVATE KEY-----' . PHP_EOL . '[...]' . PHP_EOL . '-----END RSA PRIVATE KEY-----',
],
'domains' => [
'description' => 'Tu môžete vytvoriť (sub)domény a zmeniť ich cesty. Systém bude potrebovať nejaký čas, aby mohol po každej zmene použiť nové nastavenie.',
'domainsettings' => 'Nastavenia domény',
'domainname' => 'Názov domény',
'subdomain_add' => 'Vytvoriť subdoménu',
'subdomain_edit' => 'Upraviť (sub)doménu',
'wildcarddomain' => 'Vytvoriť ako wildcarddomain?',
'aliasdomain' => 'Alias pre doménu',
'noaliasdomain' => 'Žiadny alias domény',
'hasaliasdomains' => 'Má alias doménu(y)',
'statstics' => 'Štatistiky využitia',
'isassigneddomain' => 'Je priradená doména',
'add_date' => 'Pridané do froxloru',
'registration_date' => 'Pridané do registra',
'topleveldomain' => 'Top-Level-Doména',
'associated_with_domain' => 'Pridružené',
'aliasdomains' => 'Alias domén',
'redirectifpathisurl' => 'Presmerovací kód (predvolené: prázdny)',
'redirectifpathisurlinfo' => 'Musíte vybrať iba jednu z týchto položiek, ak ste zadali adresu URL ako cestu POZNÁMKA: Zmeny sú aplikované iba v prípade, že daná cesta je URL adresa.',
'ipandport_multi' => [
'title' => 'IP adresa (adresy)',
'description' => 'Zadajte jednu alebo viac IP adries domény.
POZNÁMKA: IP adresy nemožno zmeniť, ak je doména nakonfigurovaná ako alias-doména inej domény.
',
],
'ipandport_ssl_multi' => [
'title' => 'SSL IP adresa/y',
],
'ssl_redirect' => [
'title' => 'Presmerovanie SSL',
'description' => 'Táto voľba vytvorí presmerovanie pre nie ssl vhosty, takže všetky požiadavky sú presmerované na SSL-vhost.
napr. požiadavka na http://domain.tld/ vás presmeruje na https://domain.tld/',
],
'serveraliasoption_wildcard' => 'Wildcard (*.domain.tld)',
'serveraliasoption_www' => 'WWW (www.domain.tld)',
'serveraliasoption_none' => 'Bez aliasu',
'domain_import' => 'Importovať domény',
'import_separator' => 'Oddeľovač',
'import_offset' => 'Odsadenie',
'import_file' => 'Súbor CSV',
'import_description' => 'Podrobné informácie o štruktúre importného súboru a o úspešnom importe, navštívte prosím https://docs.froxlor.org/latest/admin-guide/domain-import/',
'ssl_redirect_temporarilydisabled' => ' Presmerovanie protokolu SSL je dočasne deaktivované, kým sa generuje nový certifikát Let\'s Encrypt. Bude opäť aktivované po vygenerovaní certifikátu.',
'termination_date' => 'Dátum ukončenia',
'termination_date_overview' => 'ukončené dňa ',
'ssl_certificates' => 'SSL certifikáty',
'ssl_certificate_removed' => 'Certifikát s Id #%s bol úspešne odstránený',
'ssl_certificate_error' => 'Chyba pri čítaní certifikátu pre doménu: %s',
'no_ssl_certificates' => 'Neexistujú žiadne domény s SSL certifikátom',
'isaliasdomainof' => 'Je aliasovou doménou pre %s',
'isbinddomain' => 'Vytvoriť zónu DNS',
'dkimenabled' => 'DKIM povolené',
'openbasedirenabled' => 'Openbasedir obmedzenia',
'hsts' => 'HSTS povolené',
'aliasdomainid' => 'ID aliasovej domény',
'nodomainsassignedbyadmin' => 'Váš účet momentálne nemá priradené žiadne (aktívne) domény. Ak si myslíte, že je to chyba, kontaktujte svojho správcu.',
'email_only' => 'Len e-maily',
],
'emails' => [
'description' => 'Tu môžete vytvárať a meniť svoje e-mailové adresy. Účet je ako poštová schránka pred vaším domom. Ak vám niekto pošle e-mail, bude doručený na účet.
Ak chcete stiahnuť svoje e-maily, použite nasledujúce nastavenia vo vašom poštovom programe: (Údaje v kurzíve musia byť zmenené na ekvivalenty, ktoré ste zadali! Názov hostiteľa: názov domény Používateľské meno: názov účtu / e-mailová adresa heslo: heslo, ktoré ste zvolili',
'emailaddress' => 'E-mailová adresa',
'emails_add' => 'Vytvoriť e-mailovú adresu',
'emails_edit' => 'Upraviť e-mailovú adresu',
'catchall' => 'Catchall',
'iscatchall' => 'Definovať ako catchall-adresu?',
'account' => 'Účet',
'account_add' => 'Vytvoriť účet',
'account_delete' => 'Odstrániť účet',
'from' => 'Zdroj',
'to' => 'Destinácia',
'forwarders' => 'Presmerovanie',
'forwarder_add' => 'Vytvoriť preposielateľa',
'alternative_emailaddress' => 'Alternatívna e-mailová adresa',
'quota' => 'Kvóta',
'noquota' => 'Bez kvóty',
'updatequota' => 'Aktualizovať kvótu',
'quota_edit' => 'Zmeniť e-mailovú kvótu',
'noemaildomainaddedyet' => 'Vo svojom účte zatiaľ nemáte (e-mailovú) doménu.',
'back_to_overview' => 'Späť na prehľad domény',
'accounts' => 'Účty',
'emails' => 'Adresy',
'senders' => 'Povolený odosielateľ',
'sender_add' => 'Pridať povoleného odosielateľa',
'foreign_sender' => 'Povolený (externý) odosielateľ',
'allowed_sender_info' => 'Pomocou nastavenia Povolený odosielateľ povolíte existujúcemu e-mailovému účtu odosielanie e-mailov s inou adresou odosielateľa. Dôležité: Adresa/wildcard-doména zadaná tu sa automaticky nestane poštovou schránkou – slúži iba ako ďalší povolený identifikátor odosielateľa.',
],
'error' => [
'error' => 'Chyba',
'directorymustexist' => 'Adresár %s musí existovať. Vytvorte ho prosím pomocou vášho FTP klienta.',
'filemustexist' => 'Súbor %s musí existovať.',
'allresourcesused' => 'Všetky svoje zdroje ste už využili.',
'domains_cantdeletemaindomain' => 'Nemôžete odstrániť priradenú doménu.',
'domains_canteditdomain' => 'Túto doménu nie je možné upravovať. Bola zakázaná administrátorom.',
'domains_cantdeletedomainwithemail' => 'Nemôžete odstrániť doménu, ktorá sa používa ako e-mailová doména. Najprv odstráňte všetky e-mailové adresy.',
'firstdeleteallsubdomains' => 'Najprv musíte odstrániť všetky subdomény, než budete môcť vytvoriť wildcard doménu.',
'youhavealreadyacatchallforthisdomain' => 'Pre túto doménu ste už definovali catchall.',
'ftp_cantdeletemainaccount' => 'Nemôžete odstrániť svoj hlavný FTP účet',
'login' => 'Zadané používateľské meno alebo heslo je nesprávne. Skúste to prosím znova!',
'login_blocked' => 'Tento účet bol pozastavený kvôli príliš mnohým chybám prihlásenia. Skúste to prosím znova za %s sekúnd.',
'notallreqfieldsorerrors' => 'Nevyplnili ste všetky polia alebo ste niektoré vyplnili nesprávne.',
'oldpasswordnotcorrect' => 'Staré heslo nie je správne.',
'youcantallocatemorethanyouhave' => 'Nemôžete prideliť viac zdrojov, než máte k dispozícii.',
'mustbeurl' => 'Nezadali ste platnú alebo úplnú URL adresu (napr. http://somedomain.com/error404.htm)',
'invalidpath' => 'Nezvolili ste platnú adresu URL (možno problémy so zoznamom adries?)',
'stringisempty' => 'Chýbajúci vstup v poli',
'stringiswrong' => 'Nesprávny vstup v poli',
'newpasswordconfirmerror' => 'Nové heslo a potvrdenie hesla sa nezhodujú',
'mydomain' => '\'Doména\'',
'mydocumentroot' => '\'Documentroot\'',
'loginnameexists' => 'Prihlasovacie meno %s už existuje',
'emailiswrong' => 'E-mailová adresa %s obsahuje neplatné znaky alebo je nekompletná',
'emailexists' => 'E-mailová adresa %s je už používaná iným správcom.',
'emailexistsanon' => 'E-mailová adresa %s je už používaná.',
'alternativeemailiswrong' => 'Zadaná alternatívna e-mailová adresa %s na odoslanie prihlasovacích údajov sa zdá byť neplatná',
'loginnameiswrong' => 'Prihlasovacie meno "%s" obsahuje nepovolené znaky.',
'loginnameiswrong2' => 'Prihlasovacie meno obsahuje príliš veľa znakov. Povolených je iba %s znakov.',
'userpathcombinationdupe' => 'Kombinácia používateľského mena a cesty už existuje',
'patherror' => 'Všeobecná chyba! Cesta nemôže byť prázdna',
'errordocpathdupe' => 'Možnosť pre cestu %s už existuje',
'adduserfirst' => 'Najprv prosím vytvorte zákazníka',
'domainalreadyexists' => 'Doména %s je už priradená zákazníkovi',
'nolanguageselect' => 'Nebol vybratý žiadny jazyk.',
'nosubjectcreate' => 'Musíte definovať tému pre túto šablónu e-mailu.',
'nomailbodycreate' => 'Musíte definovať text e-mailu pre túto šablónu e-mailu.',
'templatenotfound' => 'Šablóna nebola nájdená.',
'alltemplatesdefined' => 'Nemôžete definovať viac šablón, všetky jazyky sú už podporované.',
'wwwnotallowed' => 'www nie je povolené pre subdomény.',
'subdomainiswrong' => 'Subdoména %s obsahuje neplatné znaky.',
'domaincantbeempty' => 'Názov domény nemôže byť prázdny.',
'domainexistalready' => 'Doména %s už existuje.',
'domainisaliasorothercustomer' => 'Vybratá aliasová doména je sama osebe doménou, má inú kombináciu ip/port alebo patrí inému zákazníkovi.',
'emailexistalready' => 'E-mailová adresa %s už existuje.',
'maindomainnonexist' => 'Hlavná doména %s neexistuje.',
'maindomaindeactivated' => 'Hlavná doména %s je deaktivovaná.',
'destinationnonexist' => 'Prosím vytvorte preposielateľa v poli "Destination".',
'destinationalreadyexistasmail' => 'Preposielateľ do %s už existuje ako aktívna e-mailová adresa.',
'destinationalreadyexist' => 'Už ste definovali presmerovanie na "%s"',
'destinationiswrong' => 'Preposielateľ(ia) %s obsahuje neplatné znaky alebo je neúplný.',
'dumpfoldercannotbedocroot' => 'Priečinok pre dátové výpisy nemôže byť váš domovský adresár, zvoľte prosím priečinok vo svojom domovskom adresári, napr. /dumps',
'templatelanguagecombodefined' => 'Kombinácia vybratého jazyka/šablóny už bola definovaná.',
'templatelanguageinvalid' => 'Vybratý jazyk neexistuje',
'ipstillhasdomains' => 'Kombinácia IP/portu, ktorú chcete odstrániť, stále obsahuje priradené domény, pred zmazaním tejto kombinácie IP/portu ich prosím priraďte k iným kombináciám IP/portu.',
'cantdeletedefaultip' => 'Nie je možné odstrániť predvolenú kombináciu IP/portu, pred zmazaním tejto kombinácie IP/portu prosím nastavte predvolené nastavenie inej kombinácie IP/portu.',
'cantdeletesystemip' => 'Nie je možné odstrániť poslednú systémovú IP adresu ani vytvoriť novú kombináciu IP/Port pre systémovú IP adresu alebo zmeniť systémovú IP adresu.',
'myipaddress' => '\'IP\'',
'myport' => '\'Port\'',
'myipdefault' => 'Musíte vybrať kombináciu IP/port, ktorá by mala byť predvolená.',
'myipnotdouble' => 'Táto kombinácia IP/portu už existuje.',
'admin_domain_emailsystemhostname' => 'Názov servera nie je možné použiť ako doménu zákazníka.',
'cantchangesystemip' => 'Nie je možné zmeniť poslednú systémovú IP adresu ani vytvoriť novú kombináciu IP/Port pre systémovú IP adresu alebo zmeniť systémovú IP adresu.',
'sessiontimeoutiswrong' => 'Je povolená iba číselná hodnota pre "časový limit relácie".',
'maxloginattemptsiswrong' => 'Sú povolené iba číselné "maximálne pokusy o prihlásenie".',
'deactivatetimiswrong' => 'Sú povolené iba číselné "doby deaktivácie".',
'accountprefixiswrong' => '"Zákaznícky prefix" je nesprávny.',
'mysqlprefixiswrong' => '"SQL prefix" je nesprávny.',
'ftpprefixiswrong' => 'Prefix FTP je nesprávny.',
'ipiswrong' => '"IP adresa" je nesprávna. Je povolená iba platná IP adresa.',
'vmailuidiswrong' => '"UID e-mailov" je nesprávne. Je povolené iba číselné UID.',
'vmailgidiswrong' => 'Položka „mails-gid" je chybná. Povolené je iba číselné GID.',
'adminmailiswrong' => '"Adresa odosielateľa" je chybná. Povolená je iba platná e-mailová adresa.',
'pagingiswrong' => 'Hodnota "Položky na stránku" je nesprávna. Povolené sú iba číselné znaky.',
'phpmyadminiswrong' => 'PhpMyAdmin odkaz nie je platný.',
'webmailiswrong' => 'Odkaz na webmail nie je platný.',
'webftpiswrong' => 'WebFTP odkaz nie je platný.',
'stringformaterror' => 'Hodnota pre pole "%s" nie je v očakávanom formáte.',
'loginnameisusingprefix' => 'Nemôžete vytvoriť účty, ktoré začínajú znakom „%s", pretože tento prefix je nastavený na automatické pomenovanie účtu. Zadajte prosím iný názov účtu.',
'loginnameissystemaccount' => 'Účet "%s" už v systéme existuje a nie je ho možné použiť. Zadajte iný názov účtu.',
'loginnameisreservedname' => 'Názov účtu „%s" je vyhradený pre vnútorný systém a nie je ho možné použiť.',
'youcantdeleteyourself' => 'Z bezpečnostných dôvodov nie je možné odstrániť samého seba.',
'youcanteditallfieldsofyourself' => 'Poznámka: Z bezpečnostných dôvodov nie je možné upravovať všetky polia vlastného účtu.',
'documentrootexists' => 'Adresár "%s" pre tohto zákazníka už existuje. Pred pridaním zákazníka ho odstráňte.',
'norepymailiswrong' => 'Položka „Noreply-address" je chybná. Povolená je iba platná e-mailová adresa.',
'logerror' => 'Chyba logu: %s',
'nomessagetosend' => 'Nezadali ste správu.',
'norecipientsgiven' => 'Nezadali ste žiadneho príjemcu',
'errorsendingmail' => 'Správa pre "%s" sa nepodarila',
'errorsendingmailpub' => 'Správa na danú e-mailovú adresu sa nepodarila',
'cannotreaddir' => 'Nie je možné prečítať adresár "%s"',
'invalidip' => 'Neplatná IP adresa: %s',
'invalidmysqlhost' => 'Neplatná adresa MySQL hostiteľa: %s',
'cannotuseawstatsandwebalizeratonetime' => 'Nemôžete povoliť Webalizer a AWstats súčasne, zvoľte si jeden z nich',
'cannotwritetologfile' => 'Nie je možné otvoriť súbor protokolu %s na zápis',
'vmailquotawrong' => 'Kvóta musí byť kladné číslo.',
'allocatetoomuchquota' => 'Pokúsili ste sa prideliť kvótu %s MB, ale už vám nezostáva dostatok.',
'missingfields' => 'Nie všetky povinné polia boli vyplnené.',
'requiredfield' => 'Toto pole je povinné.',
'accountnotexisting' => 'Zadaný e-mailový účet neexistuje.',
'nopermissionsorinvalidid' => 'Nemáte dostatočné oprávnenia na zmenu tohto nastavenia alebo bolo udelené neplatné Id.',
'phpsettingidwrong' => 'PHP konfigurácia s týmto ID neexistuje',
'descriptioninvalid' => 'Popis je príliš krátky/príliš dlhý alebo obsahuje nepovolené znaky.',
'info' => 'Info',
'filecontentnotset' => 'Súbor nemôže byť prázdny!',
'customerdoesntexist' => 'Zvolený zákazník neexistuje.',
'admindoesntexist' => 'Zvolený administrátor neexistuje.',
'ipportdoesntexist' => 'Kombinácia ip/portu, ktorú ste zvolili, neexistuje.',
'usernamealreadyexists' => 'Používateľské meno %s už existuje.',
'plausibilitychecknotunderstood' => 'Odpoveď kontroly vierohodnosti nie je zrozumiteľná.',
'errorwhensaving' => 'Došlo k chybe pri ukladaní poľa %s',
'hiddenfieldvaluechanged' => 'Hodnota skrytého poľa "%s" sa zmenila pri úpravách nastavení.
Toto zvyčajne nie je veľký problém, ale z toho dôvodu nie je možné uložiť nastavenia.',
'notrequiredpasswordlength' => 'Zadané heslo je príliš krátke. Zadajte prosím aspoň %s znakov.',
'overviewsettingoptionisnotavalidfield' => 'Ups, pole, ktoré by malo byť zobrazené ako voľba v prehľade nastavení, nie je výnimočne povolený typ. Za to môžete viniť vývojárov. Nemalo by sa to stať!',
'pathmaynotcontaincolon' => 'Cesta, ktorú ste zadali, by nemala obsahovať dvojbodku (":"). Zadajte správnu hodnotu cesty.',
'invaliddocumentrooturl' => 'URL adresa, ktorú ste zadali pre koreňový adresár, nie je platná. Zadajte prosím správnu URL adresu alebo unixovú cestu.',
'exception' => '%s',
'notrequiredpasswordcomplexity' => 'Zložitosť zadaného hesla nebola dostatočná. Ak máte nejaké otázky ohľadom zložitosti',
'invaliderrordocumentvalue' => 'Hodnota uvedená ako chybový dokument sa nezdá byť platným súborom, URL alebo reťazcom.',
'intvaluetoolow' => 'Zadané číslo je príliš nízke (pole %s)',
'intvaluetoohigh' => 'Zadané číslo je príliš vysoké (pole %s)',
'phpfpmstillenabled' => 'PHP-FPM je momentálne aktívny. Pred aktiváciou FCGID ho deaktivujte',
'fcgidstillenabled' => 'FCGID je momentálne aktívny. Prosím deaktivujte ho pred aktiváciou PHP-FPM',
'domains_cantdeletedomainwithaliases' => 'Nemôžete odstrániť doménu, ktorá sa používa pre aliasové domény. Najprv musíte aliasy odstrániť.',
'user_banned' => 'Váš účet bol uzamknutý. Pre ďalšie informácie kontaktujte svojho správcu.',
'session_timeout' => 'Hodnota je príliš nízka',
'session_timeout_desc' => 'Časový limit relácie by nemal byť nižší ako 1 minúta.',
'invalidhostname' => 'Názov hostiteľa musí byť platná doména. Nemôže byť prázdny ani nesmie obsahovať iba medzery',
'operationnotpermitted' => 'Operácia nie je povolená!',
'featureisdisabled' => 'Funkcia %s je zakázaná. Obraťte sa na svojho poskytovateľa služieb.',
'usercurrentlydeactivated' => 'Používateľ %s je momentálne deaktivovaný',
'setlessthanalreadyused' => 'Nie je možné nastaviť menej zdrojov \'%s\', ako tento používateľ už použil ',
'stringmustntbeempty' => 'Hodnota poľa %s nesmie byť prázdna',
'sslcertificateismissingprivatekey' => 'Musíte zadať súkromný kľúč k vášmu certifikátu',
'sslcertificatewrongdomain' => 'Daný certifikát nepatrí k tejto doméne',
'sslcertificateinvalidcert' => 'Daný obsah certifikátu sa nezdá byť platným certifikátom',
'sslcertificateinvalidcertkeypair' => 'Zadaný súkromný kľúč nepatrí k danému certifikátu',
'sslcertificateinvalidca' => 'Dané údaje certifikátov CA sa nezdajú byť platným certifikátom',
'sslcertificateinvalidchain' => 'Údaje daného reťazca certifikátov sa nezdajú byť platným certifikátom',
'givendirnotallowed' => 'Zadaný adresár v poli %s nie je povolený.',
'sslredirectonlypossiblewithsslipport' => 'Použitie Let\'s Encrypt je možné iba v prípade, že doména má priradenú aspoň jednu ssl-povolenú kombináciu IP/port.',
'fcgidstillenableddeadlock' => 'FCGID je momentálne aktívny. Prosím deaktivujte ho pred prepnutím na iný webový server ako Apache2',
'send_report_title' => 'Odoslať správu o chybe',
'send_report_desc' => 'Ďakujeme, že ste nahlásili túto chybu a pomohli nám zlepšiť froxlor. Toto je e-mail, ktorý bude odoslaný vývojárom froxloru:',
'send_report' => 'Odoslať hlásenie',
'send_report_error' => 'Chyba pri odosielaní hlásenia: %s',
'notallowedtouseaccounts' => 'Váš účet neumožňuje používať IMAP/POP3. E-mailové účty nie je možné pridať.',
'cannotdeletehostnamephpconfig' => 'Táto konfigurácia PHP sa používa vo froxlor-vhost a nie je možné ju odstrániť.',
'cannotdeletedefaultphpconfig' => 'Táto konfigurácia PHP je nastavená ako predvolená a nie je možné ju odstrániť.',
'passwordshouldnotbeusername' => 'Heslo by nemalo byť rovnaké ako používateľské meno.',
'no_phpinfo' => 'Je nám ľúto, phpinfo() nie je možné načítať',
'moveofcustomerfailed' => 'Presun zákazníka k vybranému administrátorovi/predajcovi zlyhal. Majte na pamäti, že všetky ostatné zmeny zákazníka boli úspešne aplikované v tejto fáze.
Správa o chybe: %s',
'domain_import_error' => 'Pri importe domén došlo k chybe: %s',
'fcgidandphpfpmnogoodtogether' => 'FCGID a PHP-FPM nie je možné súčasne aktivovať',
'no_apcuinfo' => 'Žiadne informácie o cache nie sú k dispozícii. APCu sa nezdá byť spustená.',
'no_opcacheinfo' => 'Žiadne informácie o OPCache nie sú k dispozícii. OPCache sa nezdá byť načítaná.',
'inactive_opcacheinfo' => 'OPCache sa zdá byť nainštalovaná, ale nie je aktivovaná.',
'nowildcardwithletsencrypt' => 'Let\'s Encrypt nevie spracovávať wildcard domény pomocou ACME vo froxlore (vyžaduje dns-challenge), ospravedlňujeme sa. Nastavte prosím ServerAlias na WWW alebo ho úplne zakážte',
'customized_version' => 'Zdá sa, že vaša inštalácia froxloru bola upravená, na úpravy neposkytujeme podporu, je nám ľúto.',
'autoupdate_0' => 'Neznáma chyba',
'autoupdate_1' => 'Nastavenie PHP allow_url_fopen je zakázané. Autoupdate musí byť povolený v php.ini',
'autoupdate_2' => 'PHP zip rozšírenie nebolo nájdené, uistite sa, že je nainštalované a aktivované',
'autoupdate_4' => 'Archív froxloru nemohol byť uložený na disk :(',
'autoupdate_5' => 'version.froxlor.org vrátil neprijateľné hodnoty :(',
'autoupdate_6' => 'Ojoj, na stiahnutie nebola zadaná žiadna (platná) verzia :(',
'autoupdate_7' => 'Stiahnutý archív nebol nájdený :(',
'autoupdate_8' => 'Archív nie je možné extrahovať :(',
'autoupdate_9' => 'Stiahnutý súbor neprešiel kontrolou integrity. Skúste prosím aktualizovať znova.',
'autoupdate_10' => 'Minimálna podporovaná verzia PHP je 7.4.0',
'autoupdate_11' => 'Webupdate je zakázaný',
'mailaccistobedeleted' => 'Iný účet s rovnakým názvom (%s) je momentálne mazaný, a preto ho nie je možné teraz pridať.',
'customerhasongoingexportjob' => 'Na spracovanie už čaká úloha exportu dát, buďte prosím trpezliví.',
'exportfunctionnotenabled' => 'Funkcia exportu nie je povolená',
'dns_domain_nodns' => 'DNS nie je pre túto doménu povolené',
'dns_content_empty' => 'Nebol zadaný žiadny obsah',
'dns_content_invalid' => 'Neplatný obsah DNS',
'dns_arec_noipv4' => 'Neplatná IP adresa pre A-záznam',
'dns_aaaarec_noipv6' => 'Neplatná IP adresa pre zadaný záznam AAAA',
'dns_mx_prioempty' => 'Bola zadaná neplatná MX priorita',
'dns_mx_needdom' => 'Hodnota MX obsahu musí byť platný názov domény',
'dns_mx_noalias' => 'Hodnota MX nemôže byť položka CNAME.',
'dns_cname_invaliddom' => 'Neplatný názov domény pre záznam CNAME',
'dns_cname_nomorerr' => 'Záznam zdroja s rovnakým názvom záznamu už existuje. Nie je možné ho použiť ako CNAME.',
'dns_other_nomorerr' => 'Záznam CNAME s rovnakým názvom záznamu už existuje. Nie je možné ho použiť pre iný typ.',
'dns_ns_invaliddom' => 'Neplatný názov domény pre NS záznam',
'dns_srv_prioempty' => 'Bola zadaná neplatná SRV priorita',
'dns_srv_invalidcontent' => 'Neplatný obsah SRV musí obsahovať váhu, port a cieľ, napr.: 5 5060 sipserver.example.com.',
'dns_srv_needdom' => 'Hodnota SRV cieľa musí byť platný názov domény',
'dns_srv_noalias' => 'Hodnota SRV cieľa nemôže byť položka CNAME.',
'dns_duplicate_entry' => 'Záznam už existuje',
'dns_notfoundorallowed' => 'Doména nebola nájdená alebo nemáte oprávnenie',
'domain_nopunycode' => 'Nesmiete špecifikovať punycode (IDNA). Doména bude automaticky prevedená',
'domain_noipaddress' => 'Nie je možné pridať IP adresu ako doménu',
'dns_record_toolong' => 'Záznamy/popisky môžu mať iba 63 znakov',
'noipportgiven' => 'Nie je zadaný žiadny IP/port',
'nosslippportgiven' => 'Pri povolení SSL je potrebné zvoliť SSL IP/port',
'jsonextensionnotfound' => 'Táto funkcia vyžaduje rozšírenie php-json.',
'cannotdeletesuperadmin' => 'Prvého správcu nie je možné odstrániť.',
'no_wwwcnamae_ifwwwalias' => 'Nie je možné nastaviť CNAME záznam pre "www" ako doménu pre generovanie www-aliasu. Zmeňte prosím nastavenie buď na "No alias" alebo "Wildcard alias"',
'local_group_exists' => 'Táto skupina už v systéme existuje.',
'local_group_invalid' => 'Zadaný názov skupiny je neplatný',
'local_user_invalid' => 'Zadané používateľské meno je neplatné alebo neexistuje',
'local_user_isfroxloruser' => 'Zadané používateľské meno je spravované froxlorom a nie je možné ho v tomto kontexte použiť',
'invaliddnsforletsencrypt' => 'DNS domény neobsahuje žiadnu z vybraných IP adries. Vytvorenie Let\'s Encrypt certifikátu nie je možné.',
'notallowedphpconfigused' => 'Pokus o použitie php konfigurácie, ktorá nie je priradená zákazníkovi',
'pathmustberelative' => 'Používateľ nemá oprávnenie špecifikovať adresáre mimo domovský adresár zákazníka. Zadajte relatívnu cestu (bez úvodného /).',
'mysqlserverstillhasdbs' => 'Databázový server nie je možné odstrániť zo zoznamu povolených zákazníkov, pretože na ňom stále existujú databázy.',
'domaincannotbeedited' => 'Nemáte oprávnenie upravovať doménu %s',
'invalidcronjobintervalvalue' => 'Interval Cronjobu musí byť jeden z: %s',
'phpgdextensionnotavailable' => 'Rozšírenie PHP GD nie je dostupné. Nie je možné overiť dáta obrázkov',
'2fa_wrongcode' => 'Zadaný kód nie je platný',
'gnupgextensionnotavailable' => 'Rozšírenie PHP GnuPG nie je dostupné. Nie je možné overiť PGP verejný kľúč',
'invalidpgppublickey' => 'PGP verejný kľúč nie je platný',
'invalid_validtime' => 'Platný čas v sekundách môže byť iba medzi 10 a 120',
'customerphpenabledbutnoconfig' => 'Zákazník má PHP aktivované, ale nebola vybraná žiadna konfigurácia PHP.',
'emaildomainstillhasaddresses' => 'Nie je možné deaktivovať flag poštovej domény, pretože pre túto doménu stále existujú e-mailové adresy.',
'tls13requiredforhttp3' => 'Flag domény http3 je povolený, ale protokoly SSL nezahŕňajú TLSv1.3.',
'senderdomainnotowned' => 'Zadaná doména „%s" nemôže byť použitá.',
'emailhasnoaccount' => 'Zadaná e-mailová adresa „%s" nemá žiadny účet, nie je možné pridať adresu odosielateľa.',
],
'extras' => [
'description' => 'Tu môžete pridať niektoré doplnky, napríklad ochranu adresárov. Po každej zmene bude systém potrebovať určitý čas, aby aplikoval nové nastavenia.',
'directoryprotection_add' => 'Pridať ochranu adresára',
'view_directory' => 'Zobraziť obsah adresára',
'pathoptions_add' => 'Pridať možnosti cesty',
'directory_browsing' => 'Prehliadanie obsahu adresára',
'pathoptions_edit' => 'Upraviť možnosti cesty',
'error404path' => '404',
'error403path' => '403',
'error500path' => '500',
'error401path' => '401',
'errordocument404path' => 'ErrorDocument 404',
'errordocument403path' => 'ErrorDocument 403',
'errordocument500path' => 'ErrorDocument 500',
'errordocument401path' => 'ErrorDocument 401',
'execute_perl' => 'Spustiť perl/CGI',
'htpasswdauthname' => 'Dôvod overenia (AuthName)',
'directoryprotection_edit' => 'Upraviť ochranu adresára',
'export' => 'Vytvoriť výpis dát',
'dump_web' => 'Zahrnúť webové dáta',
'dump_mail' => 'Zahrnúť e-mailové dáta',
'dump_dbs' => 'Zahrnúť databázy',
'path_protection_label' => 'Dôležité',
'path_protection_info' => 'Dôrazne odporúčame chrániť danú cestu, pozri "Extra" -> "Ochrana adresárov"',
],
'ftp' => [
'description' => 'Tu môžete vytvoriť a zmeniť svoje FTP účty. Zmeny sú vykonané okamžite a účty môžu byť použité okamžite.',
'account_add' => 'Vytvoriť účet',
'account_edit' => 'Upraviť ftp účet',
'editpassdescription' => 'Nastavte nové heslo alebo ponechajte prázdne pre zachovanie existujúceho.',
'sshkey_add' => 'Pridať ssh kľúč',
'sshkey_edit' => 'Upraviť ssh kľúč',
],
'gender' => [
'title' => 'Titul',
'male' => 'Pán',
'female' => 'Pani',
'undef' => '',
],
'imprint' => 'Právne ustanovenia',
'index' => [
'customerdetails' => 'Podrobnosti o zákazníkovi',
'accountdetails' => 'Nastavenie účtu',
],
'integrity_check' => [
'databaseCharset' => 'Sada znakov databázy (mala by byť UTF-8)',
'domainIpTable' => 'IP <‐> referencie domén',
'subdomainSslRedirect' => 'Falošný príznak presmerovania SSL pre non-ssl domény',
'froxlorLocalGroupMemberForFcgidPhpFpm' => 'froxlor-používatelia v skupinách zákazníkov (pre FCGID/php-fpm)',
'webserverGroupMemberForFcgidPhpFpm' => 'Webový používateľ v skupinách zákazníkov (pre FCGID/php-fpm)',
'subdomainLetsencrypt' => 'Hlavné domény bez SSL portu nemajú žiadne subdomény s aktívnym presmerovaním SSL',
],
'logger' => [
'date' => 'Dátum',
'type' => 'Typ',
'action' => 'Akcia',
'user' => 'Používateľ',
'truncate' => 'Vyprázdniť protokol',
'reseller' => 'Predajca',
'admin' => 'Administrátor',
'cron' => 'Cronjob',
'login' => 'Prihlásenie',
'intern' => 'Interné',
'unknown' => 'Neznámy',
],
'login' => [
'username' => 'Používateľské meno',
'password' => 'Heslo',
'language' => 'Jazyk',
'login' => 'Prihlásiť sa',
'logout' => 'Odhlásiť sa',
'profile_lng' => 'Jazyk profilu',
'welcomemsg' => 'Pre prístup k vášmu účtu sa prihláste.',
'forgotpwd' => 'Zabudli ste heslo?',
'presend' => 'Obnoviť heslo',
'email' => 'E-mailová adresa',
'remind' => 'Obnoviť heslo',
'usernotfound' => 'Používateľ nebol nájdený!',
'backtologin' => 'Späť na prihlásenie',
'combination_not_found' => 'Kombinácia používateľa a e-mailovej adresy nenájdená.',
'2fa' => 'Dvojfázové overenie (2FA)',
'2facode' => 'Zadajte prosím 2FA kód',
'2faremember' => 'Dôverovať prehliadaču',
],
'mails' => [
'pop_success' => [
'mailbody' => 'Dobrý deň,\\n\\nváš e-mailový účet {EMAIL}\\nbyl úspešne vytvorený.\\n\\nToto je automaticky vytvorený\\ne-mail, prosím neodpovedajte naň!\\n\\nVáš správca',
'subject' => 'E-mailový účet bol úspešne nastavený',
],
'createcustomer' => [
'mailbody' => 'Dobrý deň {SALUTATION},\\n\\ntu je váš účet:\\n\\nPoužívateľské meno: {USERNAME}\\nHeslo: {PASSWORD}\\n\\nĎakujeme,\\nváš správca',
'subject' => 'Informácie o účte',
],
'pop_success_alternative' => [
'mailbody' => 'Dobrý deň {SALUTATION},\\n\\nVáš e-mailový účet {EMAIL}\\nbyl úspešne vytvorený.\\nVaše heslo je {PASSWORD}.\\n\\nToto je automaticky vytvorený e-mail\\n, prosím neodpovedajte naň!\\n\\nS úctou, váš správca',
'subject' => 'E-mailový účet bol úspešne nastavený',
],
'password_reset' => [
'subject' => 'Obnovenie hesla',
'mailbody' => 'Dobrý deň, {SALUTATION},\\n\\ntu je váš odkaz pre nastavenie nového hesla. Tento odkaz je platný po dobu nasledujúcich 24 hodín.\\n\\n{LINK}\\n\\nĎakujeme,\\nváš správca',
],
'new_database_by_customer' => [
'subject' => '[froxlor] Bola vytvorená nová databáza',
'mailbody' => 'Dobrý deň {CUST_NAME},
práve ste pridali novú databázu. Tu sú zadané informácie:
Názov databázy: {DB_NAME}
Heslo: {DB_PASS}
Popis: {DB_DESC}
Hostiteľ databázy: {DB_SRV}
phpMyAdmin: {PMA_URI}
S pozdravom váš správca',
],
'new_ftpaccount_by_customer' => [
'subject' => 'Nový ftp používateľ vytvorený',
'mailbody' => 'Dobrý deň {CUST_NAME},
práve ste pridali nového ftp používateľa. Tu sú zadané informácie:
Používateľské meno: {USR_NAME}
Heslo: {USR_PASS}
Cesta: {USR_PATH}
S úctou, váš správca',
],
'trafficmaxpercent' => [
'mailbody' => 'Vážený/á {SALUTATION},\\n\\npoužili ste {TRAFFICUSED} z dostupnej prevádzky {TRAFFIC}.\\nToto je viac ako {MAX_PERCENT}%%.\\n\\nS úctou váš správca',
'subject' => 'Dosiahnutie limitu prevádzky',
],
'diskmaxpercent' => [
'mailbody' => 'Vážený/á {SALUTATION},\\n\\npoužili ste {DISKUSED} z dostupného {DISKAVAILABLE} miesta na disku.\\nToto je viac ako {MAX_PERCENT}%%.\\n\\nS úctou váš správca',
'subject' => 'Dosiahnutie limitu na disku',
],
'2fa' => [
'mailbody' => 'Dobrý deň,\\n\\nváš 2FA prihlasovací kód je: {CODE}.\\n\\nToto je automaticky vytvorený\\ne-mail, prosím neodpovedajte naň!\\n\\nVáš správca',
'subject' => 'froxlor - 2FA kód',
],
],
'menue' => [
'main' => [
'main' => 'Hlavný',
'changepassword' => 'Zmeniť heslo',
'changelanguage' => 'Zmeniť jazyk',
'username' => 'Prihlásený ako: ',
'changetheme' => 'Zmeniť motív',
'apihelp' => 'Nápoveda API',
'apikeys' => 'API kľúče',
],
'email' => [
'email' => 'Email',
'emails' => 'Adresy',
'webmail' => 'Webmail',
'emailsoverview' => 'Prehľad e-mailových domén',
],
'mysql' => [
'mysql' => 'MySQL',
'databases' => 'Databázy',
'phpmyadmin' => 'phpMyAdmin',
],
'domains' => [
'domains' => 'Domény',
'settings' => 'Prehľad domén',
],
'ftp' => [
'ftp' => 'FTP',
'accounts' => 'Účty',
'webftp' => 'WebFTP',
'sshkeys' => 'SSH kľúče',
],
'extras' => [
'extras' => 'Extra',
'directoryprotection' => 'Ochrana adresára',
'pathoptions' => 'Možnosti cesty',
'export' => 'Export dát',
],
'traffic' => [
'traffic' => 'Prevádzka',
'current' => 'Aktuálny mesiac',
'overview' => 'Celková prevádzka',
],
'phpsettings' => [
'maintitle' => 'PHP konfigurácia',
'fpmdaemons' => 'Verzie PHP-FPM',
],
'logger' => [
'logger' => 'Systémový protokol',
],
],
'message' => [
'norecipients' => 'Nebol odoslaný žiadny e-mail, pretože v databáze nie sú žiadni príjemcovia',
'success' => 'Správa bola úspešne odoslaná príjemcom %s',
],
'mysql' => [
'databasename' => 'Používateľ/Meno databázy',
'databasedescription' => 'Popis databázy',
'database_create' => 'Vytvoriť databázu',
'description' => 'Tu môžete vytvoriť a zmeniť databázy MySQL. Zmeny sú vykonané okamžite a databázymôžu byť použité okamžite. V menu na ľavej strane nájdete nástroj phpMyAdmin, pomocou ktorého môžete ľahko spravovať svoju databázu.
Pre použitie Vašich databáz vo vlastných php-skriptoch použite nasledujúce nastavenia: (Dáta kurzívou je potrebné zmeniť na ekvivalenty, ktoré ste zadali! Názov hostiteľa: Používateľské meno: názov databázy Heslo: heslo, ktoré ste si vybrali Databáza: názov databázy',
'mysql_server' => 'Server MySQL',
'database_edit' => 'Upraviť databázu',
'size' => 'Veľkosť',
'privileged_user' => 'Oprávnený databázový používateľ',
'privileged_passwd' => 'Heslo pre oprávneného používateľa',
'unprivileged_passwd' => 'Heslo pre neoprávneného používateľa',
'mysql_ssl_ca_file' => 'Certifikát SSL servera',
'mysql_ssl_verify_server_certificate' => 'Overiť certifikát SSL servera',
'globaluserinfo' => 'Pre prístup k databázam môžete navyše použiť vaše froxlor prihlásenie (používateľ: %s), ktoré má automaticky prístup ku všetkým databázam. Odporúčame nepoužiť pre aplikácie, iba pre správu (napr. cez phpMyAdmin).',
'edit_global_user' => 'Upraviť administrátora',
],
'opcacheinfo' => [
'generaltitle' => 'Všeobecné informácie',
'resetcache' => 'Resetovať OPcache',
'version' => 'Verzia OPCache',
'phpversion' => 'Verzia PHP',
'runtimeconf' => 'Spustiteľná konfigurácia',
'start' => 'Čas spustenia',
'lastreset' => 'Posledný reštart',
'oomrestarts' => 'Počet reštartov OOM',
'hashrestarts' => 'Počet reštartov hash',
'manualrestarts' => 'Manuálny počet reštartov',
'hitsc' => 'Počet zásahov',
'missc' => 'Nevyužitý počet',
'blmissc' => 'Počet zmeškaných záznamov na čiernej listine',
'status' => 'Stav',
'never' => 'nikdy',
'enabled' => 'OPcache povolené',
'cachefull' => 'Medzipamäť je plná',
'restartpending' => 'Čaká na reštart',
'restartinprogress' => 'Prebieha reštart',
'cachedscripts' => 'Počet skriptov v medzipamäti',
'memusage' => 'Využitie pamäte',
'totalmem' => 'Celková pamäť',
'usedmem' => 'Využitá pamäť',
'freemem' => 'Voľná pamäť',
'wastedmem' => 'Premárená pamäť',
'maxkey' => 'Maximálny počet kľúčov',
'usedkey' => 'Použité kľúče',
'wastedkey' => 'Premárnené kľúče',
'strinterning' => 'String interning',
'strcount' => 'Počet reťazcov',
'keystat' => 'Štatistika kľúčov v medzipamäti',
'used' => 'Využité',
'free' => 'Voľné',
'blacklist' => 'Čierna listina',
'novalue' => 'žiadna hodnota',
'true' => 'true',
'false' => 'false',
'funcsavail' => 'Dostupné funkcie',
],
'panel' => [
'edit' => 'Upraviť',
'delete' => 'Zmazať',
'create' => 'Vytvoriť',
'save' => 'Uložiť',
'yes' => 'Áno',
'no' => 'Nie',
'emptyfornochanges' => 'prázdne pre žiadne zmeny',
'emptyfordefault' => 'prázdne pre predvolené nastavenie',
'path' => 'Cesta',
'toggle' => 'Prepínač',
'next' => 'Ďalej',
'dirsmissing' => 'Adresár sa nedá nájsť alebo prečítať!',
'unlimited' => '∞',
'urloverridespath' => 'URL (prepísanie cesty)',
'pathorurl' => 'Cesta alebo URL',
'ascending' => 'vzostupne',
'descending' => 'zostupne',
'search' => 'Vyhľadať',
'used' => 'využité',
'translator' => 'Prekladač',
'reset' => 'Zahodiť zmeny',
'pathDescription' => 'Ak priečinok neexistuje, bude vytvorený automaticky.',
'pathDescriptionEx' => '
Upozornenie: Cesta / nie je povolená z dôvodu administratívneho nastavenia, bude automaticky nastavená na /chosen.subdomain.tld/ ak nie je nastavená na iný adresár.',
'pathDescriptionSubdomain' => 'Ak priečinok neexistuje, bude vytvorený automaticky.
Ak chcete presmerovať na inú doménu, musí tento záznam začínať http:// alebo https://.
Ak URL končí / je považovaná za priečinok, ak nie, je považovaná za súbor.',
'back' => 'Späť',
'reseller' => 'predajca',
'admin' => 'admin',
'customer' => 'zákazník/zákazníci',
'send' => 'odoslať',
'nosslipsavailable' => 'V súčasnosti neexistujú žiadne kombinácie ssl ip/port pre tento server',
'backtooverview' => 'Späť na prehľad',
'dateformat' => 'RRRR-MM-DD',
'dateformat_function' => 'R-m-d',
'timeformat_function' => 'H:i:s',
'default' => 'Predvolené',
'never' => 'Nikdy',
'active' => 'Aktívny',
'please_choose' => 'Vyberte prosím',
'allow_modifications' => 'Povoliť zmeny',
'megabyte' => 'MegaByte',
'not_supported' => 'Nepodporované v: ',
'view' => 'zobrazenie',
'toomanydirs' => 'Príliš veľa podadresárov. Vráťte sa na manuálny výber cesty.',
'abort' => 'Prerušiť',
'not_activated' => 'nie je aktivované',
'off' => 'vyp.',
'options' => 'Možnosti',
'neverloggedin' => 'Zatiaľ žiadne prihlásenie',
'descriptionerrordocument' => 'Môže byť adresa URL, cesta k súboru alebo len reťazec zabalený okolo " " Nechajte prázdne pre použitie predvolenej hodnoty servera.',
'unlock' => 'Odomknúť',
'theme' => 'Motív',
'variable' => 'Premenná',
'description' => 'Popis',
'cancel' => 'Zrušiť',
'ssleditor' => 'Nastavenia SSL pre túto doménu',
'ssleditor_infoshared' => 'V súčasnosti používa certifikát nadradenej domény',
'ssleditor_infoglobal' => 'V súčasnosti používa globálny certifikát',
'dashboard' => 'Nástenka',
'assigned' => 'Priradené',
'available' => 'K dispozícii',
'news' => 'Novinky',
'newsfeed_disabled' => 'Novinky sú zakázané. Kliknutím na ikonu úpravy prejdete do nastavení.',
'ftpdesc' => 'Popis FTP',
'letsencrypt' => 'Používa Let\'s Encrypt',
'set' => 'Aplikovať',
'shell' => 'Konzola',
'sshkeydesc' => 'Popis kľúča SSH',
'ftpuser' => 'FTP používateľ',
'sshpubkey' => 'Verejný SSH kľúč',
'sshpubkeyph' => "Začína na „ssh-ed25519“, „ssh-rsa“, „ecdsa-sha2-nistp256“, „ecdsa-sha2-nistp384“, „ecdsa-sha2-nistp521“, „sk-ecdsa-sha2-nistp256@openssh.com“ alebo „sk-ssh-ed25519@openssh.com'",
'sshfingerprint' => 'Odtlačok',
'exportpath' => [
'title' => 'Cieľová cesta pre exportované dáta',
'description' => 'Toto je cesta, kde bude exportovaný archív uložený. Ak sú webové dáta zahrnuté, všetky súbory z domovského adresára sú uložené mimo priečinka zadaného tu.',
],
'export_pgp_public_key' => [
'title' => 'Verejný PGP kľúč pre šifrovanie',
'description' => 'Toto je verejný PGP kľúč, ktorý bude použitý na zašifrovanie exportu. Ak necháte toto pole prázdne, export nebude zašifrovaný.',
],
'pgp_public_key' => 'Verejný PGP kľúč',
'none_value' => 'Žiadna',
'viewlogs' => 'Zobraziť protokoly',
'not_configured' => 'Systém ešte nie je nakonfigurovaný. Kliknite sem pre prechod do konfigurácie.',
'start_setup' => 'Spustiť nastavenie',
'ihave_configured' => 'Nakonfiguroval som služby',
'system_is_configured' => 'Systém je už nastavený ako nakonfigurovaný',
'settings_before_configuration' => 'Uistite sa, že ste upravili nastavenia pred konfiguráciou služieb tu',
'image_field_delete' => 'Odstrániť existujúci obrázok',
'usage_statistics' => 'Využitie zdrojov',
'security_question' => 'Bezpečnostná otázka',
'listing_empty' => 'Neboli nájdené žiadne záznamy',
'unspecified' => 'nešpecifikované',
'settingsmode' => 'Režim',
'settingsmodebasic' => 'Základný',
'settingsmodeadvanced' => 'Rozšírený',
'settingsmodetoggle' => 'Prepínanie režimu',
'modalclose' => 'Zavrieť',
'managetablecolumnsmodal' => [
'title' => 'Správa stĺpcov tabuľky',
'description' => 'Tu si môžete prispôsobiť viditeľné stĺpce',
],
'mandatoryfield' => 'Pole je povinné',
'select_all' => 'Vybrať všetko',
'unselect_all' => 'Odznačiť všetko',
'searchtablecolumnsmodal' => [
'title' => 'Hľadať v poliach',
'description' => 'Vyberte pole, v ktorom chcete vyhľadať'
],
'upload_import' => 'Nahrať a importovať',
'profile' => 'Môj profil',
'use_checkbox_for_unlimited' => 'Hodnota „0" deaktivuje tento zdroj. Zaškrtávacie políčko vpravo umožňuje „neobmedzené" použitie.',
'use_checkbox_to_disable' => 'Ak chcete túto funkciu deaktivovať, zaškrtnite políčko napravo od textového poľa.',
'distro_mismatch' => 'Zdá sa, že ste vykonali upgrade na novú distribúciu. Nezabudnite prosím zodpovedajúcim spôsobom prekonfigovať služby.',
'set_new_distro' => 'Nastaviť distribúciu',
'dismiss' => 'Zavrieť',
],
'phpfpm' => [
'vhost_httpuser' => 'Miestny používateľ pre PHP-FPM (froxlor vHost)',
'vhost_httpgroup' => 'Miestna skupina pre PHP-FPM (froxlor vHost)',
'ownvhost' => [
'title' => 'Povoliť PHP-FPM pre froxlor vHost',
'description' => 'Ak je povolené, froxlor bude spustený tiež pod miestnym používateľom',
],
'use_mod_proxy' => [
'title' => 'Použiť mod_proxy / mod_proxy_fcgi',
'description' => 'Pri používaní Debianu 9.x (Stretch) alebo novšiehomusí byť povolené použitie php-fpm cez mod_proxy_fcgi. Vyžaduje aspoň apache-2.4.9',
],
'ini_flags' => 'Zadajte možný php_flag pre php.ini. Jeden záznam na riadok',
'ini_values' => 'Zadajte možnú php_value pre php.ini. Jeden záznam na riadok',
'ini_admin_flags' => 'Zadajte možný php_admin_flag pre php.ini. Jeden záznam na riadok',
'ini_admin_values' => 'Zadajte možnú php_value pre php.ini. Jeden záznam na riadok',
],
'privacy' => 'Zásady ochrany súkromia',
'pwdreminder' => [
'success' => 'Obnovenie hesla bolo úspešne požiadané. Postupujte podľa pokynov v e-maile, ktorý ste dostali.',
'notallowed' => 'Neznámy používateľ alebo obnovenie hesla je zakázané',
'changed' => 'Vaše heslo bolo úspešne aktualizované. Teraz sa môžete prihlásiť pomocou nového hesla.',
'wrongcode' => 'Je nám ľúto, váš aktivačný kód neexistuje alebo už vypršal.',
'choosenew' => 'Nastaviť nové heslo',
],
'question' => [
'question' => 'Bezpečnostná otázka',
'admin_customer_reallydelete' => 'Naozaj chcete odstrániť zákazníka %s? Túto akciu nie je možné vrátiť späť!',
'admin_domain_reallydelete' => 'Naozaj chcete odstrániť doménu %s? POZNÁMKA: Všetky subdomény, ftp-účty a e-mailové adresy/účty spojené s touto doménou budú odstránené!',
'admin_domain_reallydisablesecuritysetting' => 'Naozaj chcete zakázať toto nastavenie zabezpečenia OpenBasedir?',
'admin_admin_reallydelete' => 'Naozaj chcete odstrániť správcu %s? Každý zákazník a doména budú znovu priradené k vášmu účtu.',
'admin_template_reallydelete' => 'Naozaj chcete odstrániť šablónu \'%s\'?',
'domains_reallydelete' => 'Naozaj chcete odstrániť doménu %s?',
'email_reallydelete' => 'Naozaj chcete odstrániť e-mailovú adresu %s?',
'email_reallydelete_account' => 'Naozaj chcete zmazať e-mailový účet %s?',
'email_reallydelete_forwarder' => 'Naozaj chcete odstrániť preposielateľa %s?',
'email_reallydelete_sender' => 'Naozaj chcete odstrániť povoleného odosielateľa %s?',
'extras_reallydelete' => 'Naozaj chcete odstrániť ochranu adresára pre %s?',
'extras_reallydelete_pathoptions' => 'Naozaj chcete odstrániť možnosti cesty pre %s?',
'extras_reallydelete_export' => 'Naozaj chcete prerušiť plánovanú prácu na exporte?',
'ftp_reallydelete' => 'Naozaj chcete odstrániť FTP účet %s?',
'sshkey_reallydelete' => 'Naozaj chcete zmazať ssh-kľúč %s?',
'mysql_reallydelete' => 'Naozaj chcete odstrániť databázu %s? Túto akciu nie je možné vrátiť späť!',
'admin_configs_reallyrebuild' => 'Naozaj chcete znovu zostaviť všetky konfiguračné súbory?',
'admin_customer_alsoremovefiles' => 'Odstrániť aj používateľské súbory?',
'admin_customer_alsoremovemail' => 'Úplne odstrániť e-mailové dáta zo súborového systému?',
'admin_customer_alsoremoveftphomedir' => 'Odobrať aj domovský adresár FTP používateľa?',
'admin_ip_reallydelete' => 'Naozaj chcete odstrániť IP adresu %s?',
'admin_domain_reallydocrootoutofcustomerroot' => 'Ste si istí, že chcete, aby koreň dokumentu pre túto doménu nebol v rámci koreňa zákazníka?',
'admin_counters_reallyupdate' => 'Naozaj chcete prepočítať využitie zdrojov?',
'admin_cleartextmailpws_reallywipe' => 'Naozaj chcete vymazať všetky nešifrované heslá e-mailového účtu z tabuľky mail_users? Túto akciu nie je možné vrátiť späť! Nastavenie nešifrovaných e-mailových hesiel bude tiež nastavené na vypnutie',
'logger_reallytruncate' => 'Naozaj chcete zredukovať tabuľku "%s"?',
'admin_quotas_reallywipe' => 'Naozaj chcete vymazať všetky kvóty v tabuľke mail_users? Toto nie je možné vrátiť späť!',
'admin_quotas_reallyenforce' => 'Naozaj chcete vynútiť predvolenú kvótu pre všetkých používateľov? Toto nie je možné vrátiť späť!',
'phpsetting_reallydelete' => 'Naozaj chcete odstrániť tieto nastavenia? Všetky domény, ktoré v súčasnosti používajú tieto nastavenia, budú zmenené na predvolené nastavenia.',
'fpmsetting_reallydelete' => 'Naozaj chcete zmazať tieto nastavenia php-fpm? Všetky php konfigurácie, ktoré v súčasnosti používajú tieto nastavenia, budú zmenené na predvolené nastavenia.',
'customer_reallyunlock' => 'Naozaj chcete odomknúť zákazníka %s?',
'admin_integritycheck_reallyfix' => 'Naozaj chcete skúsiť automaticky opraviť všetky problémy s integritou databázy?',
'plan_reallydelete' => 'Naozaj chcete odstrániť plán hostovania %s?',
'apikey_reallydelete' => 'Naozaj chcete odstrániť tento api kľúč?',
'apikey_reallyadd' => 'Naozaj chcete vytvoriť nový api kľúč?',
'dnsentry_reallydelete' => 'Naozaj chcete odstrániť tento záznam zóny?',
'certificate_reallydelete' => 'Naozaj chcete odstrániť tento certifikát?',
'cache_reallydelete' => 'Naozaj chcete vymazať medzipamäť?',
'please_enter_otp' => 'Zadajte prosím 2FA kód',
'admin_mysqlserver_reallydelete' => 'Naozaj chcete zmazať tento MySQL-server?',
],
'redirect_desc' => [
'rc_default' => 'predvolené',
'rc_movedperm' => 'trvalo presunuté',
'rc_found' => 'nájdené',
'rc_seeother' => 'viď ostatné',
'rc_tempred' => 'dočasné presmerovanie',
],
'serversettings' => [
'session_timeout' => [
'title' => 'Vypršanie platnosti relácie',
'description' => 'Ako dlho musí byť používateľ neaktívny, kým bude relácia neplatná (sekundy)?',
],
'accountprefix' => [
'title' => 'Prefix zákazníka',
'description' => 'Aký prefix by mali mať zákaznícke účty?',
],
'mysqlprefix' => [
'title' => 'SQL Prefix',
'description' => 'Aký prefix by mali mať MySQL účty?Použite "RANDOM" ako hodnotu na získanie trojmiestneho náhodného prefixuPoužite "DBNAME" ako hodnotu, pole názvu databázy je použité spolu s názvom zákazníka ako prefix.',
],
'ftpprefix' => [
'title' => 'FTP Prefix',
'description' => 'Aký prefix by mali mať ftp účty? Ak toto zmeníte, musíte tiež zmeniť Quota SQL Query v konfiguračnom súbore FTP servera, ak ho používate! ',
],
'documentroot_prefix' => [
'title' => 'Domovský adresár',
'description' => 'Kde by mali byť uložené všetky domovské adresáre?',
],
'logfiles_directory' => [
'title' => 'Adresár súborov protokolu',
'description' => 'Kde majú byť uložené všetky súbory protokolov?',
],
'logfiles_script' => [
'title' => 'Vlastný skript pre odosielanie súborov protokolu',
'description' => 'Tu môžete zadať skript a použiť zástupné symboly {LOGFILE}, {DOMAIN} a {CUSTOMER} v prípade potreby. Ak ho chcete použiť, budete musieť aktivovať aj nastavenie logov webservera. Nie je potrebný žiadny vopred stanovený pipe-znak.',
],
'logfiles_format' => [
'title' => 'Formát prístupového protokolu',
'description' => 'Tu zadajte vlastný formát logu podľa špecifikácií webových serverov, ponechajte prázdny pre predvolený. V závislosti od vášho formátu musí byť reťazec uvedený. Ak je použité s nginx, bude vyzerať ako log_format frx_custom {CONFIGURED_VALUE}. Ak je použité s Apache, bude vyzerať ako LogFormat {CONFIGURED_VALUE} frx_custom. Pozornosť: Kód nebude skontrolovaný na žiadne chyby. Ak obsahuje chyby, webový server nemusí znovu spustiť!',
],
'logfiles_type' => [
'title' => 'Typ prístupového protokolu',
'description' => 'Tu si vyberte medzi combined alebo vhost_combined.',
],
'logfiles_piped' => [
'title' => 'Presmerovanie súborov protokolu webového servera do zadaného skriptu (viď vyššie)',
'description' => 'Ak používate vlastný skript pre logy, musíte ho aktivovať, aby mohol byť spustený',
],
'ipaddress' => [
'title' => 'IP adresa',
'description' => 'Aká je hlavná IP adresa tohto servera?',
],
'hostname' => [
'title' => 'Názov servera',
'description' => 'Aký je názov hostiteľa tohto servera?',
],
'apachereload_command' => [
'title' => 'Príkaz pre opätovné načítanie webového servera',
'description' => 'Aký je príkaz webového servera pre opätovné načítanie konfiguračných súborov?',
],
'bindenable' => [
'title' => 'Povoliť nameserver',
'description' => 'Tu je možné globálne povoliť a zakázať nameserver.',
],
'bindconf_directory' => [
'title' => 'Konfiguračný adresár servera DNS',
'description' => 'Kde by mali byť uložené konfiguračné súbory dns-servera?',
],
'bindreload_command' => [
'title' => 'Príkaz pre opätovné načítanie servera DNS',
'description' => 'Aký je príkaz pre znovunačítanie dns servera daemon?',
],
'vmail_uid' => [
'title' => 'UID-Mailov',
'description' => 'Aké užívateľské Id by mali mať e-maily?',
],
'vmail_gid' => [
'title' => 'Mails-GID',
'description' => 'Aké GroupID by mali mať e-maily?',
],
'vmail_homedir' => [
'title' => 'Domovský adresár pre e-maily',
'description' => 'Kde by mali byť uložené všetky e-maily?',
],
'adminmail' => [
'title' => 'Odosielateľ',
'description' => 'Aká je adresa odosielateľa pre e-maily odoslané z panela?',
],
'phpmyadmin_url' => [
'title' => 'phpMyAdmin URL',
'description' => 'Aká je adresa URL na phpMyAdmin? (musí začínať http(s)://)',
],
'webmail_url' => [
'title' => 'Webmail URL',
'description' => 'Aká je URL adresa webovej pošty? (musí začínať http(s)://)',
],
'webftp_url' => [
'title' => 'WebFTP URL',
'description' => 'Aká je URL adresa na WebFTP? (musí začínať http(s)://)',
],
'language' => [
'description' => 'Aký je váš štandardný jazyk servera?',
],
'maxloginattempts' => [
'title' => 'Maximálny počet pokusov o prihlásenie',
'description' => 'Maximálny počet pokusov o prihlásenie, po ktorých je účet zakázaný.',
],
'deactivatetime' => [
'title' => 'Čas deaktivácie',
'description' => 'Čas (sek.) po príliš mnohých pokusoch o prihlásenie, po ktorom je deaktivovaný účet.',
],
'pathedit' => [
'title' => 'Typ vstupu cesty',
'description' => 'Mala by byť cesta vybraná v rozbaľovacom menu alebo vo vstupnom poli?',
],
'nameservers' => [
'title' => 'Nameservery',
'description' => 'Čiarkou oddelený zoznam obsahujúci mená všetkých nameserverov. Prvý bude primárny.',
],
'mxservers' => [
'title' => 'MX servery',
'description' => 'Čiarkou oddelený zoznam obsahujúci dvojicu čísel a názvu hostiteľa oddelených medzerou (napr. \'10 mx.example.com\') obsahujúci mx servery.',
],
'paging' => [
'title' => 'Počet položiek na stránku',
'description' => 'Koľko záznamov sa zobrazí na jednej stránke? (0 = zakázať stránkovanie)',
],
'defaultip' => [
'title' => 'Predvolená IP/port',
'description' => 'Vyberte všetky IP adresy, ktoré chcete použiť ako predvolené pre nové domény',
],
'defaultsslip' => [
'title' => 'Predvolená SSL IP/port',
'description' => 'Vyberte všetky ssl IP adresy, ktoré chcete použiť ako predvolené pre nové domény',
],
'phpappendopenbasedir' => [
'title' => 'Cesty, ktoré sa pripoja do súboru OpenBasedir',
'description' => 'Tieto cesty (oddelené dvojbodkami) budú pridané do príkazu OpenBasedir v každom kontajneri vHost.',
],
'natsorting' => [
'title' => 'Použiť prirodzené ľudské triedenie v zobrazení zoznamu',
'description' => 'Zoradí zoznamy ako web1 -> web2 -> web11 namiesto web1 -> web11 -> web2.',
],
'deactivateddocroot' => [
'title' => 'Docroot pre deaktivovaných používateľov',
'description' => 'Ak je používateľ deaktivovaný, použije sa táto cesta ako docroot. Ponechajte prázdne, ak vôbec nechcete vytvárať vHost hostiteľa.',
],
'mailpwcleartext' => [
'title' => 'Tiež ukladať nešifrované heslá e-mailových účtov do databázy',
'description' => 'Ak je toto nastavené na Áno, všetky heslá budú tiež uložené v tabuľke mail_users-table (nešifrovaný text, jednoducho čitateľný pre všetkých s prístupom k databáze). Aktivujte len ak chcete použiť SASL!',
],
'ftpdomain' => [
'title' => 'FTP účty @doména',
'description' => 'Zákazníci môžu vytvoriť FTP účty používateľ@doménazákazníka?',
],
'mod_fcgid' => [
'title' => 'Povoliť FCGID',
'description' => 'Použite pre spustenie PHP s príslušným používateľským účtom.
Toto vyžaduje špeciálnu konfiguráciu webového servera pre Apache, viď FCGID - príručka',
'configdir' => [
'title' => 'Adresár konfigurácie',
'description' => 'Kde by mali byť uložené všetky fcgid konfiguračné súbory? Ak nepoužívate vlastný skompilovaný suexec binárny súbor, čo je bežná situácia, táto cesta musí byť pod /var/www/
POZNÁMKA: Obsah tejto priečinky je pravidelne mazaný, aby sa zabránilo ukladaniu dát v nej manuálne.
',
],
'tmpdir' => [
'title' => 'Dočasný adresár',
'description' => 'Kde by mali byť uložené dočasné adresáre',
],
'starter' => [
'title' => 'Procesy na doménu',
'description' => 'Koľko procesov by malo byť spustených/povolených v danej doméne? Hodnota 0 je odporúčaná, pretože PHP potom bude veľmi efektívne spravovať samotný počet procesov.',
],
'wrapper' => [
'title' => 'Wrapper v hostiteľoch Vhosts',
'description' => 'Ako by mal byť wrapper zahrnutý do Vhosts',
],
'peardir' => [
'title' => 'Globálne adresáre PEAR',
'description' => 'Ktoré globálne adresáre PEAR by mali byť nahradené v každom konfiguračnom súbore php.ini? Rôzne adresáre musia byť oddelené dvojbodkou.',
],
'maxrequests' => [
'title' => 'Maximálny počet požiadaviek na doménu',
'description' => 'Koľko požiadaviek by malo byť povolených na doménu?',
],
'defaultini' => 'Predvolená konfigurácia PHP pre nové domény',
'defaultini_ownvhost' => 'Predvolená konfigurácia PHP pre froxlor-vHost',
'idle_timeout' => [
'title' => 'Časový limit nečinnosti',
'description' => 'Časový limit nastavenia Mod FastCGI.',
],
],
'sendalternativemail' => [
'title' => 'Použiť alternatívnu e-mailovú adresu',
'description' => 'Poslať heslo na inú adresu pri vytváraní e-mailu',
],
'apacheconf_vhost' => [
'title' => 'Konfiguračný súbor/adresár webservera',
'description' => 'Kde má byť uložená konfigurácia vHost? Tu môžete zadať buď súbor (všetky vHosty v jednom súbore), alebo adresár (každý vHost vo vlastnom súbore).',
],
'apacheconf_diroptions' => [
'title' => 'Konfiguračný súbor/názov adresára webového servera diroptions',
'description' => 'Kde má byť uložená konfigurácia diroptions? Tu môžete zadať buď súbor (všetky dioptrie v jednom súbore), alebo adresár (každá dioptria vo vlastnom súbore).',
],
'apacheconf_htpasswddir' => [
'title' => 'Webserver htpasswd dirname',
'description' => 'Kde majú byť súbory htpasswd pre ochranu adresára uložené?',
],
'mysql_access_host' => [
'title' => 'MySQL-Access-Hosts',
'description' => 'Čiarkami oddelený zoznam hostiteľov, od ktorých by mali mať používatelia možnosť pripojiť sa k serveru MySQL-Server. Pre povolenie podsiete je platná sieťová maska alebo cidr.',
],
'webalizer_quiet' => [
'title' => 'Výstup Webalizátora',
'description' => 'Verbosita webalizéra',
],
'logger' => [
'enable' => 'Logovanie povolené/zakázané',
'severity' => 'Úroveň protokolovania',
'types' => [
'title' => 'Typ (typy) logov',
'description' => 'Zadajte typy logov. Ak chcete vybrať viac typov, podržte CTRL pri výbere. Dostupné typy logov sú: syslog, súbor, mysql',
],
'logfile' => [
'title' => 'Názov súboru pre log',
'description' => 'Používa sa len v prípade, že typ logu obsahuje "súbor". Tento súbor bude vytvorený v froxlor/logs/. Táto priečinka je chránená pred verejným prístupom.',
],
'logcron' => 'Zaznamenávať cronjoby',
'logcronoption' => [
'never' => 'Nikdy',
'once' => 'Raz',
'always' => 'Vždy',
],
],
'ssl' => [
'use_ssl' => [
'title' => 'Povoliť využitie SSL',
'description' => 'Zaškrtnite, ak chcete použiť SSL pre váš webový server',
],
'ssl_cert_file' => [
'title' => 'Cesta k SSL certifikátu',
'description' => 'Zadajte cestu vrátane názvu súboru .crt alebo .pem (hlavný certifikát)',
],
'openssl_cnf' => 'Predvolené nastavenia pre vytvorenie Cert súboru',
'ssl_key_file' => [
'title' => 'Cesta k súboru kľúča SSL',
'description' => 'Zadajte cestu vrátane názvu súboru pre súkromný kľúč (väčšinou .key)',
],
'ssl_ca_file' => [
'title' => 'Cesta k SSL CA certifikátu (voliteľné)',
'description' => 'Overovanie klienta, nastavte to len ak viete, čo to je.',
],
'ssl_cipher_list' => [
'title' => 'Konfigurovať povolené SSL šifry',
'description' => 'Toto je zoznam šifier, ktoré chcete (alebo nechcete) použiť pri komunikácii SSL. Pre zoznam šifier a spôsob, ako ich zahrnúť/vylúčiť viď sekcie "CIPHER LIST FORMAT" a "CIPHER STRINGS" na man-stránke pre šifry.
',
],
'apache24_ocsp_cache_path' => [
'title' => 'Apache 2.4: cesta k OCSP stapling cache',
'description' => 'Konfiguruje medzipamäť použitú na ukladanie odpovedí OCSP, ktoré sú zahrnuté do TLS handshakes.',
],
'ssl_protocols' => [
'title' => 'Konfigurácia verzie protokolu TLS',
'description' => 'Toto je zoznam ssl protokolov, ktoré chcete (alebo nechcete) použiť pri použití SSL. Upozornenie: Niektoré staršie prehliadače nemusia podporovať najnovšie verzie protokolu.
Predvolená hodnota je:
TLSv1.2
',
],
'tlsv13_cipher_list' => [
'title' => 'Nakonfigurujte explicitné TLSv1.3 šifry, ak sú použité',
'description' => 'Toto je zoznam šifier, ktoré chcete (alebo nechcete) použiť pri komunikácii TLSv1.3. Zoznam šifier a ako ich zahrnúť/vylúčiť, viď dokumentácia pre TLSv1..
Predvolená hodnota je prázdna',
],
],
'default_vhostconf' => [
'title' => 'Predvolené nastavenia vHost-servera',
'description' => 'Obsah tohto poľa bude priamo zahrnutý do tohto kontajnera s ip/portom. Môžete použiť nasledujúce premenné: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}{FPMSOCKET} (ak existuje) Upozornenie: Kód nebude skontrolovaný na výskyt chýb. Ak obsahuje chyby, webový server nemusí znovu spustiť!',
],
'apache_globaldiropt' => [
'title' => 'Možnosti adresára pre prefix zákazníka',
'description' => 'Obsah tohto poľa bude zahrnutý do 05_froxlor_dirfix_nofcgid.conf apache config. Ak je prázdne, použije sa predvolená hodnota:
apache >=2. Require all granted AllowOverride All
apache <=2. Order allow,deny allow from all',
],
'default_vhostconf_domain' => [
'description' => 'Obsah tohto poľa bude priamo zahrnutý do vHost kontajnera. Môžete použiť nasledujúce premenné: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}{FPMSOCKET} (ak existuje) Upozornenie: Kód nebude skontrolovaný na obsah chýb. Ak obsahuje chyby, webový server nemusí znovu spustiť!',
],
'decimal_places' => 'Počet desatinných miest vo výstupe prevádzky/webového priestoru',
'selfdns' => [
'title' => 'Nastavenia dns domény zákazníka',
],
'selfdnscustomer' => [
'title' => 'Umožniť zákazníkom upraviť nastavenia dns domény',
],
'unix_names' => [
'title' => 'Použiť používateľské mená kompatibilné s UNIX',
'description' => 'Umožňuje používať - a _ v používateľských menách, ak Nie',
],
'allow_password_reset' => [
'title' => 'Povoliť obnovenie hesla zákazníkom',
'description' => 'Zákazníci môžu obnoviť svoje heslo a aktivačný odkaz bude odoslaný na ich e-mailovú adresu',
],
'allow_password_reset_admin' => [
'title' => 'Povoliť obnovenie hesla administrátorom',
'description' => 'Správcovia/predajcovia môžu obnoviť svoje heslo a na ich e-mailovú adresu bude zaslaný aktivačný odkaz',
],
'mail_quota' => [
'title' => 'Kvóta pre poštovú schránku',
'description' => 'Predvolená kvóta pre nové vytvorené poštové schránky (MegaByte).',
],
'mail_quota_enabled' => [
'title' => 'Použiť kvóty pre poštovú schránku pre zákazníkov',
'description' => 'Aktivujte pre použitie kvót na poštových schránkach. Predvolená hodnota je Nie, pretože to vyžaduje špeciálne nastavenie.',
'removelink' => 'Kliknutím sem vymažete všetky kvóty pre e-mailové účty.',
'enforcelink' => 'Kliknutím sem vynútite predvolenú kvótu na všetky zákaznícke e-mailové účty.',
],
'mail_enable_allow_sender' => [
'title' => 'Povoliť zákazníkom používanie „povoleného odosielateľa"',
'description' => 'Ak je táto funkcia povolená, zákazníci môžu určiť „povoleného odosielateľa" pre e-mailové účty, z ktorých budú odosielať správy. Predvolené nastavenie: vypnuté',
],
'mail_allow_external_domains' => [
'title' => 'Povoliť externé domény pre „povolených odosielateľov"',
'description' => 'Ak je táto možnosť povolená, zákazník môže zadať ako „povoleného odosielateľa" pre e-mailové účty ľubovoľnú doménu (okrem domén, ktoré tento systém nevlastní). Predvolené: vypnuté',
],
'session_allow_multiple_login' => [
'title' => 'Povoliť viacnásobné prihlásenie',
'description' => 'Ak je aktivované, používateľ sa môže prihlásiť viackrát.',
],
'panel_allow_domain_change_admin' => [
'title' => 'Povoliť presúvanie domén medzi správcami',
'description' => 'Ak je aktivované, môžete zmeniť administrátora domény v nastaveniach domény. Upozornenie: Ak zákazník nie je priradený rovnakému správcovi ako doména, administrátor môže vidieť všetky ostatné domény tohto zákazníka!',
],
'panel_allow_domain_change_customer' => [
'title' => 'Povoliť presúvanie domén medzi zákazníkmi',
'description' => 'Ak je aktivované, môžete zmeniť zákazníka domény v nastaveniach domény. Upozornenie: froxlor zmení koreňový adresár dokumentu na predvolený domovský adresár nového zákazníka (+ doménový priečinok, ak je aktivovaný)',
],
'specialsettingsforsubdomains' => [
'description' => 'Ak je zvolené áno, tieto vlastné nastavenia vHost sa pridajú ku všetkým subdoménam; ak nie, špeciálne nastavenia subdomény budú odstránené.',
],
'panel_password_min_length' => [
'title' => 'Minimálna dĺžka hesla',
'description' => 'Tu môžete nastaviť minimálnu dĺžku hesla. „0" znamená, že nie je požadovaná žiadna minimálna dĺžka.',
],
'system_store_index_file_subs' => [
'title' => 'Uložiť predvolený súbor indexu aj do nových podpriečinkov',
'description' => 'Ak je povolené, predvolený indexový súbor sa ukladá do každej novo vytvorenej subdoménovej cesty (nie ak priečinok už existuje!)',
],
'adminmail_return' => [
'title' => 'Adresa pre odpoveď',
'description' => 'Zadajte e-mailovú adresu ako adresu pre odpoveď pre e-maily odoslané panelom.',
],
'adminmail_defname' => 'Meno odosielateľa e-mailu v paneli',
'stdsubdomainhost' => [
'title' => 'Štandardná subdoména zákazníka',
'description' => 'Aký názov hostiteľa sa má použiť na vytvorenie štandardných subdomén pre zákazníka. Ak je prázdne, použije sa systémový názov hostiteľa.',
],
'awstats_path' => 'Cesta k AWStats \'awstats_buildstaticpages.pl\'',
'awstats_conf' => 'Cesta ku konfigurácii AWStats',
'defaultttl' => 'TTL domény pre záväznosť v sekundách (predvolené \'604800\' = 1 týždeň)',
'defaultwebsrverrhandler_enabled' => 'Povoliť predvolené chybové dokumenty pre všetkých zákazníkov',
'defaultwebsrverrhandler_err401' => [
'title' => 'Súbor/URL pre chybu 401',
'description' => '',
],
'defaultwebsrverrhandler_err403' => [
'title' => 'Súbor/URL pre chybu 403',
'description' => '',
],
'defaultwebsrverrhandler_err404' => 'Súbor/URL pre chybu 404',
'defaultwebsrverrhandler_err500' => [
'title' => 'Súbor/URL pre chybu 500',
'description' => '',
],
'ftpserver' => [
'desc' => 'Ak je zvolený pureftpd, súbory .ftpquota pre zákaznícke kvóty sa vytvárajú a denne aktualizujú',
],
'customredirect_enabled' => [
'title' => 'Povoliť presmerovania zákazníkov',
'description' => 'Umožniť zákazníkom vybrať kód pre http-status presmerovaní, ktoré sa použijú',
],
'customredirect_default' => [
'title' => 'Predvolené presmerovanie',
'description' => 'Nastavte predvolený kód presmerovaní, ktorý sa má použiť, ak ho zákazník nenastaví sám',
],
'mail_also_with_mxservers' => 'Vytvoriť mail-, imap-, pop3- a smtp-„A record" aj pri nastavení MX-serverov',
'froxlordirectlyviahostname' => 'Prístup k froxloru priamo prostredníctvom názvu hostiteľa',
'panel_password_regex' => [
'title' => 'Regulárny výraz pre heslá',
'description' => 'Tu môžete nastaviť regulárny výraz pre zložitosť hesiel. Prázdne = žiadne špecifické požiadavky',
],
'mod_fcgid_ownvhost' => [
'title' => 'Povoliť FCGID pre froxlor vHost',
'description' => 'Ak je povolené, froxlor bude spustený aj pod lokálnym používateľom',
],
'perl' => [
'suexecworkaround' => [
'title' => 'Povoliť SuExec workaround',
'description' => 'Povoľte len v prípade, že zákaznícke docrooty nie sú v apache suexec ceste. Ak je povolené, froxlor vygeneruje symbolický odkaz zo zákazníkových perl-enabled adresárov + /cgi-bin/ na danú cestu. Upozornenie, že perl bude fungovať iba v podadresári priečinkov /cgi-bin/ a nie v samotnom priečinku (ako to robí bez tejto opravy!)',
],
'suexeccgipath' => [
'title' => 'Cesta pre symlinky adresárov zákazníka s povoleným perlom',
'description' => 'Toto je potrebné nastaviť len ak je povolený SuExec-workaround. POZOR: Uistite sa, že táto cesta je v rámci hlavnej cesty, inak je toto riešenie zbytočné',
],
],
'awstats_awstatspath' => 'Cesta k AWStats \'awstats.pl\'',
'awstats_icons' => [
'title' => 'Cesta ku priečinku ikon AWstats',
'description' => 'napr. /usr/share/awstats/htdocs/icon/',
],
'login_domain_login' => 'Povoliť prihlásenie pomocou domén',
'perl_server' => [
'title' => 'Umiestnenie soketu perl servera',
'description' => 'Jednoduchý návod nájdete na: nginx.com',
],
'nginx_php_backend' => [
'title' => 'Nginx PHP backend',
'description' => 'tu proces PHP počúva požiadavky z nginxu, môže to byť unixový soket s kombináciou ip:port *Nepoužíva sa s php-fpm',
],
'phpreload_command' => [
'title' => 'Príkaz na opätovné načítanie PHP',
'description' => 'toto sa používa na obnovenie PHP backendu, ak je použitý Predvolené: prázdne *NEPOUŽÍVA sa s php-fpm',
],
'phpfpm' => [
'title' => 'Povoliť php-fpm',
'description' => 'To vyžaduje špeciálnu konfiguráciu webservera, pozri PHP-FPM príručka',
],
'phpfpm_settings' => [
'configdir' => 'Adresár konfigurácie php-fpm',
'aliasconfigdir' => 'Konfigurácia adresára aliasu php-fpm',
'reload' => 'príkaz na reštart php-fpm',
'pm' => 'Riadenie správcu procesu (pm)',
'max_children' => [
'title' => 'Počet podradených procesov',
'description' => 'Počet podradených procesov, ktoré sa majú vytvoriť, keď je hodnota pm nastavená na \'static\' a maximálny počet podradených procesov, ktoré sa majú vytvoriť, keď je hodnota pm nastavená na \'dynamic/ondemand\' ekvivalent hodnoty PHP_FCGI_CHILDREN',
],
'start_servers' => [
'title' => 'Počet podradených procesov vytvorených pri spustení',
'description' => 'Poznámka: Používa sa len v prípade, že pm je nastavené na \'dynamic\'',
],
'min_spare_servers' => [
'title' => 'Požadovaný minimálny počet nečinných procesov servera',
'description' => 'Poznámka: Používa sa len pri nastavení pm na \'dynamic\' Poznámka: Povinné pri nastavení pm na \'dynamic\'',
],
'max_spare_servers' => [
'title' => 'Požadovaný maximálny počet nečinných procesov servera',
'description' => 'Poznámka: Používa sa len v prípade, že pm je nastavené na \'dynamic\' Poznámka: Povinné, keď je pm nastavené na \'dynamic\'',
],
'max_requests' => [
'title' => 'Požiadavky na proces pred opätovným vytvorením',
'description' => 'Pre nekonečné spracovanie požiadaviek zadajte \'0\'. Ekvivalentné s PHP_FCGI_MAX_REQUESTS.',
],
'idle_timeout' => [
'title' => 'Časový limit nečinnosti',
'description' => 'Nastavenie časového limitu pre PHP FastCGI.',
],
'ipcdir' => [
'title' => 'FastCGI adresár IPC',
'description' => 'Adresár, kam bude webový server ukladať sokety php-fpm. Tento adresár musí byť pre webový server čitateľný',
],
'limit_extensions' => [
'title' => 'Povolené prípony',
'description' => 'Obmedzuje prípony hlavného skriptu, ktoré FPM dovolí analyzovať. To môže zabrániť chybám v konfigurácii na strane webového servera. Mali by ste obmedziť FPM len na prípony .php, aby ste zabránili škodlivým používateľom používať iné prípony na spustenie kódu php. Predvolená hodnota: .php',
],
'envpath' => 'Cesty, ktoré sa pridajú do prostredia PATH. Nechajte prázdne, ak premenná prostredia PATH neexistuje',
'override_fpmconfig' => 'Prepísať nastavenia FPM-daemon (pm, max_children atď.)',
'override_fpmconfig_addinfo' => ' Používa sa len v prípade, že „Prepísať nastavenia FPM-daemon" je nastavené na „Áno"',
'restart_note' => 'Upozornenie: Konfigurácia nebude skontrolovaná na výskyt chýb. Ak obsahuje chyby, PHP-FPM nemusí znovu spustiť!',
'custom_config' => [
'title' => 'Vlastná konfigurácia',
'description' => 'Pridajte vlastnú konfiguráciu pre každú inštanciu verzie PHP-FPM, napríklad pm.status_path = /status pre monitorovanie. Nižšie uvedené premenné možno použiť tu. Upozornenie: Konfigurácia nebude skontrolovaná na žiadne chyby. Ak obsahuje chyby, PHP-FPM nemusí znovu spustiť!',
],
'allow_all_customers' => [
'title' => 'Priradiť túto konfiguráciu všetkým aktuálne existujúcim zákazníkom',
'description' => 'Nastavte túto hodnotu na „true", ak chcete túto konfiguráciu priradiť všetkým aktuálne existujúcim zákazníkom, aby ju mohli používať. Toto nastavenie nie je trvalé, ale možno ho spustiť viackrát.',
],
],
'report' => [
'report' => 'Povoliť odosielanie hlásení o využití webu a prevádzky',
'webmax' => [
'title' => 'Úroveň varovania v percentách pre webový priestor',
'description' => 'Platné hodnoty sú 0 až 150. Nastavením tejto hodnoty na 0 zakážete toto hlásenie.',
],
'trafficmax' => [
'title' => 'Úroveň varovania v percentách pre prevádzku',
'description' => 'Platné hodnoty sú 0 až 150. Nastavením tejto hodnoty na 0 zakážete toto hlásenie.',
],
'report_web_bccadmin' => [
'title' => 'BCC e-mail pre oznámenia o využití webu správcovi',
'description' => 'Ak je táto funkcia povolená, varovanie o využití miesta na disku zasielané zákazníkovi sa zasiela aj príslušnému správcovi/predajcovi (BCC).'
],
],
'dropdown' => 'Rozbaľovacia ponuka',
'manual' => 'Manuálne',
'default_theme' => 'Predvolená šablóna',
'validate_domain' => 'Overovať názvy domén',
'diskquota_enabled' => 'Kvóta aktivovaná?',
'diskquota_repquota_path' => [
'description' => 'Cesta k repquota',
],
'diskquota_quotatool_path' => [
'description' => 'Cesta k quotatool',
],
'diskquota_customer_partition' => [
'description' => 'Oddiel, na ktorom sú uložené zákaznícke súbory',
],
'vmail_maildirname' => [
'title' => 'Názov maildir',
'description' => 'Maildir adresár do používateľského účtu. Zvyčajne \'Maildir\', v niektorých implementáciách \'.maildir\' a priamo do adresára používateľa, ak zostane prázdne.',
],
'catchall_enabled' => [
'title' => 'Použiť Catchall',
'description' => 'Chcete svojim zákazníkom poskytnúť funkciu catchall?',
],
'apache_24' => [
'title' => 'Použiť úpravy pre Apache 2.4',
'description' => 'POZOR: použite, len ak máte nainštalovanú apache verziu 2.4 alebo vyššiu inak váš webserver nebude môcť spustiť',
],
'nginx_fastcgiparams' => [
'title' => 'Cesta k súboru fastcgi_params',
'description' => 'Zadajte cestu k súboru fastcgi_params nginx vrátane názvu súboru',
],
'documentroot_use_default_value' => [
'title' => 'Použiť názov domény ako predvolenú hodnotu pre cestu koreňového adresára dokumentu',
'description' => 'Ak je povolené a cesta DocumentRoot je prázdna, predvolenou hodnotou bude názov (sub)domény.
Príklady: /var/customers/webs/customer_name/example.com/ /var/customers/webs/customer_name/subdomain.example.com/',
],
'panel_phpconfigs_hidesubdomains' => [
'title' => 'Skryť subdomény v prehľade PHP-konfigurácie',
'description' => 'Ak je aktivované, subdomény zákazníkov nebudú zobrazené v prehľade php-konfigurácií, zobrazí sa len počet subdomén.
Poznámka: Toto je viditeľné len v prípade, že ste povolili FCGID alebo PHP-FPM',
],
'panel_phpconfigs_hidestdsubdomain' => [
'title' => 'Skryť štandardné subdomény v prehľade konfigurácie PHP',
'description' => 'Ak je aktivované, štandardné subdomény pre zákazníkov sa nebudú zobrazovať v prehľade php-konfigurácií
Poznámka: Toto je viditeľné len v prípade, že ste povolili FCGID alebo PHP-FPM',
],
'passwordcryptfunc' => [
'title' => 'Vyberte, ktorá metóda šifrovania hesla sa má použiť',
'description' => 'Vyberte, ktorá metóda šifrovania hesiel sa má použiť. Ak toto nastavenie zmeníte, budú šifrované len nové heslá novou metódou. Existujúce heslá sa nezmenia.',
],
'systemdefault' => 'Predvolené systémové nastavenie',
'panel_allow_theme_change_admin' => 'Povoliť administrátorom zmeniť motív',
'panel_allow_theme_change_customer' => 'Umožniť zákazníkom zmenu motívu',
'axfrservers' => [
'title' => 'Servery AXFR',
'description' => 'Čiarkami oddelený zoznam IP adries, ktoré môžu prenášať (AXFR) zóny.',
],
'powerdns_mode' => [
'title' => 'Prevádzkový režim PowerDNS',
'description' => 'Vyberte režim PowerDNS: Natívny pre žiadnu replikáciu (predvolené) / Master, ak je potrebná DNS replikácia.',
],
'customerssl_directory' => [
'title' => 'Adresár zákazníckych certifikátov webových serverov',
'description' => 'Kde majú byť vytvorené ssl-certifikáty zadané zákazníkom?
POZNÁMKA: Obsah tohto priečinka je pravidelne mazaný, aby sa zabránilo ručnému ukladaniu dát do tohto priečinka.
',
],
'allow_error_report_admin' => [
'title' => 'Povoliť správcom/predajcom nahlásenie chýb databázy froxlor',
'description' => 'Upozornenie: Nikdy nám neposielajte žiadne osobné (zákaznícke) údaje!',
],
'allow_error_report_customer' => [
'title' => 'Umožniť zákazníkom nahlásiť chyby databázy froxlor',
'description' => 'Upozornenie: Nikdy nám neposielajte žiadne osobné (zákaznícke) údaje!',
],
'mailtraffic_enabled' => [
'title' => 'Analyzovať prenos pošty',
'description' => 'Povoliť analýzu protokolov mailservera na výpočet prevádzky',
],
'mdaserver' => [
'title' => 'MDA typ',
'description' => 'Typ poštového servera',
],
'mdalog' => [
'title' => 'Protokol MDA',
'description' => 'Súbor protokolu servera na doručovanie pošty',
],
'mtaserver' => [
'title' => 'MTA typ',
'description' => 'Typ sprostredkovateľa na prenos pošty',
],
'mtalog' => [
'title' => 'Protokol MTA',
'description' => 'Súbor protokolu agenta na prenos pošty',
],
'system_cronconfig' => [
'title' => 'Konfiguračný súbor cronu',
'description' => 'Cesta ku konfiguračnému súboru cron-service. Tento súbor bude pravidelne a automaticky aktualizovaný froxlorom. Poznámka: Uistite sa, že používate rovnaký názov súboru ako pre hlavný froxlor cronjob (predvolené: /etc/cron.d/froxlor)!
Ak používate FreeBSD, zadajte tu /etc/crontab!',
],
'system_crondreload' => [
'title' => 'Príkaz na opätovné načítanie Cron-daemona',
'description' => 'Určite príkaz, ktorý sa má vykonať na opätovné načítanie systémov cron-daemon',
],
'system_croncmdline' => [
'title' => 'Príkaz na vykonanie cronu (php-binary)',
'description' => 'Príkaz na vykonanie našich cronjobov. Meňte to len ak viete, čo robíte (predvolené: "/usr/bin/nice -n 5 /usr/bin/php -q")!',
],
'system_cron_allowautoupdate' => [
'title' => 'Povoliť automatické aktualizácie databázy',
'description' => '
POZOR:
Toto nastavenie umožňuje cronjob obísť kontrolu verzií froxlor súborov a databázy a spustiť aktualizácie databázy v prípade, že dôjde k nezhodám verzií.
Automatická aktualizácia vždy nastaví predvolené hodnoty pre nové nastavenia alebo zmeny. Toto nemusí vždy vyhovovať vášmu systému. Pred aktiváciou tejto možnosti
sa prosím dvakrát zamyslite',
],
'dns_createhostnameentry' => 'Vytvoriť bind-zone/config pre názov hostiteľa systému',
'panel_password_alpha_lower' => [
'title' => 'Malé písmeno',
'description' => 'Heslo musí obsahovať aspoň jedno malé písmeno (a-z).',
],
'panel_password_alpha_upper' => [
'title' => 'Veľké písmeno',
'description' => 'Heslo musí obsahovať aspoň jedno veľké písmeno (A-Z).',
],
'panel_password_numeric' => [
'title' => 'Čísla',
'description' => 'Heslo musí obsahovať aspoň jedno číslo (0-9).',
],
'panel_password_special_char_required' => [
'title' => 'Špeciálny znak',
'description' => 'Heslo musí obsahovať aspoň jeden z nižšie uvedených znakov.',
],
'panel_password_special_char' => [
'title' => 'Zoznam špeciálnych znakov',
'description' => 'Jeden z týchto znakov je vyžadovaný, ak je nastavená vyššie uvedená možnosť.',
],
'apache_itksupport' => [
'title' => 'Použiť úpravy ITK-MPM Apache',
'description' => 'POZOR: použite, len ak máte skutočne povolené apache itk-mpm inak váš webserver nebude môcť spustiť',
],
'letsencryptca' => [
'title' => 'ACME prostredie',
'description' => 'Prostredie, ktoré sa má použiť pre certifikáty Let\'s Encrypt / ZeroSSL.',
],
'letsencryptchallengepath' => [
'title' => 'Cesta k výzvam Let\'s Encrypt',
'description' => 'Adresár, z ktorého by mali byť ponúkané výzvy Let\'s Encrypt prostredníctvom globálneho aliasu.',
],
'letsencryptkeysize' => [
'title' => 'Veľkosť kľúča pre nové Let\'s Encrypt certifikáty',
'description' => 'Veľkosť kľúča v bitoch pre nové Let\'s Encrypt certifikáty.',
],
'letsencryptreuseold' => [
'title' => 'Znovu použiť Let\'s Encrypt kľúč',
'description' => 'Ak je aktivované, pri každom obnovení sa použije rovnaký kľúč, inak sa zakaždým vygeneruje nový kľúč.',
],
'leenabled' => [
'title' => 'Použiť Let\'s Encrypt',
'description' => 'Ak je aktivované, zákazníci môžu nechať froxlor automaticky generovať a obnovovať šifrovacie certifikáty domén s ssl IP/portom.
Nezabudnite, že musíte prejsť konfiguráciou webservera, ak je povolené, pretože táto funkcia vyžaduje špeciálnu konfiguráciu.',
],
'caa_entry' => [
'title' => 'Generovať CAA DNS záznamy',
'description' => 'Automaticky generuje CAA záznamy pre domény s podporou SSL, ktoré používajú Let\'s Encrypt',
],
'caa_entry_custom' => [
'title' => 'Ďalšie záznamy CAA DNS',
'description' => 'DNS Certification Authority autorizácia (CAA) je mechanizmus politiky bezpečnosti internetu, ktorý držiteľom doménových mien umožňuje certifikovať autorite , či sú oprávnení vydávať digitálne certifikáty pre určitý názov domény. Robí to pomocou nového zdrojového záznamu doménového systému „CAA" (DNS).
Obsah tohto poľa bude zahrnutý do DNS zóny priamo (každý riadok vyústí v CAA záznam). Ak je pre túto doménu povolené šifrovanie, táto položka bude vždy pridaná automaticky a nemusí byť pridaná ručne: 0 issue "letsencrypt.org" (Ak je doména doménou so zástupnými znakmi, použije sa namiesto toho issuewild). Ak chcete povoliť hlásenie incidentov, môžete pridať záznam iodef. Príklad na odoslanie správy na me@example.com bude: 0 iodef "mailto:me@example.com"
Upozornenie: Kód nebude skontrolovaný na výskyt chýb. Ak obsahuje chyby, vaše CAA záznamy nemusia fungovať!',
],
'exportenabled' => [
'title' => 'Povoliť export dát pre zákazníkov',
'description' => 'Ak je aktivované, zákazník bude môcť naplánovať úlohy na export dát (cron-export), ktoré generujú archív vo svojom docroote (podadresár vybraný zákazníkom)',
],
'dnseditorenable' => [
'title' => 'Povoliť DNS editor',
'description' => 'Umožňuje administrátorom a zákazníkovi spravovať dns záznamy domén',
],
'dns_server' => [
'title' => 'Daemon DNS servera',
'description' => 'Nezabudnite, že „daemony" je potrebné konfigurovať pomocou konfiguračných šablón froxloru',
],
'panel_customer_hide_options' => [
'title' => 'Skrytie položiek ponúk a grafov návštevnosti v zákazníckom paneli',
'description' => 'Vyberte položky, ktoré chcete skryť v paneli zákazníka. Ak chcete vybrať viac možností, podržte CTRL pri výbere.',
],
'allow_allow_customer_shell' => [
'title' => 'Umožniť zákazníkom povoliť prístup cez shell pre používateľov ftp',
'description' => 'Upozornenie: Prístup k Shell umožňuje používateľovi spustiť rôzne binárne súbory vo vašom systéme. Používajte s mimoriadnou opatrnosťou. Aktivujte prosím len ak viete, čo robíte!!!',
],
'available_shells' => [
'title' => 'Zoznam dostupných príkazov',
'description' => 'Čiarkami oddelený zoznam shellov, z ktorých si zákazník môže vybrať pre svojich ftp používateľov.
Všimnite si, že predvolený shell /bin/false bude vždy na výber (ak je povolený), aj keď je toto nastavenie prázdne. V každom prípade je to predvolená hodnota proftp používateľa',
],
'le_froxlor_enabled' => [
'title' => 'Povoliť Let\'s Encrypt pre hostiteľa froxlor',
'description' => 'Ak je aktivované, vhost froxloru bude automaticky zabezpečený pomocou Let\'s Encrypt certifikátu.',
],
'le_froxlor_redirect' => [
'title' => 'Povoliť presmerovanie SSL pre vhost froxloru',
'description' => 'Ak je aktivované, všetky http požiadavky na váš froxlor budú presmerované na príslušný server SSL.',
],
'option_unavailable_websrv' => ' K dispozícii iba pre: %s',
'option_unavailable' => ' Možnosť nie je dostupná kvôli iným nastaveniam.',
'letsencryptacmeconf' => [
'title' => 'Cesta k snippetu acme.conf',
'description' => 'Názov súboru v konfiguračnom textovom bloku, ktorý umožňuje webovému serveru obsluhovať výzvu acme.',
],
'mail_use_smtp' => 'Nastaviť e-mail na použitie SMTP',
'mail_smtp_host' => 'Zadajte SMTP server',
'mail_smtp_usetls' => 'Povoliť šifrovanie TLS',
'mail_smtp_auth' => 'Povoliť overovanie SMTP',
'mail_smtp_port' => 'TCP port pre pripojenie k',
'mail_smtp_user' => 'SMTP používateľské meno',
'mail_smtp_passwd' => 'SMTP heslo',
'http2_support' => [
'title' => 'Podpora HTTP2',
'description' => 'povoliť podporu HTTP2 pre ssl. POVOĽTE IBA AK VÁŠ SERVER TÚTO FUNKCIU PODPORUJE (nginx verzia 1.9.5+, apache2 verzia 2.4.17+)',
],
'http3_support' => [
'title' => 'Podpora HTTP3',
'description' => 'povoliť podporu HTTP3 pre ssl. POVOĽTE IBA V PRÍPADE, ŽE VÁŠ WEBOVÝ SERVER TÚTO FUNKCIU PODPORUJE (nginx verzia 1.25.0+)',
],
'nssextrausers' => [
'title' => 'Použiť libnss-extrauser namiesto libnss-mysql',
'description' => 'Nečítať používateľov z databázy, ale zo súborov. Aktivujte, prosím, len ak ste už prešli požadovanými krokmi konfigurácie (system -> libnss-extrausers). Iba pre Debian/Ubuntu (alebo ak ste sami skompilovali libnss-extrauser!)',
],
'le_domain_dnscheck' => [
'title' => 'Overiť DNS domén pri použití Let\'s Encrypt',
'description' => 'Ak je aktivované, froxlor overí, či sa doména, ktorá žiada o certifikát, smeruje aspoň na jednu z IP adries systému.',
],
'le_domain_dnscheck_resolver' => [
'title' => 'Použiť externý nameserver na overenie DNS',
'description' => 'Ak je nastavené, froxlor použije tento DNS na overenie DNS domén pri použití Let\'s Encrypt. Ak je prázdne, použije sa predvolený prekladač DNS systému.',
],
'phpsettingsforsubdomains' => [
'description' => 'Ak áno, zvolený php-config bude aktualizovaný na všetky subdomény',
],
'leapiversion' => [
'title' => 'Zvoľte si implementáciu ACME pre Let\'s Encrypt',
'description' => 'V súčasnosti je podporovaná iba implementácia ACME v2 pre Let\'s Encrypt.',
],
'enable_api' => [
'title' => 'Povoliť externé použitie API',
'description' => 'Ak chcete používať froxlor API, musíte aktivovať túto možnosť. Podrobnejšie informácie nájdete na https://docs.froxlor.org/',
],
'api_customer_default' => '„Povoliť prístup k API" pre nových zákazníkov',
'dhparams_file' => [
'title' => 'Súbor DHParams (výmena kľúčov Diffie-Hellman)',
'description' => 'Ak je tu zadaný súbor dhparams.pem, bude zahrnutý do konfigurácie webservera. Nechajte prázdne na vypnutie. Príklad: /etc/ssl/webserver/dhparams.pem
Ak súbor neexistuje, bude vytvorený automaticky nasledujúcim príkazom: openssl dhparam -out /etc/ssl/webserver/dhparams.pem 4096. Pred zadaním súboru sa odporúča súbor vytvoriť, pretože vytváranie trvá dosť dlho a blokuje cronjob.',
],
'errorlog_level' => [
'title' => 'Úroveň protokolov chýb',
'description' => 'Zadajte úroveň protokolu chýb. Predvolená hodnota je „warn" pre apache-používateľov a „error" pre nginx-používateľov.',
],
'letsencryptecc' => [
'title' => 'Vystaviť certifikát ECC / certifikát ECDSA',
'description' => 'Ak je nastavené na platnú veľkosť kľúča, vystavený certifikát bude používať ECC / ECDSA',
],
'froxloraliases' => [
'title' => 'Aliasy domén pre froxlor vhost',
'description' => 'Čiarkami oddelený zoznam domén, ktoré majú byť pridané ako serverový alias do froxlor vhost',
],
'default_sslvhostconf' => [
'title' => 'Predvolené nastavenia SSL vHost-servera',
'description' => 'Obsah tohto poľa bude priamo zahrnutý do tohto kontajnera s ip/portom. Môžete použiť nasledujúce premenné: {DOMAIN}, {DOCROOT}, {CUSTOMER}, {IP}, {PORT}, {SCHEME}{FPMSOCKET} (ak existuje) Upozornenie: Kód nebude skontrolovaný na výskyt chýb. Ak obsahuje chyby, webový server nemusí znovu spustiť!',
],
'includedefault_sslvhostconf' => 'Zahrnúť non-SSL vHost-nastavenia v SSL-vHost',
'apply_specialsettings_default' => 'Predvolená hodnota pre „Použiť špeciálne nastavenia pre všetky subdomény (*.example.com)" pri úprave domény',
'apply_phpconfigs_default' => 'Predvolená hodnota pre nastavenie „Použiť php konfiguráciu na všetky subdomény" pri úprave domény',
'awstats' => [
'logformat' => [
'title' => 'Nastavenie LogFormat',
'description' => 'Ak používate vlastný logformat pre svoj webový server, musíte zmeniť aj awstats LogFormat. Predvolené je 1. Pre viac informácií skontrolujte dokumentáciu tu.',
],
],
'hide_incompatible_settings' => 'Skryť nekompatibilné nastavenia',
'soaemail' => 'E-mailová adresa na použitie v SOA záznamoch (predvolená adresa odosielateľa z nastavení panela, ak je prázdna)',
'imprint_url' => [
'title' => 'URL adresa k právnym poznámkam / odtlačku',
'description' => 'Zadajte URL adresu svojich právnych poznámok / stránky s odtlačkami. Odkaz bude viditeľný na prihlasovacej obrazovke a v päte po prihlásení.',
],
'terms_url' => [
'title' => 'URL k podmienkam použitia',
'description' => 'Zadajte URL adresu k podmienkam používania. Odkaz bude viditeľný na prihlasovacej obrazovke a v päte pri prihlásení.',
],
'privacy_url' => [
'title' => 'URL k zásadám ochrany osobných údajov',
'description' => 'Zadajte URL adresu svojej stránky so zásadami ochrany osobných údajov / stránky s odtlačkami. Odkaz bude viditeľný na prihlasovacej obrazovke a v päte po prihlásení.',
],
'logo_image_header' => [
'title' => 'Obrázok loga (záhlavie)',
'description' => 'Nahrajte vlastný obrázok loga, ktorý sa zobrazí v záhlaví po prihlásení (odporúčaná výška 30px)',
],
'logo_image_login' => [
'title' => 'Obrázok loga (Prihlasovacia obrazovka)',
'description' => 'Nahrajte vlastný obrázok loga, ktorý sa zobrazí počas prihlásenia',
],
'logo_overridetheme' => [
'title' => 'Prepísať logo definované v motíve pomocou „Logo Image" (hlavička a prihlasovacia stránka, pozri nižšie)',
'description' => 'Toto musí byť nastavené na „true", ak máte v úmysle použiť nahrané logo_custom. Alternatívne môžete stále používať „logo_custom.png" a „logo_custom_login.png".',
],
'logo_overridecustom' => [
'title' => 'Prepísať vlastné logo (logo_custom.png a logo_custom_login.png) definované v šablóne „Obrázok loga" (hlavička a prihlásenie, pozri nižšie)',
'description' => 'Nastavte na „true" ak chcete ignorovať vlastné logá pre záhlavie a prihlásenie a použiť „Logo Image"',
],
'createstdsubdom_default' => [
'title' => 'Predvolená hodnota pre „Vytvoriť štandardnú subdoménu" pri vytváraní zákazníka',
'description' => '',
],
'froxlorusergroup' => [
'title' => 'Vlastná systémová skupina pre všetkých zákazníkov',
'description' => 'Vyžaduje sa použitie libnss-extrauser (systémového nastavenia). Vytvorenie prázdnych hodnôt preskočí alebo odstráni existujúcu skupinu.',
],
'acmeshpath' => [
'title' => 'Cesta k acme.sh',
'description' => 'Nastavte na miesto, kde je acme.sh nainštalovaný, vrátane skriptu acme.sh Predvolené je /root/.acme.sh/acme.sh',
],
'update_channel' => [
'title' => 'froxlor aktualizačný-kanál',
'description' => 'Vyberte aktualizačný kanál froxlor. Predvolená hodnota je „stabilný"',
],
'uc_stable' => 'stabilný',
'uc_testing' => 'testovací',
'uc_nightly' => 'nightly',
'traffictool' => [
'toolselect' => 'Analyzátor prevádzky',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
'goaccess' => 'goaccess'
],
'requires_reconfiguration' => 'Zmena tohto nastavenia môže vyžadovať zmenu konfigurácie nasledujúcich služieb: %s',
'req_limit_per_interval' => [
'title' => 'Počet HTTP požiadaviek na interval',
'description' => 'Obmedziť počet HTTP požiadaviek na interval (pozri nižšie) pre froxlor, predvolená hodnota je „60"',
],
'req_limit_interval' => [
'title' => 'Interval obmedzenia rýchlosti',
'description' => 'Zadajte čas v sekundách pre počet HTTP požiadaviek. Predvolená hodnota je „60"',
],
'option_requires_otp' => 'Toto nastavenie vyžaduje overenie cez OTP',
'panel_menu_collapsed' => [
'title' => 'Zbaliť sekcie menu',
'description' => 'Ak dôjde k deaktivácii, ľavé časti menu budú vždy rozšírené.',
],
'le_renew_services' => [
'title' => 'Pre tieto služby použite certifikát froxloru Let\'s Encrypt',
'description' => 'Ak je nastavená hodnota none (alebo je nižšie uvedený príkaz renew-hook prázdny), pri vybraných službách nebudú vykonané žiadne úpravy konfigurácie týkajúce sa ssl.
Príkaz reload-command pre vybrané služby by mal byť pridaný do príkazu renew-hook, inak sa zmeny konfigurácie alebo obnovené certifikáty nemusia správne použiť.',
],
'le_renew_hook' => [
'title' => 'Príkaz renew-hook programu Let\'s Encrypt',
'description' => 'Nastavte príkaz, ktorý reštartuje vyššie vybrané služby, aby služba mohla obnovené certifikáty správne používať.',
],
],
'spf' => [
'use_spf' => [
'title' => 'Aktivovať SPF pre domény?',
'description' => 'Vyžaduje pre doménu určitú položku dns. Ak nepoužívate funkciu nameserver, budete musieť tieto položky ručne spravovať.',
],
'spf_entry' => 'SPF položka pre všetky domény',
],
'dmarc' => [
'use_dmarc' => [
'title' => 'Aktivovať DMARC pre domény?',
'description' => 'Vyžaduje pre doménu určitú položku dns. Ak nepoužívate funkciu nameserver, budete musieť tieto položky ručne spravovať.',
],
'dmarc_entry' => 'DMARC záznam pre všetky domény',
],
'ssl_certificates' => [
'certificate_for' => 'Certifikát pre',
'valid_from' => 'Platné od',
'valid_until' => 'Platné do',
'issuer' => 'Vydavateľ',
],
'success' => [
'success' => 'Informácie',
'clickheretocontinue' => 'Kliknite tu pre pokračovanie',
'settingssaved' => 'Nastavenie bolo úspešne uložené.',
'rebuildingconfigs' => 'Úspešne vložené úlohy na obnovenie konfiguračných súborov',
'domain_import_successfully' => 'Úspešne importovaných %s domén.',
'exportscheduled' => 'Vaša exportná úloha bola naplánovaná. Počkajte prosím na jej spracovanie',
'exportaborted' => 'Váš plánovaný export bol zrušený',
'dns_record_added' => 'Záznam bol úspešne pridaný',
'dns_record_deleted' => 'Záznam bol úspešne odstránený',
'testmailsent' => 'Testovací e-mail bol úspešne odoslaný',
'settingsimported' => 'Nastavenie bolo úspešne importované',
'sent_error_report' => 'Hlásenie o chybách bolo úspešne odoslané. Ďakujeme za váš príspevok.',
],
'tasks' => [
'outstanding_tasks' => 'Nevybavené úlohy',
'REBUILD_VHOST' => 'Obnovenie konfigurácie webservera',
'CREATE_HOME' => 'Pridávanie nového zákazníka %s',
'REBUILD_DNS' => 'Obnovenie bind konfigurácie',
'CREATE_FTP' => 'Vytváranie adresára pre nového ftp-používateľa',
'DELETE_CUSTOMER_FILES' => 'Mazanie zákazníckych súborov %s',
'noneoutstanding' => 'V súčasnosti nie sú žiadne nevybavené úlohy pre froxlor',
'DELETE_EMAIL_DATA' => 'Odstrániť e-mailové dáta zákazníka.',
'DELETE_FTP_DATA' => 'Odstrániť dáta ftp účtu.',
'REBUILD_RSPAMD' => 'Obnovenie konfigurácie antispamu.',
'CREATE_QUOTA' => 'Nastaviť kvótu na súborovom systéme',
'REBUILD_CRON' => 'Obnovenie cron.d-súboru',
'CREATE_CUSTOMER_DATADUMP' => 'Úloha na export dát pre zákazníka %s',
'DELETE_DOMAIN_PDNS' => 'Odstrániť doménu %s z databázy PowerDNS',
'DELETE_DOMAIN_SSL' => 'Odstrániť ssl súbory domény %s',
'UPDATE_LE_SERVICES' => 'Aktualizácia systémových služieb pre Let\'s Encrypt',
],
'terms' => 'Podmienky použitia',
'traffic' => [
'month' => 'Mesiac',
'day' => 'Deň',
'months' => [
1 => 'Január',
2 => 'Február',
3 => 'Marec',
4 => 'Apríl',
5 => 'Máj',
6 => 'Jún',
7 => 'Júl',
8 => 'August',
9 => 'September',
10 => 'Október',
11 => 'November',
12 => 'December',
'jan' => 'Jan',
'feb' => 'Feb',
'mar' => 'Mar',
'apr' => 'Apr',
'may' => 'Máj',
'jun' => 'Jún',
'jul' => 'Júl',
'aug' => 'Aug',
'sep' => 'Sep',
'oct' => 'Okt',
'nov' => 'Nov',
'dec' => 'Dec',
'total' => 'Celkom',
],
'mb' => 'Prevádzka',
'sumtotal' => 'Celková prevádzka',
'sumhttp' => 'HTTP prevádzka',
'sumftp' => 'FTP prevádzka',
'summail' => 'Prenos e-mailov',
'customer' => 'Zákazník',
'domain' => 'Doména',
'trafficoverview' => 'Prehľad prevádzky',
'bycustomers' => 'Prevádzka podľa zákazníkov',
'details' => 'Podrobnosti',
'http' => 'HTTP',
'ftp' => 'FTP',
'mail' => 'Mail',
'nocustomers' => 'Potrebujete aspoň jedného zákazníka na zobrazenie štatistík prevádzky.',
'top5customers' => 'Top 5 zákazníkov',
'nodata' => 'Pre daný rozsah neboli nájdené žiadne dáta.',
'ranges' => [
'last24h' => 'posledných 24 hodín',
'last7d' => 'posledných 7 dní',
'last30d' => 'posledných 30 dní',
'cm' => 'Aktuálny mesiac',
'last3m' => 'posledné 3 mesiace',
'last6m' => 'posledných 6 mesiacov',
'last12m' => 'posledných 12 mesiacov',
'cy' => 'Aktuálny rok',
],
'byrange' => 'Určené podľa rozsahu',
],
'translator' => '',
'update' => [
'updateinprogress_onlyadmincanlogin' => 'Bola nainštalovaná novšia verzia froxloru, ale ešte nebola nastavená. Iba správca sa môže prihlásiť a dokončiť aktualizáciu.',
'update' => 'Aktualizácia froxloru',
'proceed' => 'Pokračovať',
'update_information' => [
'part_a' => 'froxlor súbory boli aktualizované na verziu %s. Nainštalovaná verzia je %s.',
'part_b' => '
Zákazníci sa nebudú môcť prihlásiť, kým nebude aktualizácia dokončená. Pokračovať?',
],
'noupdatesavail' => 'Už máte najnovšiu verziu %sfroxlor nainštalovanú.',
'description' => 'Prebieha aktualizácia databázy pre vašu inštaláciu froxlor',
'uc_newinfo' => 'K dispozícii je novšia verzia %s: „%s" (Vaša aktuálna verzia je: %s)',
'notify_subject' => 'K dispozícii je nová aktualizácia',
'dbupdate_required' => 'froxlor súbory boli aktualizované, je vyžadovaná aktualizácia databázy',
],
'usersettings' => [
'custom_notes' => [
'title' => 'Vlastné poznámky',
'description' => 'Nebojte sa tu vložiť akékoľvek poznámky, ktoré chcete/potrebujete. Zobrazia sa v prehľade správcu/zákazníka pre príslušného používateľa. Markdown je podporovaný, HTML bude odstránené.',
'show' => 'Zobraziť svoje poznámky na nástenke používateľa',
],
'api_allowed' => [
'title' => 'Povoliť prístup k API',
'description' => 'Ak je povolené v nastaveniach, tento používateľ môže vytvoriť API kľúče a pristupovať k froxlor API',
'notice' => 'Prístup k API nie je povolený pre váš účet.',
],
'shell_allowed' => [
'title' => 'Povoliť prístup k shellu',
'description' => 'Ak je táto možnosť povolená v nastaveniach, tento používateľ môže priradiť prístup k shellu ftp používateľom.',
],
'gui_access' => [
'title' => 'Povoliť prihlásenie do WebUI',
'description' => 'Ak je zakázané, používateľ sa nemôže prihlásiť do froxlor web-ui, ale všetky služby (web, ftp, mail, databáza, api-prístup atď.) budú fungovať normálne.',
],
],
'install' => [
'slogan' => 'panel na správu servera froxlor',
'preflight' => 'Kontrola systému',
'critical_error' => 'Kritická chyba',
'suggestions' => 'Nie je vyžadované, ale odporúča sa',
'phpinfosuccess' => 'Váš systém beží s PHP %s',
'suggestionsnote' => 'Neexistujú žiadne kritické chyby, ktoré by bránili inštalácii, ale pre optimálne fungovanie prosím postupujte podľa nižšie uvedených odporúčaní.',
'phpinfowarn' => 'Váš systém beží na nižšej verzii ako PHP %s',
'phpinfoupdate' => 'Aktualizujte vašu aktuálnu verziu PHP z %s na %s alebo vyššiu',
'start_installation' => 'Spustiť inštaláciu',
'check_again' => 'Znovu načítajte a skontrolujte',
'switchmode_advanced' => 'Zobraziť rozšírené možnosti',
'switchmode_basic' => 'Skryť rozšírené možnosti',
'dependency_check' => [
'title' => 'Vitajte vo froxlore',
'description' => 'Skontrolujeme závislosť systému, aby sme zaistili, že budú povolené všetky požadované php rozšírenia a moduly, aby froxlor bežal správne.',
],
'database' => [
'top' => 'Databáza',
'title' => 'Vytvoriť databázu a používateľa',
'description' => 'froxlor vyžaduje databázu a navyše privilegovaného používateľa, aby mohol vytvárať používateľov a databázy (možnosť GRANT). Daná databáza a neprivilegovaný databázový používateľ bude vytvorený v tomto procese. Oprávnený používateľ musí existovať.',
'user' => 'Neoprávnený databázový používateľ',
'dbname' => 'Názov databázy',
'force_create' => 'Zálohovať a prepísať databázu, ak existuje?',
],
'admin' => [
'top' => 'Admin používateľ',
'title' => 'Poďme vytvoriť hlavného administrátora.',
'description' => 'Tomuto používateľovi budú udelené všetky oprávnenia na úpravu nastavení a pridávanie/aktualizáciu/mazanie zdrojov, ako sú zákazníci, domény atď.',
'use_admin_email_as_sender' => 'Použite vyššie uvedenú e-mailovú adresu ako adresu odosielateľa. Ak nie je zaškrtnuté, zadajte prosím nižšie uvedenú adresu odosielateľa.',
'use_autogenerated_email_as_sender' => 'Nechajte prázdne pre predvolené: admin@nazovservera',
],
'system' => [
'top' => 'Systémové nastavenie',
'title' => 'Podrobnosti o vašom serveri',
'description' => 'Nastavte si svoje prostredie rovnako ako dáta a možnosti súvisiace so serverom, aby sa froxlor mohol dozvedieť o vašom systéme. Tieto hodnoty sú kľúčové pre konfiguráciu a fungovanie systému.',
'ipv4' => 'Primárna IPv4 adresa (ak sa použije)',
'ipv6' => 'Primárna IPv6 adresa (ak sa použije)',
'servername' => 'Názov servera (FQDN, žiadna ip-adresa)',
'phpbackend' => 'PHP backend',
'activate_newsfeed' => 'Povoliť oficiálne novinky (externý zdroj: https://inside.froxlor.org/news/)',
],
'install' => [
'top' => 'Dokončiť nastavenie',
'title' => 'Posledný krok...',
'description' => 'Nižšie uvedený príkaz stiahne, nainštaluje a nakonfiguruje požadované služby vo vašom systéme podľa údajov, ktoré ste zadali v tomto inštalačnom procese.
Nezabudnite spustiť nasledujúci príkaz ako root na shell/terminál servera a uvedomte si, že tento príkaz prepíše akúkoľvek existujúcu konfiguráciu pre použité služby (budú vytvorené zálohy)!. Ak nechcete prepísať žiadne konfigurácie, vyberte možnosť Nakonfigurujem služby ručne v dolnej časti tejto stránky!',
'runcmd' => 'Spustite nasledujúci príkaz na dokončenie inštalácie:',
'manual_config' => 'Služby nakonfigurujem ručne, stačí ma presmerovať na prihlásenie',
'waitforconfig' => 'Čakanie na konfiguráciu služieb...',
],
'errors' => [
'wrong_ownership' => 'Uistite sa, že súbory froxlor sú vlastnené %s:%s',
'missing_extensions' => 'Nasledujúce php rozšírenia sú vyžadované a nie sú nainštalované',
'suggestedextensions' => 'Nasledujúce php rozšírenia sa nepodarilo nájsť, ale sú odporúčané',
'databaseexists' => 'Databáza už existuje, prosím nastavte možnosť prepísania pre obnovu alebo zvoľte iný názov',
'unabletocreatedb' => 'Nie je možné vytvoriť testovaciu databázu',
'unabletodropdb' => 'Nie je možné zrušiť testovaciu databázu',
'mysqlusernameexists' => 'Používateľ určený pre používateľa bez oprávnení už existuje. Použite prosím iné používateľské meno, alebo ho odstráňte.',
'unabletocreateuser' => 'Nie je možné vytvoriť testovacieho používateľa',
'unabletodropuser' => 'Nie je možné zrušiť testovacieho používateľa',
'unabletoflushprivs' => 'Zadaný privilegovaný používateľ nemôže vymazať oprávnenia',
'nov4andnov6ip' => 'Musí byť zadaná adresa IPv4 alebo IPv6',
'servernameneedstobevalid' => 'Zadaný názov servera sa nezdá byť FQDN alebo hostname',
'websrvuserdoesnotexist' => 'Zdá sa, že používateľ webového servera v systéme neexistuje',
'websrvgrpdoesnotexist' => 'Zdá sa, že daná skupina webservera v systéme neexistuje',
'notyetconfigured' => 'Zdá sa, že služby ešte neboli nakonfigurované (úspešne). Prosím vykonajte príkaz nižšie alebo zaškrtnite políčko pre neskoršie spracovanie.',
'mandatory_field_not_set' => 'Povinné pole „%s" nie je nastavené!',
'unexpected_database_error' => 'Došlo k neočakávanej výnimke databázy. %s',
'sql_import_failed' => 'Nepodarilo sa importovať SQL dáta!',
'unprivileged_sql_connection_failed' => 'Nepodarilo sa inicializovať neprivilegované SQL pripojenie!',
'privileged_sql_connection_failed' => 'Nepodarilo sa inicializovať privilegované SQL pripojenie!',
'mysqldump_backup_failed' => 'Nie je možné vytvoriť zálohu databázy, došlo k chybe mysqldump.',
'sql_backup_file_missing' => 'Nie je možné vytvoriť zálohu databázy, záložný súbor neexistuje.',
'backup_binary_missing' => 'Nie je možné vytvoriť zálohu databázy, uistite sa, že máte nainštalovaný mysqldump.',
'creating_configfile_failed' => 'Nie je možné vytvoriť konfiguračné súbory, nie je možné zapisovať do súboru.',
'database_already_exiting' => 'Našli sme databázu a nebolo možné ju prepísať!'
]
],
'welcome' => [
'title' => 'Vitajte vo froxlore!',
'config_note' => 'Aby mohol froxlor správne komunikovať so zálohou, musíte ju nakonfigurovať.',
'config_now' => 'Nastaviť teraz'
],
];
================================================
FILE: lng/zh_CN.lng.php
================================================
* @license https://files.froxlor.org/misc/COPYING.txt GPLv2
*/
return [
'languages' => [
'cz' => '捷克语',
'de' => '德语',
'en' => '英语',
'fr' => '法语',
'hu' => '匈牙利语',
'it' => '意大利语',
'nl' => '荷兰语',
'pt' => '葡萄牙语',
'se' => '瑞典语',
'sk' => '斯洛伐克语',
'es' => '西班牙语',
'ca' => '加泰罗尼亚语',
'zh_CN' => '简体中文',
],
'2fa' => [
'2fa' => '2FA选项',
'2fa_enabled' => '启用双因素身份验证(2FA)',
'2fa_removed' => '成功停用2FA',
'2fa_added' => '2FA启用成功 查看2FA详情',
'2fa_add' => '启用2FA',
'2fa_delete' => '停用2FA',
'2fa_verify' => '验证代码',
'2fa_overview_desc' => '在这里,您可以为您的帐户激活双因素身份验证。
请记住,您需要通过网络服务器配置启用时,因为这个功能需要一个特殊的配置。',
],
'caa_entry' => [
'title' => '生成CAA DNS记录',
'description' => '自动为使用Let\'s Encrypt的启用SSL的域生成CAA记录',
],
'caa_entry_custom' => [
'title' => '其他CAA DNS记录',
'description' => 'DNS Certification Authority Authorization (CAA) is an Internet security policy mechanism which allows domain name holders to indicate to certificate authorities whether they are authorized to issue digital certificates for a particular domain name. It does this by means of a new "CAA" Domain Name System (DNS) resource record.
The content of this field will be included into the DNS zone directly (each line results in a CAA record). If Let\'s Encrypt is enabled for this domain, this entry will always be added automatically and does not need to be added manually: 0 issue "letsencrypt.org" (If domain is a wildcard domain, issuewild will be used instead). To enable Incident Reporting, you can add an iodef record. An example for sending such report to me@example.com would be: 0 iodef "mailto:me@example.com"
Attention: The code won\'t be checked for any errors. If it contains errors, your CAA records might not work!',
],
'exportenabled' => [
'title' => '为客户启用数据导出',
'description' => '如果激活,客户将能够安排数据导出作业(cron-export),在其docroot中生成存档(可由客户自行选择)',
],
'dnseditorenable' => [
'title' => '启用DNS编辑器',
'description' => '允许管理员和客户管理域dns条目',
],
'dns_server' => [
'title' => 'DNS服务器守护进程',
'description' => '请记住,必须使用froxlors配置模板来配置守护进程',
],
'panel_customer_hide_options' => [
'title' => '在客户面板中隐藏菜单项和流量图表',
'description' => '选择要在客户面板中隐藏的项目。要选择多个选项,请在选择时按住Ctrl。',
],
'allow_allow_customer_shell' => [
'title' => '允许客户为FTP用户启用shell访问',
'description' => '请注意:Shell访问允许用户在您的系统上执行各种二进制文件。请极度谨慎地使用。如果您真的知道自己在做什么,请仅激活此选项!!!',
],
'available_shells' => [
'title' => '可用外壳列表',
'description' => '逗号分隔的shell列表,可供客户为其ftp用户选择。