···
logger.info("Loaded configuration from .env file")
24
-
# Load Zulip configuration
24
+
# Load Zulip configuration (optional from env, main source should be zuliprc)
zulip_config = ZulipConfig(
26
-
site=os.getenv("ZULIP_SITE", ""),
27
-
email=os.getenv("ZULIP_EMAIL", ""),
28
-
api_key=os.getenv("ZULIP_API_KEY", ""),
26
+
site=os.getenv("ZULIP_SITE"),
27
+
email=os.getenv("ZULIP_EMAIL"),
28
+
api_key=os.getenv("ZULIP_API_KEY"),
stream=os.getenv("ZULIP_STREAM", "netdata-alerts"),
32
-
# Validate required Zulip settings
33
-
if not all([zulip_config.site, zulip_config.email, zulip_config.api_key]):
35
-
"Missing required Zulip configuration. Please set ZULIP_SITE, "
36
-
"ZULIP_EMAIL, and ZULIP_API_KEY environment variables."
# Load server configuration
server_config = ServerConfig(
host=os.getenv("SERVER_HOST", "0.0.0.0"),
42
-
port=int(os.getenv("SERVER_PORT", "8443")),
43
-
domain=os.getenv("SERVER_DOMAIN", ""),
44
-
cert_path=os.getenv("SERVER_CERT_PATH", "./certs"),
45
-
enable_mtls=os.getenv("SERVER_ENABLE_MTLS", "true").lower() == "true",
46
-
auto_cert=os.getenv("SERVER_AUTO_CERT", "false").lower() == "true",
47
-
cert_email=os.getenv("SERVER_CERT_EMAIL", ""),
48
-
cert_staging=os.getenv("SERVER_CERT_STAGING", "false").lower() == "true",
49
-
acme_port=int(os.getenv("SERVER_ACME_PORT", "80")),
35
+
port=int(os.getenv("SERVER_PORT", "8080")),
52
-
# Validate required server settings
53
-
if not server_config.domain:
55
-
"Missing required server configuration. Please set SERVER_DOMAIN "
56
-
"environment variable."
59
-
# Validate auto-cert specific settings
60
-
if server_config.auto_cert and not server_config.cert_email:
62
-
"When SERVER_AUTO_CERT is enabled, SERVER_CERT_EMAIL must be set "
63
-
"for Let's Encrypt account registration."
68
-
zulip_site=zulip_config.site,
69
-
zulip_email=zulip_config.email,
40
+
zulip_site=zulip_config.site or "(from zuliprc)",
41
+
zulip_email=zulip_config.email or "(from zuliprc)",
zulip_stream=zulip_config.stream,
server_host=server_config.host,
server_port=server_config.port,
73
-
server_domain=server_config.domain,
74
-
mtls_enabled=server_config.enable_mtls,
75
-
auto_cert=server_config.auto_cert,
76
-
cert_staging=server_config.cert_staging,
return zulip_config, server_config
···
api_key=config.get('key', ''),
stream=config.get('stream', 'netdata-alerts'),
83
+
# Validate required fields from zuliprc
84
+
if not all([zulip_config.site, zulip_config.email, zulip_config.api_key]):
86
+
if not zulip_config.site: missing.append('site')
87
+
if not zulip_config.email: missing.append('email')
88
+
if not zulip_config.api_key: missing.append('key')
90
+
f"Missing required Zulip configuration in {zuliprc_path}: {', '.join(missing)}"
"Loaded Zulip configuration from zuliprc",