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,239 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Author: Zhang Huangbin (zhb _at_ iredmail.org)
4
+
5
+ #---------------------------------------------------------------------
6
+ # This file is part of iRedMail, which is an open source mail server
7
+ # solution for Red Hat(R) Enterprise Linux, CentOS, Debian and Ubuntu.
8
+ #
9
+ # iRedMail is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # iRedMail is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with iRedMail. If not, see <http://www.gnu.org/licenses/>.
21
+ #---------------------------------------------------------------------
22
+
23
+ # -------------------------------------------------------
24
+ # -------------------- PostgreSQL -----------------------
25
+ # -------------------------------------------------------
26
+
27
+ # NOTE: iRedMail will force all clients to send encrypted password
28
+ # after configuration completed and SQL data imported.
29
+ # Reference: functions/cleanup.sh, function cleanup_pgsql_force_password().
30
+
31
+ pgsql_initialize()
32
+ {
33
+ ECHO_DEBUG "Initialize PostgreSQL databases."
34
+
35
+ # Init db
36
+ if [ X"${DISTRO}" == X'RHEL' ]; then
37
+ postgresql-setup initdb >> ${INSTALL_LOG} 2>&1
38
+ elif [ X"${DISTRO}" == X'FREEBSD' ]; then
39
+ # Start service when system start up.
40
+ # 'postgresql_enable=YES' is required to start service immediately.
41
+ service_control enable 'postgresql_enable' 'YES'
42
+
43
+ ${PGSQL_RC_SCRIPT} initdb >> ${INSTALL_LOG} 2>&1
44
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
45
+ mkdir -p ${PGSQL_DATA_DIR} >> ${INSTALL_LOG} 2>&1
46
+ chown ${SYS_USER_PGSQL}:${SYS_GROUP_PGSQL} ${PGSQL_DATA_DIR}
47
+ su - ${SYS_USER_PGSQL} -c "initdb -D ${PGSQL_DATA_DIR} -U ${SYS_USER_PGSQL} -A trust" >> ${INSTALL_LOG} 2>&1
48
+ fi
49
+
50
+ backup_file ${PGSQL_CONF_PG_HBA} ${PGSQL_CONF_POSTGRESQL}
51
+
52
+ if [ -f ${PGSQL_CONF_POSTGRESQL} ]; then
53
+ ECHO_DEBUG "Make sure PostgreSQL binds to local address: ${SQL_SERVER_ADDRESS}."
54
+ perl -pi -e 's#.*(listen_addresses.=.)(.).*#${1}${2}$ENV{LOCAL_ADDRESS}${2}#' ${PGSQL_CONF_POSTGRESQL}
55
+
56
+ ECHO_DEBUG "Set client_min_messages to ERROR."
57
+ perl -pi -e 's#.*(client_min_messages =).*#${1} error#' ${PGSQL_CONF_POSTGRESQL}
58
+
59
+ # Disable SSL.
60
+ perl -pi -e 's/^#(ssl.=.)on(.*)/${1}off${2}/' ${PGSQL_CONF_POSTGRESQL}
61
+ fi
62
+
63
+ ECHO_DEBUG "Copy iRedMail SSL cert/key with strict permission."
64
+ backup_file ${PGSQL_DATA_DIR}/server.{crt,key}
65
+ rm -f ${PGSQL_DATA_DIR}/server.{crt,key} >> ${INSTALL_LOG} 2>&1
66
+ cp -f ${SSL_CERT_FILE} ${PGSQL_SSL_CERT} >> ${INSTALL_LOG} 2>&1
67
+ cp -f ${SSL_KEY_FILE} ${PGSQL_SSL_KEY} >> ${INSTALL_LOG} 2>&1
68
+ chown ${SYS_USER_PGSQL}:${SYS_GROUP_PGSQL} ${PGSQL_SSL_CERT} ${PGSQL_SSL_KEY} >> ${INSTALL_LOG} 2>&1
69
+ chmod 0600 ${PGSQL_SSL_CERT} ${PGSQL_SSL_KEY} >> ${INSTALL_LOG} 2>&1
70
+ ln -s ${PGSQL_SSL_CERT} ${PGSQL_DATA_DIR}/server.crt >> ${INSTALL_LOG} 2>&1
71
+ ln -s ${PGSQL_SSL_KEY} ${PGSQL_DATA_DIR}/server.key >> ${INSTALL_LOG} 2>&1
72
+
73
+ ECHO_DEBUG "Start PostgreSQL server and sleep 5 seconds for initialization"
74
+ service_control stop ${PGSQL_RC_SCRIPT_NAME}
75
+ sleep 5
76
+ service_control start ${PGSQL_RC_SCRIPT_NAME}
77
+ sleep 5
78
+
79
+ # Note: we must reset `postgres` password first, otherwise all connections
80
+ # will fail, because we cannot set/change passwords at all, so we're trying
81
+ # to connect with a wrong password.
82
+ ECHO_DEBUG "Setting password for PostgreSQL admin: (${PGSQL_ROOT_USER})."
83
+ su - ${SYS_USER_PGSQL} -c "psql -d template1" >> ${INSTALL_LOG} 2>&1 <<EOF
84
+ ALTER USER ${PGSQL_ROOT_USER} WITH ENCRYPTED PASSWORD '${PGSQL_ROOT_PASSWD}';
85
+ EOF
86
+
87
+ ECHO_DEBUG "Update pg_hba.conf to force local users to authenticate with md5."
88
+ perl -pi -e 's/^(local.*)/#${1}/g' ${PGSQL_CONF_PG_HBA}
89
+ perl -pi -e 's/^(host.*)/#${1}/g' ${PGSQL_CONF_PG_HBA}
90
+
91
+ echo "local all ${SYS_USER_PGSQL} peer" >> ${PGSQL_CONF_PG_HBA}
92
+ echo 'local all all md5' >> ${PGSQL_CONF_PG_HBA}
93
+ echo 'host all all 0.0.0.0/0 md5' >> ${PGSQL_CONF_PG_HBA}
94
+
95
+ ECHO_DEBUG "Restart PostgreSQL server and sleeping for 5 seconds."
96
+ service_control stop ${PGSQL_RC_SCRIPT_NAME}
97
+ sleep 5
98
+ service_control start ${PGSQL_RC_SCRIPT_NAME}
99
+ sleep 5
100
+
101
+ ECHO_DEBUG "Generate ${PGSQL_DOT_PGPASS}."
102
+ cat > ${PGSQL_DOT_PGPASS} <<EOF
103
+ *:*:*:${PGSQL_ROOT_USER}:${PGSQL_ROOT_PASSWD}
104
+ *:*:*:${VMAIL_DB_BIND_USER}:${VMAIL_DB_BIND_PASSWD}
105
+ *:*:*:${VMAIL_DB_ADMIN_USER}:${VMAIL_DB_ADMIN_PASSWD}
106
+ *:*:*:${IREDAPD_DB_USER}:${IREDAPD_DB_PASSWD}
107
+ *:*:*:${IREDADMIN_DB_USER}:${IREDADMIN_DB_PASSWD}
108
+ *:*:*:${SOGO_DB_USER}:${SOGO_DB_PASSWD}
109
+ *:*:*:${RCM_DB_USER}:${RCM_DB_PASSWD}
110
+ *:*:*:${AMAVISD_DB_USER}:${AMAVISD_DB_PASSWD}
111
+ *:*:*:${FAIL2BAN_DB_USER}:${FAIL2BAN_DB_PASSWD}
112
+ EOF
113
+
114
+ chown ${SYS_USER_PGSQL}:${SYS_GROUP_PGSQL} ${PGSQL_DOT_PGPASS}
115
+ chmod 0600 ${PGSQL_DOT_PGPASS} >> ${INSTALL_LOG} 2>&1
116
+
117
+ cat >> ${TIP_FILE} <<EOF
118
+ PostgreSQL:
119
+ * Admin user: ${PGSQL_ROOT_USER}, Password: ${PGSQL_ROOT_PASSWD}
120
+ * Bind account (read-only):
121
+ - Name: ${VMAIL_DB_BIND_USER}, Password: ${VMAIL_DB_BIND_PASSWD}
122
+ * Vmail admin account (read-write):
123
+ - Name: ${VMAIL_DB_ADMIN_USER}, Password: ${VMAIL_DB_ADMIN_PASSWD}
124
+ * Database stored in: ${PGSQL_DATA_DIR}
125
+ * RC script: ${PGSQL_RC_SCRIPT}
126
+ * Config files:
127
+ * ${PGSQL_CONF_POSTGRESQL}
128
+ * ${PGSQL_CONF_PG_HBA}
129
+ * Log file: /var/log/postgresql/
130
+ * See also:
131
+ - ${PGSQL_INIT_SQL_SAMPLE}
132
+ - ${PGSQL_DOT_PGPASS}
133
+
134
+ EOF
135
+
136
+ echo 'export status_pgsql_initialize="DONE"' >> ${STATUS_FILE}
137
+ }
138
+
139
+ pgsql_import_vmail_users()
140
+ {
141
+ ECHO_DEBUG "Generate sample SQL templates."
142
+ cp -f ${SAMPLE_DIR}/postgresql/sql/init_vmail_db.sql ${PGSQL_DATA_DIR}/
143
+ cp -f ${SAMPLE_DIR}/iredmail/iredmail.pgsql ${PGSQL_DATA_DIR}/iredmail.sql
144
+ cp -f ${SAMPLE_DIR}/postgresql/sql/add_first_domain_and_user.sql ${PGSQL_DATA_DIR}/
145
+ cp -f ${SAMPLE_DIR}/postgresql/sql/grant_permissions.sql ${PGSQL_DATA_DIR}/
146
+
147
+ # Create triggers for different Dovecot versions.
148
+ if [[ "${BACKEND}" == "PGSQL" ]]; then
149
+ cp -f ${SAMPLE_DIR}/iredmail/used_quota_triggers_dovecot_${DOVECOT_VERSION}.pgsql ${PGSQL_DATA_DIR}/used_quota_trigger.pgsql
150
+ fi
151
+
152
+ perl -pi -e 's#PH_VMAIL_DB_NAME#$ENV{VMAIL_DB_NAME}#g' ${PGSQL_DATA_DIR}/*.sql
153
+ perl -pi -e 's#PH_VMAIL_DB_BIND_USER#$ENV{VMAIL_DB_BIND_USER}#g' ${PGSQL_DATA_DIR}/*.sql
154
+ perl -pi -e 's#PH_VMAIL_DB_BIND_PASSWD#$ENV{VMAIL_DB_BIND_PASSWD}#g' ${PGSQL_DATA_DIR}/*.sql
155
+ perl -pi -e 's#PH_VMAIL_DB_ADMIN_USER#$ENV{VMAIL_DB_ADMIN_USER}#g' ${PGSQL_DATA_DIR}/*.sql
156
+ perl -pi -e 's#PH_VMAIL_DB_ADMIN_PASSWD#$ENV{VMAIL_DB_ADMIN_PASSWD}#g' ${PGSQL_DATA_DIR}/*.sql
157
+
158
+ perl -pi -e 's#PH_DOMAIN_ADMIN_EMAIL#$ENV{DOMAIN_ADMIN_EMAIL}#g' ${PGSQL_DATA_DIR}/*.sql
159
+ perl -pi -e 's#PH_FIRST_DOMAIN#$ENV{FIRST_DOMAIN}#g' ${PGSQL_DATA_DIR}/*.sql
160
+ perl -pi -e 's#PH_TRANSPORT#$ENV{TRANSPORT}#g' ${PGSQL_DATA_DIR}/*.sql
161
+ perl -pi -e 's#PH_DOMAIN_ADMIN_PASSWD_HASH#$ENV{DOMAIN_ADMIN_PASSWD_HASH}#g' ${PGSQL_DATA_DIR}/*.sql
162
+ perl -pi -e 's#PH_DOMAIN_ADMIN_MAILDIR_HASH_PART#$ENV{DOMAIN_ADMIN_MAILDIR_HASH_PART}#g' ${PGSQL_DATA_DIR}/*.sql
163
+ perl -pi -e 's#PH_DOMAIN_ADMIN_NAME#$ENV{DOMAIN_ADMIN_NAME}#g' ${PGSQL_DATA_DIR}/*.sql
164
+
165
+ perl -pi -e 's#^-- \\c#\\c#g' ${PGSQL_DATA_DIR}/iredmail.sql
166
+
167
+ # Modify default SQL template, set storagebasedirectory, storagenode.
168
+ perl -pi -e 's#(.*storagebasedirectory.*DEFAULT..)(.*)#${1}$ENV{STORAGE_BASE_DIR}${2}#' ${PGSQL_DATA_DIR}/iredmail.sql
169
+ perl -pi -e 's#(.*storagenode.*DEFAULT..)(.*)#${1}$ENV{STORAGE_NODE}${2}#' ${PGSQL_DATA_DIR}/iredmail.sql
170
+
171
+ chmod 0755 ${PGSQL_DATA_DIR}/*sql
172
+
173
+ ECHO_DEBUG "Create roles (${VMAIL_DB_BIND_USER}, ${VMAIL_DB_ADMIN_USER}) and database: ${VMAIL_DB_NAME}."
174
+ su - ${SYS_USER_PGSQL} -c "psql -d template1 -f ${PGSQL_DATA_DIR}/init_vmail_db.sql" >> ${INSTALL_LOG} 2>&1
175
+
176
+ ECHO_DEBUG "Create tables in ${VMAIL_DB_NAME} database."
177
+ export PGPASSFILE="${PGSQL_DOT_PGPASS}"
178
+ su - ${SYS_USER_PGSQL} -c "psql -d template1 -f ${PGSQL_DATA_DIR}/iredmail.sql" >> ${INSTALL_LOG} 2>&1
179
+
180
+ # Create triggers for different Dovecot versions.
181
+ su - ${SYS_USER_PGSQL} -c "psql -d ${VMAIL_DB_NAME} -f ${PGSQL_DATA_DIR}/used_quota_trigger.pgsql" >> ${INSTALL_LOG} 2>&1
182
+
183
+ ECHO_DEBUG "Grant permissions."
184
+ su - ${SYS_USER_PGSQL} -c "psql -d template1 -f ${PGSQL_DATA_DIR}/grant_permissions.sql" >> ${INSTALL_LOG} 2>&1
185
+
186
+ ECHO_DEBUG "Add first domain and postmaster@ user."
187
+ su - ${SYS_USER_PGSQL} -c "psql -U ${VMAIL_DB_ADMIN_USER} -d template1 -f ${PGSQL_DATA_DIR}/add_first_domain_and_user.sql" >> ${INSTALL_LOG} 2>&1
188
+
189
+ mv ${PGSQL_DATA_DIR}/*sql ${RUNTIME_DIR}
190
+ chmod 0700 ${RUNTIME_DIR}/*sql
191
+
192
+ cat >> ${TIP_FILE} <<EOF
193
+ SQL commands used to initialize database and import mail accounts:
194
+ - ${RUNTIME_DIR}/*.sql
195
+
196
+ EOF
197
+
198
+ echo 'export status_pgsql_import_vmail_users="DONE"' >> ${STATUS_FILE}
199
+ }
200
+
201
+ pgsql_cron_backup()
202
+ {
203
+ pgsql_backup_script="${BACKUP_DIR}/${BACKUP_SCRIPT_PGSQL_NAME}"
204
+ ECHO_INFO "Setup daily cron job to backup PostgreSQL databases with ${pgsql_backup_script}"
205
+
206
+ [ ! -d ${BACKUP_DIR} ] && mkdir -p ${BACKUP_DIR} >> ${INSTALL_LOG} 2>&1
207
+
208
+ backup_file ${pgsql_backup_script}
209
+ cp ${TOOLS_DIR}/${BACKUP_SCRIPT_PGSQL_NAME} ${pgsql_backup_script}
210
+ chown ${SYS_USER_ROOT}:${SYS_GROUP_ROOT} ${pgsql_backup_script}
211
+ chmod 0500 ${pgsql_backup_script}
212
+
213
+ perl -pi -e 's#^(export SYS_USER_PGSQL=).*#${1}"$ENV{SYS_USER_PGSQL}"#' ${pgsql_backup_script}
214
+ perl -pi -e 's#^(export BACKUP_ROOTDIR=).*#${1}"$ENV{BACKUP_DIR}"#' ${pgsql_backup_script}
215
+
216
+ # Add cron job
217
+ cat >> ${CRON_FILE_ROOT} <<EOF
218
+ # ${PROG_NAME}: Backup PostgreSQL databases on 03:01 AM
219
+ 1 3 * * * ${SHELL_BASH} ${pgsql_backup_script}
220
+
221
+ EOF
222
+
223
+ echo 'export status_pgsql_cron_backup="DONE"' >> ${STATUS_FILE}
224
+ }
225
+
226
+ pgsql_setup()
227
+ {
228
+ ECHO_INFO "Configure PostgreSQL database server."
229
+
230
+ check_status_before_run pgsql_initialize
231
+ check_status_before_run pgsql_import_vmail_users
232
+ check_status_before_run pgsql_cron_backup
233
+
234
+ write_iredmail_kv "sql_user_${PGSQL_ROOT_USER}" "${PGSQL_ROOT_PASSWD}"
235
+ write_iredmail_kv "sql_user_${VMAIL_DB_BIND_USER}" "${VMAIL_DB_BIND_PASSWD}"
236
+ write_iredmail_kv "sql_user_${VMAIL_DB_ADMIN_USER}" "${VMAIL_DB_ADMIN_PASSWD}"
237
+
238
+ echo 'export status_pgsql_setup="DONE"' >> ${STATUS_FILE}
239
+ }
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Author: Zhang Huangbin <zhb _at_ iredmail.org>
4
+
5
+ # ---------------------------------------------------------
6
+ # SpamAssassin.
7
+ # ---------------------------------------------------------
8
+ sa_config()
9
+ {
10
+ ECHO_INFO "Configure SpamAssassin (content-based spam filter)."
11
+
12
+ backup_file ${SA_LOCAL_CF}
13
+
14
+ ECHO_DEBUG "Copy sample SpamAssassin config file: ${SAMPLE_DIR}/spamassassin/local.cf -> ${SA_LOCAL_CF}."
15
+ cp -f ${SAMPLE_DIR}/spamassassin/local.cf ${SA_LOCAL_CF}
16
+ cp -f ${SAMPLE_DIR}/spamassassin/razor.conf ${SA_PLUGIN_RAZOR_CONF}
17
+
18
+ perl -pi -e 's#PH_SA_PLUGIN_RAZOR_CONF#$ENV{SA_PLUGIN_RAZOR_CONF}#g' ${SA_LOCAL_CF}
19
+
20
+ ECHO_DEBUG "Enable crontabs for SpamAssassin update."
21
+ if [ X"${DISTRO}" == X'RHEL' ]; then
22
+ if [ -f ${ETC_SYSCONFIG_DIR}/sa-update ]; then
23
+ perl -pi -e 's/^#(SAUPDATE=yes)/${1}/' ${ETC_SYSCONFIG_DIR}/sa-update
24
+ fi
25
+
26
+ # Enable daily cron job to update rules.
27
+ if [[ ! -x /etc/cron.daily/sa-update ]]; then
28
+ ln -sf /usr/share/spamassassin/sa-update.cron /etc/cron.daily/sa-update
29
+ fi
30
+ elif [ X"${DISTRO}" == X'UBUNTU' -o X"${DISTRO}" == X'DEBIAN' ]; then
31
+ [[ -f /etc/default/spamassassin ]] && \
32
+ perl -pi -e 's#^(CRON=)0#${1}1#' /etc/default/spamassassin
33
+ fi
34
+
35
+ if [ X"${DISTRO}" == X'FREEBSD' ]; then
36
+ ECHO_DEBUG "Compile SpamAssassin ruleset into native code."
37
+ sa-compile >> ${INSTALL_LOG} 2>&1
38
+ fi
39
+
40
+ cat >> ${TIP_FILE} <<EOF
41
+ SpamAssassin:
42
+ * Configuration files and rules:
43
+ - ${SA_CONF_DIR}
44
+ - ${SA_CONF_DIR}/local.cf
45
+
46
+ EOF
47
+
48
+ echo 'export status_sa_config="DONE"' >> ${STATUS_FILE}
49
+ }
@@ -0,0 +1,128 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Author: Zhang Huangbin <zhb _at_ iredmail.org>
4
+
5
+ # Add required system accounts
6
+
7
+ add_user_vmail()
8
+ {
9
+ ECHO_DEBUG "Create system account: ${SYS_USER_VMAIL}:${SYS_GROUP_VMAIL} (${SYS_USER_VMAIL_UID}:${SYS_GROUP_VMAIL_GID})."
10
+
11
+ # Create STORAGE_BASE_DIR and set correct owner and permission.
12
+ if [ ! -d ${STORAGE_BASE_DIR} ]; then
13
+ mkdir -p ${STORAGE_BASE_DIR} >> ${INSTALL_LOG} 2>&1
14
+ chown ${SYS_USER_ROOT}:${SYS_GROUP_ROOT} ${STORAGE_BASE_DIR} >> ${INSTALL_LOG} 2>&1
15
+ chmod -R 0755 ${STORAGE_BASE_DIR} >> ${INSTALL_LOG} 2>&1
16
+ fi
17
+
18
+ [ -d ${STORAGE_MAILBOX_DIR} ] || mkdir -p ${STORAGE_MAILBOX_DIR} >> ${INSTALL_LOG} 2>&1
19
+ [ -d ${PUBLIC_MAILBOX_DIR} ] || mkdir -p ${PUBLIC_MAILBOX_DIR} >> ${INSTALL_LOG} 2>&1
20
+
21
+ # vmail/vmail must has the same UID/GID on all supported Linux/BSD
22
+ # distributions, required by cluster environment. e.g. GlusterFS.
23
+ add_sys_user_group \
24
+ ${SYS_USER_VMAIL} \
25
+ ${SYS_GROUP_VMAIL} \
26
+ ${SYS_USER_VMAIL_UID} \
27
+ ${SYS_GROUP_VMAIL_GID} >> ${INSTALL_LOG} 2>&1
28
+
29
+ if [ -n "${MAILBOX_INDEX_DIR}" ]; then
30
+ if [ ! -d ${MAILBOX_INDEX_DIR} ]; then
31
+ ECHO_DEBUG "Create directory used to store mailbox indexes: ${MAILBOX_INDEX_DIR}."
32
+ mkdir -p ${MAILBOX_INDEX_DIR} >> ${INSTALL_LOG} 2>&1
33
+ chown -R ${SYS_USER_VMAIL}:${SYS_GROUP_VMAIL} ${MAILBOX_INDEX_DIR}
34
+ chmod -R 0700 ${MAILBOX_INDEX_DIR}
35
+ fi
36
+ fi
37
+
38
+ ECHO_DEBUG "Create directory used to store global sieve filters: ${SIEVE_DIR}."
39
+ mkdir -p ${SIEVE_DIR} &>/dev/null
40
+
41
+ export DOMAIN_ADMIN_MAILDIR_HASH_PART="${FIRST_DOMAIN}/$(hash_maildir --no-timestamp ${DOMAIN_ADMIN_NAME})"
42
+ export DOMAIN_ADMIN_MAILDIR_FULL_PATH="${STORAGE_MAILBOX_DIR}/${DOMAIN_ADMIN_MAILDIR_HASH_PART}"
43
+
44
+ # Create maildir.
45
+ # We will deliver emails with sensitive info of iRedMail installation
46
+ # to postmaster immediately after installation completed.
47
+ # NOTE: 'Maildir/' is appended by Dovecot (defined in dovecot.conf).
48
+ export DOMAIN_ADMIN_MAILDIR_INBOX="${DOMAIN_ADMIN_MAILDIR_FULL_PATH}/Maildir/new"
49
+ mkdir -p ${DOMAIN_ADMIN_MAILDIR_INBOX} >> ${INSTALL_LOG} 2>&1
50
+
51
+ # set owner/group and permission.
52
+ chown -R ${SYS_USER_VMAIL}:${SYS_GROUP_VMAIL} ${STORAGE_MAILBOX_DIR} ${PUBLIC_MAILBOX_DIR} ${SIEVE_DIR}
53
+ chmod -R 0700 ${STORAGE_MAILBOX_DIR} ${PUBLIC_MAILBOX_DIR} ${SIEVE_DIR}
54
+
55
+ # backup directory
56
+ [ -d ${BACKUP_DIR} ] || mkdir -p ${BACKUP_DIR} &>/dev/null
57
+ chown ${SYS_USER_ROOT}:${SYS_GROUP_ROOT} ${BACKUP_DIR}
58
+ chmod 0700 ${BACKUP_DIR}
59
+
60
+ cat >> ${TIP_FILE} <<EOF
61
+ Mail Storage:
62
+ - Mailboxes: ${STORAGE_MAILBOX_DIR}
63
+ - Mailbox indexes: ${MAILBOX_INDEX_DIR}
64
+ - Global sieve filters: ${SIEVE_DIR}
65
+ - Backup scripts and backup copies: ${BACKUP_DIR}
66
+
67
+ EOF
68
+
69
+ echo 'export status_add_user_vmail="DONE"' >> ${STATUS_FILE}
70
+ }
71
+
72
+ add_user_iredadmin()
73
+ {
74
+ add_sys_user_group \
75
+ ${SYS_USER_IREDADMIN} \
76
+ ${SYS_GROUP_IREDADMIN} \
77
+ ${SYS_USER_IREDADMIN_UID} \
78
+ ${SYS_GROUP_IREDADMIN_GID}
79
+
80
+ echo 'export status_add_user_iredadmin="DONE"' >> ${STATUS_FILE}
81
+ }
82
+
83
+ add_user_mlmmj()
84
+ {
85
+ add_sys_user_group \
86
+ ${SYS_USER_MLMMJ} \
87
+ ${SYS_GROUP_MLMMJ} \
88
+ ${SYS_USER_MLMMJ_UID} \
89
+ ${SYS_GROUP_MLMMJ_GID} \
90
+ ${MLMMJ_HOME_DIR}
91
+
92
+ echo 'export status_add_user_mlmmj="DONE"' >> ${STATUS_FILE}
93
+ }
94
+
95
+ add_user_iredapd()
96
+ {
97
+ add_sys_user_group \
98
+ ${SYS_USER_IREDAPD} \
99
+ ${SYS_GROUP_IREDAPD} \
100
+ ${SYS_USER_IREDAPD_UID} \
101
+ ${SYS_GROUP_IREDAPD_GID}
102
+
103
+ echo 'export status_add_user_iredapd="DONE"' >> ${STATUS_FILE}
104
+ }
105
+
106
+ add_user_netdata()
107
+ {
108
+ add_sys_user_group \
109
+ ${SYS_USER_NETDATA} \
110
+ ${SYS_GROUP_NETDATA} \
111
+ ${SYS_USER_NETDATA_UID} \
112
+ ${SYS_GROUP_NETDATA_GID}
113
+
114
+ echo 'export status_add_user_netdata="DONE"' >> ${STATUS_FILE}
115
+ }
116
+
117
+
118
+ add_required_users()
119
+ {
120
+ ECHO_INFO "Create required system accounts."
121
+
122
+ check_status_before_run add_user_vmail
123
+ check_status_before_run add_user_mlmmj
124
+ check_status_before_run add_user_iredadmin
125
+ check_status_before_run add_user_iredapd
126
+
127
+ [ X"${USE_NETDATA}" == X'YES' ] && check_status_before_run add_user_netdata
128
+ }
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Author: Zhang Huangbin (zhb@iredmail.org)
4
+
5
+ #---------------------------------------------------------------------
6
+ # This file is part of iRedMail, which is an open source mail server
7
+ # solution for Red Hat(R) Enterprise Linux, CentOS, Debian and Ubuntu.
8
+ #
9
+ # iRedMail is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # iRedMail is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with iRedMail. If not, see <http://www.gnu.org/licenses/>.
21
+ #---------------------------------------------------------------------
22
+
23
+ # ------------------------------
24
+ # Define some global variables.
25
+ # ------------------------------
26
+ tmprootdir="$(dirname $0)"
27
+ echo ${tmprootdir} | grep '^/' >/dev/null 2>&1
28
+ if [ X"$?" == X"0" ]; then
29
+ export ROOTDIR="${tmprootdir}"
30
+ else
31
+ export ROOTDIR="$(pwd)"
32
+ fi
33
+
34
+ cd ${ROOTDIR}
35
+
36
+ export CONF_DIR="${ROOTDIR}/conf"
37
+ export FUNCTIONS_DIR="${ROOTDIR}/functions"
38
+ export DIALOG_DIR="${ROOTDIR}/dialog"
39
+ export PKG_DIR="${ROOTDIR}/pkgs/pkgs"
40
+ export PKG_MISC_DIR="${ROOTDIR}/pkgs/misc"
41
+ export SAMPLE_DIR="${ROOTDIR}/samples"
42
+ export PATCH_DIR="${ROOTDIR}/patches"
43
+ export TOOLS_DIR="${ROOTDIR}/tools"
44
+ export RUNTIME_DIR="${ROOTDIR}/runtime"
45
+
46
+ [[ -d ${RUNTIME_DIR} ]] || mkdir -p ${RUNTIME_DIR}
47
+
48
+ . ${CONF_DIR}/global
49
+ . ${CONF_DIR}/core
50
+
51
+ # Check downloaded packages, pkg repository.
52
+ [ -f ${STATUS_FILE} ] && . ${STATUS_FILE}
53
+ if [ X"${status_get_all}" != X"DONE" ]; then
54
+ cd ${ROOTDIR}/pkgs/ && bash get_all.sh
55
+ if [ X"$?" == X'0' ]; then
56
+ cd ${ROOTDIR}
57
+ else
58
+ exit 255
59
+ fi
60
+ fi
61
+
62
+ # --------------------------------------
63
+ # Check target platform and environment.
64
+ # --------------------------------------
65
+ # Required by OpenVZ:
66
+ # Make sure others can read-write /dev/null and /dev/*random, so that it won't
67
+ # interrupt iRedMail installation.
68
+ chmod go+rx /dev/null /dev/*random &>/dev/null
69
+
70
+ check_env
71
+
72
+ # Define paths of some directories
73
+ # Directory used to store mailboxes
74
+ export STORAGE_MAILBOX_DIR="${STORAGE_MAILBOX_DIR:=${STORAGE_BASE_DIR}/${STORAGE_NODE}}"
75
+ # Directory used to store sieve filters
76
+ export SIEVE_DIR="${SIEVE_DIR:=${STORAGE_BASE_DIR}/sieve}"
77
+ # Directory used to store daily SQL/LDAP backup files
78
+ export BACKUP_DIR="${BACKUP_DIR:=${STORAGE_BASE_DIR}/backup}"
79
+ # Directory used to store public IMAP folders
80
+ export PUBLIC_MAILBOX_DIR="${PUBLIC_MAILBOX_DIR:=${STORAGE_BASE_DIR}/public}"
81
+
82
+ # Domain admin email address
83
+ export DOMAIN_ADMIN_EMAIL="${DOMAIN_ADMIN_NAME}@${FIRST_DOMAIN}"
84
+
85
+ # Import global variables in specified order.
86
+ . ${CONF_DIR}/postgresql
87
+ . ${CONF_DIR}/dovecot
88
+ . ${CONF_DIR}/postfix
89
+ . ${CONF_DIR}/amavisd
90
+ . ${CONF_DIR}/iredapd
91
+ . ${CONF_DIR}/clamav
92
+ . ${CONF_DIR}/spamassassin
93
+ . ${CONF_DIR}/fail2ban
94
+ . ${CONF_DIR}/logwatch
95
+
96
+ # Import functions in specified order.
97
+ if [ X"${DISTRO}" == X'FREEBSD' ]; then
98
+ # Install packages from freebsd ports tree.
99
+ . ${FUNCTIONS_DIR}/packages_freebsd.sh
100
+ else
101
+ . ${FUNCTIONS_DIR}/packages.sh
102
+ fi
103
+
104
+ . ${FUNCTIONS_DIR}/system_accounts.sh
105
+ . ${FUNCTIONS_DIR}/postgresql.sh
106
+
107
+ # Switch backend
108
+ . ${FUNCTIONS_DIR}/backend.sh
109
+
110
+ . ${FUNCTIONS_DIR}/postfix.sh
111
+ . ${FUNCTIONS_DIR}/dovecot.sh
112
+ . ${FUNCTIONS_DIR}/amavisd.sh
113
+ . ${FUNCTIONS_DIR}/iredapd.sh
114
+ . ${FUNCTIONS_DIR}/clamav.sh
115
+ . ${FUNCTIONS_DIR}/spamassassin.sh
116
+ . ${FUNCTIONS_DIR}/fail2ban.sh
117
+ . ${FUNCTIONS_DIR}/optional_components.sh
118
+ . ${FUNCTIONS_DIR}/cleanup.sh
119
+
120
+ # ************************************************************************
121
+ # *************************** Script Main ********************************
122
+ # ************************************************************************
123
+
124
+ # Install all required packages.
125
+ check_status_before_run install_all || (ECHO_ERROR "Package installation error, please check the output log.\n\n" && exit 255)
126
+
127
+ cat <<EOF
128
+
129
+ ********************************************************************
130
+ * Start iRedMail Configurations
131
+ ********************************************************************
132
+ EOF
133
+
134
+
135
+ check_status_before_run generate_ssl_keys
136
+ check_status_before_run add_required_users
137
+ check_status_before_run backend_install
138
+ check_status_before_run postfix_setup
139
+ check_status_before_run dovecot_setup
140
+ check_status_before_run clamav_config
141
+ check_status_before_run amavisd_config
142
+ check_status_before_run sa_config
143
+ optional_components
144
+ check_status_before_run cleanup