Netdata.cloud bot for Zulip
1[Unit]
2Description=Netdata Zulip Bot - Webhook service for Netdata Cloud notifications
3After=network.target network-online.target
4Wants=network-online.target
5
6[Service]
7Type=simple
8User=netdata-bot
9Group=netdata-bot
10WorkingDirectory=/opt/netdata-zulip-bot
11Environment=PATH=/opt/netdata-zulip-bot/.venv/bin:/usr/local/bin:/usr/bin:/bin
12
13# Server configuration
14Environment=SERVER_DOMAIN=your-webhook-domain.com
15Environment=SERVER_HOST=0.0.0.0
16Environment=SERVER_PORT=8443
17Environment=SERVER_CERT_PATH=/etc/letsencrypt/live
18Environment=SERVER_ENABLE_MTLS=true
19
20# Zulip configuration (if using environment variables instead of zuliprc)
21# Environment=ZULIP_SITE=https://yourorg.zulipchat.com
22# Environment=ZULIP_EMAIL=netdata-bot@yourorg.zulipchat.com
23# Environment=ZULIP_API_KEY=your-api-key
24# Environment=ZULIP_STREAM=netdata-alerts
25
26ExecStart=/opt/netdata-zulip-bot/.venv/bin/netdata-zulip-bot
27ExecReload=/bin/kill -HUP $MAINPID
28
29# Security settings
30NoNewPrivileges=true
31PrivateTmp=true
32ProtectSystem=strict
33ProtectHome=true
34ReadWritePaths=/opt/netdata-zulip-bot
35ReadOnlyPaths=/etc/letsencrypt/live
36
37# Resource limits
38LimitNOFILE=65536
39MemoryHigh=256M
40MemoryMax=512M
41
42# Restart settings
43Restart=always
44RestartSec=5
45StartLimitInterval=60
46StartLimitBurst=3
47
48# Logging
49StandardOutput=journal
50StandardError=journal
51SyslogIdentifier=netdata-zulip-bot
52
53[Install]
54WantedBy=multi-user.target