浏览代码

Switched to roundcube docker image; Upgraded to 1.4.2

tags/v2.0.0
Robin Thoni 4 年前
父节点
当前提交
f4c55e509a
签署人:: Robin THONI <robin@rthoni.com> GPG 密钥 ID: 4E09DEF46B99E61E

+ 10
- 31
roundcube/Dockerfile 查看文件

@@ -1,39 +1,18 @@
1
-FROM robinthoni/debian-multiarch:jessie
1
+FROM roundcube/roundcubemail:1.4.2-apache
2 2
 
3
-# FROM https://github.com/ZHAJOR/Docker-Apache-2.4-Php-5.6-for-Laravel
4
-MAINTAINER Robin Thoni <robin@rthoni.com>
3
+RUN ln -s /bin/true /usr/local/bin/apache2-fake
5 4
 
5
+ADD https://getcomposer.org/installer /tmp/composer-installer.php
6 6
 
7
-RUN apt-get update && apt-get -y install\
8
-        apache2=2.4.*\
9
-        libapache2-mod-php5\
10
-        php5\
11
-        php5-mcrypt\
12
-        php5-pgsql\
13
-        php5-mysql\
14
-        php5-gd\
15
-        php5-curl\
16
-        php5-intl\
17
-        php5-ldap\
18
-        php5-imap &&\
19
-        apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
7
+RUN php /tmp/composer-installer.php --install-dir=/usr/local/bin/ && rm /tmp/composer-installer.php
20 8
 
21
-RUN /usr/sbin/a2enmod rewrite &&\
22
-    rm -rf /var/www/html &&\
23
-    mkdir -p /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html &&\
24
-    chown -R www-data:www-data /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html
9
+RUN cd /usr/src/roundcubemail/ && composer.phar require sblaisot/automatic_addressbook 0.4.3
25 10
 
26
-RUN rm -rf /var/log/* &&\
27
-    mkdir -p /var/log/apache2 &&\
28
-    ln -s /dev/stderr /var/log/apache2/error.log &&\
29
-    ln -s /dev/stdout /var/log/apache2/access.log &&\
30
-    ln -s /dev/stdout /var/log/apache2/other_vhosts_access.log
11
+RUN cd /usr/src/roundcubemail/ && composer.phar require roundcube/authres_status 0.5.2
31 12
 
32
-COPY ./apache2.conf /etc/apache2/apache2.conf
13
+RUN cd /usr/src/roundcubemail/ && composer.phar require kitist/html5_notifier 0.6.3
33 14
 
34
-COPY ./roundcubemail-1.3.6/ /var/www/html/
35
-
36
-RUN ln -s /dev/stderr /var/www/html/logs/errors
15
+COPY ./config/ /usr/src/roundcubemail/
37 16
 
38 17
 COPY ./vars-vars /etc/vars-vars
39 18
 
@@ -41,6 +20,6 @@ COPY ./vars-files /etc/vars-files
41 20
 
42 21
 COPY ./run.sh /run.sh
43 22
 
44
-EXPOSE 80
23
+ENTRYPOINT ["/run.sh"]
45 24
 
46
-CMD ["/run.sh"]
25
+CMD ["apache2-foreground"]

+ 0
- 59
roundcube/apache2.conf 查看文件

@@ -1,59 +0,0 @@
1
-# see http://sources.debian.net/src/apache2/2.4.10-1/debian/config-dir/apache2.conf
2
-
3
-Mutex file:/var/lock/apache2 default
4
-PidFile /var/run/apache2/apache2.pid
5
-Timeout 300
6
-KeepAlive On
7
-MaxKeepAliveRequests 100
8
-KeepAliveTimeout 5
9
-User www-data
10
-Group www-data
11
-HostnameLookups Off
12
-ErrorLog /var/log/apache2/error.log
13
-LogLevel warn
14
-
15
-IncludeOptional mods-enabled/*.load
16
-IncludeOptional mods-enabled/*.conf
17
-
18
-# ports.conf
19
-Listen 80
20
-<IfModule ssl_module>
21
-    Listen 443
22
-</IfModule>
23
-<IfModule mod_gnutls.c>
24
-    Listen 443
25
-</IfModule>
26
-
27
-DocumentRoot "/var/www/html/"
28
-
29
-<Directory />
30
-    Options FollowSymLinks
31
-    AllowOverride None
32
-    Require all denied
33
-</Directory>
34
-
35
-<Directory /var/www/html/>
36
-    Options FollowSymLinks
37
-    AllowOverride All
38
-    Require all granted
39
-</Directory>
40
-
41
-
42
-
43
-LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
44
-LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
45
-LogFormat "%h %l %u %t \"%r\" %>s %O" common
46
-LogFormat "%{Referer}i -> %U" referer
47
-LogFormat "%{User-agent}i" agent
48
-
49
-CustomLog /var/log/apache2/access.log combined
50
-
51
-<FilesMatch \.php$>
52
-    SetHandler application/x-httpd-php
53
-</FilesMatch>
54
-
55
-# Multiple DirectoryIndex directives within the same context will add
56
-# to the list of resources to look for rather than replace
57
-# https://httpd.apache.org/docs/current/mod/mod_dir.html#directoryindex
58
-DirectoryIndex disabled
59
-DirectoryIndex index.php index.html

+ 21
- 0
roundcube/config/config/config_custom.inc.php 查看文件

@@ -0,0 +1,21 @@
1
+$config['smtp_user'] = '%u';
2
+
3
+$config['smtp_pass'] = '%p';
4
+
5
+$config['draft_autosave'] = 60;
6
+
7
+$config['create_default_folders'] = true;
8
+
9
+$config['list_cols'] = array('authres_status', 'subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment');
10
+
11
+$config['skin'] = 'elastic';
12
+
13
+$config['enable_installer'] = true;
14
+
15
+//$config['debug_level'] = 1;
16
+
17
+//$config['support_url'] = 'mailto:root@example.com';
18
+
19
+//$config['product_name'] = 'Example Webmail';
20
+
21
+//$config['username_domain'] = 'example.com';

+ 38
- 0
roundcube/config/plugins/authres_status/config.inc.php 查看文件

@@ -0,0 +1,38 @@
1
+<?php
2
+
3
+// RoundCube plugin authres_status default settings
4
+//
5
+// If you wish to protect certain variables to be overriden by the user, add them to 
6
+// dont_override in your main config/config.inc.php
7
+//
8
+// Set to true to enable authentication result column in message list, default false
9
+$config['enable_authres_status_column'] = true;
10
+
11
+// Set to true to use internal DKIM verifier, default false
12
+// (only when a signature sfound but no auth. results header)
13
+$config['use_fallback_verifier'] = true;
14
+
15
+// Set the statuses that should be shown
16
+// 
17
+// Available statuses:
18
+//	STATUS_NOSIG -> Show an icon for emails without a signature
19
+//	STATUS_NORES -> Show an icon for emails with a signature but no authentication results header
20
+//	STATUS_PASS  -> Show an icon if all signatures have passed validation
21
+//	STATUS_PARS  -> Show an icon if at least one signature passed validation
22
+//	STATUS_THIRD -> Show an icon for third party signatures
23
+//	STATUS_WARN  -> Show an icon when the signature temporary failed
24
+//	STATUS_FAIL  -> Show an icon when the signature permanently failed
25
+//	STATUS_ALL   -> Show an icon for all statuses
26
+//
27
+// statuses should be prefixed by 'authres_status::'
28
+//
29
+// default value: authres_status::STATUS_ALL & ~authres_status::STATUS_NOSIG
30
+//
31
+//$config['show_statuses'] = authres_status::STATUS_ALL & ~authres_status::STATUS_NOSIG;
32
+
33
+$config['dont_override'][] = 'trusted_mtas';
34
+$config['dont_override'][] = 'use_fallback_verifier';
35
+$config['dont_override'][] = 'show_statuses';
36
+$config['dont_override'][] = 'enable_authres_status_column';
37
+//$config['trusted_mtas'] = array('mail.example.com');
38
+

+ 18
- 0
roundcube/config/plugins/automatic_addressbook/config/config.inc.php 查看文件

@@ -0,0 +1,18 @@
1
+<?php
2
+
3
+/* automatic_addressbook plugin */
4
+$rcmail_config['default_addressbook'] = '0';
5
+
6
+/* on edit move to default addressbook */
7
+$rcmail_config['on_edit_move_to_default'] = FALSE;
8
+
9
+/* database table name */
10
+$rcmail_config['db_table_collected_contacts'] = 'collected_contacts';
11
+
12
+/* Is automatic_addressbook enabled or disabled by default for users ? */
13
+$rcmail_config['use_auto_abook'] = TRUE;
14
+
15
+/* Should automatic_addressbook be used for completion ? */
16
+$rcmail_config['use_auto_abook_for_completion'] = TRUE;
17
+
18
+?>

+ 100
- 0
roundcube/config/plugins/managesieve/config.inc.php 查看文件

@@ -0,0 +1,100 @@
1
+<?php
2
+
3
+// managesieve server port. When empty the port will be determined automatically
4
+// using getservbyname() function, with 4190 as a fallback.
5
+$config['managesieve_port'] = null;
6
+
7
+// managesieve server address, default is localhost.
8
+// Replacement variables supported in host name:
9
+// %h - user's IMAP hostname
10
+// %n - http hostname ($_SERVER['SERVER_NAME'])
11
+// %d - domain (http hostname without the first part)
12
+// For example %n = mail.domain.tld, %d = domain.tld
13
+$config['managesieve_host'] = 'SIEVE_HOST';
14
+
15
+// authentication method. Can be CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, EXTERNAL
16
+// or none. Optional, defaults to best method supported by server.
17
+$config['managesieve_auth_type'] = null;
18
+
19
+// Optional managesieve authentication identifier to be used as authorization proxy.
20
+// Authenticate as a different user but act on behalf of the logged in user.
21
+// Works with PLAIN and DIGEST-MD5 auth.
22
+$config['managesieve_auth_cid'] = null;
23
+
24
+// Optional managesieve authentication password to be used for imap_auth_cid
25
+$config['managesieve_auth_pw'] = null;
26
+
27
+// use or not TLS for managesieve server connection
28
+// Note: tls:// prefix in managesieve_host is also supported
29
+$config['managesieve_usetls'] = true;
30
+
31
+// Connection scket context options
32
+// See http://php.net/manual/en/context.ssl.php
33
+// The example below enables server certificate validation
34
+//$config['managesieve_conn_options'] = array(
35
+//  'ssl'         => array(
36
+//     'verify_peer'  => true,
37
+//     'verify_depth' => 3,
38
+//     'cafile'       => '/etc/openssl/certs/ca.crt',
39
+//   ),
40
+// );
41
+$config['managesieve_conn_options'] = null;
42
+
43
+// default contents of filters script (eg. default spam filter)
44
+$config['managesieve_default'] = '/etc/dovecot/sieve/global';
45
+
46
+// The name of the script which will be used when there's no user script
47
+$config['managesieve_script_name'] = 'managesieve';
48
+
49
+// Sieve RFC says that we should use UTF-8 endcoding for mailbox names,
50
+// but some implementations does not covert UTF-8 to modified UTF-7.
51
+// Defaults to UTF7-IMAP
52
+$config['managesieve_mbox_encoding'] = 'UTF-8';
53
+
54
+// I need this because my dovecot (with listescape plugin) uses
55
+// ':' delimiter, but creates folders with dot delimiter
56
+$config['managesieve_replace_delimiter'] = '';
57
+
58
+// disabled sieve extensions (body, copy, date, editheader, encoded-character,
59
+// envelope, environment, ereject, fileinto, ihave, imap4flags, index,
60
+// mailbox, mboxmetadata, regex, reject, relational, servermetadata,
61
+// spamtest, spamtestplus, subaddress, vacation, variables, virustest, etc.
62
+// Note: not all extensions are implemented
63
+$config['managesieve_disabled_extensions'] = array();
64
+
65
+// Enables debugging of conversation with sieve server. Logs it into <log_dir>/sieve
66
+$config['managesieve_debug'] = false;
67
+
68
+// Enables features described in http://wiki.kolab.org/KEP:14
69
+$config['managesieve_kolab_master'] = false;
70
+
71
+// Script name extension used for scripts including. Dovecot uses '.sieve',
72
+// Cyrus uses '.siv'. Doesn't matter if you have managesieve_kolab_master disabled.
73
+$config['managesieve_filename_extension'] = '.sieve';
74
+
75
+// List of reserved script names (without extension).
76
+// Scripts listed here will be not presented to the user.
77
+$config['managesieve_filename_exceptions'] = array();
78
+
79
+// List of domains limiting destination emails in redirect action
80
+// If not empty, user will need to select domain from a list
81
+$config['managesieve_domains'] = array();
82
+
83
+// Enables separate management interface for vacation responses (out-of-office)
84
+// 0 - no separate section (default),
85
+// 1 - add Vacation section,
86
+// 2 - add Vacation section, but hide Filters section
87
+$config['managesieve_vacation'] = 0;
88
+
89
+// Default vacation interval (in days).
90
+// Note: If server supports vacation-seconds extension it is possible
91
+// to define interval in seconds here (as a string), e.g. "3600s".
92
+$config['managesieve_vacation_interval'] = 0;
93
+
94
+// Some servers require vacation :addresses to be filled with all
95
+// user addresses (aliases). This option enables automatic filling
96
+// of these on initial vacation form creation.
97
+$config['managesieve_vacation_addresses_init'] = false;
98
+
99
+// Supported methods of notify extension. Default: 'mailto'
100
+$config['managesieve_notify_methods'] = array('mailto');

+ 432
- 0
roundcube/config/plugins/password/config.inc.php 查看文件

@@ -0,0 +1,432 @@
1
+<?php
2
+
3
+// Password Plugin options
4
+// -----------------------
5
+// A driver to use for password change. Default: "sql".
6
+// See README file for list of supported driver names.
7
+$config['password_driver'] = 'sql';
8
+
9
+// Determine whether current password is required to change password.
10
+// Default: false.
11
+$config['password_confirm_current'] = true;
12
+
13
+// Require the new password to be a certain length.
14
+// set to blank to allow passwords of any length
15
+$config['password_minimum_length'] = 0;
16
+
17
+// Require the new password to contain a letter and punctuation character
18
+// Change to false to remove this check.
19
+$config['password_require_nonalpha'] = false;
20
+
21
+// Enables logging of password changes into logs/password
22
+$config['password_log'] = false;
23
+
24
+// Comma-separated list of login exceptions for which password change
25
+// will be not available (no Password tab in Settings)
26
+$config['password_login_exceptions'] = null;
27
+
28
+// Array of hosts that support password changing. Default is NULL.
29
+// Listed hosts will feature a Password option in Settings; others will not.
30
+// Example: array('mail.example.com', 'mail2.example.org');
31
+$config['password_hosts'] = null;
32
+
33
+// Enables saving the new password even if it matches the old password. Useful
34
+// for upgrading the stored passwords after the encryption scheme has changed.
35
+$config['password_force_save'] = true;
36
+
37
+// Enables forcing new users to change their password at their first login.
38
+$config['password_force_new_user'] = false;
39
+
40
+// Default password hashing/crypting algorithm.
41
+// Possible options: des-crypt, ext-des-crypt, md5-crypt, blowfish-crypt,
42
+// sha256-crypt, sha512-crypt, md5, sha, smd5, ssha, samba, ad, dovecot, clear.
43
+// For details see password::hash_password() method.
44
+$config['password_algorithm'] = 'md5';
45
+
46
+// Password prefix (e.g. {CRYPT}, {SHA}) for passwords generated
47
+// using password_algorithm above. Default: empty.
48
+$config['password_algorithm_prefix'] = '';
49
+
50
+// Path for dovecotpw/doveadm-pw (if not in the $PATH).
51
+// Used for password_algorithm = 'dovecot'.
52
+// $config['password_dovecotpw'] = '/usr/local/sbin/doveadm pw'; // for dovecot-2.x
53
+$config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // for dovecot-1.x
54
+
55
+// Dovecot password scheme.
56
+// Used for password_algorithm = 'dovecot'.
57
+$config['password_dovecotpw_method'] = 'CRAM-MD5';
58
+
59
+// Iteration count parameter for Blowfish-based hashing algo.
60
+// It must be between 4 and 31. Default: 12.
61
+// Be aware, the higher the value, the longer it takes to generate the password hashes.
62
+$config['password_blowfish_cost'] = 12;
63
+
64
+// Number of rounds for the sha256 and sha512 crypt hashing algorithms.
65
+// Must be at least 1000. If not set, then the number of rounds is left up
66
+// to the crypt() implementation. On glibc this defaults to 5000.
67
+// Be aware, the higher the value, the longer it takes to generate the password hashes.
68
+//$config['password_crypt_rounds'] = 50000;
69
+
70
+// This option temporarily disables the password change functionality.
71
+// Use it when the users database server is in maintenance mode or sth like that.
72
+// You can set it to TRUE/FALSE or a text describing the reason
73
+// which will replace the default.
74
+$config['password_disabled'] = false;
75
+
76
+
77
+// SQL Driver options
78
+// ------------------
79
+// PEAR database DSN for performing the query. By default
80
+// Roundcube DB settings are used.
81
+$config['password_db_dsn'] = 'pgsql://MAIL_USER_DB_USER:MAIL_USER_DB_PASSWORD@MAIL_USER_DB_HOST:MAIL_USER_DB_PORT/MAIL_USER_DB_DB';
82
+
83
+// The SQL query used to change the password.
84
+// The query can contain the following macros that will be expanded as follows:
85
+//      %p is replaced with the plaintext new password
86
+//      %P is replaced with the crypted/hashed new password
87
+//         according to configured password_method
88
+//      %o is replaced with the old (current) password
89
+//      %O is replaced with the crypted/hashed old (current) password
90
+//         according to configured password_method
91
+//      %h is replaced with the imap host (from the session info)
92
+//      %u is replaced with the username (from the session info)
93
+//      %l is replaced with the local part of the username
94
+//         (in case the username is an email address)
95
+//      %d is replaced with the domain part of the username
96
+//         (in case the username is an email address)
97
+// Deprecated macros:
98
+//      %c is replaced with the crypt version of the new password, MD5 if available
99
+//         otherwise DES. More hash function can be enabled using the password_crypt_hash
100
+//         configuration parameter.
101
+//      %D is replaced with the dovecotpw-crypted version of the new password
102
+//      %n is replaced with the hashed version of the new password
103
+//      %q is replaced with the hashed password before the change
104
+// Escaping of macros is handled by this module.
105
+// Default: "SELECT update_passwd(%c, %u)"
106
+$config['password_query'] = 'UPDATE mailbox SET password=%c, modified=now() WHERE username=%u';
107
+
108
+// By default the crypt() function which is used to create the %c
109
+// parameter uses the md5 algorithm (deprecated, use %P).
110
+// You can choose between: des, md5, blowfish, sha256, sha512.
111
+$config['password_crypt_hash'] = 'md5';
112
+
113
+// By default domains in variables are using unicode.
114
+// Enable this option to use punycoded names
115
+$config['password_idn_ascii'] = false;
116
+
117
+// Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
118
+// when using the %D macro (deprecated, use %P)
119
+$config['password_dovecotpw_with_method'] = false;
120
+
121
+// Using a password hash for %n and %q variables (deprecated, use %P).
122
+// Determine which hashing algorithm should be used to generate
123
+// the hashed new and current password for using them within the
124
+// SQL query. Requires PHP's 'hash' extension.
125
+$config['password_hash_algorithm'] = 'sha1';
126
+
127
+// You can also decide whether the hash should be provided
128
+// as hex string or in base64 encoded format.
129
+$config['password_hash_base64'] = false;
130
+
131
+
132
+// Poppassd Driver options
133
+// -----------------------
134
+// The host which changes the password
135
+$config['password_pop_host'] = 'localhost';
136
+
137
+// TCP port used for poppassd connections
138
+$config['password_pop_port'] = 106;
139
+
140
+
141
+// SASL Driver options
142
+// -------------------
143
+// Additional arguments for the saslpasswd2 call
144
+$config['password_saslpasswd_args'] = '';
145
+
146
+
147
+// LDAP and LDAP_SIMPLE Driver options
148
+// -----------------------------------
149
+// LDAP server name to connect to. 
150
+// You can provide one or several hosts in an array in which case the hosts are tried from left to right.
151
+// Exemple: array('ldap1.exemple.com', 'ldap2.exemple.com');
152
+// Default: 'localhost'
153
+$config['password_ldap_host'] = 'localhost';
154
+
155
+// LDAP server port to connect to
156
+// Default: '389'
157
+$config['password_ldap_port'] = '389';
158
+
159
+// TLS is started after connecting
160
+// Using TLS for password modification is recommanded.
161
+// Default: false
162
+$config['password_ldap_starttls'] = false;
163
+
164
+// LDAP version
165
+// Default: '3'
166
+$config['password_ldap_version'] = '3';
167
+
168
+// LDAP base name (root directory)
169
+// Exemple: 'dc=exemple,dc=com'
170
+$config['password_ldap_basedn'] = 'dc=exemple,dc=com';
171
+
172
+// LDAP connection method
173
+// There is two connection method for changing a user's LDAP password.
174
+// 'user': use user credential (recommanded, require password_confirm_current=true)
175
+// 'admin': use admin credential (this mode require password_ldap_adminDN and password_ldap_adminPW)
176
+// Default: 'user'
177
+$config['password_ldap_method'] = 'user';
178
+
179
+// LDAP Admin DN
180
+// Used only in admin connection mode
181
+// Default: null
182
+$config['password_ldap_adminDN'] = null;
183
+
184
+// LDAP Admin Password
185
+// Used only in admin connection mode
186
+// Default: null
187
+$config['password_ldap_adminPW'] = null;
188
+
189
+// LDAP user DN mask
190
+// The user's DN is mandatory and as we only have his login,
191
+// we need to re-create his DN using a mask
192
+// '%login' will be replaced by the current roundcube user's login
193
+// '%name' will be replaced by the current roundcube user's name part
194
+// '%domain' will be replaced by the current roundcube user's domain part
195
+// '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
196
+// Exemple: 'uid=%login,ou=people,dc=exemple,dc=com'
197
+$config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';
198
+
199
+// LDAP search DN
200
+// The DN roundcube should bind with to find out user's DN
201
+// based on his login. Note that you should comment out the default
202
+// password_ldap_userDN_mask setting for this to take effect.
203
+// Use this if you cannot specify a general template for user DN with
204
+// password_ldap_userDN_mask. You need to perform a search based on
205
+// users login to find his DN instead. A common reason might be that
206
+// your users are placed under different ou's like engineering or
207
+// sales which cannot be derived from their login only.
208
+$config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com';
209
+
210
+// LDAP search password
211
+// If password_ldap_searchDN is set, the password to use for
212
+// binding to search for user's DN. Note that you should comment out the default
213
+// password_ldap_userDN_mask setting for this to take effect.
214
+// Warning: Be sure to set approperiate permissions on this file so this password
215
+// is only accesible to roundcube and don't forget to restrict roundcube's access to
216
+// your directory as much as possible using ACLs. Should this password be compromised
217
+// you want to minimize the damage.
218
+$config['password_ldap_searchPW'] = 'secret';
219
+
220
+// LDAP search base
221
+// If password_ldap_searchDN is set, the base to search in using the filter below.
222
+// Note that you should comment out the default password_ldap_userDN_mask setting
223
+// for this to take effect.
224
+$config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com';
225
+
226
+// LDAP search filter
227
+// If password_ldap_searchDN is set, the filter to use when
228
+// searching for user's DN. Note that you should comment out the default
229
+// password_ldap_userDN_mask setting for this to take effect.
230
+// '%login' will be replaced by the current roundcube user's login
231
+// '%name' will be replaced by the current roundcube user's name part
232
+// '%domain' will be replaced by the current roundcube user's domain part
233
+// '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
234
+// Example: '(uid=%login)'
235
+// Example: '(&(objectClass=posixAccount)(uid=%login))'
236
+$config['password_ldap_search_filter'] = '(uid=%login)';
237
+
238
+// LDAP password hash type
239
+// Standard LDAP encryption type which must be one of: crypt,
240
+// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad, cram-md5 (dovecot style) or clear.
241
+// Set to 'default' if you want to use method specified in password_algorithm option above.
242
+// Multiple password Values can be generated by concatenating encodings with a +. E.g. 'cram-md5+crypt'
243
+// Default: 'crypt'.
244
+$config['password_ldap_encodage'] = 'crypt';
245
+
246
+// LDAP password attribute
247
+// Name of the ldap's attribute used for storing user password
248
+// Default: 'userPassword'
249
+$config['password_ldap_pwattr'] = 'userPassword';
250
+
251
+// LDAP password force replace
252
+// Force LDAP replace in cases where ACL allows only replace not read
253
+// See http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace
254
+// Default: true
255
+$config['password_ldap_force_replace'] = true;
256
+
257
+// LDAP Password Last Change Date
258
+// Some places use an attribute to store the date of the last password change
259
+// The date is meassured in "days since epoch" (an integer value)
260
+// Whenever the password is changed, the attribute will be updated if set (e.g. shadowLastChange)
261
+$config['password_ldap_lchattr'] = '';
262
+
263
+// LDAP Samba password attribute, e.g. sambaNTPassword
264
+// Name of the LDAP's Samba attribute used for storing user password
265
+$config['password_ldap_samba_pwattr'] = '';
266
+ 
267
+// LDAP Samba Password Last Change Date attribute, e.g. sambaPwdLastSet
268
+// Some places use an attribute to store the date of the last password change
269
+// The date is meassured in "seconds since epoch" (an integer value)
270
+// Whenever the password is changed, the attribute will be updated if set
271
+$config['password_ldap_samba_lchattr'] = '';
272
+
273
+
274
+// DirectAdmin Driver options
275
+// --------------------------
276
+// The host which changes the password
277
+// Use 'ssl://host' instead of 'tcp://host' when running DirectAdmin over SSL.
278
+// The host can contain the following macros that will be expanded as follows:
279
+//     %h is replaced with the imap host (from the session info)
280
+//     %d is replaced with the domain part of the username (if the username is an email)
281
+$config['password_directadmin_host'] = 'tcp://localhost';
282
+
283
+// TCP port used for DirectAdmin connections
284
+$config['password_directadmin_port'] = 2222;
285
+
286
+
287
+// vpopmaild Driver options
288
+// -----------------------
289
+// The host which changes the password
290
+$config['password_vpopmaild_host'] = 'localhost';
291
+
292
+// TCP port used for vpopmaild connections
293
+$config['password_vpopmaild_port'] = 89;
294
+
295
+// Timout used for the connection to vpopmaild (in seconds)
296
+$config['password_vpopmaild_timeout'] = 10;
297
+
298
+
299
+// cPanel Driver options
300
+// --------------------------
301
+// The cPanel Host name
302
+$config['password_cpanel_host'] = 'host.domain.com';
303
+
304
+// The cPanel admin username
305
+$config['password_cpanel_username'] = 'username';
306
+
307
+// The cPanel admin password
308
+$config['password_cpanel_password'] = 'password';
309
+
310
+// The cPanel port to use
311
+$config['password_cpanel_port'] = 2087;
312
+
313
+
314
+// XIMSS (Communigate server) Driver options
315
+// -----------------------------------------
316
+// Host name of the Communigate server
317
+$config['password_ximss_host'] = 'mail.example.com';
318
+
319
+// XIMSS port on Communigate server
320
+$config['password_ximss_port'] = 11024;
321
+
322
+
323
+// chpasswd Driver options
324
+// ---------------------
325
+// Command to use (see "Sudo setup" in README)
326
+$config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null';
327
+
328
+
329
+// XMail Driver options
330
+// ---------------------
331
+$config['xmail_host'] = 'localhost';
332
+$config['xmail_user'] = 'YourXmailControlUser';
333
+$config['xmail_pass'] = 'YourXmailControlPass';
334
+$config['xmail_port'] = 6017;
335
+
336
+
337
+// hMail Driver options
338
+// -----------------------
339
+// Remote hMailServer configuration
340
+// true:  HMailserver is on a remote box (php.ini: com.allow_dcom = true)
341
+// false: Hmailserver is on same box as PHP
342
+$config['hmailserver_remote_dcom'] = false;
343
+// Windows credentials
344
+$config['hmailserver_server'] = array(
345
+    'Server'   => 'localhost',      // hostname or ip address
346
+    'Username' => 'administrator',  // windows username
347
+    'Password' => 'password'        // windows user password
348
+);
349
+
350
+
351
+// Virtualmin Driver options
352
+// -------------------------
353
+// Username format:
354
+// 0: username@domain
355
+// 1: username%domain
356
+// 2: username.domain
357
+// 3: domain.username
358
+// 4: username-domain
359
+// 5: domain-username
360
+// 6: username_domain
361
+// 7: domain_username
362
+$config['password_virtualmin_format'] = 0;
363
+
364
+
365
+// pw_usermod Driver options
366
+// --------------------------
367
+// Use comma delimited exlist to disable password change for users.
368
+// See "Sudo setup" in README file.
369
+$config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n';
370
+
371
+
372
+// DBMail Driver options
373
+// -------------------
374
+// Additional arguments for the dbmail-users call
375
+$config['password_dbmail_args'] = '-p sha512';
376
+
377
+
378
+// Expect Driver options
379
+// ---------------------
380
+// Location of expect binary
381
+$config['password_expect_bin'] = '/usr/bin/expect';
382
+
383
+// Location of expect script (see helpers/passwd-expect)
384
+$config['password_expect_script'] = '';
385
+
386
+// Arguments for the expect script. See the helpers/passwd-expect file for details.
387
+// This is probably a good starting default:
388
+//   -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log
389
+$config['password_expect_params'] = '';
390
+
391
+
392
+// smb Driver options
393
+// ---------------------
394
+// Samba host (default: localhost)
395
+// Supported replacement variables:
396
+// %n - hostname ($_SERVER['SERVER_NAME'])
397
+// %t - hostname without the first part
398
+// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
399
+$config['password_smb_host'] = 'localhost';
400
+// Location of smbpasswd binary
401
+$config['password_smb_cmd'] = '/usr/bin/smbpasswd';
402
+
403
+// gearman driver options
404
+// ---------------------
405
+// Gearman host (default: localhost)
406
+$config['password_gearman_host'] = 'localhost';
407
+
408
+
409
+// Plesk/PPA Driver options
410
+// --------------------
411
+// You need to allow RCP for IP of roundcube-server in Plesk/PPA Panel 
412
+
413
+// Plesk RCP Host
414
+$config['password_plesk_host'] = '10.0.0.5';
415
+
416
+// Plesk RPC Username
417
+$config['password_plesk_user'] = 'admin';
418
+
419
+// Plesk RPC Password
420
+$config['password_plesk_pass'] = 'password';
421
+
422
+// Plesk RPC Port
423
+$config['password_plesk_rpc_port'] = '8443';
424
+
425
+// Plesk RPC Path
426
+$config['password_plesk_rpc_path'] = 'enterprise/control/agent.php';
427
+
428
+
429
+// kasswd Driver options
430
+// ---------------------
431
+// Command to use
432
+$config['password_kpasswd_cmd'] = '/usr/bin/kpasswd';

+ 16
- 2
roundcube/run.sh 查看文件

@@ -1,5 +1,7 @@
1 1
 #! /usr/bin/env bash
2 2
 
3
+set -e
4
+
3 5
 replace_var()
4 6
 {
5 7
   file="${1}"
@@ -24,7 +26,19 @@ replace_files()
24 26
   done
25 27
 }
26 28
 
29
+export ROUNDCUBEMAIL_DB_TYPE="pgsql"
30
+export ROUNDCUBEMAIL_DB_HOST="${POSTGRES_HOST}"
31
+export ROUNDCUBEMAIL_DB_USER="${POSTGRES_USER}"
32
+export ROUNDCUBEMAIL_DB_PASSWORD="${POSTGRES_PASSWORD}"
33
+export ROUNDCUBEMAIL_DB_NAME="${POSTGRES_DB}"
34
+export ROUNDCUBEMAIL_SMTP_SERVER="${SMTP_HOST}"
35
+export ROUNDCUBEMAIL_DEFAULT_HOST="${IMAP_HOST}"
36
+export ROUNDCUBEMAIL_PLUGINS="attachment_reminder,managesieve,password,zipdownload,automatic_addressbook,html5_notifier,authres_status"
37
+export ROUNDCUBEMAIL_DES_KEY="${DES_KEY}"
38
+export ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE="50M"
39
+
40
+/docker-entrypoint.sh apache2-fake
41
+
27 42
 replace_files
28 43
 
29
-rm -f /run/apache2/apache2.pid
30
-exec /usr/sbin/apache2ctl -D FOREGROUND
44
+exec "${@}"

+ 1
- 2
roundcube/vars-files 查看文件

@@ -1,4 +1,3 @@
1
-/var/www/html/config/config.inc.php
1
+/var/www/html/config/config_custom.inc.php
2 2
 /var/www/html/plugins/password/config.inc.php
3
-/var/www/html/plugins/vacation_sieve/config.inc.php
4 3
 /var/www/html/plugins/managesieve/config.inc.php

正在加载...
取消
保存