openship 0.4.5 → 0.4.7

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 (314) hide show
  1. package/README.md +2 -24
  2. package/dist/bare-2HYDXQEH.js +23 -0
  3. package/dist/{bowser-L6PVH37V.js → bowser-O3AEA6AN.js} +3 -1
  4. package/dist/{chunk-YFLQGDN2.js → chunk-4TJC4JZQ.js} +18 -9
  5. package/dist/{chunk-JXQCFTDV.js → chunk-4Z5QO7N6.js} +4 -2
  6. package/dist/{chunk-JJVSOE4I.js → chunk-5MZ624VX.js} +2 -0
  7. package/dist/{chunk-TDFK6ISF.js → chunk-6APIPIJY.js} +6 -4
  8. package/dist/{chunk-3LCRNQ2C.js → chunk-6APULWSU.js} +151 -133
  9. package/dist/{chunk-FTBXJ2VA.js → chunk-6B5YCFFV.js} +6 -4
  10. package/dist/{chunk-MDFYN2QH.js → chunk-AVIB7CT7.js} +3 -1
  11. package/dist/{chunk-W7KGHYLV.js → chunk-DYPH4HCI.js} +2 -0
  12. package/dist/{chunk-5WI7ZXOC.js → chunk-EI575GHN.js} +4 -2
  13. package/dist/{chunk-Z6EKX6CX.js → chunk-FPRHYBY2.js} +2 -0
  14. package/dist/{chunk-FZJX6XP7.js → chunk-FRNAR33O.js} +4 -2
  15. package/dist/{chunk-XRWV5ZNR.js → chunk-FXTBHTWY.js} +360 -42
  16. package/dist/chunk-ILFETZOM.js +131 -0
  17. package/dist/{chunk-E3ZPCNPU.js → chunk-IMBD5PZ5.js} +251 -105
  18. package/dist/{chunk-VJTXRCTT.js → chunk-IPYPMI3S.js} +10 -6
  19. package/dist/{chunk-PARRPUXN.js → chunk-IXCHURVK.js} +5 -3
  20. package/dist/{chunk-YJAS5RQX.js → chunk-JYGD5WSN.js} +2 -0
  21. package/dist/{chunk-JWBXYO24.js → chunk-KI2EY3WB.js} +2 -0
  22. package/dist/{chunk-YVXF6GGR.js → chunk-L2VOGB2X.js} +5 -104
  23. package/dist/{chunk-K5OH5U7N.js → chunk-MZ2WEHHY.js} +5 -3
  24. package/dist/{chunk-SJBR527P.js → chunk-O6ZZF52V.js} +3 -1
  25. package/dist/{chunk-VLPJLXXB.js → chunk-OWED2GRM.js} +3 -1
  26. package/dist/{chunk-C4FOQJ63.js → chunk-OXWDY22G.js} +4 -2
  27. package/dist/{chunk-NPVJYR7M.js → chunk-Q2CIRAOK.js} +2 -0
  28. package/dist/chunk-R5BHFFAV.js +282 -0
  29. package/dist/{chunk-JYAGTMSJ.js → chunk-RPHRPFEH.js} +2 -0
  30. package/dist/{chunk-R74UB4X4.js → chunk-SJIFLLX4.js} +397 -85
  31. package/dist/{chunk-HYL4QYZM.js → chunk-TGIINPVM.js} +13 -2
  32. package/dist/{chunk-SYCZE6FQ.js → chunk-TYVME3XD.js} +7 -1
  33. package/dist/{chunk-UMYQALBH.js → chunk-UXWAVM4C.js} +1788 -1484
  34. package/dist/{chunk-HDV4NSA3.js → chunk-V6AN6XLZ.js} +16 -6
  35. package/dist/{chunk-3YCMJRDZ.js → chunk-VDMQJHPI.js} +36 -15
  36. package/dist/{chunk-RZPDJC2J.js → chunk-VFINNTUL.js} +20 -1
  37. package/dist/{chunk-65KKUJBR.js → chunk-VWPEKOH6.js} +4 -2
  38. package/dist/{chunk-GHXGCANU.js → chunk-W73X43R7.js} +4 -2
  39. package/dist/{chunk-7EYFCKZX.js → chunk-XFCDYZUQ.js} +8 -6
  40. package/dist/cloud-2KXREXMO.js +30 -0
  41. package/dist/{cloud-7IGG45CF.js → cloud-7QYOGF7F.js} +4 -2
  42. package/dist/detect-2XSCFFTF.js +44 -0
  43. package/dist/{dist-NQB6QGX3.js → dist-IQJ6H6UZ.js} +4 -2
  44. package/dist/{dist-es-DCR6UJMP.js → dist-es-5DY7K32L.js} +7 -5
  45. package/dist/{dist-es-TYYZ5KEF.js → dist-es-JSTDUS7Q.js} +7 -5
  46. package/dist/{dist-es-7EZIM4JU.js → dist-es-OSNJBLXB.js} +6 -4
  47. package/dist/{dist-es-6RSPR56Q.js → dist-es-RYHIPOTN.js} +15 -13
  48. package/dist/{dist-es-33Z3Y6VE.js → dist-es-VNKHQVIB.js} +5 -3
  49. package/dist/{dist-es-D6QQVWRZ.js → dist-es-WV4AMOII.js} +9 -7
  50. package/dist/{dist-es-GMEQINIE.js → dist-es-X3B5QYKB.js} +7 -5
  51. package/dist/docker-LODK5Y2S.js +16 -0
  52. package/dist/docker-edge-executor-VHW3JPJS.js +13 -0
  53. package/dist/edge-import-ZQ4Y5HEA.js +45 -0
  54. package/dist/ensure-container-edge-ED25XL3Z.js +31 -0
  55. package/dist/{event-streams-G7F6Q7QY.js → event-streams-EHRAKL75.js} +5 -3
  56. package/dist/{executor-O5NR7LMP.js → executor-YPT6RH6O.js} +9 -7
  57. package/dist/index.d.ts +2 -1
  58. package/dist/index.js +279 -245
  59. package/dist/{loadSso-LH753OSJ.js → loadSso-46FQRIZS.js} +11 -9
  60. package/dist/local-executor-V7U5VOZW.js +12 -0
  61. package/dist/nginx-XWJAOGS4.js +24 -0
  62. package/dist/{noop-6KC6HRDB.js → noop-FMMFG2EZ.js} +4 -2
  63. package/dist/{openresty-lua-KFCOJAG4.js → openresty-lua-4WLGDSER.js} +11 -3
  64. package/dist/server/engine/ChangeLog +2289 -0
  65. package/dist/server/engine/Documentations +5 -0
  66. package/dist/server/engine/LICENSE +674 -0
  67. package/dist/server/engine/README.md +34 -0
  68. package/dist/server/engine/conf/amavisd +150 -0
  69. package/dist/server/engine/conf/clamav +71 -0
  70. package/dist/server/engine/conf/core +632 -0
  71. package/dist/server/engine/conf/dovecot +151 -0
  72. package/dist/server/engine/conf/fail2ban +72 -0
  73. package/dist/server/engine/conf/global +698 -0
  74. package/dist/server/engine/conf/iredapd +52 -0
  75. package/dist/server/engine/conf/logwatch +28 -0
  76. package/dist/server/engine/conf/postfix +97 -0
  77. package/dist/server/engine/conf/postgresql +93 -0
  78. package/dist/server/engine/conf/spamassassin +39 -0
  79. package/dist/server/engine/dialog/config_via_dialog.sh +258 -0
  80. package/dist/server/engine/dialog/optional_components.sh +122 -0
  81. package/dist/server/engine/dialog/pgsql_config.sh +52 -0
  82. package/dist/server/engine/dialog/virtual_domain_config.sh +94 -0
  83. package/dist/server/engine/functions/amavisd.sh +267 -0
  84. package/dist/server/engine/functions/backend.sh +85 -0
  85. package/dist/server/engine/functions/clamav.sh +100 -0
  86. package/dist/server/engine/functions/cleanup.sh +393 -0
  87. package/dist/server/engine/functions/dovecot.sh +583 -0
  88. package/dist/server/engine/functions/fail2ban.sh +209 -0
  89. package/dist/server/engine/functions/iredapd.sh +356 -0
  90. package/dist/server/engine/functions/optional_components.sh +24 -0
  91. package/dist/server/engine/functions/packages.sh +522 -0
  92. package/dist/server/engine/functions/packages_freebsd.sh +179 -0
  93. package/dist/server/engine/functions/postfix.sh +457 -0
  94. package/dist/server/engine/functions/postgresql.sh +239 -0
  95. package/dist/server/engine/functions/spamassassin.sh +49 -0
  96. package/dist/server/engine/functions/system_accounts.sh +128 -0
  97. package/dist/server/engine/iRedMail.sh +144 -0
  98. package/dist/server/engine/pkgs/get_all.sh +338 -0
  99. package/dist/server/engine/pkgs/pkgs.freebsd.sha256 +3 -0
  100. package/dist/server/engine/pkgs/pkgs.openbsd.sha256 +6 -0
  101. package/dist/server/engine/pkgs/pkgs.sha256 +1 -0
  102. package/dist/server/engine/samples/amavisd/amavisd.conf +677 -0
  103. package/dist/server/engine/samples/amavisd/amavisd.mysql +278 -0
  104. package/dist/server/engine/samples/amavisd/amavisd.pgsql +253 -0
  105. package/dist/server/engine/samples/amavisd/amavisd.schema +942 -0
  106. package/dist/server/engine/samples/amavisd/default_spam_policy.sql +46 -0
  107. package/dist/server/engine/samples/dovecot/dovecot-2.4-mariadb.conf +758 -0
  108. package/dist/server/engine/samples/dovecot/dovecot-2.4-openldap.conf +767 -0
  109. package/dist/server/engine/samples/dovecot/dovecot-2.4-pgsql.conf +762 -0
  110. package/dist/server/engine/samples/dovecot/dovecot-last-login.conf +50 -0
  111. package/dist/server/engine/samples/dovecot/dovecot-ldap.conf +21 -0
  112. package/dist/server/engine/samples/dovecot/dovecot-share-folder.conf +22 -0
  113. package/dist/server/engine/samples/dovecot/dovecot-sql.conf +28 -0
  114. package/dist/server/engine/samples/dovecot/dovecot-used-quota.conf +13 -0
  115. package/dist/server/engine/samples/dovecot/dovecot.conf +484 -0
  116. package/dist/server/engine/samples/dovecot/dovecot.sieve +7 -0
  117. package/dist/server/engine/samples/dovecot/dovecot2-quota-warning.sh +38 -0
  118. package/dist/server/engine/samples/dovecot/sql/imap_share_folder.mysql +16 -0
  119. package/dist/server/engine/samples/dovecot/sql/last_login.mysql +12 -0
  120. package/dist/server/engine/samples/dovecot/sql/used_quota.mysql +26 -0
  121. package/dist/server/engine/samples/dovecot/systemd/override.conf +3 -0
  122. package/dist/server/engine/samples/fail2ban/action.d/banned_db.conf +9 -0
  123. package/dist/server/engine/samples/fail2ban/bin/fail2ban_banned_db +268 -0
  124. package/dist/server/engine/samples/fail2ban/fail2ban.local +17 -0
  125. package/dist/server/engine/samples/fail2ban/filter.d/dovecot.iredmail.conf +5 -0
  126. package/dist/server/engine/samples/fail2ban/filter.d/postfix-pregreet.iredmail.conf +16 -0
  127. package/dist/server/engine/samples/fail2ban/filter.d/postfix.iredmail.conf +18 -0
  128. package/dist/server/engine/samples/fail2ban/filter.d/roundcube.iredmail.conf +9 -0
  129. package/dist/server/engine/samples/fail2ban/jail.d/dovecot.local +8 -0
  130. package/dist/server/engine/samples/fail2ban/jail.d/nginx-http-auth.local +8 -0
  131. package/dist/server/engine/samples/fail2ban/jail.d/postfix-pregreet.local +9 -0
  132. package/dist/server/engine/samples/fail2ban/jail.d/postfix.local +8 -0
  133. package/dist/server/engine/samples/fail2ban/jail.d/roundcube.local +9 -0
  134. package/dist/server/engine/samples/fail2ban/jail.d/sogo.local +8 -0
  135. package/dist/server/engine/samples/fail2ban/jail.d/sshd.local +8 -0
  136. package/dist/server/engine/samples/fail2ban/jail.local +6 -0
  137. package/dist/server/engine/samples/fail2ban/openbsd/rc +27 -0
  138. package/dist/server/engine/samples/fail2ban/sql/fail2ban.mysql +49 -0
  139. package/dist/server/engine/samples/fail2ban/sql/fail2ban.pgsql +48 -0
  140. package/dist/server/engine/samples/firewall/firewalld/services/ssh.xml +6 -0
  141. package/dist/server/engine/samples/firewall/firewalld/zones/iredmail.xml +15 -0
  142. package/dist/server/engine/samples/firewall/iptables/ip6tables.init.debian +362 -0
  143. package/dist/server/engine/samples/firewall/iptables/ip6tables.rules +53 -0
  144. package/dist/server/engine/samples/firewall/iptables/iptables.init.debian +363 -0
  145. package/dist/server/engine/samples/firewall/iptables/iptables.rules +54 -0
  146. package/dist/server/engine/samples/firewall/nftables.conf +58 -0
  147. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/dovecot.conf +3 -0
  148. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/iredapd.conf +1 -0
  149. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/mlmmjadmin.conf +1 -0
  150. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/php-fpm.conf +2 -0
  151. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/slapd.conf +1 -0
  152. package/dist/server/engine/samples/freebsd/syslog.d/dovecot.conf +2 -0
  153. package/dist/server/engine/samples/freebsd/syslog.d/fail2ban.conf +2 -0
  154. package/dist/server/engine/samples/freebsd/syslog.d/iredapd.conf +2 -0
  155. package/dist/server/engine/samples/freebsd/syslog.d/mlmmjadmin.conf +2 -0
  156. package/dist/server/engine/samples/freebsd/syslog.d/php-fpm.conf +2 -0
  157. package/dist/server/engine/samples/freebsd/syslog.d/slapd.conf +2 -0
  158. package/dist/server/engine/samples/iredmail/iredmail.mysql +491 -0
  159. package/dist/server/engine/samples/iredmail/iredmail.pgsql +465 -0
  160. package/dist/server/engine/samples/iredmail/iredmail.schema +456 -0
  161. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.3.pgsql +40 -0
  162. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.4.pgsql +18 -0
  163. package/dist/server/engine/samples/logrotate/dovecot +13 -0
  164. package/dist/server/engine/samples/logrotate/iredapd +13 -0
  165. package/dist/server/engine/samples/logrotate/mlmmjadmin +13 -0
  166. package/dist/server/engine/samples/logrotate/openldap +19 -0
  167. package/dist/server/engine/samples/logrotate/php-fpm +13 -0
  168. package/dist/server/engine/samples/openbsd/ldapd.conf +58 -0
  169. package/dist/server/engine/samples/openbsd/pf.conf +28 -0
  170. package/dist/server/engine/samples/postfix/command_filter.pcre +3 -0
  171. package/dist/server/engine/samples/postfix/freebsd/mailer.conf +9 -0
  172. package/dist/server/engine/samples/postfix/helo_access.pcre +180 -0
  173. package/dist/server/engine/samples/postfix/ldap/catchall_maps.cf +11 -0
  174. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_domain.cf +11 -0
  175. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_user.cf +11 -0
  176. package/dist/server/engine/samples/postfix/ldap/relay_domains.cf +11 -0
  177. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_domain.cf +11 -0
  178. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_user.cf +11 -0
  179. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_domain.cf +11 -0
  180. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_user.cf +11 -0
  181. package/dist/server/engine/samples/postfix/ldap/sender_login_maps.cf +11 -0
  182. package/dist/server/engine/samples/postfix/ldap/transport_maps_domain.cf +11 -0
  183. package/dist/server/engine/samples/postfix/ldap/transport_maps_user.cf +11 -0
  184. package/dist/server/engine/samples/postfix/ldap/virtual_alias_maps.cf +11 -0
  185. package/dist/server/engine/samples/postfix/ldap/virtual_group_maps.cf +11 -0
  186. package/dist/server/engine/samples/postfix/ldap/virtual_group_members_maps.cf +11 -0
  187. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_domains.cf +11 -0
  188. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_maps.cf +12 -0
  189. package/dist/server/engine/samples/postfix/main.cf +282 -0
  190. package/dist/server/engine/samples/postfix/main.cf.amavisd +7 -0
  191. package/dist/server/engine/samples/postfix/main.cf.dovecot +8 -0
  192. package/dist/server/engine/samples/postfix/main.cf.ldap +39 -0
  193. package/dist/server/engine/samples/postfix/main.cf.mlmmj +5 -0
  194. package/dist/server/engine/samples/postfix/main.cf.mysql +39 -0
  195. package/dist/server/engine/samples/postfix/main.cf.pgsql +39 -0
  196. package/dist/server/engine/samples/postfix/main.cf.postscreen +30 -0
  197. package/dist/server/engine/samples/postfix/master.cf +87 -0
  198. package/dist/server/engine/samples/postfix/mysql/catchall_maps.cf +5 -0
  199. package/dist/server/engine/samples/postfix/mysql/domain_alias_catchall_maps.cf +5 -0
  200. package/dist/server/engine/samples/postfix/mysql/domain_alias_maps.cf +5 -0
  201. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_domain.cf +5 -0
  202. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_user.cf +5 -0
  203. package/dist/server/engine/samples/postfix/mysql/relay_domains.cf +5 -0
  204. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_domain.cf +5 -0
  205. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_user.cf +5 -0
  206. package/dist/server/engine/samples/postfix/mysql/sender_dependent_relayhost_maps.cf +6 -0
  207. package/dist/server/engine/samples/postfix/mysql/sender_login_maps.cf +5 -0
  208. package/dist/server/engine/samples/postfix/mysql/transport_maps_domain.cf +5 -0
  209. package/dist/server/engine/samples/postfix/mysql/transport_maps_maillist.cf +5 -0
  210. package/dist/server/engine/samples/postfix/mysql/transport_maps_user.cf +5 -0
  211. package/dist/server/engine/samples/postfix/mysql/virtual_alias_maps.cf +5 -0
  212. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_domains.cf +5 -0
  213. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_maps.cf +5 -0
  214. package/dist/server/engine/samples/postfix/pgsql/catchall_maps.cf +5 -0
  215. package/dist/server/engine/samples/postfix/pgsql/domain_alias_catchall_maps.cf +5 -0
  216. package/dist/server/engine/samples/postfix/pgsql/domain_alias_maps.cf +5 -0
  217. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_domain.cf +5 -0
  218. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_user.cf +5 -0
  219. package/dist/server/engine/samples/postfix/pgsql/relay_domains.cf +5 -0
  220. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_domain.cf +5 -0
  221. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_user.cf +5 -0
  222. package/dist/server/engine/samples/postfix/pgsql/sender_dependent_relayhost_maps.cf +6 -0
  223. package/dist/server/engine/samples/postfix/pgsql/sender_login_maps.cf +5 -0
  224. package/dist/server/engine/samples/postfix/pgsql/transport_maps_domain.cf +5 -0
  225. package/dist/server/engine/samples/postfix/pgsql/transport_maps_maillist.cf +5 -0
  226. package/dist/server/engine/samples/postfix/pgsql/transport_maps_user.cf +5 -0
  227. package/dist/server/engine/samples/postfix/pgsql/virtual_alias_maps.cf +5 -0
  228. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_domains.cf +5 -0
  229. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_maps.cf +5 -0
  230. package/dist/server/engine/samples/postfix/postscreen_access.cidr +6 -0
  231. package/dist/server/engine/samples/postgresql/sql/add_first_domain_and_user.sql +34 -0
  232. package/dist/server/engine/samples/postgresql/sql/grant_permissions.sql +14 -0
  233. package/dist/server/engine/samples/postgresql/sql/init_vmail_db.sql +15 -0
  234. package/dist/server/engine/samples/rsyslog.d/1-iredmail-dovecot.conf +23 -0
  235. package/dist/server/engine/samples/rsyslog.d/1-iredmail-fail2ban.conf +2 -0
  236. package/dist/server/engine/samples/rsyslog.d/1-iredmail-iredapd.conf +12 -0
  237. package/dist/server/engine/samples/rsyslog.d/1-iredmail-mlmmjadmin.conf +12 -0
  238. package/dist/server/engine/samples/rsyslog.d/1-iredmail-openldap.conf +2 -0
  239. package/dist/server/engine/samples/rsyslog.d/1-iredmail-phpfpm.conf +3 -0
  240. package/dist/server/engine/samples/spamassassin/local.cf +186 -0
  241. package/dist/server/engine/samples/spamassassin/razor.conf +1 -0
  242. package/dist/server/engine/samples/systemd/clamd.service.d/override.conf +2 -0
  243. package/dist/server/engine/samples/systemd/mariadb.service.d/override.conf +3 -0
  244. package/dist/server/engine/samples/systemd/slapd.service.d/override.conf +6 -0
  245. package/dist/server/engine/samples/yum/CentOS-Linux-AppStream.repo +6 -0
  246. package/dist/server/engine/samples/yum/CentOS-Linux-PowerTools.repo +6 -0
  247. package/dist/server/engine/samples/yum/CentOS-Stream-AppStream.repo +7 -0
  248. package/dist/server/engine/samples/yum/CentOS-Stream-PowerTools.repo +7 -0
  249. package/dist/server/engine/samples/yum/symas-openldap.repo +6 -0
  250. package/dist/server/engine/tools/add_enabled_service.py +60 -0
  251. package/dist/server/engine/tools/backup_mysql.sh +238 -0
  252. package/dist/server/engine/tools/backup_openldap.sh +230 -0
  253. package/dist/server/engine/tools/backup_pgsql.sh +217 -0
  254. package/dist/server/engine/tools/backup_sogo.sh +156 -0
  255. package/dist/server/engine/tools/create_mail_user_OpenLDAP.py +335 -0
  256. package/dist/server/engine/tools/create_mail_user_OpenLDAP.sh +287 -0
  257. package/dist/server/engine/tools/create_mail_user_SQL.sh +127 -0
  258. package/dist/server/engine/tools/enable_postscreen.sh +144 -0
  259. package/dist/server/engine/tools/fail2ban_unban_ip.sh +39 -0
  260. package/dist/server/engine/tools/find_sasl_login_ip.sh +20 -0
  261. package/dist/server/engine/tools/find_top_sasl_usernames.sh +28 -0
  262. package/dist/server/engine/tools/generate_ssl_keys.sh +85 -0
  263. package/dist/server/engine/tools/kill_high_cpu_sogo_process.sh +32 -0
  264. package/dist/server/engine/tools/ldap_assign_user_to_groups.py +151 -0
  265. package/dist/server/engine/tools/ldap_move_members_to_another_group.py +129 -0
  266. package/dist/server/engine/tools/migrate_sql_alias_table.py +177 -0
  267. package/dist/server/engine/update/0.9.8/amavisd.mysql +29 -0
  268. package/dist/server/engine/update/0.9.8/amavisd.pgsql +39 -0
  269. package/dist/server/engine/update/0.9.8/iredmail.mysql +53 -0
  270. package/dist/server/engine/update/0.9.8/iredmail.pgsql +61 -0
  271. package/dist/server/engine/update/0.9.9/iredmail.mysql +2 -0
  272. package/dist/server/engine/update/0.9.9/iredmail.pgsql +2 -0
  273. package/dist/server/engine/update/1.0/iredmail.mysql +2 -0
  274. package/dist/server/engine/update/1.0/iredmail.pgsql +2 -0
  275. package/dist/server/engine/update/1.2/last_login.mysql +16 -0
  276. package/dist/server/engine/update/1.4.0/iredmail.mysql +22 -0
  277. package/dist/server/engine/update/1.4.0/iredmail.pgsql +20 -0
  278. package/dist/server/engine/update/1.4.1/iredmail.mysql +3 -0
  279. package/dist/server/engine/update/1.4.1/iredmail.pgsql +3 -0
  280. package/dist/server/engine/update/1.4.1/sogo.mysql +11 -0
  281. package/dist/server/engine/update/1.4.1/sogo.pgsql +30 -0
  282. package/dist/server/engine/update/1.4.1/update-ldap.py +66 -0
  283. package/dist/server/engine/update/1.4.2/iredmail.mysql +9 -0
  284. package/dist/server/engine/update/1.4.2/iredmail.pgsql +9 -0
  285. package/dist/server/engine/update/1.4.2/sogo.pgsql +30 -0
  286. package/dist/server/engine/update/1.6.0/sogo_view.pgsql +27 -0
  287. package/dist/server/engine/update/1.6.3/iredmail.mysql +1 -0
  288. package/dist/server/engine/update/1.7.0/fail2ban.mysql +11 -0
  289. package/dist/server/engine/update/1.7.0/fail2ban.pgsql +12 -0
  290. package/dist/server/engine/update/1.7.1/amavisd.mysql +1 -0
  291. package/dist/server/engine/update/1.7.2/vmail.mysql +30 -0
  292. package/dist/server/engine/update/1.7.3/deleted_mailboxes.mysql +43 -0
  293. package/dist/server/engine/update/1.7.3/iredadmin.mysql +26 -0
  294. package/dist/server/engine/update/1.7.3/vmail.mysql +79 -0
  295. package/dist/server/engine/update/1.7.3/vmail.pgsql +9 -0
  296. package/dist/server/engine/update/README.md +1 -0
  297. package/dist/server/engine/update/ldap/README.md +40 -0
  298. package/dist/server/engine/update/ldap/update-ldap-dovecot-2.3.py +69 -0
  299. package/dist/server/index.js +55793 -53701
  300. package/dist/server/migrations/0071_gh_device_token.sql +3 -0
  301. package/dist/server/migrations/0072_gh_device_token_method.sql +1 -0
  302. package/dist/server/migrations/meta/_journal.json +14 -0
  303. package/dist/setup-2DMFIA74.js +20 -0
  304. package/dist/{signin-PVC7MBZJ.js → signin-ITOPKKUB.js} +11 -9
  305. package/dist/{sso-oidc-ZXY77BSL.js → sso-oidc-NON2PD7Y.js} +11 -9
  306. package/dist/{sts-LX5L4UU3.js → sts-HHFFSAY2.js} +10 -8
  307. package/package.json +1 -1
  308. package/dist/bare-CNSFDNSZ.js +0 -20
  309. package/dist/cloud-655YYCEW.js +0 -26
  310. package/dist/docker-UWQPDEGW.js +0 -14
  311. package/dist/docker-edge-executor-ZLAYE5FE.js +0 -11
  312. package/dist/edge-import-AFID2EN3.js +0 -41
  313. package/dist/nginx-M36GDYL7.js +0 -18
  314. package/dist/setup-ZXXB5S22.js +0 -16
@@ -0,0 +1,50 @@
1
+ connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_LAST_LOGIN_DB_NAME user=PH_LAST_LOGIN_DB_USER password=PH_LAST_LOGIN_DB_PASSWORD
2
+
3
+ map {
4
+ pattern = shared/last-login/imap/$user/$domain
5
+ table = last_login
6
+ value_field = imap
7
+ value_type = uint
8
+
9
+ fields {
10
+ username = $user
11
+ domain = $domain
12
+ }
13
+ }
14
+
15
+ map {
16
+ pattern = shared/last-login/pop3/$user/$domain
17
+ table = last_login
18
+ value_field = pop3
19
+ value_type = uint
20
+
21
+ fields {
22
+ username = $user
23
+ domain = $domain
24
+ }
25
+ }
26
+
27
+ map {
28
+ pattern = shared/last-login/lda/$user/$domain
29
+ table = last_login
30
+ value_field = lda
31
+ value_type = uint
32
+
33
+ fields {
34
+ username = $user
35
+ domain = $domain
36
+ }
37
+ }
38
+
39
+ # Treat lmtp as lda.
40
+ map {
41
+ pattern = shared/last-login/lmtp/$user/$domain
42
+ table = last_login
43
+ value_field = lda
44
+ value_type = uint
45
+
46
+ fields {
47
+ username = $user
48
+ domain = $domain
49
+ }
50
+ }
@@ -0,0 +1,21 @@
1
+ hosts = PH_LDAP_SERVER_HOST:PH_LDAP_SERVER_PORT
2
+ ldap_version = PH_LDAP_BIND_VERSION
3
+ auth_bind = yes
4
+ dn = PH_LDAP_BINDDN
5
+ dnpass = PH_LDAP_BINDPW
6
+ base = PH_LDAP_BASEDN
7
+ scope = subtree
8
+ deref = never
9
+ debug_level = 0
10
+
11
+ # Below two are required by command 'doveadm mailbox ...'
12
+ #iterate_attrs = mail=user
13
+ #iterate_filter = (&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail))
14
+
15
+ user_filter = (&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=%Ls%Lc)(|(mail=%u)(&(enabledService=shadowaddress)(shadowAddress=%u))))
16
+ user_attrs = mail=master_user,mail=user,=home=%L{ldap:homeDirectory},=mail=%{ldap:mailboxFormat:maildir}:~/%{ldap:mailboxFolder:Maildir}/,mailQuota=quota_rule=*:bytes=%$
17
+
18
+ # Used for dn lookup
19
+ pass_filter = (&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=%Ls%Lc)(|(mail=%u)(&(enabledService=shadowaddress)(shadowAddress=%u))))
20
+ pass_attrs = mail=user,userPassword=password,allowNets=allow_nets
21
+ default_pass_scheme = CRYPT
@@ -0,0 +1,22 @@
1
+ connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_DOVECOT_SHARE_FOLDER_DB_NAME user=PH_DOVECOT_SHARE_FOLDER_DB_USER password=PH_DOVECOT_SHARE_FOLDER_DB_PASSWORD
2
+ map {
3
+ pattern = shared/shared-boxes/user/$to/$from
4
+ table = PH_DOVECOT_SHARE_FOLDER_DB_TABLE
5
+ value_field = dummy
6
+
7
+ fields {
8
+ from_user = $from
9
+ to_user = $to
10
+ }
11
+ }
12
+
13
+ # To share mailbox to anyone, please uncomment 'acl_anyone = allow' in
14
+ # dovecot.conf
15
+ map {
16
+ pattern = shared/shared-boxes/anyone/$from
17
+ table = PH_DOVECOT_SHARE_FOLDER_ANYONE_DB_TABLE
18
+ value_field = dummy
19
+ fields {
20
+ from_user = $from
21
+ }
22
+ }
@@ -0,0 +1,28 @@
1
+ driver = PH_SQL_DRIVER
2
+ default_pass_scheme = CRYPT
3
+ connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_VMAIL_DB_NAME user=PH_VMAIL_DB_BIND_USER password=PH_VMAIL_DB_BIND_PASSWD
4
+
5
+ # Required by doveadm tools which require to list all mail users.
6
+ iterate_query = SELECT username AS user FROM mailbox
7
+
8
+ password_query = SELECT mailbox.password, mailbox.allow_nets \
9
+ FROM mailbox,domain \
10
+ WHERE mailbox.username='%u' \
11
+ AND mailbox.enable%Ls%Lc=1 \
12
+ AND mailbox.active=1 \
13
+ AND mailbox.domain=domain.domain \
14
+ AND domain.backupmx=0 \
15
+ AND domain.active=1
16
+
17
+ user_query = SELECT \
18
+ LOWER('%u') AS master_user, \
19
+ LOWER(CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir)) AS home, \
20
+ CONCAT(mailbox.mailboxformat, ':~/', mailbox.mailboxfolder) AS mail, \
21
+ CONCAT('*:bytes=', mailbox.quota*1048576) AS quota_rule \
22
+ FROM mailbox,domain \
23
+ WHERE mailbox.username='%u' \
24
+ AND mailbox.enable%Ls%Lc=1 \
25
+ AND mailbox.active=1 \
26
+ AND mailbox.domain=domain.domain \
27
+ AND domain.backupmx=0 \
28
+ AND domain.active=1
@@ -0,0 +1,13 @@
1
+ connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_REALTIME_QUOTA_DB_NAME user=PH_REALTIME_QUOTA_DB_USER password=PH_REALTIME_QUOTA_DB_PASSWORD
2
+ map {
3
+ pattern = priv/quota/storage
4
+ table = PH_DOVECOT_REALTIME_QUOTA_TABLE
5
+ username_field = username
6
+ value_field = bytes
7
+ }
8
+ map {
9
+ pattern = priv/quota/messages
10
+ table = PH_DOVECOT_REALTIME_QUOTA_TABLE
11
+ username_field = username
12
+ value_field = messages
13
+ }
@@ -0,0 +1,484 @@
1
+ # More details about Dovecot settings: https://doc.dovecot.org
2
+
3
+ # Listen addresses.
4
+ # - '*' means all available IPv4 addresses.
5
+ # - '[::]' means all available IPv6 addresses.
6
+ # Listen on all available addresses by default
7
+ listen = * [::]
8
+
9
+ #base_dir = PH_BASE_DIR
10
+ mail_plugins = quota mailbox_alias acl mail_log notify
11
+
12
+ # Enabled mail protocols.
13
+ protocols = PH_PROTOCOLS
14
+
15
+ # User/group who owns the message files:
16
+ mail_uid = PH_MAIL_UID
17
+ mail_gid = PH_MAIL_GID
18
+
19
+ # Assign uid to virtual users.
20
+ first_valid_uid = PH_FIRST_VALID_UID
21
+ last_valid_uid = PH_LAST_VALID_UID
22
+
23
+ # Logging. Reference: http://wiki2.dovecot.org/Logging
24
+ #
25
+ # Use syslog
26
+ syslog_facility = PH_IREDMAIL_SYSLOG_FACILITY
27
+
28
+ # Debug
29
+ #mail_debug = yes
30
+ #auth_verbose = yes
31
+ #auth_debug = yes
32
+ #auth_debug_passwords = yes
33
+
34
+ # Possible values: no, yes, plain, sha1.
35
+ # Set to 'yes' or 'plain', to output plaintext password (NOT RECOMMENDED).
36
+ #auth_verbose_passwords = no
37
+
38
+ # SSL: Global settings.
39
+ # Refer to wiki site for per protocol, ip, server name SSL settings:
40
+ # http://wiki2.dovecot.org/SSL/DovecotConfiguration
41
+ ssl_min_protocol = TLSv1.2
42
+ ssl = required
43
+ verbose_ssl = no
44
+ #ssl_ca = </path/to/ca
45
+ ssl_cert = <PH_SSL_CERT
46
+ ssl_key = <PH_SSL_KEY
47
+ ssl_dh = <PH_SSL_DH1024_PARAM_FILE
48
+
49
+ # Fix 'The Logjam Attack'
50
+ ssl_cipher_list = PH_SSL_CIPHERS
51
+ ssl_prefer_server_ciphers = yes
52
+
53
+ # With disable_plaintext_auth=yes AND ssl=required, STARTTLS is mandatory.
54
+ # Set disable_plaintext_auth=no AND ssl=yes to allow plain password transmitted
55
+ # insecurely.
56
+ disable_plaintext_auth = yes
57
+
58
+ # Allow plain text password per IP address/net
59
+ #remote 192.168.0.0/24 {
60
+ # disable_plaintext_auth = no
61
+ #}
62
+
63
+ # Mail location and mailbox format.
64
+ mail_location = maildir:%Lh/Maildir/:INDEX=%Lh/Maildir/
65
+
66
+ # Authentication related settings.
67
+ # Append this domain name if client gives empty realm.
68
+ #auth_default_realm = PH_AUTH_DEFAULT_REALM
69
+
70
+ # Authentication mechanisms.
71
+ auth_mechanisms = PLAIN LOGIN
72
+
73
+ # Limits the number of users that can be logging in at the same time.
74
+ # Default is 100. This can be overridden by `process_limit =` in
75
+ # `service [protocol]` block.
76
+ # e.g.
77
+ # protocol imap-login {
78
+ # ...
79
+ # process_limit = 500
80
+ # }
81
+ #default_process_limit = 100
82
+
83
+ # Login log elements.
84
+ # Add '%k' for detailed SSL protocol and cipher information.
85
+ # e.g. "TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)"
86
+ login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k session=<%{session}>
87
+
88
+ # Mail delivery log format
89
+ deliver_log_format = from=%{from}, envelope_sender=%{from_envelope}, subject=%{subject}, msgid=%m, size=%{size}, delivery_time=%{delivery_time}ms, %$
90
+
91
+ service auth {
92
+ unix_listener PH_POSTFIX_CHROOT_DIR/private/dovecot-auth {
93
+ user = PH_DOVECOT_AUTH_USER
94
+ group = PH_DOVECOT_AUTH_GROUP
95
+ mode = 0666
96
+ }
97
+ unix_listener auth-master {
98
+ user = PH_AUTH_MASTER_USER
99
+ group = PH_AUTH_MASTER_GROUP
100
+ mode = 0666
101
+ }
102
+ unix_listener auth-userdb {
103
+ user = PH_AUTH_MASTER_USER
104
+ group = PH_AUTH_MASTER_GROUP
105
+ mode = 0660
106
+ }
107
+ }
108
+
109
+ # LMTP server (Local Mail Transfer Protocol).
110
+ # Reference: http://wiki2.dovecot.org/LMTP
111
+ service lmtp {
112
+ user = PH_AUTH_MASTER_USER
113
+
114
+ # For higher volume sites, it may be desirable to increase the number of
115
+ # active listener processes. A range of 5 to 20 is probably good for most
116
+ # sites.
117
+ process_min_avail = 5
118
+
119
+ # Logging.
120
+ executable = lmtp -L
121
+
122
+ # Listening on socket file and TCP
123
+ unix_listener PH_POSTFIX_CHROOT_DIR/private/dovecot-lmtp {
124
+ user = PH_DOVECOT_AUTH_USER
125
+ group = PH_DOVECOT_AUTH_GROUP
126
+ mode = 0666
127
+ }
128
+
129
+ inet_listener lmtp {
130
+ # Listen on localhost (ipv4)
131
+ address = PH_LMTP_BIND_ADDRESS
132
+ port = PH_LMTP_BIND_PORT
133
+ }
134
+ }
135
+
136
+ # Virtual mail accounts.
137
+ userdb {
138
+ args = PH_USERDB_ARGS
139
+ driver = PH_USERDB_DRIVER
140
+ }
141
+ passdb {
142
+ args = PH_PASSDB_ARGS
143
+ driver = PH_PASSDB_DRIVER
144
+ }
145
+
146
+ # Master user.
147
+ # Master users are able to log in as other users. It's also possible to
148
+ # directly log in as any user using a master password, although this isn't
149
+ # recommended.
150
+ # Reference: http://wiki2.dovecot.org/Authentication/MasterUsers
151
+ auth_master_user_separator = *
152
+ passdb {
153
+ driver = passwd-file
154
+ args = PH_DOVECOT_MASTER_USER_PASSWORD_FILE
155
+ master = yes
156
+ }
157
+
158
+ plugin {
159
+ # Quota configuration.
160
+ # Reference: http://wiki2.dovecot.org/Quota/Configuration
161
+ quota = PH_QUOTA_TYPE
162
+
163
+ # Set default quota rule if no quota returned from SQL/LDAP query.
164
+ #quota_rule = *:storage=1G
165
+ #quota_rule2 = *:messages=0
166
+ #quota_rule3 = Trash:storage=1G
167
+ #quota_rule4 = Junk:ignore
168
+
169
+ # Quota warning.
170
+ #
171
+ # If user suddenly receives a huge mail and the quota jumps from
172
+ # 85% to 95%, only the 95% script is executed.
173
+ #
174
+ # Only the command for the first exceeded limit is executed, so configure
175
+ # the highest limit first.
176
+ quota_warning = storage=100%% quota-warning 100 %u
177
+ quota_warning2 = storage=95%% quota-warning 95 %u
178
+ quota_warning3 = storage=90%% quota-warning 90 %u
179
+ quota_warning4 = storage=85%% quota-warning 85 %u
180
+
181
+ # allow user to become max 10% (or 50 MB) over quota
182
+ quota_grace = 10%%
183
+ #quota_grace = 50 M
184
+
185
+ # Custom Quota Exceeded Message.
186
+ # You can specify the message directly or read the message from a file.
187
+ #quota_exceeded_message = Quota exceeded, please try again later.
188
+ #quota_exceeded_message = </path/to/quota_exceeded_message.txt
189
+
190
+ # Used by quota-status service.
191
+ quota_status_success = DUNNO
192
+ quota_status_nouser = DUNNO
193
+ quota_status_overquota = "552 5.2.2 Mailbox is full"
194
+
195
+ # ACL and share folder
196
+ acl = vfile
197
+ acl_shared_dict = proxy::acl
198
+
199
+ # By default Dovecot doesn't allow using the IMAP "anyone" or
200
+ # "authenticated" identifier, because it would be an easy way to spam
201
+ # other users in the system. If you wish to allow it,
202
+ #acl_anyone = allow
203
+
204
+ # Pigeonhole managesieve service.
205
+ # Reference: http://wiki2.dovecot.org/Pigeonhole/Sieve/Configuration
206
+ # Per-user sieve settings.
207
+ sieve_dir = ~/sieve
208
+ sieve = ~/sieve/PH_SIEVE_RULE_FILENAME
209
+
210
+ # Global sieve settings.
211
+ sieve_global_dir = PH_SIEVE_DIR
212
+ # Note: if user has personal sieve script, global sieve rules defined in
213
+ # sieve_default will be ignored. Please use sieve_before or
214
+ # sieve_after instead.
215
+ #sieve_default =
216
+
217
+ sieve_before = PH_GLOBAL_SIEVE_FILE
218
+ #sieve_after =
219
+
220
+ # The maximum number of redirect actions that can be performed during a
221
+ # single script execution.
222
+ # The meaning of 0 differs based on your version. For pigeonhole-0.3.0 and
223
+ # beyond this means that redirect is prohibited. For older versions,
224
+ # however, this means that the number of redirects is unlimited.
225
+ sieve_max_redirects = 30
226
+
227
+ # Use recipient as vacation message sender instead of null sender (<>).
228
+ sieve_vacation_send_from_recipient = yes
229
+
230
+ # Reference: http://wiki2.dovecot.org/Plugins/MailboxAlias
231
+ mailbox_alias_old = Sent
232
+ mailbox_alias_new = Sent Messages
233
+ mailbox_alias_old2 = Sent
234
+ mailbox_alias_new2 = Sent Items
235
+
236
+ # Events to log. `autoexpunge` is included in `expunge`
237
+ # Defined in https://github.com/dovecot/core/blob/master/src/plugins/mail-log/mail-log-plugin.c
238
+ mail_log_events = delete undelete expunge copy mailbox_create mailbox_delete mailbox_rename
239
+ mail_log_fields = uid box msgid size from subject flags
240
+
241
+ # Track user last login
242
+ last_login_dict = proxy::lastlogin
243
+ last_login_key = last-login/%s/%u/%d
244
+ }
245
+
246
+ service stats {
247
+ fifo_listener stats-mail {
248
+ user = PH_DOVECOT_SERVICE_STATS_USER
249
+ mode = 0644
250
+ }
251
+
252
+ unix_listener stats-writer {
253
+ user = PH_DOVECOT_SERVICE_STATS_USER
254
+ group = PH_DOVECOT_SERVICE_STATS_GROUP
255
+ mode = 0660
256
+ }
257
+
258
+ inet_listener {
259
+ address = 127.0.0.1
260
+ port = PH_DOVECOT_SERVICE_STATS_PORT
261
+ }
262
+ }
263
+
264
+ service quota-warning {
265
+ executable = script PH_QUOTA_WARNING_SCRIPT
266
+ unix_listener quota-warning {
267
+ user = PH_QUOTA_WARNING_USER
268
+ group = PH_QUOTA_WARNING_GROUP
269
+ mode = 0660
270
+ }
271
+ }
272
+
273
+ service quota-status {
274
+ # '-p <protocol>'. Currently only 'postfix' protocol is supported.
275
+ executable = quota-status -p postfix
276
+ client_limit = 1
277
+ inet_listener {
278
+ address = PH_DOVECOT_SERVICE_QUOTA_STATUS_BIND_ADDRESS
279
+ port = PH_DOVECOT_SERVICE_QUOTA_STATUS_PORT
280
+ }
281
+ }
282
+
283
+ service dict {
284
+ unix_listener dict {
285
+ mode = 0660
286
+ user = PH_SERVICE_DICT_USER
287
+ group = PH_SERVICE_DICT_GROUP
288
+ }
289
+ }
290
+
291
+ dict {
292
+ quotadict = PH_DOVECOT_SQL_DBN:PH_DOVECOT_REALTIME_QUOTA_CONF
293
+ acl = PH_DOVECOT_SQL_DBN:PH_DOVECOT_SHARE_FOLDER_CONF
294
+ lastlogin = PH_DOVECOT_SQL_DBN:PH_DOVECOT_LAST_LOGIN_CONF
295
+ }
296
+
297
+ protocol lda {
298
+ mail_plugins = $mail_plugins sieve last_login
299
+ lda_mailbox_autocreate = yes
300
+ lda_mailbox_autosubscribe = yes
301
+ }
302
+
303
+ protocol lmtp {
304
+ # Plugins
305
+ mail_plugins = $mail_plugins sieve last_login
306
+
307
+ # Address extension delivery
308
+ lmtp_save_to_detail_mailbox = yes
309
+ recipient_delimiter = +
310
+ }
311
+
312
+ protocol imap {
313
+ mail_plugins = $mail_plugins imap_quota imap_acl last_login
314
+ imap_client_workarounds = tb-extra-mailbox-sep
315
+
316
+ # Maximum number of IMAP connections allowed for a user from each IP address.
317
+ # NOTE: The username is compared case-sensitively.
318
+ # Default is 10.
319
+ # Increase it to avoid issue like below:
320
+ # "Maximum number of concurrent IMAP connections exceeded"
321
+ mail_max_userip_connections = 30
322
+ }
323
+
324
+ protocol pop3 {
325
+ mail_plugins = $mail_plugins last_login
326
+ pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
327
+ pop3_uidl_format = %08Xu%08Xv
328
+
329
+ # Maximum number of IMAP connections allowed for a user from each IP address.
330
+ # NOTE: The username is compared case-sensitively.
331
+ # Default is 10.
332
+ mail_max_userip_connections = 30
333
+
334
+ # POP3 logout format string:
335
+ # %i - total number of bytes read from client
336
+ # %o - total number of bytes sent to client
337
+ # %t - number of TOP commands
338
+ # %p - number of bytes sent to client as a result of TOP command
339
+ # %r - number of RETR commands
340
+ # %b - number of bytes sent to client as a result of RETR command
341
+ # %d - number of deleted messages
342
+ # %m - number of messages (before deletion)
343
+ # %s - mailbox size in bytes (before deletion)
344
+ # Default format doesn't have 'in=%i, out=%o'.
345
+ #pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, in=%i, out=%o
346
+ }
347
+
348
+ # Login processes. Refer to Dovecot wiki for more details:
349
+ # http://wiki2.dovecot.org/LoginProcess
350
+ service imap-login {
351
+ #inet_listener imap {
352
+ # port = 143
353
+ #}
354
+ #inet_listener imaps {
355
+ # port = 993
356
+ # ssl = yes
357
+ #}
358
+
359
+ service_count = 1
360
+
361
+ # To avoid startup latency for new client connections, set process_min_avail
362
+ # to higher than zero. That many idling processes are always kept around
363
+ # waiting for new connections.
364
+ #process_min_avail = 0
365
+
366
+ # number of simultaneous IMAP connections
367
+ process_limit = 500
368
+
369
+ # vsz_limit should be fine at its default 64MB value
370
+ #vsz_limit = 64M
371
+ }
372
+
373
+ service pop3-login {
374
+ #inet_listener pop3 {
375
+ # port = 110
376
+ #}
377
+ #inet_listener pop3s {
378
+ # port = 995
379
+ # ssl = yes
380
+ #}
381
+
382
+ service_count = 1
383
+
384
+ # number of simultaneous POP3 connections
385
+ #process_limit = 500
386
+ }
387
+
388
+ service managesieve-login {
389
+ inet_listener sieve {
390
+ # Listen on localhost (ipv4)
391
+ address = PH_MANAGESIEVE_BIND_HOST
392
+ port = PH_MANAGESIEVE_BIND_PORT
393
+ }
394
+ }
395
+
396
+ namespace inbox {
397
+ type = private
398
+ separator = /
399
+ prefix =
400
+ inbox = yes
401
+
402
+ # Refer to document for more details about alias mailbox:
403
+ # http://wiki2.dovecot.org/MailboxSettings
404
+ #
405
+ # Sent
406
+ mailbox Sent {
407
+ auto = subscribe
408
+ special_use = \Sent
409
+ }
410
+ mailbox "Sent Messages" {
411
+ auto = no
412
+ special_use = \Sent
413
+ }
414
+ mailbox "Sent Items" {
415
+ auto = no
416
+ special_use = \Sent
417
+ }
418
+
419
+ mailbox Drafts {
420
+ auto = subscribe
421
+ special_use = \Drafts
422
+ }
423
+
424
+ # Trash
425
+ mailbox Trash {
426
+ auto = subscribe
427
+ special_use = \Trash
428
+ }
429
+
430
+ mailbox "Deleted Messages" {
431
+ auto = no
432
+ special_use = \Trash
433
+ }
434
+
435
+ # Junk
436
+ mailbox Junk {
437
+ auto = subscribe
438
+ special_use = \Junk
439
+ }
440
+ mailbox Spam {
441
+ auto = no
442
+ special_use = \Junk
443
+ }
444
+ mailbox "Junk E-mail" {
445
+ auto = no
446
+ special_use = \Junk
447
+ }
448
+
449
+ # Archive
450
+ mailbox Archive {
451
+ auto = no
452
+ special_use = \Archive
453
+ }
454
+ mailbox Archives {
455
+ auto = no
456
+ special_use = \Archive
457
+ }
458
+ }
459
+
460
+ namespace shared {
461
+ type = shared
462
+ separator = /
463
+ prefix = Shared/%%u/
464
+ location = maildir:%%Lh/Maildir/:INDEX=%%Lh/Maildir/Shared/%%Ld/%%Ln
465
+
466
+ # this namespace should handle its own subscriptions or not.
467
+ subscriptions = yes
468
+ list = children
469
+ }
470
+
471
+ # Public mailboxes.
472
+ # Refer to Dovecot wiki page for more details:
473
+ # http://wiki2.dovecot.org/SharedMailboxes/Public
474
+ #namespace public {
475
+ # type = public
476
+ # separator = /
477
+ # prefix = Public/
478
+ # location = maildir:PH_PUBLIC_MAILBOX_DIR:CONTROL=%Lh/Maildir/public:INDEXPVT=%Lh/Maildir/public
479
+ #
480
+ # # Allow users to subscribe to the public folders.
481
+ # subscriptions = yes
482
+ #}
483
+
484
+ !include_try PH_DOVECOT_CONF_INCLUDE_DIR/*.conf
@@ -0,0 +1,7 @@
1
+ require ["fileinto"];
2
+
3
+ # rule:[Move Spam to Junk Folder]
4
+ if header :is "X-Spam-Flag" "YES"
5
+ {
6
+ fileinto "Junk";
7
+ }
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env bash
2
+ # Purpose: Mail to user when his/her quota exceeds specified percentage.
3
+ # Reference: http://wiki2.dovecot.org/Quota/Configuration#Quota_warnings
4
+
5
+ PERCENT=${1}
6
+ USER=${2}
7
+
8
+ hostname="$(hostname -f)"
9
+
10
+ # Use "plugin/quota=maildir:User quota:noenforcing" for maildir quota.
11
+ cat << EOF | PH_DOVECOT_DELIVER_BIN -d ${USER} -o "plugin/quota=dict:User quota::noenforcing:proxy::quotadict"
12
+ From: no-reply@${hostname}
13
+ To: ${USER}
14
+ Subject: Warning: Your mailbox is now ${PERCENT}% full.
15
+ Date: $(date -R)
16
+ Message-ID: <$(date +%Y%m%d%H%M%S)-${RANDOM}@${hostname}>
17
+ MIME-Version: 1.0
18
+ Content-Type: text/plain; charset=utf-8
19
+
20
+ Your mailbox is now ${PERCENT}% full, please clean up some mails for further incoming mails.
21
+ EOF
22
+
23
+ # Send a copy to postmaster@ if mailbox is greater than or equal to 95% full.
24
+ if [ ${PERCENT} -ge 95 ]; then
25
+ DOMAIN="$(echo ${USER} | awk -F'@' '{print $2}')"
26
+ cat << EOF | PH_DOVECOT_DELIVER_BIN -d postmaster@${DOMAIN} -o "plugin/quota=dict:User quota::noenforcing:proxy::quotadict"
27
+ From: no-reply@$(hostname -f)
28
+ To: postmaster@${DOMAIN}
29
+ Subject: Mailbox Quota Warning: ${PERCENT}% full, ${USER}
30
+ Date: $(date -R)
31
+ Message-ID: <$(date +%Y%m%d%H%M%S)-${RANDOM}@${hostname}>
32
+ MIME-Version: 1.0
33
+ Content-Type: text/plain; charset=utf-8
34
+
35
+ Mailbox (${USER}) is now ${PERCENT}% full, please clean up some mails for
36
+ further incoming mails.
37
+ EOF
38
+ fi
@@ -0,0 +1,16 @@
1
+ #
2
+ # IMAP shared folders. User 'from_user' shares folders to user 'to_user'.
3
+ # WARNING: Works only with Dovecot 1.2+.
4
+ #
5
+ CREATE TABLE IF NOT EXISTS share_folder (
6
+ from_user VARCHAR(150) NOT NULL,
7
+ to_user VARCHAR(150) NOT NULL,
8
+ dummy CHAR(1),
9
+ PRIMARY KEY (from_user, to_user)
10
+ );
11
+
12
+ CREATE TABLE IF NOT EXISTS anyone_shares (
13
+ from_user VARCHAR(255) NOT NULL,
14
+ dummy CHAR(1) DEFAULT '1',
15
+ PRIMARY KEY (from_user)
16
+ );
@@ -0,0 +1,12 @@
1
+ CREATE TABLE IF NOT EXISTS `last_login` (
2
+ `username` VARCHAR(255) NOT NULL DEFAULT '',
3
+ `domain` VARCHAR(255) NOT NULL DEFAULT '',
4
+ `imap` INT(11) DEFAULT NULL,
5
+ `pop3` INT(11) DEFAULT NULL,
6
+ `lda` INT(11) DEFAULT NULL,
7
+ PRIMARY KEY (`username`),
8
+ INDEX (`domain`),
9
+ INDEX (`imap`),
10
+ INDEX (`pop3`),
11
+ INDEX (`lda`)
12
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;