Files
notifier/config.yaml
T

111 lines
3.1 KiB
YAML

# Notifier Service Configuration
server:
grpc_port: 50051
rest_port: 8080
host: "0.0.0.0"
mode: "both" # Options: both, grpc, rest
queue:
type: "local" # Options: local, kafka
max_size: 10000
worker_count: 10
retry_attempts: 3
retry_backoff: "exponential" # Options: exponential, linear, fixed
# Local queue configuration
local:
buffer_size: 1000
persist_to_disk: false
persist_path: "/var/lib/notifier/queue.json"
# Kafka queue configuration (when type: kafka)
# kafka:
# brokers:
# - "localhost:9092"
# topic: "notifications"
# consumer_group: "notifier-service"
# partition_count: 10
# replication_factor: 3
# enable_idempotence: true
# compression_type: "snappy"
notifiers:
# Enable stdout notifier (useful for development/debugging)
stdout: true
# SMTP email configuration (supports multiple accounts)
smtp:
# Personal email account (marked as default)
personal:
host: "smtp.gmail.com"
port: 587
username: "your-personal@gmail.com"
password: "your-app-password"
from: "your-personal@gmail.com"
use_tls: true
default: true # This account will be used if no account is specified in the API request
# Work email account
# work:
# host: "smtp.company.com"
# port: 587
# username: "you@company.com"
# password: "your-work-password"
# from: "notifications@company.com"
# use_tls: true
# default: false
# Slack configuration (supports multiple workspaces/webhooks)
slack:
# Main workspace (marked as default)
main:
webhook_url: "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
username: "Notifier Bot"
icon_emoji: ":bell:"
default: true # This workspace will be used if no account is specified
# Additional workspace example
# team-a:
# webhook_url: "https://hooks.slack.com/services/TEAM-A/WEBHOOK/URL"
# username: "Team A Bot"
# icon_emoji: ":rocket:"
# # Channel-specific webhooks within this workspace
# webhooks:
# "#alerts": "https://hooks.slack.com/services/ALERTS/WEBHOOK"
# "#monitoring": "https://hooks.slack.com/services/MONITORING/WEBHOOK"
# Ntfy configuration (supports multiple servers)
ntfy:
# Public ntfy.sh server (marked as default)
public:
server_url: "https://ntfy.sh"
# token: "tk_your_access_token" # Token-based auth (recommended)
# default_topic: "notifications"
default: true # This server will be used if no account is specified
# Private ntfy server example
# private:
# server_url: "https://ntfy.mycompany.com"
# username: "your-username"
# password: "your-password"
# default_topic: "company-notifications"
# insecure_skip_verify: false # Set to true for self-signed certs
logging:
level: "info" # Options: debug, info, warn, error
format: "json" # Options: json, text
output_path: "stdout" # Options: stdout, stderr, or file path
metrics:
enabled: true
port: 9090
path: "/metrics"
prometheus_enabled: true
health_check:
enabled: true
port: 8081
path: "/health"
interval: 30 # seconds