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.
- package/README.md +2 -24
- package/dist/bare-2HYDXQEH.js +23 -0
- package/dist/{bowser-MFQA6OS4.js → bowser-O3AEA6AN.js} +5 -1
- package/dist/{chunk-KD7VO4LG.js → chunk-2ZLR7ULL.js} +255 -65
- package/dist/{chunk-YHXCHW7Q.js → chunk-3JQTL4R4.js} +236 -99
- package/dist/{chunk-E77LJWJK.js → chunk-4TJC4JZQ.js} +20 -9
- package/dist/{chunk-YL67EWYZ.js → chunk-4Z5QO7N6.js} +6 -2
- package/dist/{chunk-WJPCBU7Z.js → chunk-5FNIWBFI.js} +10 -6
- package/dist/{chunk-Y37KHU7L.js → chunk-5MZ624VX.js} +5 -0
- package/dist/{chunk-QKFRZNKN.js → chunk-6APIPIJY.js} +8 -4
- package/dist/{chunk-JZLNHGLW.js → chunk-6APULWSU.js} +153 -133
- package/dist/{chunk-F4DFVG6Q.js → chunk-6B5YCFFV.js} +8 -4
- package/dist/{chunk-XVSAUO2I.js → chunk-AVIB7CT7.js} +5 -1
- package/dist/{chunk-TEYJYSMT.js → chunk-C5OHTYEF.js} +12 -6
- package/dist/{chunk-7UOB5GGQ.js → chunk-DYPH4HCI.js} +5 -0
- package/dist/{chunk-XIFRMKYT.js → chunk-EI575GHN.js} +6 -2
- package/dist/{chunk-4CQWT2WL.js → chunk-FPRHYBY2.js} +5 -0
- package/dist/chunk-FQGJZ2HS.js +248 -0
- package/dist/{chunk-JR2OCMJA.js → chunk-FRNAR33O.js} +6 -2
- package/dist/{chunk-JUJBBF5U.js → chunk-FXTBHTWY.js} +362 -42
- package/dist/chunk-ILFETZOM.js +131 -0
- package/dist/{chunk-5ZCKQ2MI.js → chunk-IXCHURVK.js} +7 -3
- package/dist/{chunk-6ERIMTBC.js → chunk-JYGD5WSN.js} +5 -0
- package/dist/{chunk-4VNS5WPM.js → chunk-KI2EY3WB.js} +4 -0
- package/dist/{chunk-3U4SPZD5.js → chunk-L2VOGB2X.js} +7 -104
- package/dist/{chunk-NB2VEIWG.js → chunk-MZ2WEHHY.js} +7 -3
- package/dist/{chunk-BUBSSKO6.js → chunk-O6ZZF52V.js} +5 -1
- package/dist/{chunk-LBFH7THC.js → chunk-OWED2GRM.js} +5 -1
- package/dist/{chunk-4MG3BVHE.js → chunk-OXWDY22G.js} +6 -2
- package/dist/{chunk-4FABQGQP.js → chunk-Q2CIRAOK.js} +5 -0
- package/dist/{chunk-4LEL3H2Z.js → chunk-RPHRPFEH.js} +5 -0
- package/dist/{chunk-46YJFP4S.js → chunk-SQ77DZOI.js} +1728 -1484
- package/dist/{chunk-S6DSRLNE.js → chunk-TGIINPVM.js} +15 -2
- package/dist/{chunk-U2DPZSXA.js → chunk-TYVME3XD.js} +9 -1
- package/dist/{chunk-HFYDYK4D.js → chunk-V6AN6XLZ.js} +18 -6
- package/dist/{chunk-ZKJOFWBJ.js → chunk-VDMQJHPI.js} +38 -15
- package/dist/{chunk-E6W2JMMU.js → chunk-VFINNTUL.js} +22 -1
- package/dist/{chunk-OJE6YWPQ.js → chunk-VWPEKOH6.js} +6 -2
- package/dist/{chunk-5N7VUGL6.js → chunk-W73X43R7.js} +6 -2
- package/dist/cloud-7QYOGF7F.js +11 -0
- package/dist/cloud-ZSKOS4GY.js +30 -0
- package/dist/detect-SH4FHFBI.js +36 -0
- package/dist/{dist-L3MPOWCA.js → dist-IQJ6H6UZ.js} +6 -2
- package/dist/{dist-es-KE56MWYO.js → dist-es-5DY7K32L.js} +9 -5
- package/dist/dist-es-JSTDUS7Q.js +26 -0
- package/dist/{dist-es-GTAMF674.js → dist-es-OSNJBLXB.js} +8 -4
- package/dist/{dist-es-NRZIQY5B.js → dist-es-RYHIPOTN.js} +17 -13
- package/dist/{dist-es-XQCOTGC7.js → dist-es-VNKHQVIB.js} +7 -3
- package/dist/{dist-es-WZCR7DHQ.js → dist-es-WV4AMOII.js} +11 -7
- package/dist/{dist-es-ZW3HFQUM.js → dist-es-X3B5QYKB.js} +9 -5
- package/dist/docker-U7AF5PTA.js +16 -0
- package/dist/docker-edge-executor-VHW3JPJS.js +13 -0
- package/dist/edge-import-V5CBA47C.js +45 -0
- package/dist/ensure-container-edge-CMYROUSI.js +33 -0
- package/dist/{event-streams-7LGDL56D.js → event-streams-EHRAKL75.js} +7 -3
- package/dist/executor-YPT6RH6O.js +30 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +258 -245
- package/dist/{loadSso-N273C5I7.js → loadSso-46FQRIZS.js} +13 -9
- package/dist/local-executor-V7U5VOZW.js +12 -0
- package/dist/nginx-2GTRUIDE.js +24 -0
- package/dist/noop-FMMFG2EZ.js +11 -0
- package/dist/{openresty-lua-HAO4EUDY.js → openresty-lua-4WLGDSER.js} +13 -3
- package/dist/server/engine/ChangeLog +2289 -0
- package/dist/server/engine/Documentations +5 -0
- package/dist/server/engine/LICENSE +674 -0
- package/dist/server/engine/README.md +34 -0
- package/dist/server/engine/conf/amavisd +150 -0
- package/dist/server/engine/conf/clamav +71 -0
- package/dist/server/engine/conf/core +632 -0
- package/dist/server/engine/conf/dovecot +151 -0
- package/dist/server/engine/conf/fail2ban +72 -0
- package/dist/server/engine/conf/global +698 -0
- package/dist/server/engine/conf/iredapd +52 -0
- package/dist/server/engine/conf/logwatch +28 -0
- package/dist/server/engine/conf/postfix +97 -0
- package/dist/server/engine/conf/postgresql +93 -0
- package/dist/server/engine/conf/spamassassin +39 -0
- package/dist/server/engine/dialog/config_via_dialog.sh +258 -0
- package/dist/server/engine/dialog/optional_components.sh +122 -0
- package/dist/server/engine/dialog/pgsql_config.sh +52 -0
- package/dist/server/engine/dialog/virtual_domain_config.sh +94 -0
- package/dist/server/engine/functions/amavisd.sh +267 -0
- package/dist/server/engine/functions/backend.sh +85 -0
- package/dist/server/engine/functions/clamav.sh +100 -0
- package/dist/server/engine/functions/cleanup.sh +393 -0
- package/dist/server/engine/functions/dovecot.sh +583 -0
- package/dist/server/engine/functions/fail2ban.sh +209 -0
- package/dist/server/engine/functions/iredapd.sh +356 -0
- package/dist/server/engine/functions/optional_components.sh +24 -0
- package/dist/server/engine/functions/packages.sh +522 -0
- package/dist/server/engine/functions/packages_freebsd.sh +179 -0
- package/dist/server/engine/functions/postfix.sh +457 -0
- package/dist/server/engine/functions/postgresql.sh +239 -0
- package/dist/server/engine/functions/spamassassin.sh +49 -0
- package/dist/server/engine/functions/system_accounts.sh +128 -0
- package/dist/server/engine/iRedMail.sh +144 -0
- package/dist/server/engine/pkgs/get_all.sh +338 -0
- package/dist/server/engine/pkgs/pkgs.freebsd.sha256 +3 -0
- package/dist/server/engine/pkgs/pkgs.openbsd.sha256 +6 -0
- package/dist/server/engine/pkgs/pkgs.sha256 +1 -0
- package/dist/server/engine/samples/amavisd/amavisd.conf +677 -0
- package/dist/server/engine/samples/amavisd/amavisd.mysql +278 -0
- package/dist/server/engine/samples/amavisd/amavisd.pgsql +253 -0
- package/dist/server/engine/samples/amavisd/amavisd.schema +942 -0
- package/dist/server/engine/samples/amavisd/default_spam_policy.sql +46 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-mariadb.conf +758 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-openldap.conf +767 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-pgsql.conf +762 -0
- package/dist/server/engine/samples/dovecot/dovecot-last-login.conf +50 -0
- package/dist/server/engine/samples/dovecot/dovecot-ldap.conf +21 -0
- package/dist/server/engine/samples/dovecot/dovecot-share-folder.conf +22 -0
- package/dist/server/engine/samples/dovecot/dovecot-sql.conf +28 -0
- package/dist/server/engine/samples/dovecot/dovecot-used-quota.conf +13 -0
- package/dist/server/engine/samples/dovecot/dovecot.conf +484 -0
- package/dist/server/engine/samples/dovecot/dovecot.sieve +7 -0
- package/dist/server/engine/samples/dovecot/dovecot2-quota-warning.sh +38 -0
- package/dist/server/engine/samples/dovecot/sql/imap_share_folder.mysql +16 -0
- package/dist/server/engine/samples/dovecot/sql/last_login.mysql +12 -0
- package/dist/server/engine/samples/dovecot/sql/used_quota.mysql +26 -0
- package/dist/server/engine/samples/dovecot/systemd/override.conf +3 -0
- package/dist/server/engine/samples/fail2ban/action.d/banned_db.conf +9 -0
- package/dist/server/engine/samples/fail2ban/bin/fail2ban_banned_db +268 -0
- package/dist/server/engine/samples/fail2ban/fail2ban.local +17 -0
- package/dist/server/engine/samples/fail2ban/filter.d/dovecot.iredmail.conf +5 -0
- package/dist/server/engine/samples/fail2ban/filter.d/postfix-pregreet.iredmail.conf +16 -0
- package/dist/server/engine/samples/fail2ban/filter.d/postfix.iredmail.conf +18 -0
- package/dist/server/engine/samples/fail2ban/filter.d/roundcube.iredmail.conf +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/dovecot.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/nginx-http-auth.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/postfix-pregreet.local +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/postfix.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/roundcube.local +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/sogo.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/sshd.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.local +6 -0
- package/dist/server/engine/samples/fail2ban/openbsd/rc +27 -0
- package/dist/server/engine/samples/fail2ban/sql/fail2ban.mysql +49 -0
- package/dist/server/engine/samples/fail2ban/sql/fail2ban.pgsql +48 -0
- package/dist/server/engine/samples/firewall/firewalld/services/ssh.xml +6 -0
- package/dist/server/engine/samples/firewall/firewalld/zones/iredmail.xml +15 -0
- package/dist/server/engine/samples/firewall/iptables/ip6tables.init.debian +362 -0
- package/dist/server/engine/samples/firewall/iptables/ip6tables.rules +53 -0
- package/dist/server/engine/samples/firewall/iptables/iptables.init.debian +363 -0
- package/dist/server/engine/samples/firewall/iptables/iptables.rules +54 -0
- package/dist/server/engine/samples/firewall/nftables.conf +58 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/dovecot.conf +3 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/iredapd.conf +1 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/mlmmjadmin.conf +1 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/php-fpm.conf +2 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/slapd.conf +1 -0
- package/dist/server/engine/samples/freebsd/syslog.d/dovecot.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/fail2ban.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/iredapd.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/mlmmjadmin.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/php-fpm.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/slapd.conf +2 -0
- package/dist/server/engine/samples/iredmail/iredmail.mysql +491 -0
- package/dist/server/engine/samples/iredmail/iredmail.pgsql +465 -0
- package/dist/server/engine/samples/iredmail/iredmail.schema +456 -0
- package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.3.pgsql +40 -0
- package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.4.pgsql +18 -0
- package/dist/server/engine/samples/logrotate/dovecot +13 -0
- package/dist/server/engine/samples/logrotate/iredapd +13 -0
- package/dist/server/engine/samples/logrotate/mlmmjadmin +13 -0
- package/dist/server/engine/samples/logrotate/openldap +19 -0
- package/dist/server/engine/samples/logrotate/php-fpm +13 -0
- package/dist/server/engine/samples/openbsd/ldapd.conf +58 -0
- package/dist/server/engine/samples/openbsd/pf.conf +28 -0
- package/dist/server/engine/samples/postfix/command_filter.pcre +3 -0
- package/dist/server/engine/samples/postfix/freebsd/mailer.conf +9 -0
- package/dist/server/engine/samples/postfix/helo_access.pcre +180 -0
- package/dist/server/engine/samples/postfix/ldap/catchall_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/relay_domains.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_login_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/transport_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/transport_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_alias_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_group_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_group_members_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_domains.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_maps.cf +12 -0
- package/dist/server/engine/samples/postfix/main.cf +282 -0
- package/dist/server/engine/samples/postfix/main.cf.amavisd +7 -0
- package/dist/server/engine/samples/postfix/main.cf.dovecot +8 -0
- package/dist/server/engine/samples/postfix/main.cf.ldap +39 -0
- package/dist/server/engine/samples/postfix/main.cf.mlmmj +5 -0
- package/dist/server/engine/samples/postfix/main.cf.mysql +39 -0
- package/dist/server/engine/samples/postfix/main.cf.pgsql +39 -0
- package/dist/server/engine/samples/postfix/main.cf.postscreen +30 -0
- package/dist/server/engine/samples/postfix/master.cf +87 -0
- package/dist/server/engine/samples/postfix/mysql/catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/domain_alias_catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/domain_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/relay_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_dependent_relayhost_maps.cf +6 -0
- package/dist/server/engine/samples/postfix/mysql/sender_login_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_maillist.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/domain_alias_catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/domain_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/relay_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_dependent_relayhost_maps.cf +6 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_login_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_maillist.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/postscreen_access.cidr +6 -0
- package/dist/server/engine/samples/postgresql/sql/add_first_domain_and_user.sql +34 -0
- package/dist/server/engine/samples/postgresql/sql/grant_permissions.sql +14 -0
- package/dist/server/engine/samples/postgresql/sql/init_vmail_db.sql +15 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-dovecot.conf +23 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-fail2ban.conf +2 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-iredapd.conf +12 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-mlmmjadmin.conf +12 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-openldap.conf +2 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-phpfpm.conf +3 -0
- package/dist/server/engine/samples/spamassassin/local.cf +186 -0
- package/dist/server/engine/samples/spamassassin/razor.conf +1 -0
- package/dist/server/engine/samples/systemd/clamd.service.d/override.conf +2 -0
- package/dist/server/engine/samples/systemd/mariadb.service.d/override.conf +3 -0
- package/dist/server/engine/samples/systemd/slapd.service.d/override.conf +6 -0
- package/dist/server/engine/samples/yum/CentOS-Linux-AppStream.repo +6 -0
- package/dist/server/engine/samples/yum/CentOS-Linux-PowerTools.repo +6 -0
- package/dist/server/engine/samples/yum/CentOS-Stream-AppStream.repo +7 -0
- package/dist/server/engine/samples/yum/CentOS-Stream-PowerTools.repo +7 -0
- package/dist/server/engine/samples/yum/symas-openldap.repo +6 -0
- package/dist/server/engine/tools/add_enabled_service.py +60 -0
- package/dist/server/engine/tools/backup_mysql.sh +238 -0
- package/dist/server/engine/tools/backup_openldap.sh +230 -0
- package/dist/server/engine/tools/backup_pgsql.sh +217 -0
- package/dist/server/engine/tools/backup_sogo.sh +156 -0
- package/dist/server/engine/tools/create_mail_user_OpenLDAP.py +335 -0
- package/dist/server/engine/tools/create_mail_user_OpenLDAP.sh +287 -0
- package/dist/server/engine/tools/create_mail_user_SQL.sh +127 -0
- package/dist/server/engine/tools/enable_postscreen.sh +144 -0
- package/dist/server/engine/tools/fail2ban_unban_ip.sh +39 -0
- package/dist/server/engine/tools/find_sasl_login_ip.sh +20 -0
- package/dist/server/engine/tools/find_top_sasl_usernames.sh +28 -0
- package/dist/server/engine/tools/generate_ssl_keys.sh +85 -0
- package/dist/server/engine/tools/kill_high_cpu_sogo_process.sh +32 -0
- package/dist/server/engine/tools/ldap_assign_user_to_groups.py +151 -0
- package/dist/server/engine/tools/ldap_move_members_to_another_group.py +129 -0
- package/dist/server/engine/tools/migrate_sql_alias_table.py +177 -0
- package/dist/server/engine/update/0.9.8/amavisd.mysql +29 -0
- package/dist/server/engine/update/0.9.8/amavisd.pgsql +39 -0
- package/dist/server/engine/update/0.9.8/iredmail.mysql +53 -0
- package/dist/server/engine/update/0.9.8/iredmail.pgsql +61 -0
- package/dist/server/engine/update/0.9.9/iredmail.mysql +2 -0
- package/dist/server/engine/update/0.9.9/iredmail.pgsql +2 -0
- package/dist/server/engine/update/1.0/iredmail.mysql +2 -0
- package/dist/server/engine/update/1.0/iredmail.pgsql +2 -0
- package/dist/server/engine/update/1.2/last_login.mysql +16 -0
- package/dist/server/engine/update/1.4.0/iredmail.mysql +22 -0
- package/dist/server/engine/update/1.4.0/iredmail.pgsql +20 -0
- package/dist/server/engine/update/1.4.1/iredmail.mysql +3 -0
- package/dist/server/engine/update/1.4.1/iredmail.pgsql +3 -0
- package/dist/server/engine/update/1.4.1/sogo.mysql +11 -0
- package/dist/server/engine/update/1.4.1/sogo.pgsql +30 -0
- package/dist/server/engine/update/1.4.1/update-ldap.py +66 -0
- package/dist/server/engine/update/1.4.2/iredmail.mysql +9 -0
- package/dist/server/engine/update/1.4.2/iredmail.pgsql +9 -0
- package/dist/server/engine/update/1.4.2/sogo.pgsql +30 -0
- package/dist/server/engine/update/1.6.0/sogo_view.pgsql +27 -0
- package/dist/server/engine/update/1.6.3/iredmail.mysql +1 -0
- package/dist/server/engine/update/1.7.0/fail2ban.mysql +11 -0
- package/dist/server/engine/update/1.7.0/fail2ban.pgsql +12 -0
- package/dist/server/engine/update/1.7.1/amavisd.mysql +1 -0
- package/dist/server/engine/update/1.7.2/vmail.mysql +30 -0
- package/dist/server/engine/update/1.7.3/deleted_mailboxes.mysql +43 -0
- package/dist/server/engine/update/1.7.3/iredadmin.mysql +26 -0
- package/dist/server/engine/update/1.7.3/vmail.mysql +79 -0
- package/dist/server/engine/update/1.7.3/vmail.pgsql +9 -0
- package/dist/server/engine/update/README.md +1 -0
- package/dist/server/engine/update/ldap/README.md +40 -0
- package/dist/server/engine/update/ldap/update-ldap-dovecot-2.3.py +69 -0
- package/dist/server/index.js +55574 -53675
- package/dist/server/migrations/0071_gh_device_token.sql +3 -0
- package/dist/server/migrations/0072_gh_device_token_method.sql +1 -0
- package/dist/server/migrations/meta/_journal.json +14 -0
- package/dist/setup-HQIZLUOJ.js +20 -0
- package/dist/{signin-DR462ERO.js → signin-ITOPKKUB.js} +13 -9
- package/dist/{sso-oidc-VBZLJUK5.js → sso-oidc-NON2PD7Y.js} +13 -9
- package/dist/{sts-EJLZ4Z77.js → sts-HHFFSAY2.js} +12 -8
- package/package.json +1 -1
- package/dist/bare-ITM45QBX.js +0 -18
- package/dist/cloud-JMPHO3CW.js +0 -7
- package/dist/cloud-W5G6YXAY.js +0 -24
- package/dist/dist-es-4C322O5D.js +0 -22
- package/dist/docker-3FVJMFC3.js +0 -12
- package/dist/docker-edge-executor-ZIWAZWPL.js +0 -9
- package/dist/edge-import-Y34YL6JK.js +0 -39
- package/dist/executor-J7BHW5HF.js +0 -26
- package/dist/nginx-YZWKYKQU.js +0 -16
- package/dist/noop-RRNCIUI5.js +0 -7
- 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
|
+
}
|