Initial commit
This commit is contained in:
109
conf/config.local.php
Normal file
109
conf/config.local.php
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
/**
|
||||
* PostfixAdmin config: sensitive values from ENV (no default), rest configurable via ENV with defaults.
|
||||
* See .env.example for all variable names.
|
||||
*/
|
||||
|
||||
$CONF['configured'] = true;
|
||||
|
||||
// --- Helpers: required ENV (no default) vs optional with default ---
|
||||
function pfa_env(string $key, ?string $default = null): string {
|
||||
$v = getenv($key);
|
||||
if ($default === null) {
|
||||
if ($v === false || $v === '') {
|
||||
throw new \RuntimeException('Set ' . $key);
|
||||
}
|
||||
return $v;
|
||||
}
|
||||
return ($v === false || $v === '') ? $default : $v;
|
||||
}
|
||||
|
||||
function pfa_env_bool(string $key, bool $default = true): bool {
|
||||
$v = getenv($key);
|
||||
if ($v === false || $v === '') {
|
||||
return $default;
|
||||
}
|
||||
return filter_var($v, FILTER_VALIDATE_BOOLEAN);
|
||||
}
|
||||
|
||||
// Sensitive: no default (must be set in ENV / .env)
|
||||
$CONF['setup_password'] = pfa_env('PFA_SETUP_PASSWORD');
|
||||
$CONF['database_password'] = pfa_env('PFA_DATABASE_PASSWORD');
|
||||
$CONF['admin_smtp_password'] = pfa_env('PFA_ADMIN_SMTP_PASSWORD');
|
||||
|
||||
// Database configuration
|
||||
$CONF['database_host'] = pfa_env('PFA_DATABASE_HOST', 'mail.mifi.holdings');
|
||||
$CONF['database_user'] = pfa_env('PFA_DATABASE_USER', 'postfixadmin');
|
||||
$CONF['database_name'] = pfa_env('PFA_DATABASE_NAME', 'postfix');
|
||||
$CONF['database_type'] = pfa_env('PFA_DATABASE_TYPE', 'mysqli');
|
||||
|
||||
// Password encryption
|
||||
$CONF['encrypt'] = pfa_env('PFA_ENCRYPT', 'php_crypt:BLOWFISH:13:{BLF-CRYPT}');
|
||||
|
||||
// Branding and URLs
|
||||
$CONF['site_url'] = pfa_env('PFA_SITE_URL', 'https://postmaster.mifi.holdings');
|
||||
$CONF['site_name'] = pfa_env('PFA_SITE_NAME', 'mifi Ventures Email Service');
|
||||
|
||||
// Language & charset
|
||||
$CONF['default_language'] = pfa_env('PFA_DEFAULT_LANGUAGE', 'en');
|
||||
$CONF['default_charset'] = pfa_env('PFA_DEFAULT_CHARSET', 'UTF-8');
|
||||
|
||||
// Password validation (array left in file; override via config.inc.php if needed)
|
||||
$CONF['password_validation'] = array(
|
||||
'/.{5}/' => 'password_too_short 5',
|
||||
'/([a-zA-Z].*){3}/' => 'password_no_characters 3',
|
||||
'/([0-9].*){1}/' => 'password_no_digits 2',
|
||||
'/([!\".,*&^%$£)(_+=\-`\'#@~\[\]\\<>\/].*){1,}/' => 'password_no_special 1',
|
||||
);
|
||||
|
||||
// Features
|
||||
$CONF['special_alias_control'] = pfa_env('PFA_SPECIAL_ALIAS_CONTROL', 'NO');
|
||||
$CONF['backup'] = pfa_env('PFA_BACKUP', 'NO');
|
||||
$CONF['fetchmail'] = pfa_env('PFA_FETCHMAIL', 'NO');
|
||||
$CONF['sendmail'] = pfa_env('PFA_SENDMAIL', 'NO');
|
||||
$CONF['app_passwords'] = pfa_env('PFA_APP_PASSWORDS', 'YES');
|
||||
|
||||
// Welcome and footer text (branding + docs)
|
||||
$CONF['welcome_text'] = pfa_env('PFA_WELCOME_TEXT', 'Welcome to mifi Ventures Email Service — <a href="https://mail.mifi.holdings/help" target="_blank">help</a>');
|
||||
$CONF['show_header_text'] = pfa_env('PFA_SHOW_HEADER_TEXT', 'YES');
|
||||
$CONF['header_text'] = pfa_env('PFA_HEADER_TEXT', 'mifi Ventures Email Service');
|
||||
$CONF['footer_text'] = pfa_env('PFA_FOOTER_TEXT', 'mifi Ventures Mail');
|
||||
$CONF['footer_link'] = pfa_env('PFA_FOOTER_LINK', 'https://mail.mifi.holdings');
|
||||
|
||||
// Default aliases (array; edit in file or extend via config.inc.php)
|
||||
$CONF['default_aliases'] = array(
|
||||
'alerts' => 'alerts@mifi.holdings',
|
||||
'abuse' => 'abuse@mifi.holdings',
|
||||
'hostmaster' => 'hostmaster@mifi.holdings',
|
||||
'postmaster' => 'postmaster@mifi.holdings',
|
||||
'webmaster' => 'webmaster@mifi.holdings'
|
||||
);
|
||||
|
||||
// Quota and mailbox limits
|
||||
$CONF['quota'] = pfa_env('PFA_QUOTA', 'YES');
|
||||
$CONF['used_quotas'] = pfa_env('PFA_USED_QUOTAS', 'YES');
|
||||
$CONF['mailboxes'] = pfa_env('PFA_MAILBOXES', '100');
|
||||
$CONF['maxquota'] = pfa_env('PFA_MAXQUOTA', '10240');
|
||||
$CONF['domain_quota_default'] = pfa_env('PFA_DOMAIN_QUOTA_DEFAULT', '102400');
|
||||
|
||||
// SMTP settings for admin notifications
|
||||
$CONF['admin_email'] = pfa_env('PFA_ADMIN_EMAIL', 'noreply@mifi.holdings');
|
||||
$CONF['admin_name'] = pfa_env('PFA_ADMIN_NAME', 'mifi Ventures Postmaster');
|
||||
$CONF['smtp_server'] = pfa_env('PFA_SMTP_SERVER', 'mail.mifi.holdings');
|
||||
$CONF['smtp_port'] = pfa_env('PFA_SMTP_PORT', '587');
|
||||
$CONF['smtp_type'] = pfa_env('PFA_SMTP_TYPE', 'starttls');
|
||||
$CONF['smtp_auth'] = pfa_env_bool('PFA_SMTP_AUTH', true);
|
||||
|
||||
// Self-service and editing
|
||||
$CONF['edit_mailbox'] = pfa_env_bool('PFA_EDIT_MAILBOX', true);
|
||||
$CONF['edit_alias'] = pfa_env_bool('PFA_EDIT_ALIAS', true);
|
||||
$CONF['forgotten_admin_password_reset'] = pfa_env_bool('PFA_FORGOTTEN_ADMIN_PASSWORD_RESET', true);
|
||||
$CONF['forgotten_user_password_reset'] = pfa_env_bool('PFA_FORGOTTEN_USER_PASSWORD_RESET', true);
|
||||
$CONF['admin_2fa'] = pfa_env_bool('PFA_ADMIN_2FA', true);
|
||||
|
||||
// API (comma-separated list for api_allow_from)
|
||||
$CONF['api_enabled'] = pfa_env_bool('PFA_API_ENABLED', true);
|
||||
$CONF['api_allow_from'] = array_map('trim', explode(',', pfa_env('PFA_API_ALLOW_FROM', '127.0.0.1,::1')));
|
||||
|
||||
// Session timeout (seconds)
|
||||
$CONF['session_timeout'] = (int) pfa_env('PFA_SESSION_TIMEOUT', '1800');
|
||||
Reference in New Issue
Block a user