|
@@ -0,0 +1,275 @@
|
|
1
|
+<?php
|
|
2
|
+
|
|
3
|
+/*******************************************************************/
|
|
4
|
+/* Rename this file to config.php if you want to change the values */
|
|
5
|
+/* */
|
|
6
|
+/* Make sure all paths are absolute by using __DIR__ where needed */
|
|
7
|
+/*******************************************************************/
|
|
8
|
+
|
|
9
|
+// Data folder (must be writeable by the web server user and absolute)
|
|
10
|
+define('DATA_DIR', __DIR__.DIRECTORY_SEPARATOR.'data');
|
|
11
|
+
|
|
12
|
+// Enable/Disable debug
|
|
13
|
+define('DEBUG', false);
|
|
14
|
+
|
|
15
|
+// Available log drivers: syslog, stderr, stdout, system or file
|
|
16
|
+define('LOG_DRIVER', 'system');
|
|
17
|
+
|
|
18
|
+// Log filename if the log driver is "file"
|
|
19
|
+define('LOG_FILE', DATA_DIR.DIRECTORY_SEPARATOR.'debug.log');
|
|
20
|
+
|
|
21
|
+// Plugins directory
|
|
22
|
+define('PLUGINS_DIR', __DIR__.DIRECTORY_SEPARATOR.'plugins');
|
|
23
|
+
|
|
24
|
+// Plugins directory URL
|
|
25
|
+define('PLUGIN_API_URL', 'https://kanboard.org/plugins.json');
|
|
26
|
+
|
|
27
|
+// Enable/Disable plugin installer (Disabled by default for security reasons)
|
|
28
|
+// There is no code review or any approval process to submit a plugin.
|
|
29
|
+// This is up to the Kanboard instance owner to validate if a plugin is legit.
|
|
30
|
+define('PLUGIN_INSTALLER', true);
|
|
31
|
+
|
|
32
|
+// Available cache drivers are "file" and "memory"
|
|
33
|
+define('CACHE_DRIVER', 'memory');
|
|
34
|
+
|
|
35
|
+// Cache folder to use if cache driver is "file" (must be writeable by the web server user)
|
|
36
|
+define('CACHE_DIR', DATA_DIR.DIRECTORY_SEPARATOR.'cache');
|
|
37
|
+
|
|
38
|
+// Folder for uploaded files (must be writeable by the web server user)
|
|
39
|
+define('FILES_DIR', DATA_DIR.DIRECTORY_SEPARATOR.'files');
|
|
40
|
+
|
|
41
|
+// Enable/disable email configuration from the user interface
|
|
42
|
+define('MAIL_CONFIGURATION', true);
|
|
43
|
+
|
|
44
|
+// E-mail address used for the "From" header (notifications)
|
|
45
|
+define('MAIL_FROM', 'kanboard@{{ domain }}');
|
|
46
|
+
|
|
47
|
+// E-mail address used for the "Bcc" header to send a copy of all notifications
|
|
48
|
+define('MAIL_BCC', '');
|
|
49
|
+
|
|
50
|
+// Mail transport available: "smtp", "sendmail", "mail" (PHP mail function), "postmark", "mailgun", "sendgrid"
|
|
51
|
+define('MAIL_TRANSPORT', 'mail');
|
|
52
|
+
|
|
53
|
+// SMTP configuration to use when the "smtp" transport is chosen
|
|
54
|
+define('MAIL_SMTP_HOSTNAME', '');
|
|
55
|
+define('MAIL_SMTP_PORT', 25);
|
|
56
|
+define('MAIL_SMTP_USERNAME', '');
|
|
57
|
+define('MAIL_SMTP_PASSWORD', '');
|
|
58
|
+define('MAIL_SMTP_HELO_NAME', null); // valid: null (default), or FQDN
|
|
59
|
+define('MAIL_SMTP_ENCRYPTION', null); // Valid values are null (not a string "null"), "ssl" or "tls"
|
|
60
|
+
|
|
61
|
+// Sendmail command to use when the transport is "sendmail"
|
|
62
|
+define('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs');
|
|
63
|
+
|
|
64
|
+// Run automatically database migrations
|
|
65
|
+// If set to false, you will have to run manually the SQL migrations from the CLI during the next Kanboard upgrade
|
|
66
|
+// Do not run the migrations from multiple processes at the same time (example: web page + background worker)
|
|
67
|
+define('DB_RUN_MIGRATIONS', true);
|
|
68
|
+
|
|
69
|
+// Database driver: sqlite, mysql or postgres (sqlite by default)
|
|
70
|
+define('DB_DRIVER', 'postgres');
|
|
71
|
+
|
|
72
|
+// Mysql/Postgres username
|
|
73
|
+define('DB_USERNAME', '{{ kanboard_db_username }}');
|
|
74
|
+
|
|
75
|
+// Mysql/Postgres password
|
|
76
|
+define('DB_PASSWORD', '{{ kanboard_db_password }}');
|
|
77
|
+
|
|
78
|
+// Mysql/Postgres hostname
|
|
79
|
+define('DB_HOSTNAME', 'localhost');
|
|
80
|
+
|
|
81
|
+// Mysql/Postgres database name
|
|
82
|
+define('DB_NAME', '{{ kanboard_db_database }}');
|
|
83
|
+
|
|
84
|
+// Mysql/Postgres custom port (null = default port)
|
|
85
|
+define('DB_PORT', null);
|
|
86
|
+
|
|
87
|
+// Mysql SSL key
|
|
88
|
+define('DB_SSL_KEY', null);
|
|
89
|
+
|
|
90
|
+// Mysql SSL certificate
|
|
91
|
+define('DB_SSL_CERT', null);
|
|
92
|
+
|
|
93
|
+// Mysql SSL CA
|
|
94
|
+define('DB_SSL_CA', null);
|
|
95
|
+
|
|
96
|
+// Mysql SSL server verification, set to false if you don't want the Mysql driver to validate the certificate CN
|
|
97
|
+define('DB_VERIFY_SERVER_CERT', null);
|
|
98
|
+
|
|
99
|
+// Timeout value for PDO attribute
|
|
100
|
+define('DB_TIMEOUT', null);
|
|
101
|
+
|
|
102
|
+// Enable LDAP authentication (false by default)
|
|
103
|
+define('LDAP_AUTH', false);
|
|
104
|
+
|
|
105
|
+// LDAP server protocol, hostname and port URL (ldap[s]://hostname:port)
|
|
106
|
+define('LDAP_SERVER', '');
|
|
107
|
+
|
|
108
|
+// By default, require certificate to be verified for ldaps:// style URL. Set to false to skip the verification
|
|
109
|
+define('LDAP_SSL_VERIFY', true);
|
|
110
|
+
|
|
111
|
+// Enable LDAP START_TLS
|
|
112
|
+define('LDAP_START_TLS', false);
|
|
113
|
+
|
|
114
|
+// By default Kanboard lowercase the ldap username to avoid duplicate users (the database is case sensitive)
|
|
115
|
+// Set to true if you want to preserve the case
|
|
116
|
+define('LDAP_USERNAME_CASE_SENSITIVE', false);
|
|
117
|
+
|
|
118
|
+// LDAP bind type: "anonymous", "user" or "proxy"
|
|
119
|
+define('LDAP_BIND_TYPE', 'anonymous');
|
|
120
|
+
|
|
121
|
+// LDAP username to use with proxy mode
|
|
122
|
+// LDAP username pattern to use with user mode
|
|
123
|
+define('LDAP_USERNAME', null);
|
|
124
|
+
|
|
125
|
+// LDAP password to use for proxy mode
|
|
126
|
+define('LDAP_PASSWORD', null);
|
|
127
|
+
|
|
128
|
+// LDAP DN for users
|
|
129
|
+// Example for ActiveDirectory: CN=Users,DC=kanboard,DC=local
|
|
130
|
+// Example for OpenLDAP: ou=People,dc=example,dc=com
|
|
131
|
+define('LDAP_USER_BASE_DN', '');
|
|
132
|
+
|
|
133
|
+// LDAP pattern to use when searching for a user account
|
|
134
|
+// Example for ActiveDirectory: '(&(objectClass=user)(sAMAccountName=%s))'
|
|
135
|
+// Example for OpenLDAP: 'uid=%s'
|
|
136
|
+define('LDAP_USER_FILTER', '');
|
|
137
|
+
|
|
138
|
+// LDAP attribute for username
|
|
139
|
+// Example for ActiveDirectory: 'sAMAccountName'
|
|
140
|
+// Example for OpenLDAP: 'uid'
|
|
141
|
+define('LDAP_USER_ATTRIBUTE_USERNAME', 'uid');
|
|
142
|
+
|
|
143
|
+// LDAP attribute for user full name
|
|
144
|
+// Example for ActiveDirectory: 'displayname'
|
|
145
|
+// Example for OpenLDAP: 'cn'
|
|
146
|
+define('LDAP_USER_ATTRIBUTE_FULLNAME', 'cn');
|
|
147
|
+
|
|
148
|
+// LDAP attribute for user email
|
|
149
|
+define('LDAP_USER_ATTRIBUTE_EMAIL', 'mail');
|
|
150
|
+
|
|
151
|
+// LDAP attribute to find groups in user profile
|
|
152
|
+define('LDAP_USER_ATTRIBUTE_GROUPS', 'memberof');
|
|
153
|
+
|
|
154
|
+// LDAP attribute for user avatar image: thumbnailPhoto or jpegPhoto
|
|
155
|
+define('LDAP_USER_ATTRIBUTE_PHOTO', '');
|
|
156
|
+
|
|
157
|
+// LDAP attribute for user language, example: 'preferredlanguage'
|
|
158
|
+// Put an empty string to disable language sync
|
|
159
|
+define('LDAP_USER_ATTRIBUTE_LANGUAGE', '');
|
|
160
|
+
|
|
161
|
+// Allow automatic LDAP user creation
|
|
162
|
+define('LDAP_USER_CREATION', true);
|
|
163
|
+
|
|
164
|
+// Set new user as Manager
|
|
165
|
+define('LDAP_USER_DEFAULT_ROLE_MANAGER', false);
|
|
166
|
+
|
|
167
|
+// LDAP DN for administrators
|
|
168
|
+// Example: CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local
|
|
169
|
+define('LDAP_GROUP_ADMIN_DN', '');
|
|
170
|
+
|
|
171
|
+// LDAP DN for managers
|
|
172
|
+// Example: CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local
|
|
173
|
+define('LDAP_GROUP_MANAGER_DN', '');
|
|
174
|
+
|
|
175
|
+// Enable LDAP group provider for project permissions
|
|
176
|
+// The end-user will be able to browse LDAP groups from the user interface and allow access to specified projects
|
|
177
|
+define('LDAP_GROUP_PROVIDER', false);
|
|
178
|
+
|
|
179
|
+// LDAP Base DN for groups
|
|
180
|
+define('LDAP_GROUP_BASE_DN', '');
|
|
181
|
+
|
|
182
|
+// LDAP group filter
|
|
183
|
+// Example for ActiveDirectory: (&(objectClass=group)(sAMAccountName=%s*))
|
|
184
|
+define('LDAP_GROUP_FILTER', '');
|
|
185
|
+
|
|
186
|
+// LDAP user group filter
|
|
187
|
+// If this filter is configured, Kanboard will search user groups in LDAP_GROUP_BASE_DN with this filter
|
|
188
|
+// Example for OpenLDAP: (&(objectClass=posixGroup)(memberUid=%s))
|
|
189
|
+define('LDAP_GROUP_USER_FILTER', '');
|
|
190
|
+
|
|
191
|
+// LDAP attribute for the user in the group filter
|
|
192
|
+// 'username' or 'dn'
|
|
193
|
+define('LDAP_GROUP_USER_ATTRIBUTE', 'username');
|
|
194
|
+
|
|
195
|
+// LDAP attribute for the group name
|
|
196
|
+define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
|
197
|
+
|
|
198
|
+// Enable/disable the reverse proxy authentication
|
|
199
|
+define('REVERSE_PROXY_AUTH', false);
|
|
200
|
+
|
|
201
|
+// Header name to use for the username
|
|
202
|
+define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER');
|
|
203
|
+
|
|
204
|
+// Username of the admin, by default blank
|
|
205
|
+define('REVERSE_PROXY_DEFAULT_ADMIN', '');
|
|
206
|
+
|
|
207
|
+// Header name to use for the username
|
|
208
|
+define('REVERSE_PROXY_EMAIL_HEADER', 'REMOTE_EMAIL');
|
|
209
|
+
|
|
210
|
+// Default domain to use for setting the email address
|
|
211
|
+define('REVERSE_PROXY_DEFAULT_DOMAIN', '');
|
|
212
|
+
|
|
213
|
+// Enable/disable remember me authentication
|
|
214
|
+define('REMEMBER_ME_AUTH', true);
|
|
215
|
+
|
|
216
|
+// Enable or disable "Strict-Transport-Security" HTTP header
|
|
217
|
+define('ENABLE_HSTS', true);
|
|
218
|
+
|
|
219
|
+// Enable or disable "X-Frame-Options: DENY" HTTP header
|
|
220
|
+define('ENABLE_XFRAME', true);
|
|
221
|
+
|
|
222
|
+// Escape html inside markdown text
|
|
223
|
+define('MARKDOWN_ESCAPE_HTML', true);
|
|
224
|
+
|
|
225
|
+// API alternative authentication header, the default is HTTP Basic Authentication defined in RFC2617
|
|
226
|
+define('API_AUTHENTICATION_HEADER', '');
|
|
227
|
+
|
|
228
|
+// Enable/disable url rewrite
|
|
229
|
+define('ENABLE_URL_REWRITE', true);
|
|
230
|
+
|
|
231
|
+// Hide login form, useful if all your users use Google/Github/ReverseProxy authentication
|
|
232
|
+define('HIDE_LOGIN_FORM', false);
|
|
233
|
+
|
|
234
|
+// Disabling logout (useful for external SSO authentication)
|
|
235
|
+define('DISABLE_LOGOUT', false);
|
|
236
|
+
|
|
237
|
+// Enable captcha after 3 authentication failure
|
|
238
|
+define('BRUTEFORCE_CAPTCHA', 3);
|
|
239
|
+
|
|
240
|
+// Lock the account after 6 authentication failure
|
|
241
|
+define('BRUTEFORCE_LOCKDOWN', 6);
|
|
242
|
+
|
|
243
|
+// Lock account duration in minute
|
|
244
|
+define('BRUTEFORCE_LOCKDOWN_DURATION', 15);
|
|
245
|
+
|
|
246
|
+// Session duration in second (0 = until the browser is closed)
|
|
247
|
+// See http://php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime
|
|
248
|
+define('SESSION_DURATION', 0);
|
|
249
|
+
|
|
250
|
+// Session handler: db or php
|
|
251
|
+define('SESSION_HANDLER', 'db');
|
|
252
|
+
|
|
253
|
+// HTTP client proxy
|
|
254
|
+define('HTTP_PROXY_HOSTNAME', '');
|
|
255
|
+define('HTTP_PROXY_PORT', '3128');
|
|
256
|
+define('HTTP_PROXY_USERNAME', '');
|
|
257
|
+define('HTTP_PROXY_PASSWORD', '');
|
|
258
|
+define('HTTP_PROXY_EXCLUDE', 'localhost');
|
|
259
|
+
|
|
260
|
+// Set to false to allow self-signed certificates
|
|
261
|
+define('HTTP_VERIFY_SSL_CERTIFICATE', true);
|
|
262
|
+
|
|
263
|
+// TOTP (2FA) issuer name
|
|
264
|
+define('TOTP_ISSUER', 'Kanboard');
|
|
265
|
+
|
|
266
|
+// Comma separated list of fields to not synchronize when using external authentication providers
|
|
267
|
+define('EXTERNAL_AUTH_EXCLUDE_FIELDS', 'username');
|
|
268
|
+
|
|
269
|
+// Enable or disable displaying group-memberships in userlist (true by default)
|
|
270
|
+define('SHOW_GROUP_MEMBERSHIPS_IN_USERLIST', true);
|
|
271
|
+
|
|
272
|
+// Limit number of groups to display in userlist (The full list of group-memberships is always shown, ...
|
|
273
|
+// ... when hovering the mouse over the group-icon of a given user!)
|
|
274
|
+// If set to 0 ALL group-memberships will be listed (7 by default)
|
|
275
|
+define('SHOW_GROUP_MEMBERSHIPS_IN_USERLIST_WITH_LIMIT', 7);
|