metadata.rb 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. name 'dovecot'
  2. maintainer 'Onddo Labs, Sl.'
  3. maintainer_email 'team@onddo.com'
  4. license 'Apache 2.0'
  5. description 'Installs and configures dovecot.'
  6. long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
  7. version '0.1.0'
  8. supports 'centos', '>= 6.0'
  9. supports 'debian', '>= 7.0'
  10. supports 'ubuntu', '>= 12.04'
  11. attribute 'dovecot/user',
  12. :display_name => 'dovecot user',
  13. :description => 'Dovector system user. Should no be changed.',
  14. :type => 'string',
  15. :required => 'optional',
  16. :default => 'dovecot'
  17. attribute 'dovecot/group',
  18. :display_name => 'dovecot group',
  19. :description => 'Dovector system group. Should no be changed.',
  20. :type => 'string',
  21. :required => 'optional',
  22. :default => 'dovecot'
  23. attribute 'dovecot/lib_path',
  24. :display_name => 'dovecot library path',
  25. :description => 'Dovector library path. Should no be changed.',
  26. :calculated => true,
  27. :type => 'string',
  28. :required => 'optional'
  29. attribute 'dovecot/conf_path',
  30. :display_name => 'dovecot configuration path',
  31. :description => 'Dovector configruration files path. Should no be changed.',
  32. :type => 'string',
  33. :required => 'optional',
  34. :default => '/etc/dovecot'
  35. attribute 'dovecot/conf_files_user',
  36. :display_name => 'dovecot configuration files user',
  37. :description => 'System user owner of configuration files.',
  38. :type => 'string',
  39. :required => 'optional',
  40. :default => 'root'
  41. attribute 'dovecot/conf_files_group',
  42. :display_name => 'dovecot configuration files group',
  43. :description => 'System group owner of configuration files.',
  44. :type => 'string',
  45. :required => 'optional',
  46. :default => 'node["dovecot"]["group"]'
  47. attribute 'dovecot/conf_files_mode',
  48. :display_name => 'dovecot configuration files mode',
  49. :description => 'Configuration files system file mode bits.',
  50. :type => 'string',
  51. :required => 'optional',
  52. :default => '00644'
  53. attribute 'dovecot/conf_files/core',
  54. :display_name => 'dovecot core configuration files',
  55. :description => 'Dovecot core configuration files list.',
  56. :type => 'array',
  57. :required => 'optional',
  58. :default => [
  59. 'conf.d/10-auth.conf',
  60. 'conf.d/10-director.conf',
  61. 'conf.d/10-logging.conf',
  62. 'conf.d/10-mail.conf',
  63. 'conf.d/10-master.conf',
  64. 'conf.d/10-ssl.conf',
  65. 'conf.d/10-tcpwrapper.conf',
  66. 'conf.d/15-lda.conf',
  67. 'conf.d/15-mailboxes.conf',
  68. 'conf.d/90-acl.conf',
  69. 'conf.d/90-plugin.conf',
  70. 'conf.d/90-quota.conf',
  71. 'conf.d/auth-checkpassword.conf.ext',
  72. 'conf.d/auth-deny.conf.ext',
  73. 'conf.d/auth-master.conf.ext',
  74. 'conf.d/auth-passwdfile.conf.ext',
  75. 'conf.d/auth-sql.conf.ext',
  76. 'conf.d/auth-static.conf.ext',
  77. 'conf.d/auth-system.conf.ext',
  78. 'conf.d/auth-vpopmail.conf.ext',
  79. 'dovecot.conf',
  80. 'dovecot-db.conf.ext',
  81. 'dovecot-dict-sql.conf.ext',
  82. 'dovecot-sql.conf.ext',
  83. ]
  84. attribute 'dovecot/conf_files/imap',
  85. :display_name => 'dovecot imap configuration files',
  86. :description => 'Dovecot IMAP configuration files list.',
  87. :type => 'array',
  88. :required => 'optional',
  89. :default => [
  90. 'conf.d/20-imap.conf',
  91. ]
  92. attribute 'dovecot/conf_files/pop3',
  93. :display_name => 'dovecot pop3 configuration files',
  94. :description => 'Dovecot POP3 configuration files list.',
  95. :type => 'array',
  96. :required => 'optional',
  97. :default => [
  98. 'conf.d/20-pop3.conf',
  99. ]
  100. attribute 'dovecot/conf_files/lmtp',
  101. :display_name => 'dovecot lmtp configuration files',
  102. :description => 'Dovecot LMTP configuration files list.',
  103. :type => 'array',
  104. :required => 'optional',
  105. :default => [
  106. 'conf.d/20-lmtp.conf',
  107. ]
  108. attribute 'dovecot/conf_files/sieve',
  109. :display_name => 'dovecot sieve configuration files',
  110. :description => 'Dovecot Sieve configuration files list.',
  111. :type => 'array',
  112. :required => 'optional',
  113. :default => [
  114. 'conf.d/20-managesieve.conf',
  115. 'conf.d/90-sieve.conf',
  116. ]
  117. attribute 'dovecot/conf_files/ldap',
  118. :display_name => 'dovecot ldap configuration files',
  119. :description => 'Dovecot LDAP configuration files list.',
  120. :type => 'array',
  121. :required => 'optional',
  122. :default => [
  123. 'dovecot-ldap.conf.ext',
  124. 'conf.d/auth-ldap.conf.ext',
  125. ]
  126. attribute 'dovecot/auth',
  127. :display_name => 'dovecot auth',
  128. :description => 'Dovecot Authentication Databases as a hash of hashes. Supported authdbs: checkpassword, deny, ldap, master, passwdfile, sql, system and vpopmail.',
  129. :type => 'string',
  130. :required => 'optional',
  131. :default => '{}'
  132. attribute 'dovecot/namespaces',
  133. :display_name => 'dovecot namespaces',
  134. :description => 'Dovecot Namespaces as an array of hashes.',
  135. :type => 'array',
  136. :required => 'optional',
  137. :default => []
  138. attribute 'dovecot/plugins',
  139. :display_name => 'dovecot plugins',
  140. :description => 'Dovecot Plugins configuration as a hash of hashes. Supported plugins: mail_log, acl and quota.',
  141. :type => 'string',
  142. :required => 'optional',
  143. :default => '{
  144. "sieve" => {
  145. "sieve" => "~/.dovecot.sieve",
  146. "sieve_dir" => "~/sieve",
  147. }
  148. }'
  149. attribute 'dovecot/protocolos',
  150. :display_name => 'dovecot protocols',
  151. :description => 'Dovecot Protocols configuration as a hash of hashes. Supported protocols: lda, imap, lmtp, sieve and pop3.',
  152. :type => 'string',
  153. :required => 'optional',
  154. :default => '{}'
  155. attribute 'dovecot/services',
  156. :display_name => 'dovecot services',
  157. :description => 'Dovecot Services configuration as a hash of hashes. Supported services: director, imap-login, pop3-login, lmtp, imap, pop3, auth, auth-worker, dict, tcpwrap, managesieve-login and managesieve.',
  158. :type => 'string',
  159. :required => 'optional',
  160. :default => '{}'
  161. grouping 'dovecot/conf',
  162. :title => 'dovecot conf',
  163. :description => 'Dovecot configuration values'
  164. attribute 'dovecot/conf/mail_plugins',
  165. :display_name => 'dovecot mail plugins',
  166. :description => 'Dovecot default enabled mail_plugins.',
  167. :type => 'array',
  168. :required => 'optional',
  169. :default => []
  170. #
  171. # dovecot.conf
  172. #
  173. attribute 'dovecot/conf/listen',
  174. :display_name => 'listen',
  175. :description => 'A comma separated list of IPs or hosts where to listen in for connections.',
  176. :type => 'string',
  177. :required => 'optional',
  178. :default => 'nil'
  179. attribute 'dovecot/conf/base_dir',
  180. :display_name => 'dovecot base dir',
  181. :description => 'Base directory where to store runtime data.',
  182. :type => 'string',
  183. :required => 'optional',
  184. :default => 'nil'
  185. attribute 'dovecot/conf/instance_name',
  186. :display_name => 'instance name',
  187. :description => 'Name of this instance. Used to prefix all Dovecot processes in ps output.',
  188. :type => 'string',
  189. :required => 'optional',
  190. :default => 'nil'
  191. attribute 'dovecot/conf/login_greeting',
  192. :display_name => 'login greeting',
  193. :description => 'Greeting message for clients.',
  194. :type => 'string',
  195. :required => 'optional',
  196. :default => 'nil'
  197. attribute 'dovecot/conf/login_trusted_networks',
  198. :display_name => 'login trusted networks',
  199. :description => 'Space separated list of trusted network ranges.',
  200. :type => 'string',
  201. :required => 'optional',
  202. :default => 'nil'
  203. attribute 'dovecot/conf/login_access_sockets',
  204. :display_name => 'login access sockets',
  205. :description => 'Space separated list of login access check sockets.',
  206. :type => 'string',
  207. :required => 'optional',
  208. :default => 'nil'
  209. attribute 'dovecot/conf/verbose_proctitle',
  210. :display_name => 'verbose proctitle',
  211. :description => 'Show more verbose process titles (in ps).',
  212. :type => 'string',
  213. :required => 'optional',
  214. :default => 'nil'
  215. attribute 'dovecot/conf/shutdown_clients',
  216. :display_name => 'shutdown clients',
  217. :description => 'Should all processes be killed when Dovecot master process shuts down.',
  218. :type => 'string',
  219. :required => 'optional',
  220. :default => 'nil'
  221. attribute 'dovecot/conf/doveadm_worker_count',
  222. :display_name => 'doveadm worker count',
  223. :description => 'If non-zero, run mail commands via this many connections to doveadm server.',
  224. :type => 'string',
  225. :required => 'optional',
  226. :default => 'nil'
  227. attribute 'dovecot/conf/doveadm_socket_path',
  228. :display_name => 'doveadm socket path',
  229. :description => 'UNIX socket or host:port used for connecting to doveadm server.',
  230. :type => 'string',
  231. :required => 'optional',
  232. :default => 'nil'
  233. attribute 'dovecot/conf/import_environment',
  234. :display_name => 'import environment',
  235. :description => 'Space separated list of environment variables that are preserved on Dovecot startup and his childs.',
  236. :type => 'string',
  237. :required => 'optional',
  238. :default => 'nil'
  239. attribute 'dovecot/conf/dict',
  240. :display_name => 'dict',
  241. :description => 'Dictionary server settings as a hash.',
  242. :type => 'string',
  243. :required => 'optional',
  244. :default => 'nil'
  245. #
  246. # conf.d/10-auth.conf
  247. #
  248. attribute 'dovecot/conf/disable_plaintext_auth',
  249. :display_name => 'disable plaintext auth',
  250. :description => 'Disable LOGIN command and all other plaintext authentications unless SSL/TLS is used.',
  251. :type => 'string',
  252. :required => 'optional',
  253. :default => 'nil'
  254. attribute 'dovecot/conf/auth_cache_size',
  255. :display_name => 'auth cache size',
  256. :description => 'Authentication cache size (e.g. 10M). 0 means it\'s disabled.',
  257. :type => 'string',
  258. :required => 'optional',
  259. :default => 'nil'
  260. attribute 'dovecot/conf/auth_cache_ttl',
  261. :display_name => 'auth cache ttl',
  262. :description => 'Time to live for cached data.',
  263. :type => 'string',
  264. :required => 'optional',
  265. :default => 'nil'
  266. attribute 'dovecot/conf/auth_cache_negative_ttl',
  267. :display_name => 'auth cache negative ttl',
  268. :description => 'TTL for negative hits (user not found, password mismatch).',
  269. :type => 'string',
  270. :required => 'optional',
  271. :default => 'nil'
  272. attribute 'dovecot/conf/auth_realms',
  273. :display_name => 'disable plaintext auth',
  274. :description => 'Space separated list (or array) of realms for SASL authentication mechanisms that need them.',
  275. :type => 'string',
  276. :required => 'optional',
  277. :default => 'nil'
  278. attribute 'dovecot/conf/auth_default_realm',
  279. :display_name => 'auth default realm',
  280. :description => 'Default realm/domain to use if none was specified.',
  281. :type => 'string',
  282. :required => 'optional',
  283. :default => 'nil'
  284. attribute 'dovecot/conf/auth_username_chars',
  285. :display_name => 'auth username chars',
  286. :description => 'List of allowed characters in username.',
  287. :type => 'string',
  288. :required => 'optional',
  289. :default => 'nil'
  290. attribute 'dovecot/conf/auth_username_translation',
  291. :display_name => 'auth username translation',
  292. :description => 'Username character translations before it\'s looked up from databases.',
  293. :type => 'string',
  294. :required => 'optional',
  295. :default => 'nil'
  296. attribute 'dovecot/conf/auth_username_format',
  297. :display_name => 'auth username format',
  298. :description => 'Username formatting before it\'s looked up from databases.',
  299. :type => 'string',
  300. :required => 'optional',
  301. :default => 'nil'
  302. attribute 'dovecot/conf/auth_master_user_separator',
  303. :display_name => 'auth master user separator',
  304. :description => 'If you want to allow master users to log in by specifying the master username within the normal username string, you can specify the separator character here (format: <username><separator><master username>).',
  305. :type => 'string',
  306. :required => 'optional',
  307. :default => 'nil'
  308. attribute 'dovecot/conf/auth_anonymous_username',
  309. :display_name => 'auth anonymous username',
  310. :description => 'Username to use for users logging in with ANONYMOUS SASL mechanism',
  311. :type => 'string',
  312. :required => 'optional',
  313. :default => 'nil'
  314. attribute 'dovecot/conf/auth_worker_max_count',
  315. :display_name => 'auth worker max count',
  316. :description => 'Maximum number of dovecot-auth worker processes.',
  317. :type => 'string',
  318. :required => 'optional',
  319. :default => 'nil'
  320. attribute 'dovecot/conf/auth_gssapi_hostname',
  321. :display_name => 'auth gssapi hostname',
  322. :description => 'Host name to use in GSSAPI principal names.',
  323. :type => 'string',
  324. :required => 'optional',
  325. :default => 'nil'
  326. attribute 'dovecot/conf/auth_krb5_keytab',
  327. :display_name => 'auth krb5 keytab',
  328. :description => 'Kerberos keytab to use for the GSSAPI mechanism.',
  329. :type => 'string',
  330. :required => 'optional',
  331. :default => 'nil'
  332. attribute 'dovecot/conf/auth_use_winbind',
  333. :display_name => 'auth use winbind',
  334. :description => 'Do NTLM and GSS-SPNEGO authentication using Samba\'s winbind daemon and ntlm_auth helper.',
  335. :type => 'string',
  336. :required => 'optional',
  337. :default => 'nil'
  338. attribute 'dovecot/conf/auth_winbind_helper_path',
  339. :display_name => 'auth winbind helper path',
  340. :description => 'Path for Samba\'s ntlm_auth helper binary.',
  341. :type => 'string',
  342. :required => 'optional',
  343. :default => 'nil'
  344. attribute 'dovecot/conf/auth_failure_delay',
  345. :display_name => 'auth failure delay',
  346. :description => 'Time to delay before replying to failed authentications.',
  347. :type => 'string',
  348. :required => 'optional',
  349. :default => 'nil'
  350. #
  351. # conf.d/10-director.conf
  352. #
  353. attribute 'dovecot/conf/director_servers',
  354. :display_name => 'director servers',
  355. :description => 'List of IPs or hostnames to all director servers, including ourself (as a string or as an array). Ports can be specified as ip:port. The default port is the same as what director service\'s inet_listener is using.',
  356. :type => 'string',
  357. :required => 'optional',
  358. :default => 'nil'
  359. attribute 'dovecot/conf/director_mail_servers',
  360. :display_name => 'director mail servers',
  361. :description => 'List of IPs or hostnames to all backend mail servers. Ranges are allowed too, like 10.0.0.10-10.0.0.30.',
  362. :type => 'string',
  363. :required => 'optional',
  364. :default => 'nil'
  365. attribute 'dovecot/conf/director_user_expire',
  366. :display_name => 'director_user_expire',
  367. :description => 'How long to redirect users to a specific server after it no longer has any connections.',
  368. :type => 'string',
  369. :required => 'optional',
  370. :default => 'nil'
  371. attribute 'dovecot/conf/director_doveadm_port',
  372. :display_name => 'director doveadm port',
  373. :description => 'TCP/IP port that accepts doveadm connections (instead of director connections). If you enable this, you\'ll also need to add inet_listener for the port.',
  374. :type => 'string',
  375. :required => 'optional',
  376. :default => 'nil'
  377. #
  378. # conf.d/10-logging.conf
  379. #
  380. attribute 'dovecot/conf/log_path',
  381. :display_name => 'path',
  382. :description => 'Log file to use for error messages. "syslog" logs to syslog, /dev/stderr logs to stderr.',
  383. :type => 'string',
  384. :required => 'optional',
  385. :default => 'nil'
  386. attribute 'dovecot/conf/info_log_path',
  387. :display_name => 'info log path',
  388. :description => 'Log file to use for informational messages. Defaults to log_path.',
  389. :type => 'string',
  390. :required => 'optional',
  391. :default => 'nil'
  392. attribute 'dovecot/conf/debug_log_path',
  393. :display_name => 'debug log path',
  394. :description => 'Log file to use for debug messages. Defaults to info_log_path.',
  395. :type => 'string',
  396. :required => 'optional',
  397. :default => 'nil'
  398. attribute 'dovecot/conf/syslog_facility',
  399. :display_name => 'syslog facility',
  400. :description => 'Syslog facility to use if you\'re logging to syslog. Usually if you don\'t want to use "mail", you\'ll use local0..local7. Also other standard facilities are supported.',
  401. :type => 'string',
  402. :required => 'optional',
  403. :default => 'nil'
  404. attribute 'dovecot/conf/auth_verbose',
  405. :display_name => 'auth verbose',
  406. :description => 'Log unsuccessful authentication attempts and the reasons why they failed.',
  407. :type => 'string',
  408. :required => 'optional',
  409. :default => 'nil'
  410. attribute 'dovecot/conf/auth_verbose_passwords',
  411. :display_name => 'auth verbose passwords',
  412. :description => 'In case of password mismatches, log the attempted password. Valid values are no, plain and sha1. sha1 can be useful for detecting brute force password attempts vs. user simply trying the same password over and over again.',
  413. :type => 'string',
  414. :required => 'optional',
  415. :default => 'nil'
  416. attribute 'dovecot/conf/auth_debug',
  417. :display_name => 'auth debug',
  418. :description => 'Even more verbose logging for debugging purposes. Shows for example SQL queries.',
  419. :type => 'string',
  420. :required => 'optional',
  421. :default => 'nil'
  422. attribute 'dovecot/conf/auth_debug_passwords',
  423. :display_name => 'auth debug passwords',
  424. :description => 'In case of password mismatches, log the passwords and used scheme so the problem can be debugged. Enabling this also enables auth_debug.',
  425. :type => 'string',
  426. :required => 'optional',
  427. :default => 'nil'
  428. attribute 'dovecot/conf/mail_debug',
  429. :display_name => 'mail debug',
  430. :description => 'Enable mail process debugging. This can help you figure out why Dovecot isn\'t finding your mails.',
  431. :type => 'string',
  432. :required => 'optional',
  433. :default => 'nil'
  434. attribute 'dovecot/conf/verbose_ssl',
  435. :display_name => 'verbose ssl',
  436. :description => 'Show protocol level SSL errors.',
  437. :type => 'string',
  438. :required => 'optional',
  439. :default => 'nil'
  440. attribute 'dovecot/conf/log_timestamp',
  441. :display_name => 'log timestamp',
  442. :description => 'Prefix for each line written to log file. % codes are in strftime(3) format.',
  443. :type => 'string',
  444. :required => 'optional',
  445. :default => 'nil'
  446. attribute 'dovecot/conf/login_log_format_elements',
  447. :display_name => 'login log format elements',
  448. :description => 'Space-separated list of elements we want to log. The elements which have a non-empty variable value are joined together to form a comma-separated string.',
  449. :type => 'string',
  450. :required => 'optional',
  451. :default => 'nil'
  452. attribute 'dovecot/conf/login_log_format',
  453. :display_name => 'login log format',
  454. :description => 'Login log format. %$ contains login_log_format_elements string, %s contains the data we want to log.',
  455. :type => 'string',
  456. :required => 'optional',
  457. :default => 'nil'
  458. attribute 'dovecot/conf/mail_log_prefix',
  459. :display_name => 'mail log prefix',
  460. :description => 'Log prefix for mail processes. See doc/wiki/Variables.txt for list of possible variables you can use.',
  461. :type => 'string',
  462. :required => 'optional',
  463. :default => 'nil'
  464. attribute 'dovecot/conf/deliver_log_format',
  465. :display_name => 'deliver log format',
  466. :description => 'Format to use for logging mail deliveries. You can use variables: %$ - Delivery status message (e.g. "saved to INBOX"), %m - Message-ID, %s - Subject, %f - From address, %p - Physical size, %w - Virtual size',
  467. :type => 'string',
  468. :required => 'optional',
  469. :default => 'nil'