smartmachine 1.2.3 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/smart_machine/apps/app.rb +1 -0
  3. data/lib/smart_machine/buildpackers/buildpacker.rb +2 -2
  4. data/lib/smart_machine/commands/grid.rb +8 -0
  5. data/lib/smart_machine/commands/grid_commands/emailer.rb +107 -0
  6. data/lib/smart_machine/commands/grid_commands/roundcube.rb +107 -0
  7. data/lib/smart_machine/configuration.rb +35 -2
  8. data/lib/smart_machine/credentials.rb +10 -0
  9. data/lib/smart_machine/engine.rb +7 -1
  10. data/lib/smart_machine/grids/adminer.rb +1 -0
  11. data/lib/smart_machine/grids/certbot.rb +1 -0
  12. data/lib/smart_machine/grids/emailer/imapsync.rb +7 -0
  13. data/lib/smart_machine/grids/emailer.rb +188 -0
  14. data/lib/smart_machine/grids/haproxy.rb +1 -0
  15. data/lib/smart_machine/grids/mariadb.rb +1 -0
  16. data/lib/smart_machine/grids/postgresql.rb +1 -0
  17. data/lib/smart_machine/grids/roundcube/.keep +0 -0
  18. data/lib/smart_machine/grids/roundcube.rb +184 -0
  19. data/lib/smart_machine/machine.rb +7 -0
  20. data/lib/smart_machine/syncer.rb +10 -0
  21. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/docker/command.rb +50 -0
  22. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/docker/entrypoint.rb +196 -0
  23. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/docker/logtailer.rb +75 -0
  24. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/10-auth.conf +132 -0
  25. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/10-mail.conf +427 -0
  26. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/10-master.conf +153 -0
  27. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/10-ssl.conf +87 -0
  28. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/15-mailboxes.conf +94 -0
  29. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/20-imap.conf +102 -0
  30. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/20-lmtp.conf +43 -0
  31. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/90-quota.conf +114 -0
  32. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/conf.d/90-sieve.conf +229 -0
  33. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/dovecot-sql.conf.ext +163 -0
  34. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/sieve/learn-ham.sh +2 -0
  35. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/sieve/learn-ham.sieve +5 -0
  36. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/sieve/learn-spam.sh +2 -0
  37. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/sieve/learn-spam.sieve +2 -0
  38. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/dovecot/sieve-after/spam-to-folder.sieve +6 -0
  39. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/haproxy/haproxy.cfg +58 -0
  40. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/monit/conf.d/services.cfg +70 -0
  41. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/monit/monitrc +344 -0
  42. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/opendkim.conf +71 -0
  43. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/main.cf +128 -0
  44. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/master.cf +149 -0
  45. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-sender-login-maps.cf +7 -0
  46. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-virtual-alias-domains.cf +7 -0
  47. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-virtual-alias-maps-domains.cf +7 -0
  48. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-virtual-alias-maps-masters.cf +7 -0
  49. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-virtual-alias-maps-users.cf +7 -0
  50. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-virtual-alias-maps-userstothemselves.cf +7 -0
  51. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-virtual-mailbox-domains.cf +7 -0
  52. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix/mysql-virtual-mailbox-maps.cf +7 -0
  53. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/postfix-policyd-spf-python/policyd-spf.conf +12 -0
  54. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/etc/spamassassin/local.cf +124 -0
  55. data/lib/smart_machine/templates/dotsmartmachine/config/emailer/usr/local/bin/quota-warning.sh +22 -0
  56. data/lib/smart_machine/templates/dotsmartmachine/config/emailer.yml +37 -0
  57. data/lib/smart_machine/templates/dotsmartmachine/config/engine.yml +2 -0
  58. data/lib/smart_machine/templates/dotsmartmachine/config/roundcube/docker/custom-docker-entrypoint.sh +185 -0
  59. data/lib/smart_machine/templates/dotsmartmachine/config/roundcube/docker/entrypoint.rb +58 -0
  60. data/lib/smart_machine/templates/dotsmartmachine/config/roundcube/etc/apache2/sites-available/000-default.conf +36 -0
  61. data/lib/smart_machine/templates/dotsmartmachine/config/roundcube/usr/local/etc/php/conf.d/zzz_roundcube-custom.ini +4 -0
  62. data/lib/smart_machine/templates/dotsmartmachine/config/roundcube/var/roundcube/config/config.custom.inc.php +25 -0
  63. data/lib/smart_machine/templates/dotsmartmachine/config/roundcube/var/www/html/plugins/password/config.inc.php +523 -0
  64. data/lib/smart_machine/templates/dotsmartmachine/config/roundcube.yml +49 -0
  65. data/lib/smart_machine/templates/dotsmartmachine/config/users.yml +1 -1
  66. data/lib/smart_machine/version.rb +2 -2
  67. data/lib/smart_machine.rb +2 -0
  68. metadata +89 -8
@@ -0,0 +1,36 @@
1
+ <VirtualHost *:80>
2
+ # The ServerName directive sets the request scheme, hostname and port that
3
+ # the server uses to identify itself. This is used when creating
4
+ # redirection URLs. In the context of virtual hosts, the ServerName
5
+ # specifies what hostname must appear in the request's Host: header to
6
+ # match this virtual host. For the default virtual host (this file) this
7
+ # value is not decisive as it is used as a last resort host regardless.
8
+ # However, you must set it for any further virtual host explicitly.
9
+ #ServerName www.example.com
10
+
11
+ ServerAdmin webmaster@localhost
12
+ DocumentRoot /var/www/html
13
+
14
+ ServerSignature Off
15
+
16
+ # If you are setting a different request_path other than '/' in roundcube.yml config file,
17
+ # then please uncomment the below line and add that path here as an alias.
18
+ #Alias /your/request/path /var/www/html
19
+ Alias %<roundcubemail_request_path>s /var/www/html
20
+
21
+ # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
22
+ # error, crit, alert, emerg.
23
+ # It is also possible to configure the loglevel for particular
24
+ # modules, e.g.
25
+ #LogLevel info ssl:warn
26
+
27
+ ErrorLog ${APACHE_LOG_DIR}/error.log
28
+ CustomLog ${APACHE_LOG_DIR}/access.log combined
29
+
30
+ # For most configuration files from conf-available/, which are
31
+ # enabled or disabled at a global level, it is possible to
32
+ # include a line for only one particular virtual host. For example the
33
+ # following line enables the CGI configuration for this host only
34
+ # after it has been globally disabled with "a2disconf".
35
+ #Include conf-available/serve-cgi-bin.conf
36
+ </VirtualHost>
@@ -0,0 +1,4 @@
1
+ ; Add custom PHP config here. It will be used when running roundcube.
2
+
3
+ expose_php=Off
4
+ ;memory_limit=128M
@@ -0,0 +1,25 @@
1
+ <?php
2
+
3
+ /**
4
+ * Add custom roundcube config. It will be used when running roundcube.
5
+ */
6
+
7
+ $config['support_url'] = '';
8
+
9
+ $config['skin_logo'] = null;
10
+ /**
11
+ * $config['skin_logo'] = [
12
+ * // show the image /images/logo_login_small.png for the Login screen in the Elastic skin on small screens
13
+ * "elastic:login[small]" => "/images/logo_login_small.png",
14
+ * // show the image /images/logo_login.png for the Login screen in the Elastic skin
15
+ * "elastic:login" => "/images/logo_login.png",
16
+ * // show the image /images/logo_small.png in the Elastic skin
17
+ * "elastic:*[small]" => "/images/logo_small.png",
18
+ * // show the image /images/larry.png in the Larry skin
19
+ * "larry:*" => "/images/larry.png",
20
+ * // show the image /images/logo_login.png on the login template in all skins
21
+ * "login" => "/images/logo_login.png",
22
+ * // show the image /images/logo_print.png for all print type logos in all skins
23
+ * "[print]" => "/images/logo_print.png",
24
+ * ];
25
+ */
@@ -0,0 +1,523 @@
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
+ // A driver to use for checking password strength. Default: null (disabled).
10
+ // See README file for list of supported driver names.
11
+ $config['password_strength_driver'] = null;
12
+
13
+ // Determine whether current password is required to change password.
14
+ // Default: false.
15
+ $config['password_confirm_current'] = true;
16
+
17
+ // Require the new password to be a certain length.
18
+ // set to blank to allow passwords of any length
19
+ //$config['password_minimum_length'] = 8;
20
+ $config['password_minimum_length'] = 12;
21
+
22
+ // Require the new password to have at least the specified strength score.
23
+ // Note: Password strength is scored from 1 (week) to 5 (strong).
24
+ $config['password_minimum_score'] = 0;
25
+
26
+ // Enables logging of password changes into logs/password
27
+ $config['password_log'] = false;
28
+
29
+ // Array of login exceptions for which password change
30
+ // will be not available (no Password tab in Settings)
31
+ $config['password_login_exceptions'] = null;
32
+
33
+ // Array of hosts that support password changing.
34
+ // Listed hosts will feature a Password option in Settings; others will not.
35
+ // Example: ['mail.example.com', 'mail2.example.org'];
36
+ // Default is NULL (all hosts supported).
37
+ $config['password_hosts'] = null;
38
+
39
+ // Enables saving the new password even if it matches the old password. Useful
40
+ // for upgrading the stored passwords after the encryption scheme has changed.
41
+ //$config['password_force_save'] = false;
42
+ $config['password_force_save'] = true;
43
+
44
+ // Enables forcing new users to change their password at their first login.
45
+ $config['password_force_new_user'] = false;
46
+
47
+ // Password hashing/crypting algorithm.
48
+ // Possible options: des-crypt, ext-des-crypt, md5-crypt, blowfish-crypt,
49
+ // sha256-crypt, sha512-crypt, md5, sha, smd5, ssha, ssha256, ssha512, samba, ad, dovecot, clear.
50
+ // Also supported are password_hash() algoriths: hash-bcrypt, hash-argon2i, hash-argon2id.
51
+ // Default: 'clear' (no hashing)
52
+ // For details see password::hash_password() method.
53
+ //$config['password_algorithm'] = 'clear';
54
+ $config['password_algorithm'] = 'dovecot';
55
+
56
+ // Additional options for password hashing function(s).
57
+ // For password_hash()-based passwords see https://www.php.net/manual/en/function.password-hash.php
58
+ // It can be used to set the Blowfish algorithm cost, e.g. ['cost' => 12]
59
+ $config['password_algorithm_options'] = [];
60
+
61
+ // Password prefix (e.g. {CRYPT}, {SHA}) for passwords generated
62
+ // using password_algorithm above. Default: empty.
63
+ $config['password_algorithm_prefix'] = '';
64
+
65
+ // Path for dovecotpw/doveadm-pw (if not in the $PATH).
66
+ // Used for password_algorithm = 'dovecot'.
67
+ // $config['password_dovecotpw'] = '/usr/local/sbin/doveadm pw'; // for dovecot-2.x
68
+ //$config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // for dovecot-1.x
69
+ $config['password_dovecotpw'] = '/usr/bin/doveadm pw';
70
+
71
+ // Dovecot password scheme.
72
+ // Used for password_algorithm = 'dovecot'.
73
+ //$config['password_dovecotpw_method'] = 'CRAM-MD5';
74
+ $config['password_dovecotpw_method'] = 'BLF-CRYPT';
75
+
76
+ // Enables use of password with method prefix, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
77
+ // when using password_algorithm=dovecot
78
+ //$config['password_dovecotpw_with_method'] = false;
79
+ $config['password_dovecotpw_with_method'] = true;
80
+
81
+ // Number of rounds for the sha256 and sha512 crypt hashing algorithms.
82
+ // Must be at least 1000. If not set, then the number of rounds is left up
83
+ // to the crypt() implementation. On glibc this defaults to 5000.
84
+ // Be aware, the higher the value, the longer it takes to generate the password hashes.
85
+ //$config['password_crypt_rounds'] = 50000;
86
+
87
+ // This option temporarily disables the password change functionality.
88
+ // Use it when the users database server is in maintenance mode or something like that.
89
+ // You can set it to TRUE/FALSE or a text describing the reason
90
+ // which will replace the default.
91
+ $config['password_disabled'] = false;
92
+
93
+ // Various drivers/setups use different format of the username.
94
+ // This option allows you to force specified format use. Default: '%u'.
95
+ // Supported variables:
96
+ // %u - full username,
97
+ // %l - the local part of the username (in case the username is an email address)
98
+ // %d - the domain part of the username (in case the username is an email address)
99
+ // Note: This may no apply to some drivers implementing their own rules, e.g. sql.
100
+ $config['password_username_format'] = '%u';
101
+
102
+ // Options passed when creating Guzzle HTTP client, used to access various external APIs.
103
+ // This will overwrite global http_client settings. For example:
104
+ // [
105
+ // 'timeout' => 10,
106
+ // 'proxy' => 'tcp://localhost:8125',
107
+ // ]
108
+ $config['password_http_client'] = [];
109
+
110
+
111
+ // SQL Driver options
112
+ // ------------------
113
+ // PEAR database DSN for performing the query. By default
114
+ // Roundcube DB settings are used.
115
+ // Supported replacement variables:
116
+ // %h - user's IMAP hostname
117
+ // %n - hostname ($_SERVER['SERVER_NAME'])
118
+ // %t - hostname without the first part
119
+ // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
120
+ // %z - IMAP domain (IMAP hostname without the first part)
121
+ //$config['password_db_dsn'] = '';
122
+ $config['password_db_dsn'] = '%<roundcubemail_plugins_password_database_type>s://%<roundcubemail_plugins_password_database_user>s:%<roundcubemail_plugins_password_database_pass>s@%<roundcubemail_plugins_password_database_host>s/%<roundcubemail_plugins_password_database_name>s';
123
+
124
+ // The SQL query used to change the password.
125
+ // The query can contain the following macros that will be expanded as follows:
126
+ // %p is replaced with the plaintext new password
127
+ // %P is replaced with the crypted/hashed new password
128
+ // according to configured password_algorithm
129
+ // %o is replaced with the old (current) password
130
+ // %O is replaced with the crypted/hashed old (current) password
131
+ // according to configured password_algorithm
132
+ // %h is replaced with the imap host (from the session info)
133
+ // %u is replaced with the username (from the session info)
134
+ // %l is replaced with the local part of the username
135
+ // (in case the username is an email address)
136
+ // %d is replaced with the domain part of the username
137
+ // (in case the username is an email address)
138
+ // Escaping of macros is handled by this module.
139
+ // Default: "SELECT update_passwd(%P, %u)"
140
+ //$config['password_query'] = 'SELECT update_passwd(%P, %u)';
141
+ $config['password_query'] = 'UPDATE virtual_users SET password=%P WHERE email=%u';
142
+
143
+ // By default domains in variables are using unicode.
144
+ // Enable this option to use punycoded names
145
+ $config['password_idn_ascii'] = false;
146
+
147
+
148
+ // Poppassd Driver options
149
+ // -----------------------
150
+ // The host which changes the password (default: localhost)
151
+ // Supported replacement variables:
152
+ // %n - hostname ($_SERVER['SERVER_NAME'])
153
+ // %t - hostname without the first part
154
+ // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
155
+ // %h - IMAP host
156
+ // %z - IMAP domain without first part
157
+ // %s - domain name after the '@' from e-mail address provided at login screen
158
+ $config['password_pop_host'] = 'localhost';
159
+
160
+ // TCP port used for poppassd connections (default: 106)
161
+ $config['password_pop_port'] = 106;
162
+
163
+
164
+ // SASL Driver options
165
+ // -------------------
166
+ // Additional arguments for the saslpasswd2 call
167
+ $config['password_saslpasswd_args'] = '';
168
+
169
+
170
+ // LDAP, LDAP_SIMPLE and LDAP_EXOP Driver options
171
+ // -----------------------------------
172
+ // LDAP server name to connect to.
173
+ // You can provide one or several hosts in an array in which case the hosts are tried from left to right.
174
+ // Example: ['ldap1.example.com', 'ldap2.example.com'];
175
+ // Default: 'localhost'
176
+ $config['password_ldap_host'] = 'localhost';
177
+
178
+ // LDAP server port to connect to
179
+ // Default: '389'
180
+ $config['password_ldap_port'] = '389';
181
+
182
+ // TLS is started after connecting
183
+ // Using TLS for password modification is recommended.
184
+ // Default: false
185
+ $config['password_ldap_starttls'] = false;
186
+
187
+ // LDAP version
188
+ // Default: '3'
189
+ $config['password_ldap_version'] = '3';
190
+
191
+ // LDAP base name (root directory)
192
+ // Example: 'dc=example,dc=com'
193
+ $config['password_ldap_basedn'] = 'dc=example,dc=com';
194
+
195
+ // LDAP connection method
196
+ // There are two connection methods for changing a user's LDAP password.
197
+ // 'user': use user credential (recommended, require password_confirm_current=true)
198
+ // 'admin': use admin credential (this mode require password_ldap_adminDN and password_ldap_adminPW)
199
+ // Default: 'user'
200
+ $config['password_ldap_method'] = 'user';
201
+
202
+ // LDAP Admin DN
203
+ // Used only in admin connection mode
204
+ // Default: null
205
+ $config['password_ldap_adminDN'] = null;
206
+
207
+ // LDAP Admin Password
208
+ // Used only in admin connection mode
209
+ // Default: null
210
+ $config['password_ldap_adminPW'] = null;
211
+
212
+ // LDAP user DN mask
213
+ // The user's DN is mandatory and as we only have his login,
214
+ // we need to re-create his DN using a mask
215
+ // '%login' will be replaced by the current roundcube user's login
216
+ // '%name' will be replaced by the current roundcube user's name part
217
+ // '%domain' will be replaced by the current roundcube user's domain part
218
+ // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
219
+ // Example: 'uid=%login,ou=people,dc=example,dc=com'
220
+ $config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=example,dc=com';
221
+
222
+ // LDAP search DN
223
+ // The DN roundcube should bind with to find out user's DN
224
+ // based on his login. Note that you should comment out the default
225
+ // password_ldap_userDN_mask setting for this to take effect.
226
+ // Use this if you cannot specify a general template for user DN with
227
+ // password_ldap_userDN_mask. You need to perform a search based on
228
+ // users login to find his DN instead. A common reason might be that
229
+ // your users are placed under different ou's like engineering or
230
+ // sales which cannot be derived from their login only.
231
+ $config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com';
232
+
233
+ // LDAP search password
234
+ // If password_ldap_searchDN is set, the password to use for
235
+ // binding to search for user's DN. Note that you should comment out the default
236
+ // password_ldap_userDN_mask setting for this to take effect.
237
+ // Warning: Be sure to set appropriate permissions on this file so this password
238
+ // is only accessible to roundcube and don't forget to restrict roundcube's access to
239
+ // your directory as much as possible using ACLs. Should this password be compromised
240
+ // you want to minimize the damage.
241
+ $config['password_ldap_searchPW'] = 'secret';
242
+
243
+ // LDAP search base
244
+ // If password_ldap_searchDN is set, the base to search in using the filter below.
245
+ // Note that you should comment out the default password_ldap_userDN_mask setting
246
+ // for this to take effect.
247
+ $config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com';
248
+
249
+ // LDAP search filter
250
+ // If password_ldap_searchDN is set, the filter to use when
251
+ // searching for user's DN. Note that you should comment out the default
252
+ // password_ldap_userDN_mask setting for this to take effect.
253
+ // '%login' will be replaced by the current roundcube user's login
254
+ // '%name' will be replaced by the current roundcube user's name part
255
+ // '%domain' will be replaced by the current roundcube user's domain part
256
+ // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
257
+ // Example: '(uid=%login)'
258
+ // Example: '(&(objectClass=posixAccount)(uid=%login))'
259
+ $config['password_ldap_search_filter'] = '(uid=%login)';
260
+
261
+ // LDAP password hash type
262
+ // Standard LDAP encryption type which must be one of: crypt,
263
+ // ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad, cram-md5 (dovecot style) or clear.
264
+ // Set to 'default' if you want to use method specified in password_algorithm option above.
265
+ // Multiple password Values can be generated by concatenating encodings with a +. E.g. 'cram-md5+crypt'
266
+ // Default: 'crypt'.
267
+ $config['password_ldap_encodage'] = 'crypt';
268
+
269
+ // LDAP password attribute
270
+ // Name of the ldap's attribute used for storing user password
271
+ // Default: 'userPassword'
272
+ $config['password_ldap_pwattr'] = 'userPassword';
273
+
274
+ // LDAP password force replace
275
+ // Force LDAP replace in cases where ACL allows only replace not read
276
+ // See http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace
277
+ // Default: true
278
+ $config['password_ldap_force_replace'] = true;
279
+
280
+ // LDAP Password Last Change Date
281
+ // Some places use an attribute to store the date of the last password change
282
+ // The date is measured in "days since epoch" (an integer value)
283
+ // Whenever the password is changed, the attribute will be updated if set (e.g. shadowLastChange)
284
+ $config['password_ldap_lchattr'] = '';
285
+
286
+ // LDAP Samba password attribute, e.g. sambaNTPassword
287
+ // Name of the LDAP's Samba attribute used for storing user password
288
+ $config['password_ldap_samba_pwattr'] = '';
289
+
290
+ // LDAP Samba Password Last Change Date attribute, e.g. sambaPwdLastSet
291
+ // Some places use an attribute to store the date of the last password change
292
+ // The date is measured in "seconds since epoch" (an integer value)
293
+ // Whenever the password is changed, the attribute will be updated if set
294
+ $config['password_ldap_samba_lchattr'] = '';
295
+
296
+ // LDAP PPolicy Driver options
297
+ // -----------------------------------
298
+
299
+ // LDAP Change password command - filename of the perl script
300
+ // Example: 'change_ldap_pass.pl'
301
+ $config['password_ldap_ppolicy_cmd'] = 'change_ldap_pass.pl';
302
+
303
+ // LDAP URI
304
+ // Example: 'ldap://ldap.example.com/ ldaps://ldap2.example.com:636/'
305
+ $config['password_ldap_ppolicy_uri'] = 'ldap://localhost/';
306
+
307
+ // LDAP base name (root directory)
308
+ // Example: 'dc=example,dc=com'
309
+ $config['password_ldap_ppolicy_basedn'] = 'dc=example,dc=com';
310
+
311
+ $config['password_ldap_ppolicy_searchDN'] = 'cn=someuser,dc=example,dc=com';
312
+
313
+ $config['password_ldap_ppolicy_searchPW'] = 'secret';
314
+
315
+ // LDAP search filter
316
+ // Example: '(uid=%login)'
317
+ // Example: '(&(objectClass=posixAccount)(uid=%login))'
318
+ $config['password_ldap_ppolicy_search_filter'] = '(uid=%login)';
319
+
320
+ // CA Certificate file if in URI is LDAPS connection
321
+ $config['password_ldap_ppolicy_cafile'] = '/etc/ssl/cacert.crt';
322
+
323
+
324
+
325
+ // DirectAdmin Driver options
326
+ // --------------------------
327
+ // The host which changes the password
328
+ // Use 'ssl://host' instead of 'tcp://host' when running DirectAdmin over SSL.
329
+ // The host can contain the following macros that will be expanded as follows:
330
+ // %h is replaced with the imap host (from the session info)
331
+ // %d is replaced with the domain part of the username (if the username is an email)
332
+ $config['password_directadmin_host'] = 'tcp://localhost';
333
+
334
+ // TCP port used for DirectAdmin connections
335
+ $config['password_directadmin_port'] = 2222;
336
+
337
+
338
+ // vpopmaild Driver options
339
+ // -----------------------
340
+ // The host which changes the password
341
+ $config['password_vpopmaild_host'] = 'localhost';
342
+
343
+ // TCP port used for vpopmaild connections
344
+ $config['password_vpopmaild_port'] = 89;
345
+
346
+ // Timeout used for the connection to vpopmaild (in seconds)
347
+ $config['password_vpopmaild_timeout'] = 10;
348
+
349
+
350
+ // cPanel Driver options
351
+ // ---------------------
352
+ // The cPanel Host name
353
+ $config['password_cpanel_host'] = 'host.domain.com';
354
+
355
+ // The cPanel port to use
356
+ $config['password_cpanel_port'] = 2096;
357
+
358
+
359
+ // XIMSS (Communigate server) Driver options
360
+ // -----------------------------------------
361
+ // Host name of the Communigate server
362
+ $config['password_ximss_host'] = 'mail.example.com';
363
+
364
+ // XIMSS port on Communigate server
365
+ $config['password_ximss_port'] = 11024;
366
+
367
+
368
+ // chpasswd Driver options
369
+ // ---------------------
370
+ // Command to use (see "Sudo setup" in README)
371
+ $config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null';
372
+
373
+
374
+ // XMail Driver options
375
+ // ---------------------
376
+ $config['xmail_host'] = 'localhost';
377
+ $config['xmail_user'] = 'YourXmailControlUser';
378
+ $config['xmail_pass'] = 'YourXmailControlPass';
379
+ $config['xmail_port'] = 6017;
380
+
381
+
382
+ // hMail Driver options
383
+ // -----------------------
384
+ // Remote hMailServer configuration
385
+ // true: HMailserver is on a remote box (php.ini: com.allow_dcom = true)
386
+ // false: Hmailserver is on same box as PHP
387
+ $config['hmailserver_remote_dcom'] = false;
388
+ // Windows credentials
389
+ $config['hmailserver_server'] = [
390
+ 'Server' => 'localhost', // hostname or ip address
391
+ 'Username' => 'administrator', // windows username
392
+ 'Password' => 'password' // windows user password
393
+ ];
394
+
395
+
396
+ // pw_usermod Driver options
397
+ // --------------------------
398
+ // Use comma delimited exlist to disable password change for users.
399
+ // See "Sudo setup" in README file.
400
+ $config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n';
401
+
402
+
403
+ // DBMail Driver options
404
+ // -------------------
405
+ // Additional arguments for the dbmail-users call
406
+ $config['password_dbmail_args'] = '-p sha512';
407
+
408
+
409
+ // Expect Driver options
410
+ // ---------------------
411
+ // Location of expect binary
412
+ $config['password_expect_bin'] = '/usr/bin/expect';
413
+
414
+ // Location of expect script (see helpers/passwd-expect)
415
+ $config['password_expect_script'] = '';
416
+
417
+ // Arguments for the expect script. See the helpers/passwd-expect file for details.
418
+ // This is probably a good starting default:
419
+ // -telnet -host localhost -output /tmp/passwd.log -log /tmp/passwd.log
420
+ $config['password_expect_params'] = '';
421
+
422
+
423
+ // smb Driver options
424
+ // ---------------------
425
+ // Samba host (default: localhost)
426
+ // Supported replacement variables:
427
+ // %n - hostname ($_SERVER['SERVER_NAME'])
428
+ // %t - hostname without the first part
429
+ // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
430
+ $config['password_smb_host'] = 'localhost';
431
+ // Location of smbpasswd binary (default: /usr/bin/smbpasswd)
432
+ $config['password_smb_cmd'] = '/usr/bin/smbpasswd';
433
+
434
+ // gearman driver options
435
+ // ---------------------
436
+ // Gearman host (default: localhost)
437
+ $config['password_gearman_host'] = 'localhost';
438
+
439
+
440
+ // Plesk/PPA Driver options
441
+ // --------------------
442
+ // You need to allow RCP for IP of roundcube-server in Plesk/PPA Panel
443
+
444
+ // Plesk RCP Host
445
+ $config['password_plesk_host'] = '10.0.0.5';
446
+
447
+ // Plesk RPC Username
448
+ $config['password_plesk_user'] = 'admin';
449
+
450
+ // Plesk RPC Password
451
+ $config['password_plesk_pass'] = 'password';
452
+
453
+ // Plesk RPC Port
454
+ $config['password_plesk_rpc_port'] = '8443';
455
+
456
+ // Plesk RPC Path
457
+ $config['password_plesk_rpc_path'] = 'enterprise/control/agent.php';
458
+
459
+
460
+ // kpasswd Driver options
461
+ // ---------------------
462
+ // Command to use
463
+ $config['password_kpasswd_cmd'] = '/usr/bin/kpasswd';
464
+
465
+
466
+ // Modoboa Driver options
467
+ // ---------------------
468
+ // put token number from Modoboa server
469
+ $config['password_modoboa_api_token'] = '';
470
+
471
+
472
+ // Mail-in-a-Box Driver options
473
+ // ----------------------------
474
+ // the url to the control panel of Mail-in-a-Box, e.g. https://box.example.com/admin/
475
+ $config['password_miab_url'] = '';
476
+ // name (email) of the admin user used to access api
477
+ $config['password_miab_user'] = '';
478
+ // password of the admin user used to access api
479
+ $config['password_miab_pass'] = '';
480
+
481
+
482
+ // TinyCP
483
+ // --------------
484
+ // TinyCP host, port, user and pass.
485
+ $config['password_tinycp_host'] = '';
486
+ $config['password_tinycp_port'] = '';
487
+ $config['password_tinycp_user'] = '';
488
+ $config['password_tinycp_pass'] = '';
489
+
490
+ // HTTP-API Driver options
491
+ // ---------------------
492
+
493
+ // Base URL of password change API. HTTPS recommended.
494
+ $config['password_httpapi_url'] = 'https://passwordserver.example.org';
495
+
496
+ // Method (also affects how vars are sent). Default: POST.
497
+ // GET is not recommended as passwords will appears in the remote webserver's access log
498
+ $config['password_httpapi_method'] = 'POST';
499
+
500
+ // GET or POST variable in which to put the username
501
+ $config['password_httpapi_var_user'] = 'user';
502
+
503
+ // GET or POST variable in which to put the current password
504
+ $config['password_httpapi_var_curpass'] = 'curpass';
505
+
506
+ // GET or POST variable in which to put the new password
507
+ $config['password_httpapi_var_newpass'] = 'newpass';
508
+
509
+ // HTTP codes other than 2xx are assumed to mean the password changed failed.
510
+ // Optionally, if set, this variable additionally checks the body of the 2xx response to
511
+ // confirm the change. It's a preg_match regular expression.
512
+ $config['password_httpapi_expect'] = '/^ok$/i';
513
+
514
+
515
+ // dovecot_passwdfile
516
+ // ------------------
517
+ $config['password_dovecot_passwdfile_path'] = '/etc/mail/imap.passwd';
518
+
519
+
520
+ // Mailcow driver options
521
+ // ----------------------
522
+ $config['password_mailcow_api_host'] = 'localhost';
523
+ $config['password_mailcow_api_token'] = '';
@@ -0,0 +1,49 @@
1
+ roundcubeone:
2
+ fqdn: "yourroundcubeone.yourdomain.com"
3
+ sysadmin_email: "adminname@yourdomain.com"
4
+ networks: ["mysqlone-network"]
5
+ database_type: "mysql"
6
+ database_host: mysqlone
7
+ database_port: 3306
8
+ database_user: <%= SmartMachine.credentials.dig(:roundcubeone, :database_user) %>
9
+ database_pass: <%= SmartMachine.credentials.dig(:roundcubeone, :database_pass) %>
10
+ database_name: <%= SmartMachine.credentials.dig(:roundcubeone, :database_name) %>
11
+ mail_host: "ssl://youremailerone.yourdomain.com"
12
+ mail_port: 993
13
+ smtp_host: "tls://youremailerone.yourdomain.com"
14
+ smtp_port: 587
15
+ request_path: "/"
16
+ plugins: ["password", "managesieve", "archive", "zipdownload"]
17
+ plugins_password_database_type: "mysql"
18
+ plugins_password_database_host: mysqlone
19
+ plugins_password_database_user: <%= SmartMachine.credentials.dig(:emailerone, :mysql_user) %>
20
+ plugins_password_database_pass: <%= SmartMachine.credentials.dig(:emailerone, :mysql_password) %>
21
+ plugins_password_database_name: <%= SmartMachine.credentials.dig(:emailerone, :mysql_database_name) %>
22
+ skin: "elastic"
23
+ upload_max_filesize: "5M"
24
+ aspell_dictionaries: ["en"]
25
+
26
+ # roundcubetwo:
27
+ # fqdn: "yourroundcubetwo.yourdomain.com"
28
+ # sysadmin_email: "adminname@yourdomain.com"
29
+ # networks: ["mysqlone-network"]
30
+ # database_type: "mysql"
31
+ # database_host: mysqlone
32
+ # database_port: 3306
33
+ # database_user: <%= SmartMachine.credentials.dig(:roundcubetwo, :database_user) %>
34
+ # database_pass: <%= SmartMachine.credentials.dig(:roundcubetwo, :database_pass) %>
35
+ # database_name: <%= SmartMachine.credentials.dig(:roundcubetwo, :database_name) %>
36
+ # mail_host: "ssl://youremailertwo.yourdomain.com"
37
+ # mail_port: 993
38
+ # smtp_host: "tls://youremailertwo.yourdomain.com"
39
+ # smtp_port: 587
40
+ # request_path: "/"
41
+ # plugins: ["password", "managesieve", "archive", "zipdownload"]
42
+ # plugins_password_database_type: "mysql"
43
+ # plugins_password_database_host: mysqlone
44
+ # plugins_password_database_user: <%= SmartMachine.credentials.dig(:emailertwo, :mysql_user) %>
45
+ # plugins_password_database_pass: <%= SmartMachine.credentials.dig(:emailertwo, :mysql_password) %>
46
+ # plugins_password_database_name: <%= SmartMachine.credentials.dig(:emailertwo, :mysql_database_name) %>
47
+ # skin: "elastic"
48
+ # upload_max_filesize: "5M"
49
+ # aspell_dictionaries: ["en"]
@@ -1,4 +1,4 @@
1
1
  # The username and password will be used by nginx to provide htpasswd based authentication for each of the domains specified.
2
2
 
3
- git.yourdomain.com:
3
+ gitone.yourdomain.com:
4
4
  yourname@yourdomain.com: yourpassword
@@ -16,8 +16,8 @@ module SmartMachine
16
16
 
17
17
  module VERSION
18
18
  MAJOR = 1
19
- MINOR = 2
20
- TINY = 3
19
+ MINOR = 3
20
+ TINY = 1
21
21
  PRE = nil
22
22
 
23
23
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")