mirror of
				https://github.com/optim-enterprises-bv/Mailu-OIDC.git
				synced 2025-10-31 01:57:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| import os
 | |
| import glob
 | |
| import logging as log
 | |
| import requests
 | |
| import shutil
 | |
| import sys
 | |
| import time
 | |
| from socrate import system,conf
 | |
| 
 | |
| env = system.set_env()
 | |
| 
 | |
| # Actual startup script
 | |
| 
 | |
| config_files = []
 | |
| for rspamd_file in glob.glob("/conf/*"):
 | |
|     conf.jinja(rspamd_file, env, os.path.join("/etc/rspamd/local.d", os.path.basename(rspamd_file)))
 | |
|     config_files.append(os.path.basename(rspamd_file))
 | |
| 
 | |
| for override_file in glob.glob("/overrides/*"):
 | |
|     if os.path.basename(override_file) not in config_files:
 | |
|         shutil.copyfile(override_file, os.path.join("/etc/rspamd/local.d", os.path.basename(override_file)))
 | |
| 
 | |
| # Admin may not be up just yet
 | |
| healthcheck = f'http://{env["ADMIN_ADDRESS"]}/internal/rspamd/local_domains'
 | |
| while True:
 | |
|     time.sleep(1)
 | |
|     try:
 | |
|         if requests.get(healthcheck,timeout=2).ok:
 | |
|             break
 | |
|     except:
 | |
|         pass
 | |
|     log.warning("Admin is not up just yet, retrying in 1 second")
 | |
| 
 | |
| # Run rspamd
 | |
| os.system("mkdir -m 755 -p /run/rspamd")
 | |
| os.system("chown rspamd:rspamd /run/rspamd")
 | |
| os.system("find /var/lib/rspamd | grep -v /filter | xargs -n1 chown rspamd:rspamd")
 | |
| os.execv("/usr/sbin/rspamd", ["rspamd", "-f", "-u", "rspamd", "-g", "rspamd"])
 | 
