Files
notifier/config.yaml
T
2025-10-16 21:22:51 -07:00

92 lines
2.3 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
smtp:
host: "smtp.gmail.com"
port: 587
username: "your-email@gmail.com"
password: "your-app-password"
from: "notifications@yourservice.com"
use_tls: true
# Slack configuration
slack:
webhook_url: "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
# token: "xoxb-your-bot-token" # Alternative to webhook
# channel: "#notifications" # Default channel
username: "Notifier Bot"
icon_emoji: ":bell:"
# Channel-specific webhooks
# webhooks:
# "#alerts": "https://hooks.slack.com/services/ALERTS/WEBHOOK"
# "#monitoring": "https://hooks.slack.com/services/MONITORING/WEBHOOK"
# Ntfy configuration
ntfy:
server_url: "https://ntfy.sh"
# Token-based authentication (recommended for ntfy.sh)
# Supports both access tokens (tk_...) and publish tokens
# token: "tk_your_access_token"
# Basic authentication (alternative to token)
# username: "your-username"
# password: "your-password"
# Default topic if recipient not specified
# default_topic: "default-notifications"
# Skip TLS verification (for self-hosted servers with self-signed certs)
# insecure_skip_verify: false
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