1
0
mirror of https://github.com/Mailu/Mailu.git synced 2024-12-14 10:53:30 +02:00
Mailu/core/rspamd/start.py

42 lines
1.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
import os
import glob
import logging as log
import requests
import shutil
import sys
import time
2022-12-08 13:46:31 +02:00
from socrate import system,conf
2023-05-05 19:50:49 +02:00
env = system.set_env()
# Actual startup script
config_files = []
for rspamd_file in glob.glob("/conf/*"):
2023-05-05 19:50:49 +02:00
conf.jinja(rspamd_file, env, os.path.join("/etc/rspamd/local.d", os.path.basename(rspamd_file)))
if rspamd_file != '/conf/forbidden_file_extension.map':
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"]}:8080/internal/rspamd/local_domains'
while True:
time.sleep(1)
try:
if requests.get(healthcheck,timeout=2).ok:
break
except:
pass
2022-10-28 18:28:31 +02:00
log.warning("Admin is not up just yet, retrying in 1 second")
# Run rspamd
2022-11-17 19:09:00 +02:00
os.system("mkdir -m 755 -p /run/rspamd")
os.system("chown rspamd:rspamd /run/rspamd")
2022-11-21 19:12:11 +02:00
os.system("find /var/lib/rspamd | grep -v /filter | xargs -n1 chown rspamd:rspamd")
os.execv("/usr/bin/rspamd", ["rspamd", "-f", "-u", "rspamd", "-g", "rspamd"])