Compare commits
	
		
			9 Commits
		
	
	
		
			0d9b9a7cd5
			...
			1e2f36d7a1
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 1e2f36d7a1 | |
|  | 1707d577ad | |
|  | b6bb057652 | |
|  | 6ecad2c411 | |
|  | 204c84a896 | |
|  | 0e07daa5f1 | |
|  | d8b4a6b58d | |
|  | 9dcd440522 | |
|  | aa69222ecd | 
|  | @ -149,6 +149,8 @@ vars: | ||||||
| 	centos:: | 	centos:: | ||||||
| 		"modules" data => '[  | 		"modules" data => '[  | ||||||
| 			{m:"proxy",f:"mod_proxy"}, | 			{m:"proxy",f:"mod_proxy"}, | ||||||
|  | 			{m:"proxy_http",f:"mod_proxy_http"}, | ||||||
|  | 			{m:"proxy_http2",f:"mod_proxy_http2"}, | ||||||
| 			{m:"proxy_fcgi",f:"mod_proxy_fcgi"}, | 			{m:"proxy_fcgi",f:"mod_proxy_fcgi"}, | ||||||
| 			{m: "autoindex",f:"mod_autoindex"}, | 			{m: "autoindex",f:"mod_autoindex"}, | ||||||
| 			{m: "log_config",f:"mod_log_config"}, | 			{m: "log_config",f:"mod_log_config"}, | ||||||
|  |  | ||||||
							
								
								
									
										105
									
								
								dovecot.cf
								
								
								
								
							
							
						
						
									
										105
									
								
								dovecot.cf
								
								
								
								
							|  | @ -6,6 +6,8 @@ bundle agent dovecot(cfg) | ||||||
| { | { | ||||||
| classes: | classes: | ||||||
| 	"use_ssl" expression => strcmp("$(cfg[ssl])","true"); | 	"use_ssl" expression => strcmp("$(cfg[ssl])","true"); | ||||||
|  | 	"rspamd_scripts" expression => strcmp("$(cfg[rspamd_scripts])","true"); | ||||||
|  | 
 | ||||||
| vars: | vars: | ||||||
| 	freebsd:: | 	freebsd:: | ||||||
| 		"cfg_dir" string => "/usr/local/etc/dovecot"; | 		"cfg_dir" string => "/usr/local/etc/dovecot"; | ||||||
|  | @ -75,6 +77,9 @@ methods: | ||||||
| 	"any" usebundle => wmde_install_packages(@(pkgs),"dovecot"); | 	"any" usebundle => wmde_install_packages(@(pkgs),"dovecot"); | ||||||
| 	"any" usebundle => wmde_service("$(service_name)","dovecot_kept","dovecot_repaired"), | 	"any" usebundle => wmde_service("$(service_name)","dovecot_kept","dovecot_repaired"), | ||||||
| 		depends_on => @(service_deps); | 		depends_on => @(service_deps); | ||||||
|  | 	rspamd_scripts:: | ||||||
|  | 	"any" usebundle => dovecot_install_rspamd_sieve_scripts("$(dovecot.cfg_dir)/rspamd"), | ||||||
|  | 		depends_on => {"dovecot_pkgs_installed"}; | ||||||
| 
 | 
 | ||||||
| files:	 | files:	 | ||||||
| 	"$(cfg_dir)/." | 	"$(cfg_dir)/." | ||||||
|  | @ -166,6 +171,7 @@ bundle agent install_global_sieve_script( filename , content) | ||||||
| { | { | ||||||
| vars: | vars: | ||||||
| 	"rep_class" string =>"global_sieve_repaired_$(filename)"; | 	"rep_class" string =>"global_sieve_repaired_$(filename)"; | ||||||
|  | 
 | ||||||
| files: | files: | ||||||
| 	"$(filename)" | 	"$(filename)" | ||||||
| 	create => "true", | 	create => "true", | ||||||
|  | @ -175,12 +181,103 @@ files: | ||||||
| 	classes => if_repaired (sieve_repaired); | 	classes => if_repaired (sieve_repaired); | ||||||
| 
 | 
 | ||||||
| commands: | commands: | ||||||
| #	sieve_repaired:: | 	sieve_repaired:: | ||||||
| #		"$(dovecot.sievec_exe)" | 		"$(dovecot.sievec_exe)" | ||||||
| #		args => "$(filename)", | 		args => "$(filename)", | ||||||
| #		depends_on => { "global_sieve_$(filename)_created" }; | 		depends_on => { "global_sieve_$(filename)_created" }; | ||||||
|  | reports: | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bundle agent dovecot_install_sieve_script( filename , content, cls) | ||||||
|  | { | ||||||
|  | vars: | ||||||
|  | 	"rep_class" string =>"global_sieve_$(filename)_repaired"; | ||||||
|  | 
 | ||||||
|  | files: | ||||||
|  | 	"$(filename)" | ||||||
|  | 	create => "true", | ||||||
|  | 	content => "$(content)", | ||||||
|  | 	perms => m("644"), | ||||||
|  | 	handle => "sieve_$(filename)_created", | ||||||
|  | 	classes => if_repaired ("$(cls)_repaired"); | ||||||
|  | 
 | ||||||
|  | commands: | ||||||
|  | 	"$(cls)_repaired":: | ||||||
|  | 		"$(dovecot.sievec_exe)" | ||||||
|  | 		args => "$(filename)", | ||||||
|  | 		depends_on => { "sieve_$(filename)_created" }; | ||||||
| reports: | reports: | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | bundle agent dovecot_rspamd_sieve_vars(read) | ||||||
|  | { | ||||||
|  | classes: | ||||||
|  | 	"$(read)"; | ||||||
|  | vars: | ||||||
|  | #	do_read:: | ||||||
|  | #	"ham_script" string  => readfile("$(def.wmde_lib/scripts/rspamd-learn-ham.sieve.mustache)"); | ||||||
|  | #	"spam_script" string  => readfile("$(def.wmde_lib/scripts/rspamd-learn-ham.sieve.mustache)"); | ||||||
|  | #	"ham_sh" string  => readfile("$(def.wmde_lib/scripts/rspamd-learn-ham.sieve.mustache)"); | ||||||
|  | #	"spam_sh" string  => readfile("$(def.wmde_lib/scripts/rspamd-learn-ham.sieve.mustache)"); | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bundle agent dovecot_install_rspamd_sieve_scripts(target_dir) | ||||||
|  | { | ||||||
|  | methods: | ||||||
|  | 	"any" usebundle => dovecot_rspamd_sieve_vars("do_read"), | ||||||
|  | 		handle => "dovecot_rspamd_vars_ready"; | ||||||
|  | files: | ||||||
|  | 	"$(target_dir)/." | ||||||
|  | 	create => "true", | ||||||
|  | 	perms => m("755"), | ||||||
|  | 	handle => "dovecot_install_rspamd_sieve_scripts_dir_created"; | ||||||
|  | 
 | ||||||
|  | methods: | ||||||
|  | 	"any" usebundle => dovecot_install_sieve_script( "$(target_dir)/rspamd-learn-ham.sieve", | ||||||
|  | #		string_mustache( | ||||||
|  | 			readfile("$(def.wmde_lib)/scripts/dovecot/rspamd-learn-ham.sieve.mustache") | ||||||
|  | #			),  | ||||||
|  | 		, "dovecot_sieve_ham" | ||||||
|  | 	) ,depends_on => {"dovecot_install_rspamd_sieve_scripts_dir_created"}; | ||||||
|  | 	"any" usebundle => dovecot_install_sieve_script( "$(target_dir)/rspamd-learn-spam.sieve", | ||||||
|  | #		string_mustache( | ||||||
|  | 			readfile("$(def.wmde_lib)/scripts/dovecot/rspamd-learn-spam.sieve.mustache") | ||||||
|  | #			) | ||||||
|  | 		, "dovecot_sieve_spam" | ||||||
|  | 		 | ||||||
|  | 	) ,depends_on => {"dovecot_install_rspamd_sieve_scripts_dir_created"}; | ||||||
|  | 
 | ||||||
|  | files: | ||||||
|  | 
 | ||||||
|  | 	"$(target_dir)/rspamd-learn-ham.sh" | ||||||
|  | 	create => "true", | ||||||
|  | 	content => string_mustache( | ||||||
|  | 			readfile("$(def.wmde_lib)/scripts/dovecot/rspamd-learn-ham.sh.mustache") | ||||||
|  | 		), | ||||||
|  | 	perms => m("755"), | ||||||
|  | 	depends_on => {"dovecot_install_rspamd_sieve_scripts_dir_created"}; | ||||||
|  | 	 | ||||||
|  | 	"$(target_dir)/rspamd-learn-spam.sh" | ||||||
|  | 	create => "true", | ||||||
|  | 	content => string_mustache( | ||||||
|  | 			readfile("$(def.wmde_lib)/scripts/dovecot/rspamd-learn-spam.sh.mustache") | ||||||
|  | 		), | ||||||
|  | 	perms => m("755"), | ||||||
|  | 	depends_on => {"dovecot_install_rspamd_sieve_scripts_dir_created"}; | ||||||
|  | 	 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | reports: | ||||||
|  | 	"LOADER: $(def.wmde_lib)/scripts/dovecot/rspamd-learn-ham.sieve.mustache"; | ||||||
|  | 	 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  |  | ||||||
							
								
								
									
										7
									
								
								lib.cf
								
								
								
								
							
							
						
						
									
										7
									
								
								lib.cf
								
								
								
								
							|  | @ -274,6 +274,7 @@ commands: | ||||||
| 	handle=>"system_repos_pkgs_installed"; | 	handle=>"system_repos_pkgs_installed"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| 	centos_8:: | 	centos_8:: | ||||||
| 		"/usr/bin/dnf" | 		"/usr/bin/dnf" | ||||||
| 		inform => "false", | 		inform => "false", | ||||||
|  | @ -283,6 +284,12 @@ commands: | ||||||
| 		"/usr/bin/dnf" | 		"/usr/bin/dnf" | ||||||
| 		inform => "false", | 		inform => "false", | ||||||
| 		args => "config-manager --set-enabled crb"; | 		args => "config-manager --set-enabled crb"; | ||||||
|  | 
 | ||||||
|  | 		"/usr/bin/update-crypto-policies" | ||||||
|  | 		inform => "false", | ||||||
|  | 		contain => wmde_cmd_useshell, | ||||||
|  | 		args => "--set LEGACY > /dev/null"; | ||||||
|  | 	 | ||||||
| methods: | methods: | ||||||
| #	"any" usebundle => wmde_install_packages(@(pkgs),"system_repos"); | #	"any" usebundle => wmde_install_packages(@(pkgs),"system_repos"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								php.cf
								
								
								
								
							
							
						
						
									
										6
									
								
								php.cf
								
								
								
								
							|  | @ -89,7 +89,9 @@ vars: | ||||||
| 			"php$(xversion)-intl", | 			"php$(xversion)-intl", | ||||||
| 			"php$(xversion)-pecl-imagick-im6", | 			"php$(xversion)-pecl-imagick-im6", | ||||||
| 			"php$(xversion)-ldap", | 			"php$(xversion)-ldap", | ||||||
| 			"php-pecl-json-post" | 			"php-pecl-json-post", | ||||||
|  | 			"php-pecl-apcu", | ||||||
|  | 			"php-pecl-zip", | ||||||
| 			 | 			 | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
|  | @ -133,7 +135,7 @@ bundle agent php_install_centos_repos | ||||||
| { | { | ||||||
| classes: | classes: | ||||||
| 	centos:: | 	centos:: | ||||||
| 	"switch_repo" expression => not(returnszero("cat /etc/dnf/modules.d/php.module | grep -q '^stream.*=.*remi-$(php.version)' >/dev/null 2>&1","useshell")); | 	"switch_repo" expression => not(returnszero("cat /etc/dnf/modules.d/php.module 2>/dev/null | grep -q '^stream.*=.*remi-$(php.version)'","useshell")); | ||||||
| 	"install_remi" expression => not(returnszero("rpm -q remi-release > /dev/null","useshell")); | 	"install_remi" expression => not(returnszero("rpm -q remi-release > /dev/null","useshell")); | ||||||
| 	"install_epel" expression => not(returnszero("rpm -q epel-release > /dev/null","useshell")); | 	"install_epel" expression => not(returnszero("rpm -q epel-release > /dev/null","useshell")); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,22 @@ | ||||||
|  | # | ||||||
|  | # | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | bundle agent redis | ||||||
|  | { | ||||||
|  | vars: | ||||||
|  | 	"pkgs" slist => { | ||||||
|  | 		"redis" | ||||||
|  | 	}; | ||||||
|  | 	"service_name" string => "redis"; | ||||||
|  | 	 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | bundle agent install_redis | ||||||
|  | { | ||||||
|  | methods: | ||||||
|  | 	"any" usebundle => wmde_install_packages(@(redis.pkgs),"redis"); | ||||||
|  | 	"any" usebundle => wmde_service("$(redis.service_name)","redis_kept","redis_repaired"); | ||||||
|  | } | ||||||
							
								
								
									
										29
									
								
								rspamd.cf
								
								
								
								
							
							
						
						
									
										29
									
								
								rspamd.cf
								
								
								
								
							|  | @ -5,13 +5,16 @@ | ||||||
| bundle agent rspamd(cfg) | bundle agent rspamd(cfg) | ||||||
| { | { | ||||||
| classes: | classes: | ||||||
|  | 	"runpw" expression => isvariable("cfg[password]"); | ||||||
|  | 
 | ||||||
| vars: | vars: | ||||||
| 	"cfgfiles" slist => { | 	"cfgfiles" slist => { | ||||||
| 		"local.d/milter_headers.conf", | 		"local.d/milter_headers.conf", | ||||||
| #		"local.d/actions.conf", | #		"local.d/actions.conf", | ||||||
|       		"local.d/worker-normal.inc", |       		"local.d/worker-normal.inc", | ||||||
| 		"local.d/worker-proxy.inc", | 		"local.d/worker-proxy.inc", | ||||||
| #		"local.d/worker-controller.inc", | 		"local.d/worker-controller.inc", | ||||||
|  | 		"local.d/redis.conf", | ||||||
| #		"local.d/classifier-bayes.conf", | #		"local.d/classifier-bayes.conf", | ||||||
| #		"local.d/worker-fuzzy.inc", | #		"local.d/worker-fuzzy.inc", | ||||||
| #		"local.d/fuzzy_check.conf" | #		"local.d/fuzzy_check.conf" | ||||||
|  | @ -23,6 +26,7 @@ vars: | ||||||
| 		"service_name" string => "rspamd"; | 		"service_name" string => "rspamd"; | ||||||
| 		"root_user" string => "root"; | 		"root_user" string => "root"; | ||||||
| 		"root_group" string => "wheel"; | 		"root_group" string => "wheel"; | ||||||
|  | 		"rspamadm" string => "/usr/local/bin/rspamadm"; | ||||||
| 
 | 
 | ||||||
| 	debian:: | 	debian:: | ||||||
| 		"pkgs" slist => {"rspamd"}; | 		"pkgs" slist => {"rspamd"}; | ||||||
|  | @ -30,6 +34,7 @@ vars: | ||||||
| 		"service_name" string => "rspamd"; | 		"service_name" string => "rspamd"; | ||||||
| 		"root_user" string => "root"; | 		"root_user" string => "root"; | ||||||
| 		"root_group" string => "root"; | 		"root_group" string => "root"; | ||||||
|  | 		"rspamadm" string => "/usr//bin/rspamadm"; | ||||||
| 
 | 
 | ||||||
| 	centos:: | 	centos:: | ||||||
| 		"pkgs" slist => {"rspamd"}; | 		"pkgs" slist => {"rspamd"}; | ||||||
|  | @ -37,12 +42,17 @@ vars: | ||||||
| 		"service_name" string => "rspamd"; | 		"service_name" string => "rspamd"; | ||||||
| 		"root_user" string => "root"; | 		"root_user" string => "root"; | ||||||
| 		"root_group" string => "root"; | 		"root_group" string => "root"; | ||||||
|  | 		"rspamadm" string => "/usr//bin/rspamadm"; | ||||||
|  | 
 | ||||||
|  | 	any:: | ||||||
|  | 	"password" string => execresult("$(rspamadm) pw -p $(cfg[password])","noshell"); | ||||||
|  | 
 | ||||||
|  | 	 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| methods: | methods: | ||||||
| 	"any" usebundle => rspamd_install_yum_repo, handle => "rspamd_yum_repo_installed"; | 	"any" usebundle => install_rspamd_pkgs; | ||||||
| 	"any" usebundle => wmde_install_packages(@(pkgs),"rspamd"), | 
 | ||||||
| 		depends_on => {"rspamd_yum_repo_installed"}; |  | ||||||
| 	"any" usebundle => wmde_service("$(service_name)","rspamd_kept","rspamd_repaired"), | 	"any" usebundle => wmde_service("$(service_name)","rspamd_kept","rspamd_repaired"), | ||||||
| 		depends_on => {"rspamd_cfgs_done"}; | 		depends_on => {"rspamd_cfgs_done"}; | ||||||
| files: | files: | ||||||
|  | @ -61,6 +71,8 @@ files: | ||||||
| 	classes => if_repaired(rspamd_repaired), | 	classes => if_repaired(rspamd_repaired), | ||||||
| 	handle => "rspamd_cfgs_done"; | 	handle => "rspamd_cfgs_done"; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| reports: | reports: | ||||||
| #	"RSPAMD: $(cfgjs)"; | #	"RSPAMD: $(cfgjs)"; | ||||||
| #	"RSJ: $(worker_normalx)"; | #	"RSJ: $(worker_normalx)"; | ||||||
|  | @ -81,3 +93,12 @@ commands: | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | bundle agent install_rspamd_pkgs | ||||||
|  | { | ||||||
|  | methods: | ||||||
|  | 	"any" usebundle => rspamd_install_yum_repo, handle => "rspamd_yum_repo_installed"; | ||||||
|  | 	"any" usebundle => wmde_install_packages(@(rspamd.pkgs),"rspamd"), | ||||||
|  | 		depends_on => {"rspamd_yum_repo_installed"}; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | exec /usr/bin/rspamc -h localhost:11334 learn_ham | ||||||
|  | @ -0,0 +1,16 @@ | ||||||
|  | require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; | ||||||
|  |    | ||||||
|  | if environment :matches "imap.mailbox" "*" { | ||||||
|  |   set "mailbox" "${1}"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | if string "${mailbox}" "Trash" { | ||||||
|  |   stop; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | if environment :matches "imap.user" "*" { | ||||||
|  |   set "username" "${1}"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | pipe :copy "rspamd-learn-ham.sh" [ "${username}" ]; | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | exec /usr/bin/rspamc -h localhost:11334 learn_spam | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; | ||||||
|  |    | ||||||
|  | if environment :matches "imap.user" "*" { | ||||||
|  |   set "username" "${1}"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | pipe :copy "rspamd-learn-spam.sh" [ "${username}" ]; | ||||||
|  | 
 | ||||||
							
								
								
									
										34
									
								
								sympa.cf
								
								
								
								
							
							
						
						
									
										34
									
								
								sympa.cf
								
								
								
								
							|  | @ -284,7 +284,7 @@ reports: | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| bundle agent install_sympa_domain(domain,data) | bundle agent install_sympa_domain(domain,data,conf_dir) | ||||||
| { | { | ||||||
| vars:  | vars:  | ||||||
| 	"default_settings" data => '{ | 	"default_settings" data => '{ | ||||||
|  | @ -297,16 +297,16 @@ vars: | ||||||
| 	"settings[domain]" string => "$(domain)"; | 	"settings[domain]" string => "$(domain)"; | ||||||
| 
 | 
 | ||||||
| files: | files: | ||||||
| 	"$(sympa.conf_dir)/$(domain)/." | 	"$(conf_dir)/$(domain)/." | ||||||
| 		create => "true", | 		create => "true", | ||||||
| 		perms => m("755"); | 		perms => m("755"); | ||||||
| 
 | 
 | ||||||
| 	"$(sympa.conf_dir)/$(domain)/robot.conf" | 	"$(conf_dir)/$(domain)/robot.conf" | ||||||
| 		perms => m("644"), | 		perms => m("644"), | ||||||
| 		copy_from => seed_cp("$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/sympa/robot.conf"), | 		copy_from => seed_cp("$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/sympa/robot.conf"), | ||||||
| 		handle => "sympa_robot_$(domain)_ready"; | 		handle => "sympa_robot_$(domain)_ready"; | ||||||
| 
 | 
 | ||||||
| 	"$(sympa.conf_dir)/$(domain)/robot.conf" | 	"$(conf_dir)/$(domain)/robot.conf" | ||||||
| 		create => "true", | 		create => "true", | ||||||
| 		perms => m("644"),  #"sympa","sympa"), | 		perms => m("644"),  #"sympa","sympa"), | ||||||
| 		edit_line => set_config_values("$(this.bundle).settings"), | 		edit_line => set_config_values("$(this.bundle).settings"), | ||||||
|  | @ -321,12 +321,12 @@ reports: | ||||||
| #	"JO: $(jo)"; | #	"JO: $(jo)"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bundle agent install_sympa_domains(dl) | bundle agent install_sympa_domains(dl,conf_dir) | ||||||
| { | { | ||||||
| vars: | vars: | ||||||
| 	"idx" slist => getindices(@(dl)); | 	"idx" slist => getindices(@(dl)); | ||||||
| methods: | methods: | ||||||
| 	"any" usebundle => install_sympa_domain("$(idx)",@(dl[$(idx)])); | 	"any" usebundle => install_sympa_domain("$(idx)",@(dl[$(idx)]),"$(conf_dir)"); | ||||||
| 
 | 
 | ||||||
| reports: | reports: | ||||||
| } | } | ||||||
|  | @ -346,10 +346,18 @@ files: | ||||||
| 
 | 
 | ||||||
| bundle agent install_sympa(cfg) | bundle agent install_sympa(cfg) | ||||||
| { | { | ||||||
|  | classes: | ||||||
|  | 	"etc_changed" expression => isvariable("cfg[settings][etc]"); | ||||||
|  | 
 | ||||||
| vars: | vars: | ||||||
| #	"cfg_domains" data => @(cfg[domains]); |  | ||||||
| 	"domains_idx" slist => getindices(@(cfg[domains])); | 	"domains_idx" slist => getindices(@(cfg[domains])); | ||||||
| #	"cfg_domains" slist => {"a","b","c"}; | 
 | ||||||
|  | 	etc_changed:: | ||||||
|  | 		"cfg_dir" string => "$(cfg[settings][etc])"; | ||||||
|  | 
 | ||||||
|  | 	!etc_changed:: | ||||||
|  | 		"cfg_dir" string => "$(sympa.conf_dir)"; | ||||||
|  | 
 | ||||||
| methods: | methods: | ||||||
| 	"any" usebundle => sympa_create_mailname(@(cfg)); | 	"any" usebundle => sympa_create_mailname(@(cfg)); | ||||||
| 	"any" usebundle => wmde_install_packages(@(sympa.pkgs),"sympa"); | 	"any" usebundle => wmde_install_packages(@(sympa.pkgs),"sympa"); | ||||||
|  | @ -359,7 +367,8 @@ methods: | ||||||
| 	"any" usebundle => wmde_service("$(sympa.service_name)","sympa_kept","sympa_repaired"), | 	"any" usebundle => wmde_service("$(sympa.service_name)","sympa_kept","sympa_repaired"), | ||||||
| 		depends_on => { | 		depends_on => { | ||||||
| 			"sympa_pkgs_installed", | 			"sympa_pkgs_installed", | ||||||
| 			"sympa_config_updated" | 			"sympa_config_updated", | ||||||
|  | 			"sympa_robots_created" | ||||||
| 		}; | 		}; | ||||||
| 	"any" usebundle => wmde_service("$(sympa.wwservice_name)","sympa_kept","sympa_repaired"), | 	"any" usebundle => wmde_service("$(sympa.wwservice_name)","sympa_kept","sympa_repaired"), | ||||||
| 		depends_on => { | 		depends_on => { | ||||||
|  | @ -368,11 +377,10 @@ methods: | ||||||
| 			"sympa_robots_created" | 			"sympa_robots_created" | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| #	"any" usebundle => install_sympa_domain("@(cfg[domains][$(domains_idx)])"); | 	"any" usebundle => install_sympa_domains(@(cfg[domains]),"$(cfg_dir)"); | ||||||
| 	"any" usebundle => install_sympa_domains(@(cfg[domains])); |  | ||||||
| reports: | reports: | ||||||
| #	"IDX $(domains_idx)"; | 	"ETC: $(cfg_dir) - $(cfg[settings][etc])"; | ||||||
| #	"DOMCONF: $(cfg[$(idx)])"; | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -95,6 +95,56 @@ service {{@}} { | ||||||
| 
 | 
 | ||||||
| {{/vars.dovecot.cfg.services}} | {{/vars.dovecot.cfg.services}} | ||||||
| 
 | 
 | ||||||
|  | {{#vars.dovecot.cfg.default_imap_folders}} | ||||||
|  | 
 | ||||||
|  | namespace inbox { | ||||||
|  | 	inbox = yes | ||||||
|  | 	# These mailboxes are widely used and could perhaps be created automatically: | ||||||
|  | 	mailbox Drafts { | ||||||
|  | 	special_use = \Drafts | ||||||
|  | 		auto = subscribe | ||||||
|  | 	} | ||||||
|  | 	mailbox Junk { | ||||||
|  | 		auto = subscribe | ||||||
|  | 		special_use = \Junk | ||||||
|  | 	} | ||||||
|  | 	mailbox Trash { | ||||||
|  | 		auto = subscribe | ||||||
|  | 		special_use = \Trash | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	mailbox Sent { | ||||||
|  | 		auto = subscribe | ||||||
|  | 		special_use = \Sent | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | {{/vars.dovecot.cfg.default_imap_folders}} | ||||||
|  | 
 | ||||||
|  | {{#vars.dovecot.cfg.rspamd_scripts}} | ||||||
|  | 	protocol imap { | ||||||
|  | 		mail_plugins = $mail_plugins imap_sieve | ||||||
|  | 	} | ||||||
|  | 	plugin { | ||||||
|  | 		sieve_plugins = sieve_imapsieve sieve_extprograms  | ||||||
|  | 
 | ||||||
|  | 		# From elsewhere to Spam folder | ||||||
|  | 		imapsieve_mailbox1_name = Junk | ||||||
|  | 		imapsieve_mailbox1_causes = COPY | ||||||
|  | 		imapsieve_mailbox1_before = file:/etc/dovecot/rspamd/rspamd-learn-spam.sieve | ||||||
|  | 
 | ||||||
|  | 		# From Spam folder to elsewhere | ||||||
|  | 		imapsieve_mailbox2_name = * | ||||||
|  | 		imapsieve_mailbox2_from = Junk | ||||||
|  | 		imapsieve_mailbox2_causes = COPY | ||||||
|  | 		imapsieve_mailbox2_before = file:/etc/dovecot/rspamd/rspamd-learn-ham.sieve | ||||||
|  | 
 | ||||||
|  | 		sieve_pipe_bin_dir = /etc/dovecot/rspamd | ||||||
|  | 
 | ||||||
|  | 		sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment | ||||||
|  | 	} | ||||||
|  | {{/vars.dovecot.cfg.rspamd_scripts}} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| {{vars.dovecot.cfg.raw}} | {{vars.dovecot.cfg.raw}} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue