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,122 @@
|
|
|
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
|
+
# Optional components for special backend.
|
|
25
|
+
# ----------------------------------------
|
|
26
|
+
# Construct dialog menu list
|
|
27
|
+
# Format: item_name item_descrition on/off
|
|
28
|
+
# Note: item_descrition must be concatenated by '_'.
|
|
29
|
+
export LIST_OF_OPTIONAL_COMPONENTS=''
|
|
30
|
+
|
|
31
|
+
# Fail2ban
|
|
32
|
+
export DIALOG_SELECTABLE_FAIL2BAN='YES'
|
|
33
|
+
if [ X"${DISTRO}" == X'FREEBSD' ]; then
|
|
34
|
+
export DIALOG_SELECTABLE_FAIL2BAN='NO'
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
# Web applications
|
|
38
|
+
if [ X"${DISABLE_WEB_SERVER}" != X'YES' ]; then
|
|
39
|
+
. ${DIALOG_DIR}/web_applications.sh
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# iRedAdmin. Although it's a web application, but it's also able to run with
|
|
43
|
+
# WSGI server instead of web server.
|
|
44
|
+
LIST_OF_OPTIONAL_COMPONENTS="${LIST_OF_OPTIONAL_COMPONENTS} iRedAdmin Official_web-based_Admin_Panel on"
|
|
45
|
+
|
|
46
|
+
# Fail2ban.
|
|
47
|
+
if [ X"${DIALOG_SELECTABLE_FAIL2BAN}" == X'YES' ]; then
|
|
48
|
+
LIST_OF_OPTIONAL_COMPONENTS="${LIST_OF_OPTIONAL_COMPONENTS} Fail2ban Ban_IP_with_too_many_password_failures on"
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
export tmp_config_optional_components="${ROOTDIR}/.optional_components"
|
|
52
|
+
|
|
53
|
+
if echo ${LIST_OF_OPTIONAL_COMPONENTS} | grep 'o' &>/dev/null; then
|
|
54
|
+
${DIALOG} \
|
|
55
|
+
--title "Optional components" \
|
|
56
|
+
--checklist "\
|
|
57
|
+
* DKIM signing/verification and SPF validation are enabled by default.
|
|
58
|
+
* DNS records for SPF and DKIM are required after installation.
|
|
59
|
+
|
|
60
|
+
Refer to below file for more detail after installation:
|
|
61
|
+
|
|
62
|
+
* ${TIP_FILE}
|
|
63
|
+
" 20 76 6 \
|
|
64
|
+
${LIST_OF_OPTIONAL_COMPONENTS} \
|
|
65
|
+
2>${tmp_config_optional_components}
|
|
66
|
+
|
|
67
|
+
OPTIONAL_COMPONENTS="$(cat ${tmp_config_optional_components})"
|
|
68
|
+
rm -f ${tmp_config_optional_components} &>/dev/null
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
if echo ${OPTIONAL_COMPONENTS} | grep -i 'iredadmin' &>/dev/null; then
|
|
72
|
+
export USE_IREDADMIN='YES'
|
|
73
|
+
echo "export USE_IREDADMIN='YES'" >> ${IREDMAIL_CONFIG_FILE}
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
if echo ${OPTIONAL_COMPONENTS} | grep -i 'roundcubemail' &>/dev/null; then
|
|
77
|
+
export USE_ROUNDCUBE='YES'
|
|
78
|
+
echo "export USE_ROUNDCUBE='YES'" >> ${IREDMAIL_CONFIG_FILE}
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
if echo ${OPTIONAL_COMPONENTS} | grep -i 'sogo' &>/dev/null; then
|
|
82
|
+
export USE_SOGO='YES'
|
|
83
|
+
echo "export USE_SOGO='YES'" >> ${IREDMAIL_CONFIG_FILE}
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
if echo ${OPTIONAL_COMPONENTS} | grep -i 'netdata' &>/dev/null; then
|
|
87
|
+
export USE_NETDATA='YES'
|
|
88
|
+
echo "export USE_NETDATA='YES'" >>${IREDMAIL_CONFIG_FILE}
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
if echo ${OPTIONAL_COMPONENTS} | grep -i 'fail2ban' &>/dev/null; then
|
|
92
|
+
export USE_FAIL2BAN='YES'
|
|
93
|
+
echo "export USE_FAIL2BAN='YES'" >>${IREDMAIL_CONFIG_FILE}
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
export random_pw="$(${RANDOM_STRING})"
|
|
97
|
+
export AMAVISD_DB_PASSWD="${AMAVISD_DB_PASSWD:=${random_pw}}"
|
|
98
|
+
echo "export AMAVISD_DB_PASSWD='${AMAVISD_DB_PASSWD}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
99
|
+
|
|
100
|
+
export random_pw="$(${RANDOM_STRING})"
|
|
101
|
+
export IREDADMIN_DB_PASSWD="${IREDADMIN_DB_PASSWD:=${random_pw}}"
|
|
102
|
+
echo "export IREDADMIN_DB_PASSWD='${IREDADMIN_DB_PASSWD}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
103
|
+
|
|
104
|
+
export random_pw="$(${RANDOM_STRING})"
|
|
105
|
+
export RCM_DB_PASSWD="${RCM_DB_PASSWD:=${random_pw}}"
|
|
106
|
+
echo "export RCM_DB_PASSWD='${RCM_DB_PASSWD}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
107
|
+
|
|
108
|
+
export random_pw="$(${RANDOM_STRING})"
|
|
109
|
+
export SOGO_DB_PASSWD="${SOGO_DB_PASSWD:=${random_pw}}"
|
|
110
|
+
echo "export SOGO_DB_PASSWD='${SOGO_DB_PASSWD}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
111
|
+
|
|
112
|
+
export random_pw="$(${RANDOM_STRING})"
|
|
113
|
+
export SOGO_SIEVE_MASTER_PASSWD="${SOGO_SIEVE_MASTER_PASSWD:=${random_pw}}"
|
|
114
|
+
echo "export SOGO_SIEVE_MASTER_PASSWD='${SOGO_SIEVE_MASTER_PASSWD}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
115
|
+
|
|
116
|
+
export random_pw="$(${RANDOM_STRING})"
|
|
117
|
+
export IREDAPD_DB_PASSWD="${IREDAPD_DB_PASSWD:=${random_pw}}"
|
|
118
|
+
echo "export IREDAPD_DB_PASSWD='${IREDAPD_DB_PASSWD}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
119
|
+
|
|
120
|
+
export random_pw="$(${RANDOM_STRING})"
|
|
121
|
+
export FAIL2BAN_DB_PASSWD="${FAIL2BAN_DB_PASSWD:=${random_pw}}"
|
|
122
|
+
echo "export FAIL2BAN_DB_PASSWD='${FAIL2BAN_DB_PASSWD}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
# --------------------- MySQL ----------------------
|
|
25
|
+
# --------------------------------------------------
|
|
26
|
+
|
|
27
|
+
. ${CONF_DIR}/postgresql
|
|
28
|
+
|
|
29
|
+
# Root password.
|
|
30
|
+
while : ; do
|
|
31
|
+
${DIALOG} \
|
|
32
|
+
--title "Password for PostgreSQL administrator: ${PGSQL_ROOT_USER}" \
|
|
33
|
+
--passwordbox "\
|
|
34
|
+
Please specify password for PostgreSQL administrator: ${PGSQL_ROOT_USER}
|
|
35
|
+
|
|
36
|
+
WARNING:
|
|
37
|
+
|
|
38
|
+
* Do *NOT* use special characters in password right now. e.g. $, #, @, space.
|
|
39
|
+
* EMPTY password is *NOT* permitted.
|
|
40
|
+
* Sample password: $(${RANDOM_STRING})
|
|
41
|
+
" 20 76 2>${RUNTIME_DIR}/.pgsql_rootpw
|
|
42
|
+
|
|
43
|
+
PGSQL_ROOT_PASSWD="$(cat ${RUNTIME_DIR}/.pgsql_rootpw)"
|
|
44
|
+
|
|
45
|
+
# Check $, #, space
|
|
46
|
+
echo ${PGSQL_ROOT_PASSWD} | grep '[\$\#\ ]' &>/dev/null
|
|
47
|
+
[ X"$?" != X'0' -a X"${PGSQL_ROOT_PASSWD}" != X'' ] && break
|
|
48
|
+
done
|
|
49
|
+
|
|
50
|
+
export PGSQL_ROOT_PASSWD="${PGSQL_ROOT_PASSWD}"
|
|
51
|
+
echo "export PGSQL_ROOT_PASSWD='${PGSQL_ROOT_PASSWD}'" >>${IREDMAIL_CONFIG_FILE}
|
|
52
|
+
rm -f ${RUNTIME_DIR}/.pgsql_rootpw
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
# First domain name.
|
|
24
|
+
while : ; do
|
|
25
|
+
${DIALOG} \
|
|
26
|
+
--title "Your first mail domain name" \
|
|
27
|
+
--inputbox "\
|
|
28
|
+
Please specify your first mail domain name.
|
|
29
|
+
|
|
30
|
+
EXAMPLE:
|
|
31
|
+
|
|
32
|
+
* example.com
|
|
33
|
+
|
|
34
|
+
WARNING:
|
|
35
|
+
|
|
36
|
+
It can *NOT* be the same as server hostname: ${HOSTNAME}.
|
|
37
|
+
|
|
38
|
+
We need Postfix to accept emails sent to system accounts (e.g. root), if your mail domain is same as server hostname, Postfix won't accept any email sent to this mail domain.
|
|
39
|
+
" 20 76 2>${RUNTIME_DIR}/.first_domain
|
|
40
|
+
|
|
41
|
+
FIRST_DOMAIN="$(cat ${RUNTIME_DIR}/.first_domain | tr '[A-Z]' '[a-z]')"
|
|
42
|
+
|
|
43
|
+
echo "${FIRST_DOMAIN}" | grep '\.' &>/dev/null
|
|
44
|
+
[ X"$?" == X"0" -a X"${FIRST_DOMAIN}" != X"${HOSTNAME}" ] && break
|
|
45
|
+
done
|
|
46
|
+
|
|
47
|
+
export FIRST_DOMAIN="${FIRST_DOMAIN}"
|
|
48
|
+
echo "export FIRST_DOMAIN='${FIRST_DOMAIN}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
49
|
+
rm -f ${RUNTIME_DIR}/.first_domain
|
|
50
|
+
|
|
51
|
+
# Domain admin password
|
|
52
|
+
while : ; do
|
|
53
|
+
${DIALOG} \
|
|
54
|
+
--title "Password for the mail domain administrator" \
|
|
55
|
+
--passwordbox "\
|
|
56
|
+
Please specify password for the mail domain administrator:
|
|
57
|
+
|
|
58
|
+
* ${DOMAIN_ADMIN_NAME}@${FIRST_DOMAIN}
|
|
59
|
+
|
|
60
|
+
You can login to webmail and iRedAdmin with this account.
|
|
61
|
+
|
|
62
|
+
WARNING:
|
|
63
|
+
|
|
64
|
+
* Do *NOT* use special characters (like \$, white space) in password.
|
|
65
|
+
* EMPTY password is *NOT* permitted.
|
|
66
|
+
* Sample password: $(${RANDOM_STRING})
|
|
67
|
+
" 20 76 2>${RUNTIME_DIR}/.first_domain_admin_passwd
|
|
68
|
+
|
|
69
|
+
DOMAIN_ADMIN_PASSWD_PLAIN="$(cat ${RUNTIME_DIR}/.first_domain_admin_passwd)"
|
|
70
|
+
|
|
71
|
+
[ X"${DOMAIN_ADMIN_PASSWD_PLAIN}" != X"" ] && break
|
|
72
|
+
done
|
|
73
|
+
|
|
74
|
+
export DOMAIN_ADMIN_PASSWD_PLAIN="${DOMAIN_ADMIN_PASSWD_PLAIN}"
|
|
75
|
+
echo "export DOMAIN_ADMIN_PASSWD_PLAIN='${DOMAIN_ADMIN_PASSWD_PLAIN}'" >> ${IREDMAIL_CONFIG_FILE}
|
|
76
|
+
rm -f ${RUNTIME_DIR}/.first_domain_admin_passwd
|
|
77
|
+
|
|
78
|
+
cat >> ${TIP_FILE} <<EOF
|
|
79
|
+
Admin of domain ${FIRST_DOMAIN}:
|
|
80
|
+
|
|
81
|
+
* Account: ${DOMAIN_ADMIN_NAME}@${FIRST_DOMAIN}
|
|
82
|
+
* Password: ${DOMAIN_ADMIN_PASSWD_PLAIN}
|
|
83
|
+
|
|
84
|
+
You can login to iRedAdmin with this account, login name is full email address.
|
|
85
|
+
|
|
86
|
+
First mail user:
|
|
87
|
+
* Username: ${DOMAIN_ADMIN_NAME}@${FIRST_DOMAIN}
|
|
88
|
+
* Password: ${DOMAIN_ADMIN_PASSWD_PLAIN}
|
|
89
|
+
* SMTP/IMAP auth type: login
|
|
90
|
+
* Connection security: STARTTLS or SSL/TLS
|
|
91
|
+
|
|
92
|
+
You can login to webmail with this account, login name is full email address.
|
|
93
|
+
|
|
94
|
+
EOF
|
|
@@ -0,0 +1,267 @@
|
|
|
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
|
+
# Amavisd-new.
|
|
25
|
+
# --------------------------------------------
|
|
26
|
+
|
|
27
|
+
amavisd_initialize_db()
|
|
28
|
+
{
|
|
29
|
+
ECHO_DEBUG "Import Amavisd database and grant privileges."
|
|
30
|
+
|
|
31
|
+
if [ X"${BACKEND}" == X'OPENLDAP' -o X"${BACKEND}" == X'MYSQL' ]; then
|
|
32
|
+
${MYSQL_CLIENT_ROOT} <<EOF
|
|
33
|
+
-- Create database
|
|
34
|
+
CREATE DATABASE ${AMAVISD_DB_NAME} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
35
|
+
|
|
36
|
+
-- Create user and grant privileges
|
|
37
|
+
CREATE USER '${AMAVISD_DB_USER}'@'${MYSQL_GRANT_HOST}' IDENTIFIED BY '${AMAVISD_DB_PASSWD}';
|
|
38
|
+
GRANT SELECT,INSERT,UPDATE,DELETE ON ${AMAVISD_DB_NAME}.* TO '${AMAVISD_DB_USER}'@'${MYSQL_GRANT_HOST}';
|
|
39
|
+
|
|
40
|
+
-- Import Amavisd SQL template
|
|
41
|
+
USE ${AMAVISD_DB_NAME};
|
|
42
|
+
SOURCE ${AMAVISD_DB_MYSQL_TMPL};
|
|
43
|
+
SOURCE ${SAMPLE_DIR}/amavisd/default_spam_policy.sql;
|
|
44
|
+
|
|
45
|
+
FLUSH PRIVILEGES;
|
|
46
|
+
EOF
|
|
47
|
+
|
|
48
|
+
# Generate .my.cnf file
|
|
49
|
+
cat > /root/.my.cnf-${AMAVISD_DB_USER} <<EOF
|
|
50
|
+
[client]
|
|
51
|
+
host=${MYSQL_SERVER_ADDRESS}
|
|
52
|
+
port=${MYSQL_SERVER_PORT}
|
|
53
|
+
user=${AMAVISD_DB_USER}
|
|
54
|
+
password="${AMAVISD_DB_PASSWD}"
|
|
55
|
+
EOF
|
|
56
|
+
|
|
57
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
58
|
+
cp -f ${AMAVISD_DB_PGSQL_TMPL} ${PGSQL_USER_HOMEDIR}/amavisd.sql >> ${INSTALL_LOG} 2>&1
|
|
59
|
+
cp -f ${SAMPLE_DIR}/amavisd/default_spam_policy.sql ${PGSQL_USER_HOMEDIR}/default_spam_policy.sql >> ${INSTALL_LOG} 2>&1
|
|
60
|
+
chmod 0777 ${PGSQL_USER_HOMEDIR}/amavisd.sql >/dev/null
|
|
61
|
+
|
|
62
|
+
su - ${SYS_USER_PGSQL} -c "psql -d template1" >> ${INSTALL_LOG} 2>&1 <<EOF
|
|
63
|
+
-- Create database
|
|
64
|
+
CREATE DATABASE ${AMAVISD_DB_NAME} WITH TEMPLATE template0 ENCODING 'UTF8';
|
|
65
|
+
|
|
66
|
+
-- Create user
|
|
67
|
+
CREATE USER ${AMAVISD_DB_USER} WITH ENCRYPTED PASSWORD '${AMAVISD_DB_PASSWD}' NOSUPERUSER NOCREATEDB NOCREATEROLE;
|
|
68
|
+
|
|
69
|
+
ALTER DATABASE ${AMAVISD_DB_NAME} OWNER TO ${AMAVISD_DB_USER};
|
|
70
|
+
EOF
|
|
71
|
+
|
|
72
|
+
# Import Amavisd SQL template
|
|
73
|
+
su - ${SYS_USER_PGSQL} -c "psql -U ${AMAVISD_DB_USER} -d ${AMAVISD_DB_NAME}" >> ${INSTALL_LOG} 2>&1 <<EOF
|
|
74
|
+
\i ${PGSQL_USER_HOMEDIR}/amavisd.sql;
|
|
75
|
+
\i ${PGSQL_USER_HOMEDIR}/default_spam_policy.sql;
|
|
76
|
+
EOF
|
|
77
|
+
rm -f ${PGSQL_USER_HOMEDIR}/{amavisd,default_spam_policy}.sql >> ${INSTALL_LOG}
|
|
78
|
+
|
|
79
|
+
su - ${SYS_USER_PGSQL} -c "psql -U ${AMAVISD_DB_USER} -d ${AMAVISD_DB_NAME}" >> ${INSTALL_LOG} 2>&1 <<EOF
|
|
80
|
+
ALTER DATABASE ${AMAVISD_DB_NAME} SET bytea_output TO 'escape';
|
|
81
|
+
EOF
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
echo 'export status_amavisd_initialize_db="DONE"' >> ${STATUS_FILE}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
amavisd_config()
|
|
88
|
+
{
|
|
89
|
+
ECHO_INFO "Configure Amavisd-new (interface between MTA and content checkers)."
|
|
90
|
+
|
|
91
|
+
backup_file ${AMAVISD_CONF}
|
|
92
|
+
|
|
93
|
+
#
|
|
94
|
+
# DKIM
|
|
95
|
+
#
|
|
96
|
+
export AMAVISD_FIRST_DOMAIN_DKIM_KEY="${AMAVISD_DKIM_DIR}/${FIRST_DOMAIN}.pem"
|
|
97
|
+
|
|
98
|
+
ECHO_DEBUG "Generate DKIM pem files: ${AMAVISD_FIRST_DOMAIN_DKIM_KEY}."
|
|
99
|
+
mkdir -p ${AMAVISD_DKIM_DIR} &>/dev/null && \
|
|
100
|
+
chown -R ${SYS_USER_AMAVISD}:${SYS_GROUP_AMAVISD} ${AMAVISD_DKIM_DIR}
|
|
101
|
+
chmod -R 0700 ${AMAVISD_DKIM_DIR}
|
|
102
|
+
|
|
103
|
+
# Create DKIM key if not exists.
|
|
104
|
+
if [ ! -f ${AMAVISD_FIRST_DOMAIN_DKIM_KEY} ]; then
|
|
105
|
+
# Not all DNS vendor supports key length >= 2048, so we stick to 2048.
|
|
106
|
+
${AMAVISD_BIN} genrsa ${AMAVISD_FIRST_DOMAIN_DKIM_KEY} 2048 &>/dev/null
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
chown -R ${SYS_USER_AMAVISD}:${SYS_GROUP_AMAVISD} ${AMAVISD_FIRST_DOMAIN_DKIM_KEY}
|
|
110
|
+
chmod 0400 ${AMAVISD_FIRST_DOMAIN_DKIM_KEY}
|
|
111
|
+
|
|
112
|
+
#
|
|
113
|
+
# Disclaimer
|
|
114
|
+
#
|
|
115
|
+
# Create directory to store disclaimer files if not exist.
|
|
116
|
+
[ -d ${DISCLAIMER_DIR} ] || mkdir -p ${DISCLAIMER_DIR} >> ${INSTALL_LOG} 2>&1
|
|
117
|
+
# Create a empty disclaimer.
|
|
118
|
+
echo -e '\n----' > ${DISCLAIMER_DIR}/default.txt
|
|
119
|
+
|
|
120
|
+
#
|
|
121
|
+
# SQL integration
|
|
122
|
+
#
|
|
123
|
+
# Integrate SQL. Used to store incoming & outgoing related mail information.
|
|
124
|
+
if [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
125
|
+
export AMAVISD_PERL_SQL_DBI='Pg'
|
|
126
|
+
else
|
|
127
|
+
if [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' -o X"${DISTRO}" == X'FREEBSD' ]; then
|
|
128
|
+
export AMAVISD_PERL_SQL_DBI='mysql'
|
|
129
|
+
else
|
|
130
|
+
export AMAVISD_PERL_SQL_DBI='MariaDB'
|
|
131
|
+
fi
|
|
132
|
+
fi
|
|
133
|
+
|
|
134
|
+
#
|
|
135
|
+
# Main config file
|
|
136
|
+
#
|
|
137
|
+
cp -f ${SAMPLE_DIR}/amavisd/amavisd.conf ${AMAVISD_CONF} >> ${INSTALL_LOG} 2>&1
|
|
138
|
+
|
|
139
|
+
if [[ X"${DISTRO}" == X'RHEL' ]]; then
|
|
140
|
+
# `amavisd` command reads `/etc/amavisd.conf` by default.
|
|
141
|
+
ln -sf ${AMAVISD_CONF} /etc/amavisd.conf
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
perl -pi -e 's#PH_SYS_USER_AMAVISD#$ENV{SYS_USER_AMAVISD}#g' ${AMAVISD_CONF}
|
|
145
|
+
perl -pi -e 's#PH_SYS_GROUP_AMAVISD#$ENV{SYS_GROUP_AMAVISD}#g' ${AMAVISD_CONF}
|
|
146
|
+
perl -pi -e 's#PH_HOSTNAME#$ENV{HOSTNAME}#g' ${AMAVISD_CONF}
|
|
147
|
+
|
|
148
|
+
perl -pi -e 's#PH_AMAVISD_SPOOL_DIR#$ENV{AMAVISD_SPOOL_DIR}#g' ${AMAVISD_CONF}
|
|
149
|
+
perl -pi -e 's#PH_AMAVISD_TEMP_DIR#$ENV{AMAVISD_TEMP_DIR}#g' ${AMAVISD_CONF}
|
|
150
|
+
perl -pi -e 's#PH_AMAVISD_DB_DIR#$ENV{AMAVISD_DB_DIR}#g' ${AMAVISD_CONF}
|
|
151
|
+
perl -pi -e 's#PH_AMAVISD_QUARANTINE_DIR#$ENV{AMAVISD_QUARANTINE_DIR}#g' ${AMAVISD_CONF}
|
|
152
|
+
|
|
153
|
+
perl -pi -e 's#PH_AMAVISD_LOCK_FILE#$ENV{AMAVISD_LOCK_FILE}#g' ${AMAVISD_CONF}
|
|
154
|
+
perl -pi -e 's#PH_AMAVISD_PID_FILE#$ENV{AMAVISD_PID_FILE}#g' ${AMAVISD_CONF}
|
|
155
|
+
perl -pi -e 's#PH_AMAVISD_SOCKET_FILE#$ENV{AMAVISD_SOCKET_FILE}#g' ${AMAVISD_CONF}
|
|
156
|
+
|
|
157
|
+
perl -pi -e 's#PH_AMAVISD_SMTP_PORT#$ENV{AMAVISD_SMTP_PORT}#g' ${AMAVISD_CONF}
|
|
158
|
+
perl -pi -e 's#PH_AMAVISD_ORIGINATING_PORT#$ENV{AMAVISD_ORIGINATING_PORT}#g' ${AMAVISD_CONF}
|
|
159
|
+
perl -pi -e 's#PH_AMAVISD_QUARANTINE_PORT#$ENV{AMAVISD_QUARANTINE_PORT}#g' ${AMAVISD_CONF}
|
|
160
|
+
perl -pi -e 's#PH_POSTFIX_MAIL_REINJECT_PORT#$ENV{POSTFIX_MAIL_REINJECT_PORT}#g' ${AMAVISD_CONF}
|
|
161
|
+
|
|
162
|
+
perl -pi -e 's#PH_AMAVISD_MLMMJ_PORT#$ENV{AMAVISD_MLMMJ_PORT}#g' ${AMAVISD_CONF}
|
|
163
|
+
perl -pi -e 's#PH_POSTFIX_MLMMJ_REINJECT_PORT#$ENV{POSTFIX_MLMMJ_REINJECT_PORT}#g' ${AMAVISD_CONF}
|
|
164
|
+
|
|
165
|
+
perl -pi -e 's#PH_CLAMD_LOCAL_SOCKET#$ENV{CLAMD_LOCAL_SOCKET}#g' ${AMAVISD_CONF}
|
|
166
|
+
|
|
167
|
+
perl -pi -e 's#PH_FIRST_DOMAIN#$ENV{FIRST_DOMAIN}#g' ${AMAVISD_CONF}
|
|
168
|
+
perl -pi -e 's#PH_AMAVISD_FIRST_DOMAIN_DKIM_KEY#$ENV{AMAVISD_FIRST_DOMAIN_DKIM_KEY}#g' ${AMAVISD_CONF}
|
|
169
|
+
|
|
170
|
+
perl -pi -e 's#PH_CMD_ALTERMIME#$ENV{CMD_ALTERMIME}#g' ${AMAVISD_CONF}
|
|
171
|
+
|
|
172
|
+
perl -pi -e 's#PH_AMAVISD_PERL_SQL_DBI#$ENV{AMAVISD_PERL_SQL_DBI}#g' ${AMAVISD_CONF}
|
|
173
|
+
perl -pi -e 's#PH_AMAVISD_DB_NAME#$ENV{AMAVISD_DB_NAME}#g' ${AMAVISD_CONF}
|
|
174
|
+
perl -pi -e 's#PH_SQL_SERVER_ADDRESS#$ENV{SQL_SERVER_ADDRESS}#g' ${AMAVISD_CONF}
|
|
175
|
+
perl -pi -e 's#PH_SQL_SERVER_PORT#$ENV{SQL_SERVER_PORT}#g' ${AMAVISD_CONF}
|
|
176
|
+
perl -pi -e 's#PH_AMAVISD_DB_USER#$ENV{AMAVISD_DB_USER}#g' ${AMAVISD_CONF}
|
|
177
|
+
perl -pi -e 's#PH_AMAVISD_DB_PASSWD#$ENV{AMAVISD_DB_PASSWD}#g' ${AMAVISD_CONF}
|
|
178
|
+
|
|
179
|
+
perl -pi -e 's#PH_LOCAL_ADDRESS#$ENV{LOCAL_ADDRESS}#g' ${AMAVISD_CONF}
|
|
180
|
+
perl -pi -e 's#PH_AMAVISD_MAX_SERVERS#$ENV{AMAVISD_MAX_SERVERS}#g' ${AMAVISD_CONF}
|
|
181
|
+
|
|
182
|
+
if [ X"${DISTRO}" == X'RHEL' ]; then
|
|
183
|
+
usermod -G ${SYS_GROUP_AMAVISD} ${SYS_USER_CLAMAV} >> ${INSTALL_LOG} 2>&1
|
|
184
|
+
fi
|
|
185
|
+
|
|
186
|
+
if [ X"${DISTRO}" == X'RHEL' \
|
|
187
|
+
-o X"${DISTRO}" == X'FREEBSD' \
|
|
188
|
+
-o X"${DISTRO}" == X'OPENBSD' ]; then
|
|
189
|
+
chgrp ${SYS_GROUP_AMAVISD} ${AMAVISD_CONF}
|
|
190
|
+
chmod 0640 ${AMAVISD_CONF}
|
|
191
|
+
elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
|
|
192
|
+
# Make sure clamav is configured to init supplementary
|
|
193
|
+
# groups when it drops priviledges, and that you add the
|
|
194
|
+
# clamav user to the amavis group.
|
|
195
|
+
adduser --quiet ${SYS_USER_CLAMAV} ${SYS_GROUP_AMAVISD} >> ${INSTALL_LOG} 2>&1
|
|
196
|
+
fi
|
|
197
|
+
|
|
198
|
+
if [ X"${DISTRO}" == X'FREEBSD' ]; then
|
|
199
|
+
# Start service when system start up.
|
|
200
|
+
service_control enable 'amavisd_enable' 'YES'
|
|
201
|
+
service_control enable 'amavisd_pidfile' "${AMAVISD_PID_FILE}"
|
|
202
|
+
service_control enable 'amavis_milter_enable' 'NO'
|
|
203
|
+
service_control enable 'amavis_p0fanalyzer_enable' 'NO'
|
|
204
|
+
fi
|
|
205
|
+
|
|
206
|
+
#
|
|
207
|
+
# Postfix integration
|
|
208
|
+
#
|
|
209
|
+
cat ${SAMPLE_DIR}/postfix/main.cf.amavisd >> ${POSTFIX_FILE_MAIN_CF}
|
|
210
|
+
perl -pi -e 's#PH_SMTP_SERVER#$ENV{SMTP_SERVER}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
211
|
+
|
|
212
|
+
# Add postfix alias for user: amavis.
|
|
213
|
+
add_postfix_alias ${SYS_USER_AMAVISD} ${SYS_USER_ROOT}
|
|
214
|
+
|
|
215
|
+
#
|
|
216
|
+
# Cron jobs
|
|
217
|
+
#
|
|
218
|
+
if [ -n "${AMAVISD_VIRUSMAILS_DIR}" ]; then
|
|
219
|
+
ECHO_DEBUG "Setting cron job for vmail user to delete virus mail per month."
|
|
220
|
+
cat >> ${CRON_FILE_AMAVISD} <<EOF
|
|
221
|
+
${CONF_MSG}
|
|
222
|
+
# Delete virus mails which created 15 days ago.
|
|
223
|
+
1 5 * * * touch ${AMAVISD_VIRUSMAILS_DIR}; find ${AMAVISD_VIRUSMAILS_DIR}/ -mtime +15 | xargs rm -rf {}
|
|
224
|
+
|
|
225
|
+
EOF
|
|
226
|
+
fi
|
|
227
|
+
|
|
228
|
+
#
|
|
229
|
+
# Populate SQL data
|
|
230
|
+
#
|
|
231
|
+
if [ X"${INITIALIZE_SQL_DATA}" == X'YES' ]; then
|
|
232
|
+
check_status_before_run amavisd_initialize_db
|
|
233
|
+
fi
|
|
234
|
+
|
|
235
|
+
#
|
|
236
|
+
# Tip file
|
|
237
|
+
#
|
|
238
|
+
cat >> ${TIP_FILE} <<EOF
|
|
239
|
+
Amavisd-new:
|
|
240
|
+
* Configuration files:
|
|
241
|
+
- ${AMAVISD_CONF}
|
|
242
|
+
- ${POSTFIX_FILE_MASTER_CF}
|
|
243
|
+
- ${POSTFIX_FILE_MAIN_CF}
|
|
244
|
+
* RC script:
|
|
245
|
+
- ${DIR_RC_SCRIPTS}/${AMAVISD_RC_SCRIPT_NAME}
|
|
246
|
+
* SQL Database:
|
|
247
|
+
- Database name: ${AMAVISD_DB_NAME}
|
|
248
|
+
- Database user: ${AMAVISD_DB_USER}
|
|
249
|
+
- Database password: ${AMAVISD_DB_PASSWD}
|
|
250
|
+
|
|
251
|
+
DNS record for DKIM support:
|
|
252
|
+
|
|
253
|
+
EOF
|
|
254
|
+
|
|
255
|
+
if [ X"${DISTRO}" == X'RHEL' ]; then
|
|
256
|
+
cat >> ${TIP_FILE} <<EOF
|
|
257
|
+
$(${AMAVISD_BIN} -c ${AMAVISD_CONF} showkeys 2>> ${INSTALL_LOG})
|
|
258
|
+
EOF
|
|
259
|
+
else
|
|
260
|
+
cat >> ${TIP_FILE} <<EOF
|
|
261
|
+
$(${AMAVISD_BIN} showkeys 2>> ${INSTALL_LOG})
|
|
262
|
+
EOF
|
|
263
|
+
fi
|
|
264
|
+
|
|
265
|
+
write_iredmail_kv "sql_user_${AMAVISD_DB_USER}" "${AMAVISD_DB_PASSWD}"
|
|
266
|
+
echo 'export status_amavisd_config="DONE"' >> ${STATUS_FILE}
|
|
267
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
# ------------- Install and config backend. -------------
|
|
25
|
+
# -------------------------------------------------------
|
|
26
|
+
backend_install()
|
|
27
|
+
{
|
|
28
|
+
if [ X"${BACKEND}" == X'OPENLDAP' -o X"${BACKEND}" == X'MYSQL' ]; then
|
|
29
|
+
export SQL_SERVER_ADDRESS="${MYSQL_SERVER_ADDRESS}"
|
|
30
|
+
export SQL_SERVER_PORT="${MYSQL_SERVER_PORT}"
|
|
31
|
+
export SQL_ROOT_USER="${MYSQL_ROOT_USER}"
|
|
32
|
+
export SQL_ROOT_PASSWD="${MYSQL_ROOT_PASSWD}"
|
|
33
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
34
|
+
export SQL_SERVER_ADDRESS="${PGSQL_SERVER_ADDRESS}"
|
|
35
|
+
export SQL_SERVER_PORT="${PGSQL_SERVER_PORT}"
|
|
36
|
+
export SQL_ROOT_USER="${PGSQL_ROOT_USER}"
|
|
37
|
+
export SQL_ROOT_PASSWD="${PGSQL_ROOT_PASSWD}"
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Check whether remote MySQL server is an IPv6 address.
|
|
41
|
+
SQL_SERVER_ADDRESS_IS_IPV6='NO'
|
|
42
|
+
if echo ${SQL_SERVER_ADDRESS} | grep ':' &>/dev/null; then
|
|
43
|
+
SQL_SERVER_ADDRESS_IS_IPV6='YES'
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if [ X"${DISTRO}" == X'FREEBSD' ]; then
|
|
47
|
+
# Generate sample Dovecot config files first to use `doveadm pw`.
|
|
48
|
+
# `dovecot.conf` will be re-generated, `conf.d/` will be removed.
|
|
49
|
+
if [ ! -f ${DOVECOT_CONF} ]; then
|
|
50
|
+
cp -rf /usr/local/etc/dovecot/example-config/{dovecot.conf,conf.d} /usr/local/etc/dovecot/
|
|
51
|
+
|
|
52
|
+
# Disable ssl in sample config file. it loads non-existing ssl
|
|
53
|
+
# cert/key files, this caused `doveadm pw` command failed to run,
|
|
54
|
+
# hence no password hash generated for postmaster@<first-domain>.
|
|
55
|
+
rm -f /usr/local/etc/dovecot/conf.d/10-ssl.conf
|
|
56
|
+
fi
|
|
57
|
+
else
|
|
58
|
+
rm -f /etc/dovecot/conf.d/10-ssl.conf
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
# Hashed admin password with command `doveadm pw`. It requires dovecot package.
|
|
62
|
+
export DOMAIN_ADMIN_PASSWD_HASH="$(generate_password_hash ${DEFAULT_PASSWORD_SCHEME} ${DOMAIN_ADMIN_PASSWD_PLAIN})"
|
|
63
|
+
|
|
64
|
+
if [ X"${BACKEND}" == X'OPENLDAP' ]; then
|
|
65
|
+
# Install, config and initialize LDAP server
|
|
66
|
+
check_status_before_run ldap_server_config
|
|
67
|
+
check_status_before_run ldap_server_cron_backup
|
|
68
|
+
|
|
69
|
+
# Setup MySQL database server.
|
|
70
|
+
ECHO_INFO "Configure MariaDB database server."
|
|
71
|
+
|
|
72
|
+
check_status_before_run mysql_initialize_db
|
|
73
|
+
check_status_before_run mysql_generate_defaults_file_root
|
|
74
|
+
check_status_before_run mysql_remove_insecure_data
|
|
75
|
+
check_status_before_run mysql_cron_backup
|
|
76
|
+
|
|
77
|
+
elif [ X"${BACKEND}" == X'MYSQL' ]; then
|
|
78
|
+
check_status_before_run mysql_setup
|
|
79
|
+
|
|
80
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
81
|
+
check_status_before_run pgsql_setup
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
write_iredmail_kv first_domain_admin_password "${DOMAIN_ADMIN_PASSWD_PLAIN}"
|
|
85
|
+
}
|