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,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
|