2014-07-20 14:09:41 +02:00
|
|
|
<?php
|
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
/*******************************************************************/
|
|
|
|
/* Rename this file to config.php if you want to change the values */
|
|
|
|
/* */
|
|
|
|
/* Make sure all paths are absolute by using __DIR__ where needed */
|
|
|
|
/*******************************************************************/
|
|
|
|
|
2017-03-10 22:01:34 +01:00
|
|
|
// Data folder (must be writeable by the web server user and absolute)
|
|
|
|
define('DATA_DIR', __DIR__.DIRECTORY_SEPARATOR.'data');
|
2017-01-17 17:51:12 +01:00
|
|
|
|
2015-01-16 14:23:32 +01:00
|
|
|
// Enable/Disable debug
|
|
|
|
define('DEBUG', false);
|
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Available log drivers: syslog, stderr, stdout, system or file
|
|
|
|
define('LOG_DRIVER', 'system');
|
2016-07-23 14:11:39 +02:00
|
|
|
|
|
|
|
// Log filename if the log driver is "file"
|
2017-01-17 17:51:12 +01:00
|
|
|
define('LOG_FILE', DATA_DIR.DIRECTORY_SEPARATOR.'debug.log');
|
2015-02-25 17:29:23 +01:00
|
|
|
|
2015-10-14 15:56:23 +02:00
|
|
|
// Plugins directory
|
2022-06-06 14:44:35 +02:00
|
|
|
define('PLUGINS_DIR', __DIR__.DIRECTORY_SEPARATOR.'plugins');
|
2015-10-14 15:56:23 +02:00
|
|
|
|
2017-01-17 17:51:12 +01:00
|
|
|
// Plugins directory URL
|
2022-06-06 14:44:35 +02:00
|
|
|
define('PLUGIN_API_URL', 'https://kanboard.org/plugins.json');
|
2017-01-17 17:51:12 +01:00
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Enable/Disable plugin installer (Disabled by default for security reasons)
|
|
|
|
// There is no code review or any approval process to submit a plugin.
|
|
|
|
// This is up to the Kanboard instance owner to validate if a plugin is legit.
|
2017-01-17 17:51:12 +01:00
|
|
|
define('PLUGIN_INSTALLER', true);
|
|
|
|
|
|
|
|
// Available cache drivers are "file" and "memory"
|
|
|
|
define('CACHE_DRIVER', 'memory');
|
|
|
|
|
|
|
|
// Cache folder to use if cache driver is "file" (must be writeable by the web server user)
|
|
|
|
define('CACHE_DIR', DATA_DIR.DIRECTORY_SEPARATOR.'cache');
|
|
|
|
|
|
|
|
// Folder for uploaded files (must be writeable by the web server user)
|
|
|
|
define('FILES_DIR', DATA_DIR.DIRECTORY_SEPARATOR.'files');
|
2015-02-25 17:29:23 +01:00
|
|
|
|
2017-03-10 22:01:34 +01:00
|
|
|
// Enable/disable email configuration from the user interface
|
|
|
|
define('MAIL_CONFIGURATION', true);
|
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// E-mail address used for the "From" header (notifications)
|
2023-10-24 00:13:55 +02:00
|
|
|
define('MAIL_FROM', '__APP__@__DOMAIN__');
|
2014-10-22 21:21:37 +02:00
|
|
|
|
2020-12-28 10:24:37 +01:00
|
|
|
// E-mail address used for the "Bcc" header to send a copy of all notifications
|
|
|
|
define('MAIL_BCC', '');
|
|
|
|
|
2015-08-16 17:04:56 +02:00
|
|
|
// Mail transport available: "smtp", "sendmail", "mail" (PHP mail function), "postmark", "mailgun", "sendgrid"
|
2014-10-22 21:21:37 +02:00
|
|
|
define('MAIL_TRANSPORT', 'mail');
|
|
|
|
|
|
|
|
// SMTP configuration to use when the "smtp" transport is chosen
|
2022-06-06 12:14:31 +02:00
|
|
|
define('MAIL_SMTP_HOSTNAME', 'localhost');
|
2014-10-22 21:21:37 +02:00
|
|
|
define('MAIL_SMTP_PORT', 25);
|
2023-10-24 00:13:55 +02:00
|
|
|
define('MAIL_SMTP_USERNAME', '__APP__');
|
|
|
|
define('MAIL_SMTP_PASSWORD', '__MAIL_PWD__');
|
2014-11-23 20:14:17 +01:00
|
|
|
define('MAIL_SMTP_ENCRYPTION', null); // Valid values are "null", "ssl" or "tls"
|
2014-10-22 21:21:37 +02:00
|
|
|
|
|
|
|
// Sendmail command to use when the transport is "sendmail"
|
|
|
|
define('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs');
|
|
|
|
|
2017-01-17 17:51:12 +01:00
|
|
|
// Run automatically database migrations
|
|
|
|
// If set to false, you will have to run manually the SQL migrations from the CLI during the next Kanboard upgrade
|
|
|
|
// Do not run the migrations from multiple processes at the same time (example: web page + background worker)
|
2017-04-01 18:52:48 +02:00
|
|
|
define('DB_RUN_MIGRATIONS', false);
|
2017-01-17 17:51:12 +01:00
|
|
|
|
2014-10-22 21:21:37 +02:00
|
|
|
// Database driver: sqlite, mysql or postgres (sqlite by default)
|
2014-07-20 14:09:41 +02:00
|
|
|
define('DB_DRIVER', 'mysql');
|
|
|
|
|
2014-10-22 21:21:37 +02:00
|
|
|
// Mysql/Postgres username
|
2022-06-06 12:08:05 +02:00
|
|
|
define('DB_USERNAME', '__DB_USER__');
|
2014-07-20 14:09:41 +02:00
|
|
|
|
2014-10-22 21:21:37 +02:00
|
|
|
// Mysql/Postgres password
|
2019-02-15 19:49:22 +01:00
|
|
|
define('DB_PASSWORD', '__DB_PWD__');
|
2014-07-20 14:09:41 +02:00
|
|
|
|
2014-10-22 21:21:37 +02:00
|
|
|
// Mysql/Postgres hostname
|
2014-07-20 14:09:41 +02:00
|
|
|
define('DB_HOSTNAME', 'localhost');
|
|
|
|
|
2014-10-22 21:21:37 +02:00
|
|
|
// Mysql/Postgres database name
|
2019-02-15 19:49:22 +01:00
|
|
|
define('DB_NAME', '__DB_NAME__');
|
2014-07-20 14:09:41 +02:00
|
|
|
|
2015-04-21 17:56:32 +02:00
|
|
|
// Mysql/Postgres custom port (null = default port)
|
|
|
|
define('DB_PORT', null);
|
|
|
|
|
2016-07-23 14:11:39 +02:00
|
|
|
// Mysql SSL key
|
|
|
|
define('DB_SSL_KEY', null);
|
|
|
|
|
|
|
|
// Mysql SSL certificate
|
|
|
|
define('DB_SSL_CERT', null);
|
|
|
|
|
|
|
|
// Mysql SSL CA
|
|
|
|
define('DB_SSL_CA', null);
|
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Mysql SSL server verification, set to false if you don't want the Mysql driver to validate the certificate CN
|
|
|
|
define('DB_VERIFY_SERVER_CERT', null);
|
|
|
|
|
|
|
|
// Timeout value for PDO attribute
|
|
|
|
define('DB_TIMEOUT', null);
|
|
|
|
|
2014-07-20 14:09:41 +02:00
|
|
|
// Enable LDAP authentication (false by default)
|
2014-10-22 21:21:37 +02:00
|
|
|
define('LDAP_AUTH', false);
|
2014-07-20 14:09:41 +02:00
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// LDAP server protocol, hostname and port URL (ldap[s]://hostname:port)
|
2022-06-06 14:50:11 +02:00
|
|
|
define('LDAP_SERVER', 'ldap://127.0.0.1:389');
|
2014-07-20 14:09:41 +02:00
|
|
|
|
2015-10-14 15:56:23 +02:00
|
|
|
// By default, require certificate to be verified for ldaps:// style URL. Set to false to skip the verification
|
2014-07-20 14:09:41 +02:00
|
|
|
define('LDAP_SSL_VERIFY', true);
|
|
|
|
|
2014-12-22 19:21:10 +01:00
|
|
|
// Enable LDAP START_TLS
|
|
|
|
define('LDAP_START_TLS', false);
|
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// By default Kanboard lowercase the ldap username to avoid duplicate users (the database is case sensitive)
|
|
|
|
// Set to true if you want to preserve the case
|
|
|
|
define('LDAP_USERNAME_CASE_SENSITIVE', false);
|
|
|
|
|
2015-10-14 15:56:23 +02:00
|
|
|
// LDAP bind type: "anonymous", "user" or "proxy"
|
2014-10-22 21:21:37 +02:00
|
|
|
define('LDAP_BIND_TYPE', 'anonymous');
|
|
|
|
|
2015-10-14 15:56:23 +02:00
|
|
|
// LDAP username to use with proxy mode
|
|
|
|
// LDAP username pattern to use with user mode
|
2014-07-20 14:09:41 +02:00
|
|
|
define('LDAP_USERNAME', null);
|
|
|
|
|
2015-10-14 15:56:23 +02:00
|
|
|
// LDAP password to use for proxy mode
|
2014-07-20 14:09:41 +02:00
|
|
|
define('LDAP_PASSWORD', null);
|
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// LDAP DN for users
|
|
|
|
// Example for ActiveDirectory: CN=Users,DC=kanboard,DC=local
|
|
|
|
// Example for OpenLDAP: ou=People,dc=example,dc=com
|
2016-01-24 18:30:47 +01:00
|
|
|
define('LDAP_USER_BASE_DN', 'ou=users,dc=yunohost,dc=org');
|
2014-07-20 14:09:41 +02:00
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// LDAP pattern to use when searching for a user account
|
2014-07-20 14:09:41 +02:00
|
|
|
// Example for ActiveDirectory: '(&(objectClass=user)(sAMAccountName=%s))'
|
|
|
|
// Example for OpenLDAP: 'uid=%s'
|
2016-01-24 18:30:47 +01:00
|
|
|
define('LDAP_USER_FILTER', 'uid=%s');
|
2014-07-20 14:09:41 +02:00
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// LDAP attribute for username
|
2015-02-25 17:29:23 +01:00
|
|
|
// Example for ActiveDirectory: 'samaccountname'
|
|
|
|
// Example for OpenLDAP: 'uid'
|
2015-12-29 01:27:58 +01:00
|
|
|
define('LDAP_USER_ATTRIBUTE_USERNAME', 'uid');
|
|
|
|
|
|
|
|
// LDAP attribute for user full name
|
|
|
|
// Example for ActiveDirectory: 'displayname'
|
|
|
|
// Example for OpenLDAP: 'cn'
|
2016-01-24 18:30:47 +01:00
|
|
|
define('LDAP_USER_ATTRIBUTE_FULLNAME', 'displayname');
|
2015-12-29 01:27:58 +01:00
|
|
|
|
|
|
|
// LDAP attribute for user email
|
|
|
|
define('LDAP_USER_ATTRIBUTE_EMAIL', 'mail');
|
2015-10-14 15:56:23 +02:00
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// LDAP attribute to find groups in user profile
|
|
|
|
define('LDAP_USER_ATTRIBUTE_GROUPS', 'memberof');
|
2015-10-14 15:56:23 +02:00
|
|
|
|
2016-07-23 14:11:39 +02:00
|
|
|
// LDAP attribute for user avatar image: thumbnailPhoto or jpegPhoto
|
|
|
|
define('LDAP_USER_ATTRIBUTE_PHOTO', '');
|
|
|
|
|
|
|
|
// LDAP attribute for user language, example: 'preferredlanguage'
|
|
|
|
// Put an empty string to disable language sync
|
|
|
|
define('LDAP_USER_ATTRIBUTE_LANGUAGE', '');
|
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Automatically create a user profile when a user authenticates via LDAP.
|
|
|
|
// If set to false, only LDAP users can log in for whom a Kanboard profile already exists.
|
2015-12-29 01:27:58 +01:00
|
|
|
define('LDAP_USER_CREATION', true);
|
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Set new user as Manager
|
|
|
|
define('LDAP_USER_DEFAULT_ROLE_MANAGER', false);
|
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// LDAP DN for administrators
|
|
|
|
// Example: CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local
|
2015-10-14 15:56:23 +02:00
|
|
|
define('LDAP_GROUP_ADMIN_DN', '');
|
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// LDAP DN for managers
|
|
|
|
// Example: CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local
|
|
|
|
define('LDAP_GROUP_MANAGER_DN', '');
|
2015-02-25 17:29:23 +01:00
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// Enable LDAP group provider for project permissions
|
|
|
|
// The end-user will be able to browse LDAP groups from the user interface and allow access to specified projects
|
|
|
|
define('LDAP_GROUP_PROVIDER', false);
|
|
|
|
|
|
|
|
// LDAP Base DN for groups
|
|
|
|
define('LDAP_GROUP_BASE_DN', '');
|
|
|
|
|
|
|
|
// LDAP group filter
|
|
|
|
// Example for ActiveDirectory: (&(objectClass=group)(sAMAccountName=%s*))
|
|
|
|
define('LDAP_GROUP_FILTER', '');
|
2015-02-25 17:29:23 +01:00
|
|
|
|
2016-07-23 14:11:39 +02:00
|
|
|
// LDAP user group filter
|
|
|
|
// If this filter is configured, Kanboard will search user groups in LDAP_GROUP_BASE_DN with this filter
|
|
|
|
// Example for OpenLDAP: (&(objectClass=posixGroup)(memberUid=%s))
|
|
|
|
define('LDAP_GROUP_USER_FILTER', '');
|
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// LDAP attribute for the user in the group filter
|
|
|
|
// 'username' or 'dn'
|
|
|
|
define('LDAP_GROUP_USER_ATTRIBUTE', 'username');
|
|
|
|
|
2015-12-29 01:27:58 +01:00
|
|
|
// LDAP attribute for the group name
|
|
|
|
define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
2015-08-16 17:04:56 +02:00
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Enable/Disable groups synchronization when external authentication is used.
|
|
|
|
define('LDAP_GROUP_SYNC', true);
|
|
|
|
|
2014-10-22 21:21:37 +02:00
|
|
|
// Enable/disable the reverse proxy authentication
|
2016-04-27 20:45:49 +02:00
|
|
|
define('REVERSE_PROXY_AUTH', true);
|
2014-10-22 21:21:37 +02:00
|
|
|
|
|
|
|
// Header name to use for the username
|
|
|
|
define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER');
|
|
|
|
|
|
|
|
// Username of the admin, by default blank
|
2021-02-26 12:26:48 +01:00
|
|
|
define('REVERSE_PROXY_DEFAULT_ADMIN', '__ADMIN__');
|
2014-10-22 21:21:37 +02:00
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Header name to use for the username
|
|
|
|
define('REVERSE_PROXY_EMAIL_HEADER', 'REMOTE_EMAIL');
|
|
|
|
|
2014-10-22 21:21:37 +02:00
|
|
|
// Default domain to use for setting the email address
|
2019-02-15 19:49:22 +01:00
|
|
|
define('REVERSE_PROXY_DEFAULT_DOMAIN', '__DOMAIN__');
|
2014-11-23 20:14:17 +01:00
|
|
|
|
2015-09-08 22:16:28 +02:00
|
|
|
// Enable/disable remember me authentication
|
2015-10-14 15:44:44 +02:00
|
|
|
define('REMEMBER_ME_AUTH', false);
|
2015-09-08 22:16:28 +02:00
|
|
|
|
2014-11-23 20:14:17 +01:00
|
|
|
// Enable or disable "Strict-Transport-Security" HTTP header
|
2015-10-14 16:51:31 +02:00
|
|
|
define('ENABLE_HSTS', false);
|
2015-04-21 17:56:32 +02:00
|
|
|
|
|
|
|
// Enable or disable "X-Frame-Options: DENY" HTTP header
|
|
|
|
define('ENABLE_XFRAME', true);
|
|
|
|
|
|
|
|
// Escape html inside markdown text
|
|
|
|
define('MARKDOWN_ESCAPE_HTML', true);
|
2015-08-16 17:04:56 +02:00
|
|
|
|
|
|
|
// API alternative authentication header, the default is HTTP Basic Authentication defined in RFC2617
|
|
|
|
define('API_AUTHENTICATION_HEADER', '');
|
|
|
|
|
|
|
|
// Enable/disable url rewrite
|
2022-06-06 12:21:17 +02:00
|
|
|
define('ENABLE_URL_REWRITE', true);
|
2015-08-16 17:04:56 +02:00
|
|
|
|
|
|
|
// Hide login form, useful if all your users use Google/Github/ReverseProxy authentication
|
|
|
|
define('HIDE_LOGIN_FORM', true);
|
2015-09-08 22:16:28 +02:00
|
|
|
|
2017-01-17 17:51:12 +01:00
|
|
|
// Disabling logout (useful for external SSO authentication)
|
2016-03-08 00:09:23 +01:00
|
|
|
define('DISABLE_LOGOUT', true);
|
|
|
|
|
2015-09-08 22:16:28 +02:00
|
|
|
// Enable captcha after 3 authentication failure
|
|
|
|
define('BRUTEFORCE_CAPTCHA', 3);
|
|
|
|
|
|
|
|
// Lock the account after 6 authentication failure
|
|
|
|
define('BRUTEFORCE_LOCKDOWN', 6);
|
|
|
|
|
|
|
|
// Lock account duration in minute
|
|
|
|
define('BRUTEFORCE_LOCKDOWN_DURATION', 15);
|
|
|
|
|
|
|
|
// Session duration in second (0 = until the browser is closed)
|
|
|
|
// See http://php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime
|
2015-10-26 14:49:22 +01:00
|
|
|
define('SESSION_DURATION', 0);
|
2015-10-14 15:56:23 +02:00
|
|
|
|
2022-06-06 14:44:35 +02:00
|
|
|
// Session handler: db or php
|
|
|
|
define('SESSION_HANDLER', 'db');
|
|
|
|
|
2015-10-14 15:56:23 +02:00
|
|
|
// HTTP client proxy
|
|
|
|
define('HTTP_PROXY_HOSTNAME', '');
|
|
|
|
define('HTTP_PROXY_PORT', '3128');
|
|
|
|
define('HTTP_PROXY_USERNAME', '');
|
|
|
|
define('HTTP_PROXY_PASSWORD', '');
|
2019-07-01 21:31:28 +02:00
|
|
|
define('HTTP_PROXY_EXCLUDE', 'localhost');
|
2017-01-17 17:51:12 +01:00
|
|
|
|
2017-03-10 22:01:34 +01:00
|
|
|
// Set to false to allow self-signed certificates
|
|
|
|
define('HTTP_VERIFY_SSL_CERTIFICATE', false);
|
|
|
|
|
2017-01-17 17:51:12 +01:00
|
|
|
// TOTP (2FA) issuer name
|
2017-10-21 22:52:21 +02:00
|
|
|
define('TOTP_ISSUER', 'Kanboard');
|
2020-06-07 19:20:26 +02:00
|
|
|
|
|
|
|
// Comma separated list of fields to not synchronize when using external authentication providers
|
|
|
|
define('EXTERNAL_AUTH_EXCLUDE_FIELDS', 'username');
|
|
|
|
|
|
|
|
// Enable or disable displaying group-memberships in userlist (true by default)
|
|
|
|
define('SHOW_GROUP_MEMBERSHIPS_IN_USERLIST', true);
|
|
|
|
|
|
|
|
// Limit number of groups to display in userlist (The full list of group-memberships is always shown, ...
|
|
|
|
// ... when hovering the mouse over the group-icon of a given user!)
|
|
|
|
// If set to 0 ALL group-memberships will be listed (7 by default)
|
2020-10-30 15:08:59 +01:00
|
|
|
define('SHOW_GROUP_MEMBERSHIPS_IN_USERLIST_WITH_LIMIT', 7);
|