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,50 @@
|
|
|
1
|
+
connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_LAST_LOGIN_DB_NAME user=PH_LAST_LOGIN_DB_USER password=PH_LAST_LOGIN_DB_PASSWORD
|
|
2
|
+
|
|
3
|
+
map {
|
|
4
|
+
pattern = shared/last-login/imap/$user/$domain
|
|
5
|
+
table = last_login
|
|
6
|
+
value_field = imap
|
|
7
|
+
value_type = uint
|
|
8
|
+
|
|
9
|
+
fields {
|
|
10
|
+
username = $user
|
|
11
|
+
domain = $domain
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
map {
|
|
16
|
+
pattern = shared/last-login/pop3/$user/$domain
|
|
17
|
+
table = last_login
|
|
18
|
+
value_field = pop3
|
|
19
|
+
value_type = uint
|
|
20
|
+
|
|
21
|
+
fields {
|
|
22
|
+
username = $user
|
|
23
|
+
domain = $domain
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
map {
|
|
28
|
+
pattern = shared/last-login/lda/$user/$domain
|
|
29
|
+
table = last_login
|
|
30
|
+
value_field = lda
|
|
31
|
+
value_type = uint
|
|
32
|
+
|
|
33
|
+
fields {
|
|
34
|
+
username = $user
|
|
35
|
+
domain = $domain
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
# Treat lmtp as lda.
|
|
40
|
+
map {
|
|
41
|
+
pattern = shared/last-login/lmtp/$user/$domain
|
|
42
|
+
table = last_login
|
|
43
|
+
value_field = lda
|
|
44
|
+
value_type = uint
|
|
45
|
+
|
|
46
|
+
fields {
|
|
47
|
+
username = $user
|
|
48
|
+
domain = $domain
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
hosts = PH_LDAP_SERVER_HOST:PH_LDAP_SERVER_PORT
|
|
2
|
+
ldap_version = PH_LDAP_BIND_VERSION
|
|
3
|
+
auth_bind = yes
|
|
4
|
+
dn = PH_LDAP_BINDDN
|
|
5
|
+
dnpass = PH_LDAP_BINDPW
|
|
6
|
+
base = PH_LDAP_BASEDN
|
|
7
|
+
scope = subtree
|
|
8
|
+
deref = never
|
|
9
|
+
debug_level = 0
|
|
10
|
+
|
|
11
|
+
# Below two are required by command 'doveadm mailbox ...'
|
|
12
|
+
#iterate_attrs = mail=user
|
|
13
|
+
#iterate_filter = (&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail))
|
|
14
|
+
|
|
15
|
+
user_filter = (&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=%Ls%Lc)(|(mail=%u)(&(enabledService=shadowaddress)(shadowAddress=%u))))
|
|
16
|
+
user_attrs = mail=master_user,mail=user,=home=%L{ldap:homeDirectory},=mail=%{ldap:mailboxFormat:maildir}:~/%{ldap:mailboxFolder:Maildir}/,mailQuota=quota_rule=*:bytes=%$
|
|
17
|
+
|
|
18
|
+
# Used for dn lookup
|
|
19
|
+
pass_filter = (&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=%Ls%Lc)(|(mail=%u)(&(enabledService=shadowaddress)(shadowAddress=%u))))
|
|
20
|
+
pass_attrs = mail=user,userPassword=password,allowNets=allow_nets
|
|
21
|
+
default_pass_scheme = CRYPT
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_DOVECOT_SHARE_FOLDER_DB_NAME user=PH_DOVECOT_SHARE_FOLDER_DB_USER password=PH_DOVECOT_SHARE_FOLDER_DB_PASSWORD
|
|
2
|
+
map {
|
|
3
|
+
pattern = shared/shared-boxes/user/$to/$from
|
|
4
|
+
table = PH_DOVECOT_SHARE_FOLDER_DB_TABLE
|
|
5
|
+
value_field = dummy
|
|
6
|
+
|
|
7
|
+
fields {
|
|
8
|
+
from_user = $from
|
|
9
|
+
to_user = $to
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
# To share mailbox to anyone, please uncomment 'acl_anyone = allow' in
|
|
14
|
+
# dovecot.conf
|
|
15
|
+
map {
|
|
16
|
+
pattern = shared/shared-boxes/anyone/$from
|
|
17
|
+
table = PH_DOVECOT_SHARE_FOLDER_ANYONE_DB_TABLE
|
|
18
|
+
value_field = dummy
|
|
19
|
+
fields {
|
|
20
|
+
from_user = $from
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
driver = PH_SQL_DRIVER
|
|
2
|
+
default_pass_scheme = CRYPT
|
|
3
|
+
connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_VMAIL_DB_NAME user=PH_VMAIL_DB_BIND_USER password=PH_VMAIL_DB_BIND_PASSWD
|
|
4
|
+
|
|
5
|
+
# Required by doveadm tools which require to list all mail users.
|
|
6
|
+
iterate_query = SELECT username AS user FROM mailbox
|
|
7
|
+
|
|
8
|
+
password_query = SELECT mailbox.password, mailbox.allow_nets \
|
|
9
|
+
FROM mailbox,domain \
|
|
10
|
+
WHERE mailbox.username='%u' \
|
|
11
|
+
AND mailbox.enable%Ls%Lc=1 \
|
|
12
|
+
AND mailbox.active=1 \
|
|
13
|
+
AND mailbox.domain=domain.domain \
|
|
14
|
+
AND domain.backupmx=0 \
|
|
15
|
+
AND domain.active=1
|
|
16
|
+
|
|
17
|
+
user_query = SELECT \
|
|
18
|
+
LOWER('%u') AS master_user, \
|
|
19
|
+
LOWER(CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir)) AS home, \
|
|
20
|
+
CONCAT(mailbox.mailboxformat, ':~/', mailbox.mailboxfolder) AS mail, \
|
|
21
|
+
CONCAT('*:bytes=', mailbox.quota*1048576) AS quota_rule \
|
|
22
|
+
FROM mailbox,domain \
|
|
23
|
+
WHERE mailbox.username='%u' \
|
|
24
|
+
AND mailbox.enable%Ls%Lc=1 \
|
|
25
|
+
AND mailbox.active=1 \
|
|
26
|
+
AND mailbox.domain=domain.domain \
|
|
27
|
+
AND domain.backupmx=0 \
|
|
28
|
+
AND domain.active=1
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
connect = host=PH_SQL_SERVER_ADDRESS port=PH_SQL_SERVER_PORT dbname=PH_REALTIME_QUOTA_DB_NAME user=PH_REALTIME_QUOTA_DB_USER password=PH_REALTIME_QUOTA_DB_PASSWORD
|
|
2
|
+
map {
|
|
3
|
+
pattern = priv/quota/storage
|
|
4
|
+
table = PH_DOVECOT_REALTIME_QUOTA_TABLE
|
|
5
|
+
username_field = username
|
|
6
|
+
value_field = bytes
|
|
7
|
+
}
|
|
8
|
+
map {
|
|
9
|
+
pattern = priv/quota/messages
|
|
10
|
+
table = PH_DOVECOT_REALTIME_QUOTA_TABLE
|
|
11
|
+
username_field = username
|
|
12
|
+
value_field = messages
|
|
13
|
+
}
|
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
# More details about Dovecot settings: https://doc.dovecot.org
|
|
2
|
+
|
|
3
|
+
# Listen addresses.
|
|
4
|
+
# - '*' means all available IPv4 addresses.
|
|
5
|
+
# - '[::]' means all available IPv6 addresses.
|
|
6
|
+
# Listen on all available addresses by default
|
|
7
|
+
listen = * [::]
|
|
8
|
+
|
|
9
|
+
#base_dir = PH_BASE_DIR
|
|
10
|
+
mail_plugins = quota mailbox_alias acl mail_log notify
|
|
11
|
+
|
|
12
|
+
# Enabled mail protocols.
|
|
13
|
+
protocols = PH_PROTOCOLS
|
|
14
|
+
|
|
15
|
+
# User/group who owns the message files:
|
|
16
|
+
mail_uid = PH_MAIL_UID
|
|
17
|
+
mail_gid = PH_MAIL_GID
|
|
18
|
+
|
|
19
|
+
# Assign uid to virtual users.
|
|
20
|
+
first_valid_uid = PH_FIRST_VALID_UID
|
|
21
|
+
last_valid_uid = PH_LAST_VALID_UID
|
|
22
|
+
|
|
23
|
+
# Logging. Reference: http://wiki2.dovecot.org/Logging
|
|
24
|
+
#
|
|
25
|
+
# Use syslog
|
|
26
|
+
syslog_facility = PH_IREDMAIL_SYSLOG_FACILITY
|
|
27
|
+
|
|
28
|
+
# Debug
|
|
29
|
+
#mail_debug = yes
|
|
30
|
+
#auth_verbose = yes
|
|
31
|
+
#auth_debug = yes
|
|
32
|
+
#auth_debug_passwords = yes
|
|
33
|
+
|
|
34
|
+
# Possible values: no, yes, plain, sha1.
|
|
35
|
+
# Set to 'yes' or 'plain', to output plaintext password (NOT RECOMMENDED).
|
|
36
|
+
#auth_verbose_passwords = no
|
|
37
|
+
|
|
38
|
+
# SSL: Global settings.
|
|
39
|
+
# Refer to wiki site for per protocol, ip, server name SSL settings:
|
|
40
|
+
# http://wiki2.dovecot.org/SSL/DovecotConfiguration
|
|
41
|
+
ssl_min_protocol = TLSv1.2
|
|
42
|
+
ssl = required
|
|
43
|
+
verbose_ssl = no
|
|
44
|
+
#ssl_ca = </path/to/ca
|
|
45
|
+
ssl_cert = <PH_SSL_CERT
|
|
46
|
+
ssl_key = <PH_SSL_KEY
|
|
47
|
+
ssl_dh = <PH_SSL_DH1024_PARAM_FILE
|
|
48
|
+
|
|
49
|
+
# Fix 'The Logjam Attack'
|
|
50
|
+
ssl_cipher_list = PH_SSL_CIPHERS
|
|
51
|
+
ssl_prefer_server_ciphers = yes
|
|
52
|
+
|
|
53
|
+
# With disable_plaintext_auth=yes AND ssl=required, STARTTLS is mandatory.
|
|
54
|
+
# Set disable_plaintext_auth=no AND ssl=yes to allow plain password transmitted
|
|
55
|
+
# insecurely.
|
|
56
|
+
disable_plaintext_auth = yes
|
|
57
|
+
|
|
58
|
+
# Allow plain text password per IP address/net
|
|
59
|
+
#remote 192.168.0.0/24 {
|
|
60
|
+
# disable_plaintext_auth = no
|
|
61
|
+
#}
|
|
62
|
+
|
|
63
|
+
# Mail location and mailbox format.
|
|
64
|
+
mail_location = maildir:%Lh/Maildir/:INDEX=%Lh/Maildir/
|
|
65
|
+
|
|
66
|
+
# Authentication related settings.
|
|
67
|
+
# Append this domain name if client gives empty realm.
|
|
68
|
+
#auth_default_realm = PH_AUTH_DEFAULT_REALM
|
|
69
|
+
|
|
70
|
+
# Authentication mechanisms.
|
|
71
|
+
auth_mechanisms = PLAIN LOGIN
|
|
72
|
+
|
|
73
|
+
# Limits the number of users that can be logging in at the same time.
|
|
74
|
+
# Default is 100. This can be overridden by `process_limit =` in
|
|
75
|
+
# `service [protocol]` block.
|
|
76
|
+
# e.g.
|
|
77
|
+
# protocol imap-login {
|
|
78
|
+
# ...
|
|
79
|
+
# process_limit = 500
|
|
80
|
+
# }
|
|
81
|
+
#default_process_limit = 100
|
|
82
|
+
|
|
83
|
+
# Login log elements.
|
|
84
|
+
# Add '%k' for detailed SSL protocol and cipher information.
|
|
85
|
+
# e.g. "TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)"
|
|
86
|
+
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k session=<%{session}>
|
|
87
|
+
|
|
88
|
+
# Mail delivery log format
|
|
89
|
+
deliver_log_format = from=%{from}, envelope_sender=%{from_envelope}, subject=%{subject}, msgid=%m, size=%{size}, delivery_time=%{delivery_time}ms, %$
|
|
90
|
+
|
|
91
|
+
service auth {
|
|
92
|
+
unix_listener PH_POSTFIX_CHROOT_DIR/private/dovecot-auth {
|
|
93
|
+
user = PH_DOVECOT_AUTH_USER
|
|
94
|
+
group = PH_DOVECOT_AUTH_GROUP
|
|
95
|
+
mode = 0666
|
|
96
|
+
}
|
|
97
|
+
unix_listener auth-master {
|
|
98
|
+
user = PH_AUTH_MASTER_USER
|
|
99
|
+
group = PH_AUTH_MASTER_GROUP
|
|
100
|
+
mode = 0666
|
|
101
|
+
}
|
|
102
|
+
unix_listener auth-userdb {
|
|
103
|
+
user = PH_AUTH_MASTER_USER
|
|
104
|
+
group = PH_AUTH_MASTER_GROUP
|
|
105
|
+
mode = 0660
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
# LMTP server (Local Mail Transfer Protocol).
|
|
110
|
+
# Reference: http://wiki2.dovecot.org/LMTP
|
|
111
|
+
service lmtp {
|
|
112
|
+
user = PH_AUTH_MASTER_USER
|
|
113
|
+
|
|
114
|
+
# For higher volume sites, it may be desirable to increase the number of
|
|
115
|
+
# active listener processes. A range of 5 to 20 is probably good for most
|
|
116
|
+
# sites.
|
|
117
|
+
process_min_avail = 5
|
|
118
|
+
|
|
119
|
+
# Logging.
|
|
120
|
+
executable = lmtp -L
|
|
121
|
+
|
|
122
|
+
# Listening on socket file and TCP
|
|
123
|
+
unix_listener PH_POSTFIX_CHROOT_DIR/private/dovecot-lmtp {
|
|
124
|
+
user = PH_DOVECOT_AUTH_USER
|
|
125
|
+
group = PH_DOVECOT_AUTH_GROUP
|
|
126
|
+
mode = 0666
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
inet_listener lmtp {
|
|
130
|
+
# Listen on localhost (ipv4)
|
|
131
|
+
address = PH_LMTP_BIND_ADDRESS
|
|
132
|
+
port = PH_LMTP_BIND_PORT
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
# Virtual mail accounts.
|
|
137
|
+
userdb {
|
|
138
|
+
args = PH_USERDB_ARGS
|
|
139
|
+
driver = PH_USERDB_DRIVER
|
|
140
|
+
}
|
|
141
|
+
passdb {
|
|
142
|
+
args = PH_PASSDB_ARGS
|
|
143
|
+
driver = PH_PASSDB_DRIVER
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
# Master user.
|
|
147
|
+
# Master users are able to log in as other users. It's also possible to
|
|
148
|
+
# directly log in as any user using a master password, although this isn't
|
|
149
|
+
# recommended.
|
|
150
|
+
# Reference: http://wiki2.dovecot.org/Authentication/MasterUsers
|
|
151
|
+
auth_master_user_separator = *
|
|
152
|
+
passdb {
|
|
153
|
+
driver = passwd-file
|
|
154
|
+
args = PH_DOVECOT_MASTER_USER_PASSWORD_FILE
|
|
155
|
+
master = yes
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
plugin {
|
|
159
|
+
# Quota configuration.
|
|
160
|
+
# Reference: http://wiki2.dovecot.org/Quota/Configuration
|
|
161
|
+
quota = PH_QUOTA_TYPE
|
|
162
|
+
|
|
163
|
+
# Set default quota rule if no quota returned from SQL/LDAP query.
|
|
164
|
+
#quota_rule = *:storage=1G
|
|
165
|
+
#quota_rule2 = *:messages=0
|
|
166
|
+
#quota_rule3 = Trash:storage=1G
|
|
167
|
+
#quota_rule4 = Junk:ignore
|
|
168
|
+
|
|
169
|
+
# Quota warning.
|
|
170
|
+
#
|
|
171
|
+
# If user suddenly receives a huge mail and the quota jumps from
|
|
172
|
+
# 85% to 95%, only the 95% script is executed.
|
|
173
|
+
#
|
|
174
|
+
# Only the command for the first exceeded limit is executed, so configure
|
|
175
|
+
# the highest limit first.
|
|
176
|
+
quota_warning = storage=100%% quota-warning 100 %u
|
|
177
|
+
quota_warning2 = storage=95%% quota-warning 95 %u
|
|
178
|
+
quota_warning3 = storage=90%% quota-warning 90 %u
|
|
179
|
+
quota_warning4 = storage=85%% quota-warning 85 %u
|
|
180
|
+
|
|
181
|
+
# allow user to become max 10% (or 50 MB) over quota
|
|
182
|
+
quota_grace = 10%%
|
|
183
|
+
#quota_grace = 50 M
|
|
184
|
+
|
|
185
|
+
# Custom Quota Exceeded Message.
|
|
186
|
+
# You can specify the message directly or read the message from a file.
|
|
187
|
+
#quota_exceeded_message = Quota exceeded, please try again later.
|
|
188
|
+
#quota_exceeded_message = </path/to/quota_exceeded_message.txt
|
|
189
|
+
|
|
190
|
+
# Used by quota-status service.
|
|
191
|
+
quota_status_success = DUNNO
|
|
192
|
+
quota_status_nouser = DUNNO
|
|
193
|
+
quota_status_overquota = "552 5.2.2 Mailbox is full"
|
|
194
|
+
|
|
195
|
+
# ACL and share folder
|
|
196
|
+
acl = vfile
|
|
197
|
+
acl_shared_dict = proxy::acl
|
|
198
|
+
|
|
199
|
+
# By default Dovecot doesn't allow using the IMAP "anyone" or
|
|
200
|
+
# "authenticated" identifier, because it would be an easy way to spam
|
|
201
|
+
# other users in the system. If you wish to allow it,
|
|
202
|
+
#acl_anyone = allow
|
|
203
|
+
|
|
204
|
+
# Pigeonhole managesieve service.
|
|
205
|
+
# Reference: http://wiki2.dovecot.org/Pigeonhole/Sieve/Configuration
|
|
206
|
+
# Per-user sieve settings.
|
|
207
|
+
sieve_dir = ~/sieve
|
|
208
|
+
sieve = ~/sieve/PH_SIEVE_RULE_FILENAME
|
|
209
|
+
|
|
210
|
+
# Global sieve settings.
|
|
211
|
+
sieve_global_dir = PH_SIEVE_DIR
|
|
212
|
+
# Note: if user has personal sieve script, global sieve rules defined in
|
|
213
|
+
# sieve_default will be ignored. Please use sieve_before or
|
|
214
|
+
# sieve_after instead.
|
|
215
|
+
#sieve_default =
|
|
216
|
+
|
|
217
|
+
sieve_before = PH_GLOBAL_SIEVE_FILE
|
|
218
|
+
#sieve_after =
|
|
219
|
+
|
|
220
|
+
# The maximum number of redirect actions that can be performed during a
|
|
221
|
+
# single script execution.
|
|
222
|
+
# The meaning of 0 differs based on your version. For pigeonhole-0.3.0 and
|
|
223
|
+
# beyond this means that redirect is prohibited. For older versions,
|
|
224
|
+
# however, this means that the number of redirects is unlimited.
|
|
225
|
+
sieve_max_redirects = 30
|
|
226
|
+
|
|
227
|
+
# Use recipient as vacation message sender instead of null sender (<>).
|
|
228
|
+
sieve_vacation_send_from_recipient = yes
|
|
229
|
+
|
|
230
|
+
# Reference: http://wiki2.dovecot.org/Plugins/MailboxAlias
|
|
231
|
+
mailbox_alias_old = Sent
|
|
232
|
+
mailbox_alias_new = Sent Messages
|
|
233
|
+
mailbox_alias_old2 = Sent
|
|
234
|
+
mailbox_alias_new2 = Sent Items
|
|
235
|
+
|
|
236
|
+
# Events to log. `autoexpunge` is included in `expunge`
|
|
237
|
+
# Defined in https://github.com/dovecot/core/blob/master/src/plugins/mail-log/mail-log-plugin.c
|
|
238
|
+
mail_log_events = delete undelete expunge copy mailbox_create mailbox_delete mailbox_rename
|
|
239
|
+
mail_log_fields = uid box msgid size from subject flags
|
|
240
|
+
|
|
241
|
+
# Track user last login
|
|
242
|
+
last_login_dict = proxy::lastlogin
|
|
243
|
+
last_login_key = last-login/%s/%u/%d
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
service stats {
|
|
247
|
+
fifo_listener stats-mail {
|
|
248
|
+
user = PH_DOVECOT_SERVICE_STATS_USER
|
|
249
|
+
mode = 0644
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
unix_listener stats-writer {
|
|
253
|
+
user = PH_DOVECOT_SERVICE_STATS_USER
|
|
254
|
+
group = PH_DOVECOT_SERVICE_STATS_GROUP
|
|
255
|
+
mode = 0660
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
inet_listener {
|
|
259
|
+
address = 127.0.0.1
|
|
260
|
+
port = PH_DOVECOT_SERVICE_STATS_PORT
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
service quota-warning {
|
|
265
|
+
executable = script PH_QUOTA_WARNING_SCRIPT
|
|
266
|
+
unix_listener quota-warning {
|
|
267
|
+
user = PH_QUOTA_WARNING_USER
|
|
268
|
+
group = PH_QUOTA_WARNING_GROUP
|
|
269
|
+
mode = 0660
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
service quota-status {
|
|
274
|
+
# '-p <protocol>'. Currently only 'postfix' protocol is supported.
|
|
275
|
+
executable = quota-status -p postfix
|
|
276
|
+
client_limit = 1
|
|
277
|
+
inet_listener {
|
|
278
|
+
address = PH_DOVECOT_SERVICE_QUOTA_STATUS_BIND_ADDRESS
|
|
279
|
+
port = PH_DOVECOT_SERVICE_QUOTA_STATUS_PORT
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
service dict {
|
|
284
|
+
unix_listener dict {
|
|
285
|
+
mode = 0660
|
|
286
|
+
user = PH_SERVICE_DICT_USER
|
|
287
|
+
group = PH_SERVICE_DICT_GROUP
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
dict {
|
|
292
|
+
quotadict = PH_DOVECOT_SQL_DBN:PH_DOVECOT_REALTIME_QUOTA_CONF
|
|
293
|
+
acl = PH_DOVECOT_SQL_DBN:PH_DOVECOT_SHARE_FOLDER_CONF
|
|
294
|
+
lastlogin = PH_DOVECOT_SQL_DBN:PH_DOVECOT_LAST_LOGIN_CONF
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
protocol lda {
|
|
298
|
+
mail_plugins = $mail_plugins sieve last_login
|
|
299
|
+
lda_mailbox_autocreate = yes
|
|
300
|
+
lda_mailbox_autosubscribe = yes
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
protocol lmtp {
|
|
304
|
+
# Plugins
|
|
305
|
+
mail_plugins = $mail_plugins sieve last_login
|
|
306
|
+
|
|
307
|
+
# Address extension delivery
|
|
308
|
+
lmtp_save_to_detail_mailbox = yes
|
|
309
|
+
recipient_delimiter = +
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
protocol imap {
|
|
313
|
+
mail_plugins = $mail_plugins imap_quota imap_acl last_login
|
|
314
|
+
imap_client_workarounds = tb-extra-mailbox-sep
|
|
315
|
+
|
|
316
|
+
# Maximum number of IMAP connections allowed for a user from each IP address.
|
|
317
|
+
# NOTE: The username is compared case-sensitively.
|
|
318
|
+
# Default is 10.
|
|
319
|
+
# Increase it to avoid issue like below:
|
|
320
|
+
# "Maximum number of concurrent IMAP connections exceeded"
|
|
321
|
+
mail_max_userip_connections = 30
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
protocol pop3 {
|
|
325
|
+
mail_plugins = $mail_plugins last_login
|
|
326
|
+
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
|
|
327
|
+
pop3_uidl_format = %08Xu%08Xv
|
|
328
|
+
|
|
329
|
+
# Maximum number of IMAP connections allowed for a user from each IP address.
|
|
330
|
+
# NOTE: The username is compared case-sensitively.
|
|
331
|
+
# Default is 10.
|
|
332
|
+
mail_max_userip_connections = 30
|
|
333
|
+
|
|
334
|
+
# POP3 logout format string:
|
|
335
|
+
# %i - total number of bytes read from client
|
|
336
|
+
# %o - total number of bytes sent to client
|
|
337
|
+
# %t - number of TOP commands
|
|
338
|
+
# %p - number of bytes sent to client as a result of TOP command
|
|
339
|
+
# %r - number of RETR commands
|
|
340
|
+
# %b - number of bytes sent to client as a result of RETR command
|
|
341
|
+
# %d - number of deleted messages
|
|
342
|
+
# %m - number of messages (before deletion)
|
|
343
|
+
# %s - mailbox size in bytes (before deletion)
|
|
344
|
+
# Default format doesn't have 'in=%i, out=%o'.
|
|
345
|
+
#pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, in=%i, out=%o
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
# Login processes. Refer to Dovecot wiki for more details:
|
|
349
|
+
# http://wiki2.dovecot.org/LoginProcess
|
|
350
|
+
service imap-login {
|
|
351
|
+
#inet_listener imap {
|
|
352
|
+
# port = 143
|
|
353
|
+
#}
|
|
354
|
+
#inet_listener imaps {
|
|
355
|
+
# port = 993
|
|
356
|
+
# ssl = yes
|
|
357
|
+
#}
|
|
358
|
+
|
|
359
|
+
service_count = 1
|
|
360
|
+
|
|
361
|
+
# To avoid startup latency for new client connections, set process_min_avail
|
|
362
|
+
# to higher than zero. That many idling processes are always kept around
|
|
363
|
+
# waiting for new connections.
|
|
364
|
+
#process_min_avail = 0
|
|
365
|
+
|
|
366
|
+
# number of simultaneous IMAP connections
|
|
367
|
+
process_limit = 500
|
|
368
|
+
|
|
369
|
+
# vsz_limit should be fine at its default 64MB value
|
|
370
|
+
#vsz_limit = 64M
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
service pop3-login {
|
|
374
|
+
#inet_listener pop3 {
|
|
375
|
+
# port = 110
|
|
376
|
+
#}
|
|
377
|
+
#inet_listener pop3s {
|
|
378
|
+
# port = 995
|
|
379
|
+
# ssl = yes
|
|
380
|
+
#}
|
|
381
|
+
|
|
382
|
+
service_count = 1
|
|
383
|
+
|
|
384
|
+
# number of simultaneous POP3 connections
|
|
385
|
+
#process_limit = 500
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
service managesieve-login {
|
|
389
|
+
inet_listener sieve {
|
|
390
|
+
# Listen on localhost (ipv4)
|
|
391
|
+
address = PH_MANAGESIEVE_BIND_HOST
|
|
392
|
+
port = PH_MANAGESIEVE_BIND_PORT
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
namespace inbox {
|
|
397
|
+
type = private
|
|
398
|
+
separator = /
|
|
399
|
+
prefix =
|
|
400
|
+
inbox = yes
|
|
401
|
+
|
|
402
|
+
# Refer to document for more details about alias mailbox:
|
|
403
|
+
# http://wiki2.dovecot.org/MailboxSettings
|
|
404
|
+
#
|
|
405
|
+
# Sent
|
|
406
|
+
mailbox Sent {
|
|
407
|
+
auto = subscribe
|
|
408
|
+
special_use = \Sent
|
|
409
|
+
}
|
|
410
|
+
mailbox "Sent Messages" {
|
|
411
|
+
auto = no
|
|
412
|
+
special_use = \Sent
|
|
413
|
+
}
|
|
414
|
+
mailbox "Sent Items" {
|
|
415
|
+
auto = no
|
|
416
|
+
special_use = \Sent
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
mailbox Drafts {
|
|
420
|
+
auto = subscribe
|
|
421
|
+
special_use = \Drafts
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
# Trash
|
|
425
|
+
mailbox Trash {
|
|
426
|
+
auto = subscribe
|
|
427
|
+
special_use = \Trash
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
mailbox "Deleted Messages" {
|
|
431
|
+
auto = no
|
|
432
|
+
special_use = \Trash
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
# Junk
|
|
436
|
+
mailbox Junk {
|
|
437
|
+
auto = subscribe
|
|
438
|
+
special_use = \Junk
|
|
439
|
+
}
|
|
440
|
+
mailbox Spam {
|
|
441
|
+
auto = no
|
|
442
|
+
special_use = \Junk
|
|
443
|
+
}
|
|
444
|
+
mailbox "Junk E-mail" {
|
|
445
|
+
auto = no
|
|
446
|
+
special_use = \Junk
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
# Archive
|
|
450
|
+
mailbox Archive {
|
|
451
|
+
auto = no
|
|
452
|
+
special_use = \Archive
|
|
453
|
+
}
|
|
454
|
+
mailbox Archives {
|
|
455
|
+
auto = no
|
|
456
|
+
special_use = \Archive
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
namespace shared {
|
|
461
|
+
type = shared
|
|
462
|
+
separator = /
|
|
463
|
+
prefix = Shared/%%u/
|
|
464
|
+
location = maildir:%%Lh/Maildir/:INDEX=%%Lh/Maildir/Shared/%%Ld/%%Ln
|
|
465
|
+
|
|
466
|
+
# this namespace should handle its own subscriptions or not.
|
|
467
|
+
subscriptions = yes
|
|
468
|
+
list = children
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
# Public mailboxes.
|
|
472
|
+
# Refer to Dovecot wiki page for more details:
|
|
473
|
+
# http://wiki2.dovecot.org/SharedMailboxes/Public
|
|
474
|
+
#namespace public {
|
|
475
|
+
# type = public
|
|
476
|
+
# separator = /
|
|
477
|
+
# prefix = Public/
|
|
478
|
+
# location = maildir:PH_PUBLIC_MAILBOX_DIR:CONTROL=%Lh/Maildir/public:INDEXPVT=%Lh/Maildir/public
|
|
479
|
+
#
|
|
480
|
+
# # Allow users to subscribe to the public folders.
|
|
481
|
+
# subscriptions = yes
|
|
482
|
+
#}
|
|
483
|
+
|
|
484
|
+
!include_try PH_DOVECOT_CONF_INCLUDE_DIR/*.conf
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Purpose: Mail to user when his/her quota exceeds specified percentage.
|
|
3
|
+
# Reference: http://wiki2.dovecot.org/Quota/Configuration#Quota_warnings
|
|
4
|
+
|
|
5
|
+
PERCENT=${1}
|
|
6
|
+
USER=${2}
|
|
7
|
+
|
|
8
|
+
hostname="$(hostname -f)"
|
|
9
|
+
|
|
10
|
+
# Use "plugin/quota=maildir:User quota:noenforcing" for maildir quota.
|
|
11
|
+
cat << EOF | PH_DOVECOT_DELIVER_BIN -d ${USER} -o "plugin/quota=dict:User quota::noenforcing:proxy::quotadict"
|
|
12
|
+
From: no-reply@${hostname}
|
|
13
|
+
To: ${USER}
|
|
14
|
+
Subject: Warning: Your mailbox is now ${PERCENT}% full.
|
|
15
|
+
Date: $(date -R)
|
|
16
|
+
Message-ID: <$(date +%Y%m%d%H%M%S)-${RANDOM}@${hostname}>
|
|
17
|
+
MIME-Version: 1.0
|
|
18
|
+
Content-Type: text/plain; charset=utf-8
|
|
19
|
+
|
|
20
|
+
Your mailbox is now ${PERCENT}% full, please clean up some mails for further incoming mails.
|
|
21
|
+
EOF
|
|
22
|
+
|
|
23
|
+
# Send a copy to postmaster@ if mailbox is greater than or equal to 95% full.
|
|
24
|
+
if [ ${PERCENT} -ge 95 ]; then
|
|
25
|
+
DOMAIN="$(echo ${USER} | awk -F'@' '{print $2}')"
|
|
26
|
+
cat << EOF | PH_DOVECOT_DELIVER_BIN -d postmaster@${DOMAIN} -o "plugin/quota=dict:User quota::noenforcing:proxy::quotadict"
|
|
27
|
+
From: no-reply@$(hostname -f)
|
|
28
|
+
To: postmaster@${DOMAIN}
|
|
29
|
+
Subject: Mailbox Quota Warning: ${PERCENT}% full, ${USER}
|
|
30
|
+
Date: $(date -R)
|
|
31
|
+
Message-ID: <$(date +%Y%m%d%H%M%S)-${RANDOM}@${hostname}>
|
|
32
|
+
MIME-Version: 1.0
|
|
33
|
+
Content-Type: text/plain; charset=utf-8
|
|
34
|
+
|
|
35
|
+
Mailbox (${USER}) is now ${PERCENT}% full, please clean up some mails for
|
|
36
|
+
further incoming mails.
|
|
37
|
+
EOF
|
|
38
|
+
fi
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#
|
|
2
|
+
# IMAP shared folders. User 'from_user' shares folders to user 'to_user'.
|
|
3
|
+
# WARNING: Works only with Dovecot 1.2+.
|
|
4
|
+
#
|
|
5
|
+
CREATE TABLE IF NOT EXISTS share_folder (
|
|
6
|
+
from_user VARCHAR(150) NOT NULL,
|
|
7
|
+
to_user VARCHAR(150) NOT NULL,
|
|
8
|
+
dummy CHAR(1),
|
|
9
|
+
PRIMARY KEY (from_user, to_user)
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
CREATE TABLE IF NOT EXISTS anyone_shares (
|
|
13
|
+
from_user VARCHAR(255) NOT NULL,
|
|
14
|
+
dummy CHAR(1) DEFAULT '1',
|
|
15
|
+
PRIMARY KEY (from_user)
|
|
16
|
+
);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `last_login` (
|
|
2
|
+
`username` VARCHAR(255) NOT NULL DEFAULT '',
|
|
3
|
+
`domain` VARCHAR(255) NOT NULL DEFAULT '',
|
|
4
|
+
`imap` INT(11) DEFAULT NULL,
|
|
5
|
+
`pop3` INT(11) DEFAULT NULL,
|
|
6
|
+
`lda` INT(11) DEFAULT NULL,
|
|
7
|
+
PRIMARY KEY (`username`),
|
|
8
|
+
INDEX (`domain`),
|
|
9
|
+
INDEX (`imap`),
|
|
10
|
+
INDEX (`pop3`),
|
|
11
|
+
INDEX (`lda`)
|
|
12
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|