openship 0.4.4 → 0.4.6

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 (318) hide show
  1. package/README.md +2 -24
  2. package/dist/bare-2HYDXQEH.js +23 -0
  3. package/dist/{bowser-MFQA6OS4.js → bowser-O3AEA6AN.js} +5 -1
  4. package/dist/{chunk-KD7VO4LG.js → chunk-2ZLR7ULL.js} +255 -65
  5. package/dist/{chunk-YHXCHW7Q.js → chunk-3JQTL4R4.js} +236 -99
  6. package/dist/{chunk-E77LJWJK.js → chunk-4TJC4JZQ.js} +20 -9
  7. package/dist/{chunk-YL67EWYZ.js → chunk-4Z5QO7N6.js} +6 -2
  8. package/dist/{chunk-WJPCBU7Z.js → chunk-5FNIWBFI.js} +10 -6
  9. package/dist/{chunk-Y37KHU7L.js → chunk-5MZ624VX.js} +5 -0
  10. package/dist/{chunk-QKFRZNKN.js → chunk-6APIPIJY.js} +8 -4
  11. package/dist/{chunk-JZLNHGLW.js → chunk-6APULWSU.js} +153 -133
  12. package/dist/{chunk-F4DFVG6Q.js → chunk-6B5YCFFV.js} +8 -4
  13. package/dist/{chunk-XVSAUO2I.js → chunk-AVIB7CT7.js} +5 -1
  14. package/dist/{chunk-TEYJYSMT.js → chunk-C5OHTYEF.js} +12 -6
  15. package/dist/{chunk-7UOB5GGQ.js → chunk-DYPH4HCI.js} +5 -0
  16. package/dist/{chunk-XIFRMKYT.js → chunk-EI575GHN.js} +6 -2
  17. package/dist/{chunk-4CQWT2WL.js → chunk-FPRHYBY2.js} +5 -0
  18. package/dist/chunk-FQGJZ2HS.js +248 -0
  19. package/dist/{chunk-JR2OCMJA.js → chunk-FRNAR33O.js} +6 -2
  20. package/dist/{chunk-JUJBBF5U.js → chunk-FXTBHTWY.js} +362 -42
  21. package/dist/chunk-ILFETZOM.js +131 -0
  22. package/dist/{chunk-5ZCKQ2MI.js → chunk-IXCHURVK.js} +7 -3
  23. package/dist/{chunk-6ERIMTBC.js → chunk-JYGD5WSN.js} +5 -0
  24. package/dist/{chunk-4VNS5WPM.js → chunk-KI2EY3WB.js} +4 -0
  25. package/dist/{chunk-3U4SPZD5.js → chunk-L2VOGB2X.js} +7 -104
  26. package/dist/{chunk-NB2VEIWG.js → chunk-MZ2WEHHY.js} +7 -3
  27. package/dist/{chunk-BUBSSKO6.js → chunk-O6ZZF52V.js} +5 -1
  28. package/dist/{chunk-LBFH7THC.js → chunk-OWED2GRM.js} +5 -1
  29. package/dist/{chunk-4MG3BVHE.js → chunk-OXWDY22G.js} +6 -2
  30. package/dist/{chunk-4FABQGQP.js → chunk-Q2CIRAOK.js} +5 -0
  31. package/dist/{chunk-4LEL3H2Z.js → chunk-RPHRPFEH.js} +5 -0
  32. package/dist/{chunk-46YJFP4S.js → chunk-SQ77DZOI.js} +1728 -1484
  33. package/dist/{chunk-S6DSRLNE.js → chunk-TGIINPVM.js} +15 -2
  34. package/dist/{chunk-U2DPZSXA.js → chunk-TYVME3XD.js} +9 -1
  35. package/dist/{chunk-HFYDYK4D.js → chunk-V6AN6XLZ.js} +18 -6
  36. package/dist/{chunk-ZKJOFWBJ.js → chunk-VDMQJHPI.js} +38 -15
  37. package/dist/{chunk-E6W2JMMU.js → chunk-VFINNTUL.js} +22 -1
  38. package/dist/{chunk-OJE6YWPQ.js → chunk-VWPEKOH6.js} +6 -2
  39. package/dist/{chunk-5N7VUGL6.js → chunk-W73X43R7.js} +6 -2
  40. package/dist/cloud-7QYOGF7F.js +11 -0
  41. package/dist/cloud-ZSKOS4GY.js +30 -0
  42. package/dist/detect-SH4FHFBI.js +36 -0
  43. package/dist/{dist-L3MPOWCA.js → dist-IQJ6H6UZ.js} +6 -2
  44. package/dist/{dist-es-KE56MWYO.js → dist-es-5DY7K32L.js} +9 -5
  45. package/dist/dist-es-JSTDUS7Q.js +26 -0
  46. package/dist/{dist-es-GTAMF674.js → dist-es-OSNJBLXB.js} +8 -4
  47. package/dist/{dist-es-NRZIQY5B.js → dist-es-RYHIPOTN.js} +17 -13
  48. package/dist/{dist-es-XQCOTGC7.js → dist-es-VNKHQVIB.js} +7 -3
  49. package/dist/{dist-es-WZCR7DHQ.js → dist-es-WV4AMOII.js} +11 -7
  50. package/dist/{dist-es-ZW3HFQUM.js → dist-es-X3B5QYKB.js} +9 -5
  51. package/dist/docker-U7AF5PTA.js +16 -0
  52. package/dist/docker-edge-executor-VHW3JPJS.js +13 -0
  53. package/dist/edge-import-V5CBA47C.js +45 -0
  54. package/dist/ensure-container-edge-CMYROUSI.js +33 -0
  55. package/dist/{event-streams-7LGDL56D.js → event-streams-EHRAKL75.js} +7 -3
  56. package/dist/executor-YPT6RH6O.js +30 -0
  57. package/dist/index.d.ts +2 -1
  58. package/dist/index.js +258 -245
  59. package/dist/{loadSso-N273C5I7.js → loadSso-46FQRIZS.js} +13 -9
  60. package/dist/local-executor-V7U5VOZW.js +12 -0
  61. package/dist/nginx-2GTRUIDE.js +24 -0
  62. package/dist/noop-FMMFG2EZ.js +11 -0
  63. package/dist/{openresty-lua-HAO4EUDY.js → openresty-lua-4WLGDSER.js} +13 -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 +55574 -53675
  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-HQIZLUOJ.js +20 -0
  304. package/dist/{signin-DR462ERO.js → signin-ITOPKKUB.js} +13 -9
  305. package/dist/{sso-oidc-VBZLJUK5.js → sso-oidc-NON2PD7Y.js} +13 -9
  306. package/dist/{sts-EJLZ4Z77.js → sts-HHFFSAY2.js} +12 -8
  307. package/package.json +1 -1
  308. package/dist/bare-ITM45QBX.js +0 -18
  309. package/dist/cloud-JMPHO3CW.js +0 -7
  310. package/dist/cloud-W5G6YXAY.js +0 -24
  311. package/dist/dist-es-4C322O5D.js +0 -22
  312. package/dist/docker-3FVJMFC3.js +0 -12
  313. package/dist/docker-edge-executor-ZIWAZWPL.js +0 -9
  314. package/dist/edge-import-Y34YL6JK.js +0 -39
  315. package/dist/executor-J7BHW5HF.js +0 -26
  316. package/dist/nginx-YZWKYKQU.js +0 -16
  317. package/dist/noop-RRNCIUI5.js +0 -7
  318. package/dist/setup-5X3WEEHA.js +0 -14
@@ -0,0 +1,522 @@
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
+ install_all()
24
+ {
25
+ ALL_PKGS=''
26
+ PIP3_MODULES=''
27
+ ENABLED_SERVICES=''
28
+ DISABLED_SERVICES=''
29
+
30
+ # Specify version numbers while installing Python modules with pip.
31
+ PIP_VERSION_PYTHON_LDAP='>=3.3.1'
32
+ PIP_VERSION_REQUESTS='>=2.24.0'
33
+ PIP_VERSION_PYMYSQL='>=0.10.0'
34
+ PIP_VERSION_PSYCOPG2='>=2.8.5'
35
+ PIP_VERSION_PYCURL='>=7.43.0.5'
36
+
37
+ # OpenBSD only
38
+ if [ X"${DISTRO}" == X'OPENBSD' ]; then
39
+ PKG_SCRIPTS=''
40
+
41
+ OB_PKG_POSTFIX_FLAVOR="stable"
42
+ if [[ "${BACKEND}" == "PGSQL" ]]; then
43
+ # Workaround.
44
+ #
45
+ # postfix-3.7-sasl2-pgsql doesn't work with PostgreSQL. For example,
46
+ # `postmap` command always get `core dump` error like this:
47
+ #
48
+ # # postmap -q "<email>" pgsql:/etc/postfix/pgsql/virtual_mailbox_maps.cf
49
+ # postmap(76889) in free(): bogus pointer (double free?) 0x80
50
+ # Abort trap (core dumped)
51
+ OB_PKG_POSTFIX_FLAVOR="stable"
52
+ fi
53
+
54
+ OB_PKG_PHP_VER="%${OB_PHP_VERSION}"
55
+ OB_PKG_OPENLDAP_SERVER_VER='-2.6.10v0'
56
+ OB_PKG_OPENLDAP_CLIENT_VER='-2.6.10v0'
57
+ OB_UWSGI_VERSION='2.0.31'
58
+ fi
59
+
60
+ # Install PHP if there's a web server running -- php is too popular.
61
+
62
+ # Enable rsyslog on Linux.
63
+ if [ X"${KERNEL_NAME}" == X'LINUX' ]; then
64
+ ENABLED_SERVICES="${ENABLED_SERVICES} rsyslog"
65
+ DISABLED_SERVICES="${DISABLED_SERVICES} exim sendmail"
66
+
67
+ if [ X"${DISTRO}" == X'RHEL' ]; then
68
+ ALL_PKGS="${ALL_PKGS} rsyslog firewalld"
69
+ ENABLED_SERVICES="${ENABLED_SERVICES} firewalld"
70
+ fi
71
+ fi
72
+
73
+ # Switch to php:8.2 on CentOS/Rocky/Alma 9.
74
+ if [ X"${DISTRO}" == X'RHEL' -a X"${DISTRO_VERSION}" == X'9' ]; then
75
+ # If `dnf module enable` failed, please follow command output to
76
+ # remove installed php and reset module 'php'.
77
+ dnf module enable -y php:8.2
78
+ dnf module switch-to -y php:8.2
79
+ fi
80
+
81
+ # Python 3.
82
+ if [ X"${DISTRO}" == X'RHEL' ]; then
83
+ # `python3` is 3.6. `python3-*` packages are bulit for Python 3.6.
84
+ ALL_PKGS="${ALL_PKGS} python3 python3-pip python3-pip-wheel python3-requests"
85
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
86
+ ALL_PKGS="${ALL_PKGS} python3-setuptools python3-pip python3-wheel python3-requests"
87
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
88
+ ALL_PKGS="${ALL_PKGS} py3-setuptools py3-pip py3-wheel py3-requests"
89
+ fi
90
+
91
+ # uwsgi.
92
+ # Required by mlmmjadmin, iredadmin.
93
+ if [ X"${DISTRO}" == X'RHEL' ]; then
94
+ ALL_PKGS="${ALL_PKGS} uwsgi-logger-syslog uwsgi-plugin-python3 python3-passlib"
95
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
96
+ ALL_PKGS="${ALL_PKGS} uwsgi uwsgi-plugin-python3 python3-passlib"
97
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
98
+ ALL_PKGS="${ALL_PKGS} py3-passlib"
99
+ PIP3_MODULES="${PIP3_MODULES} ${PKG_MISC_DIR}/uwsgi-${OB_UWSGI_VERSION}.tar.gz"
100
+ fi
101
+
102
+ # Postfix.
103
+ ENABLED_SERVICES="${ENABLED_SERVICES} ${POSTFIX_RC_SCRIPT_NAME}"
104
+ if [ X"${DISTRO}" == X'RHEL' ]; then
105
+ ALL_PKGS="${ALL_PKGS} postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain"
106
+
107
+ # pcre support is required and available in iRedMail yum repo.
108
+ ALL_PKGS="${ALL_PKGS} postfix-pcre"
109
+
110
+ [ X"${BACKEND}" == X'OPENLDAP' ] && ALL_PKGS="${ALL_PKGS} postfix-ldap"
111
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} postfix-mysql"
112
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} postfix-pgsql"
113
+
114
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
115
+ # libsasl2-modules is required for sasl auth (used by relay host which
116
+ # requires sasl auth)
117
+ ALL_PKGS="${ALL_PKGS} postfix postfix-pcre libsasl2-modules"
118
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
119
+ [ X"${BACKEND}" == X'OPENLDAP' ] && ALL_PKGS="${ALL_PKGS} postfix--sasl2-ldap%${OB_PKG_POSTFIX_FLAVOR}"
120
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} postfix--sasl2-mysql%${OB_PKG_POSTFIX_FLAVOR}"
121
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} postfix--sasl2-pgsql%${OB_PKG_POSTFIX_FLAVOR}"
122
+ fi
123
+
124
+ # Backend: OpenLDAP, MySQL, PGSQL and extra packages.
125
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
126
+ # OpenLDAP server & client.
127
+ ENABLED_SERVICES="${ENABLED_SERVICES} ${OPENLDAP_RC_SCRIPT_NAME} ${MYSQL_RC_SCRIPT_NAME}"
128
+
129
+ if [ X"${DISTRO}" == X'RHEL' ]; then
130
+ # openldap-servers is available in EPEL.
131
+ # openldap-clients is available in BaseOS repo.
132
+ ALL_PKGS="${ALL_PKGS} openldap-servers openldap-clients mariadb-server"
133
+
134
+ # Perl module
135
+ ALL_PKGS="${ALL_PKGS} perl-DBD-MariaDB"
136
+
137
+ # Python driver.
138
+ ALL_PKGS="${ALL_PKGS} python3-ldap"
139
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
140
+ ALL_PKGS="${ALL_PKGS} slapd ldap-utils postfix-ldap libnet-ldap-perl mariadb-server mariadb-client"
141
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
142
+ ALL_PKGS="${ALL_PKGS} openldap-server${OB_PKG_OPENLDAP_SERVER_VER}"
143
+ PKG_SCRIPTS="${PKG_SCRIPTS} ${OPENLDAP_RC_SCRIPT_NAME}"
144
+
145
+ ALL_PKGS="${ALL_PKGS} mariadb-server mariadb-client p5-ldap p5-DBD-MariaDB"
146
+ PKG_SCRIPTS="${PKG_SCRIPTS} ${MYSQL_RC_SCRIPT_NAME}"
147
+ fi
148
+ elif [ X"${BACKEND}" == X'MYSQL' ]; then
149
+ # MySQL server & client.
150
+ ENABLED_SERVICES="${ENABLED_SERVICES} ${MYSQL_RC_SCRIPT_NAME}"
151
+ if [ X"${DISTRO}" == X'RHEL' ]; then
152
+ # Install MySQL client
153
+ ALL_PKGS="${ALL_PKGS} mariadb"
154
+
155
+ if [ X"${USE_EXISTING_MYSQL}" != X'YES' ]; then
156
+ ALL_PKGS="${ALL_PKGS} mariadb-server"
157
+ fi
158
+
159
+ # Perl module
160
+ ALL_PKGS="${ALL_PKGS} perl-DBD-MariaDB"
161
+
162
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
163
+ # MySQL server and client.
164
+ ALL_PKGS="${ALL_PKGS} mariadb-client"
165
+
166
+ if [ X"${USE_EXISTING_MYSQL}" != X'YES' ]; then
167
+ ALL_PKGS="${ALL_PKGS} mariadb-server"
168
+ fi
169
+
170
+ ALL_PKGS="${ALL_PKGS} postfix-mysql"
171
+
172
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
173
+ ALL_PKGS="${ALL_PKGS} mariadb-client"
174
+
175
+ if [ X"${USE_EXISTING_MYSQL}" != X'YES' ]; then
176
+ ALL_PKGS="${ALL_PKGS} mariadb-server p5-DBD-MariaDB"
177
+ PKG_SCRIPTS="${PKG_SCRIPTS} ${MYSQL_RC_SCRIPT_NAME}"
178
+ fi
179
+ fi
180
+ elif [ X"${BACKEND}" == X'PGSQL' ]; then
181
+ ENABLED_SERVICES="${ENABLED_SERVICES} ${PGSQL_RC_SCRIPT_NAME}"
182
+
183
+ # PGSQL server & client.
184
+ if [ X"${DISTRO}" == X'RHEL' ]; then
185
+ ALL_PKGS="${ALL_PKGS} postgresql-server postgresql-contrib perl-DBD-Pg"
186
+
187
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
188
+ # postgresql-contrib provides extension 'dblink' used in Roundcube password plugin.
189
+ ALL_PKGS="${ALL_PKGS} postgresql postgresql-client postgresql-contrib postfix-pgsql libdbd-pg-perl"
190
+
191
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
192
+ ALL_PKGS="${ALL_PKGS} postgresql-client postgresql-server postgresql-contrib p5-DBD-Pg"
193
+ PKG_SCRIPTS="${PKG_SCRIPTS} ${PGSQL_RC_SCRIPT_NAME}"
194
+ fi
195
+ fi
196
+
197
+ # PHP
198
+
199
+ # Nginx
200
+
201
+ # Dovecot.
202
+ ENABLED_SERVICES="${ENABLED_SERVICES} ${DOVECOT_RC_SCRIPT_NAME}"
203
+ if [ X"${DISTRO}" == X'RHEL' ]; then
204
+ ALL_PKGS="${ALL_PKGS} dovecot dovecot-pigeonhole"
205
+
206
+ if [ X"${BACKEND}" == X'OPENLDAP' -o X"${BACKEND}" == X'MYSQL' ]; then
207
+ ALL_PKGS="${ALL_PKGS} dovecot-mysql"
208
+ elif [ X"${BACKEND}" == X'PGSQL' ]; then
209
+ ALL_PKGS="${ALL_PKGS} dovecot-pgsql"
210
+ fi
211
+
212
+ # We use Dovecot SASL auth instead of saslauthd
213
+ DISABLED_SERVICES="${DISABLED_SERVICES} saslauthd"
214
+
215
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
216
+ ALL_PKGS="${ALL_PKGS} dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-managesieved dovecot-sieve"
217
+
218
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
219
+ ALL_PKGS="${ALL_PKGS} dovecot-ldap dovecot-mysql"
220
+ elif [ X"${BACKEND}" == X'MYSQL' ]; then
221
+ ALL_PKGS="${ALL_PKGS} dovecot-mysql"
222
+ elif [ X"${BACKEND}" == X'PGSQL' ]; then
223
+ ALL_PKGS="${ALL_PKGS} dovecot-pgsql"
224
+ fi
225
+
226
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
227
+ ALL_PKGS="${ALL_PKGS} dovecot-- dovecot-pigeonhole--"
228
+ PKG_SCRIPTS="${PKG_SCRIPTS} ${DOVECOT_RC_SCRIPT_NAME}"
229
+
230
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
231
+ ALL_PKGS="${ALL_PKGS} dovecot-ldap-- dovecot-mysql--"
232
+ elif [ X"${BACKEND}" == X'MYSQL' ]; then
233
+ ALL_PKGS="${ALL_PKGS} dovecot-mysql--"
234
+ elif [ X"${BACKEND}" == X'PGSQL' ]; then
235
+ ALL_PKGS="${ALL_PKGS} dovecot-postgresql--"
236
+ fi
237
+
238
+ DISABLED_SERVICES="${DISABLED_SERVICES} saslauthd"
239
+ fi
240
+
241
+ # Amavisd-new, ClamAV, Altermime.
242
+ ENABLED_SERVICES="${ENABLED_SERVICES} ${CLAMAV_CLAMD_SERVICE_NAME} ${AMAVISD_RC_SCRIPT_NAME}"
243
+ if [ X"${DISTRO}" == X'RHEL' ]; then
244
+ ALL_PKGS="${ALL_PKGS} amavis spamassassin altermime perl-Mail-SPF lz4 clamav clamav-update clamav-server clamav-server-systemd"
245
+ ENABLED_SERVICES="${ENABLED_SERVICES} clamav-freshclam"
246
+
247
+ # RHEL uses service name 'clamd@amavisd' instead of clamd.
248
+ DISABLED_SERVICES="${DISABLED_SERVICES} clamd spamassassin"
249
+
250
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
251
+ ALL_PKGS="${ALL_PKGS} amavisd-new libcrypt-openssl-rsa-perl libmail-dkim-perl clamav-freshclam clamav-daemon spamassassin altermime arj nomarch cpio lzop cabextract p7zip-full rpm libmail-spf-perl unrar-free pax lrzip gpg-agent libdbd-mysql-perl"
252
+
253
+ # Ubuntu 24.04, 26.04
254
+ [[ X"${DISTRO}" == X'UBUNTU' ]] && ALL_PKGS="${ALL_PKGS} libclamunrar12"
255
+
256
+ ENABLED_SERVICES="${ENABLED_SERVICES} ${CLAMAV_FRESHCLAMD_RC_SCRIPT_NAME}"
257
+ DISABLED_SERVICES="${DISABLED_SERVICES} spamassassin spamd clamav-clamonacc"
258
+
259
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
260
+ ALL_PKGS="${ALL_PKGS} rpm2cpio amavisd-new amavisd-new-utils p5-Mail-SPF p5-libwww p5-Mail-SpamAssassin clamav unrar altermime"
261
+ PKG_SCRIPTS="${PKG_SCRIPTS} ${CLAMAV_CLAMD_SERVICE_NAME} ${CLAMAV_FRESHCLAMD_RC_SCRIPT_NAME} ${AMAVISD_RC_SCRIPT_NAME}"
262
+ fi
263
+
264
+
265
+ # mlmmj: mailing list manager
266
+ ALL_PKGS="${ALL_PKGS} mlmmj"
267
+
268
+ # mlmmjadmin: RESTful API server used to manage mlmmj.
269
+ if [ X"${DISTRO}" == X'RHEL' ]; then
270
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
271
+ ALL_PKGS="${ALL_PKGS} python3-ldap python3-PyMySQL"
272
+ fi
273
+
274
+ if [ X"${BACKEND}" == X'MYSQL' ]; then
275
+ ALL_PKGS="${ALL_PKGS} python3-PyMySQL"
276
+ fi
277
+
278
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} python3-psycopg2"
279
+
280
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
281
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
282
+ if [ X"${DISTRO}" == X'DEBIAN' -a X"${DISTRO_VERSION}" == X'9' ]; then
283
+ # Debian 9. `pyldap` is a fork of python-ldap.
284
+ ALL_PKGS="${ALL_PKGS} python3-pyldap"
285
+ else
286
+ ALL_PKGS="${ALL_PKGS} python3-ldap"
287
+ fi
288
+
289
+ ALL_PKGS="${ALL_PKGS} python3-pymysql"
290
+ fi
291
+
292
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} python3-pymysql"
293
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} python3-psycopg2"
294
+
295
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
296
+ ALL_PKGS="${ALL_PKGS} py3-sqlalchemy py3-dnspython py3-pymysql"
297
+
298
+ [ X"${BACKEND}" == X'OPENLDAP' ] && ALL_PKGS="${ALL_PKGS} py3-ldap py3-mysqlclient"
299
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} py3-mysqlclient"
300
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} py3-psycopg2"
301
+
302
+ PKG_SCRIPTS="${PKG_SCRIPTS} mlmmjadmin"
303
+ fi
304
+
305
+ # Roundcube
306
+
307
+ # SOGo
308
+
309
+ # iRedAPD. Requires Python-3.
310
+ # Don't append service name 'iredapd' to ${ENABLED_SERVICES} since we don't
311
+ # have RC script ready in this stage.
312
+ if [ X"${DISTRO}" == X'RHEL' ]; then
313
+ ALL_PKGS="${ALL_PKGS} python3-sqlalchemy python3-setuptools python3-dns python3-six python3-python-multipart"
314
+
315
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
316
+ ALL_PKGS="${ALL_PKGS} python3-ldap python3-PyMySQL"
317
+ fi
318
+
319
+ if [ X"${BACKEND}" == X'MYSQL' ]; then
320
+ ALL_PKGS="${ALL_PKGS} python3-PyMySQL"
321
+ fi
322
+
323
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} python3-psycopg2"
324
+
325
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
326
+ ALL_PKGS="${ALL_PKGS} python3-sqlalchemy python3-dnspython python3-multipart"
327
+
328
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
329
+ if [ X"${DISTRO}" == X'DEBIAN' -a X"${DISTRO_VERSION}" == X'9' ]; then
330
+ # pyldap is a fork of python-ldap.
331
+ ALL_PKGS="${ALL_PKGS} python3-pyldap"
332
+ else
333
+ ALL_PKGS="${ALL_PKGS} python3-ldap"
334
+ fi
335
+ ALL_PKGS="${ALL_PKGS} python3-pymysql"
336
+ fi
337
+
338
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} python3-pymysql"
339
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} python3-psycopg2"
340
+
341
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
342
+ ALL_PKGS="${ALL_PKGS} py3-sqlalchemy py3-dnspython py3-multipart"
343
+ [ X"${BACKEND}" == X'OPENLDAP' ] && ALL_PKGS="${ALL_PKGS} py3-ldap py3-mysqlclient py3-pymysql"
344
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} py3-mysqlclient py3-pymysql"
345
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} py3-psycopg2"
346
+ PKG_SCRIPTS="${PKG_SCRIPTS} iredapd"
347
+ fi
348
+
349
+ # OpenBSD: List postfix as last startup script.
350
+ export PKG_SCRIPTS="${PKG_SCRIPTS} ${POSTFIX_RC_SCRIPT_NAME}"
351
+
352
+ # iRedAdmin.
353
+ # Force install all dependent packages to help customers install iRedAdmin-Pro.
354
+ # web.py, dnspython, requests, jinja2, mysqldb or pymysql, simplejson.
355
+ if [ X"${DISTRO}" == X'RHEL' ]; then
356
+ ALL_PKGS="${ALL_PKGS} python3-jinja2 python3-PyMySQL python3-dns python3-simplejson python3-more-itertools"
357
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
358
+ ALL_PKGS="${ALL_PKGS} python3-jinja2 python3-netifaces python3-bcrypt python3-dnspython python3-simplejson python3-more-itertools"
359
+
360
+ if [ X"${BACKEND}" == X'OPENLDAP' ]; then
361
+ if [ X"${DISTRO}" == X'DEBIAN' -a X"${DISTRO_VERSION}" == X'9' ]; then
362
+ # Debian 9. `pyldap` is a fork of python-ldap.
363
+ ALL_PKGS="${ALL_PKGS} python3-pyldap"
364
+ else
365
+ ALL_PKGS="${ALL_PKGS} python3-ldap"
366
+ fi
367
+
368
+ ALL_PKGS="${ALL_PKGS} python3-pymysql"
369
+ fi
370
+
371
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} python3-pymysql"
372
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} python3-psycopg2"
373
+
374
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
375
+ ALL_PKGS="${ALL_PKGS} py3-jinja2 py3-flup py3-bcrypt py3-curl py3-netifaces py3-dnspython py3-simplejson py3-more-itertools"
376
+
377
+ [ X"${BACKEND}" == X'OPENLDAP' ] && ALL_PKGS="${ALL_PKGS} py3-ldap py3-mysqlclient"
378
+ [ X"${BACKEND}" == X'MYSQL' ] && ALL_PKGS="${ALL_PKGS} py3-mysqlclient"
379
+ [ X"${BACKEND}" == X'PGSQL' ] && ALL_PKGS="${ALL_PKGS} py3-psycopg2"
380
+ fi
381
+
382
+ # Fail2ban. Install fail2ban and geoip.
383
+ if [ X"${USE_FAIL2BAN}" == X'YES' ]; then
384
+ ENABLED_SERVICES="${ENABLED_SERVICES} fail2ban"
385
+
386
+ if [ X"${DISTRO}" == X'RHEL' ]; then
387
+ ALL_PKGS="${ALL_PKGS} fail2ban"
388
+ DISABLED_SERVICES="${DISABLED_SERVICES} shorewall gamin gamin-python"
389
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
390
+ ALL_PKGS="${ALL_PKGS} fail2ban geoip-bin geoip-database"
391
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
392
+ # No port for fail2ban. Install from source tarball with pip later.
393
+ # rc script will be generated from sample file later.
394
+ ALL_PKGS="${ALL_PKGS} py3-pip geolite2-country geolite2-city"
395
+ fi
396
+ fi
397
+
398
+ # netdata
399
+ # Note: netdata installer will generate rc/systemd script and enable the
400
+ # service automatically.
401
+
402
+ # Misc packages & services.
403
+ if [ X"${DISTRO}" == X'RHEL' ]; then
404
+ ALL_PKGS="${ALL_PKGS} unzip bzip2 acl patch tmpwatch crontabs dos2unix logwatch lz4"
405
+ ENABLED_SERVICES="${ENABLED_SERVICES} crond"
406
+
407
+ [[ ${DISTRO_VERSION} == X'9' ]] && ALL_PKGS="${ALL_PKGS} rsyslog rsyslog-logrotate"
408
+ elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
409
+ ALL_PKGS="${ALL_PKGS} bzip2 acl patch cron tofrodos logwatch unzip bsdutils rsyslog"
410
+ ENABLED_SERVICES="${ENABLED_SERVICES} cron"
411
+ elif [ X"${DISTRO}" == X'OPENBSD' ]; then
412
+ ALL_PKGS="${ALL_PKGS} bzip2 lz4 unzip--"
413
+ fi
414
+
415
+ # Firewall
416
+ if [ X"${DISTRO}" == X'DEBIAN' ]; then
417
+ ALL_PKGS="${ALL_PKGS} nftables"
418
+ [[ ${USE_NFTABLES} == "YES" ]] && ENABLED_SERVICES="${ENABLED_SERVICES} nftables"
419
+ elif [ X"${DISTRO}" == X'UBUNTU' ]; then
420
+ # Disable ufw service.
421
+ export DISABLED_SERVICES="${DISABLED_SERVICES} ufw"
422
+
423
+ # Use nftables since Ubuntu 20.04.
424
+ ALL_PKGS="${ALL_PKGS} nftables"
425
+ ENABLED_SERVICES="${ENABLED_SERVICES} nftables"
426
+ fi
427
+
428
+ export ALL_PKGS ENABLED_SERVICES DISABLED_SERVICES PKG_SCRIPTS
429
+
430
+ # Install all packages.
431
+ install_all_pkgs()
432
+ {
433
+ eval ${install_pkg} ${ALL_PKGS} | tee ${PKG_INSTALL_LOG}
434
+
435
+ if [ -f ${RUNTIME_DIR}/.pkg_install_failed ]; then
436
+ ECHO_ERROR "Installation failed, please check the terminal output."
437
+ ECHO_ERROR "If you're not sure what the problem is, try to get help in iRedMail"
438
+ ECHO_ERROR "forum: https://forum.iredmail.org/"
439
+ exit 255
440
+ fi
441
+ }
442
+
443
+ # Enable/Disable services.
444
+ enable_all_services()
445
+ {
446
+ if [ X"${DISTRO}" == X'RHEL' ]; then
447
+ if [ -f /usr/lib/systemd/system/clamd\@.service ]; then
448
+ if ! grep '\[Install\]' /usr/lib/systemd/system/clamd\@.service &>/dev/null; then
449
+ echo '[Install]' >> /usr/lib/systemd/system/clamd\@.service
450
+ echo 'WantedBy=multi-user.target' >> /usr/lib/systemd/system/clamd\@.service
451
+ fi
452
+ fi
453
+ fi
454
+
455
+ # Enable/Disable services.
456
+ if [ X"${DISTRO}" == X'OPENBSD' ]; then
457
+ for srv in ${PKG_SCRIPTS}; do
458
+ service_control enable ${srv}
459
+ done
460
+ else
461
+ service_control enable ${ENABLED_SERVICES}
462
+ service_control disable ${DISABLED_SERVICES}
463
+ fi
464
+
465
+ cat >> ${TIP_FILE} <<EOF
466
+ * Enabled services: ${ENABLED_SERVICES}
467
+
468
+ EOF
469
+ }
470
+
471
+ after_package_installation()
472
+ {
473
+ pip_args=''
474
+ if [ X"${PIP_MIRROR_SITE}" != X'' -a X"${PIP_TRUSTED_HOST}" != X'' ]; then
475
+ pip_args="-i ${PIP_MIRROR_SITE} --trusted-host ${PIP_TRUSTED_HOST}"
476
+ fi
477
+
478
+ if [ X"${PIP3_MODULES}" != X'' ]; then
479
+ ECHO_INFO "Installing required Python-3 modules with pip3:${PIP3_MODULES}"
480
+ ${CMD_PIP3} install ${pip_args} -U --break-system-packages ${PIP3_MODULES} 2>&1 | tee ${RUNTIME_DIR}/pip3.log
481
+ fi
482
+
483
+ if [ X"${DISTRO}" == X'OPENBSD' ]; then
484
+ # Create symbol links for php.
485
+
486
+ ECHO_DEBUG "Create symbol link: /usr/local/bin/python${PYTHON_VERSION} -> /usr/local/bin/python3"
487
+ if [ ! -e /usr/local/bin/python3 ]; then
488
+ ln -sf /usr/local/bin/python${PYTHON_VERSION} /usr/local/bin/python3
489
+ fi
490
+
491
+ # Fail2ban.
492
+ if [ X"${USE_FAIL2BAN}" == X'YES' ]; then
493
+ # https://github.com/fail2ban/fail2ban/wiki/How-to-install-or-upgrade-fail2ban-manually
494
+ ECHO_INFO "Installing Fail2ban from source tarball, please wait for a moment."
495
+
496
+ cd ${PKG_MISC_DIR}
497
+ tar zxf fail2ban-${FAIL2BAN_VERSION}.tar.gz
498
+ cd fail2ban-${FAIL2BAN_VERSION}
499
+ bash fail2ban-2to3 &>${RUNTIME_DIR}/fail2ban-2to3.log
500
+ python3 setup.py install --without-tests &> ${RUNTIME_DIR}/fail2ban_install.log
501
+ cd .. && rm -rf fail2ban-${FAIL2BAN_VERSION}
502
+ fi
503
+
504
+ # Required by uwsgi applications.
505
+ update_sysctl_param kern.seminfo.semmni 1024
506
+ update_sysctl_param kern.seminfo.semmns 1200
507
+ update_sysctl_param kern.seminfo.semmnu 60
508
+ update_sysctl_param kern.seminfo.semmsl 120
509
+ update_sysctl_param kern.seminfo.semopm 200
510
+ fi
511
+
512
+ echo 'export status_after_package_installation="DONE"' >> ${STATUS_FILE}
513
+ }
514
+
515
+ # Do not run them with 'check_status_before_run', so that we can always
516
+ # install missed packages and enable/disable new services while re-run
517
+ # iRedMail installer.
518
+ install_all_pkgs
519
+ enable_all_services
520
+
521
+ check_status_before_run after_package_installation
522
+ }