Commit Graph

5 Commits

Author SHA1 Message Date
50404948f4 feat: configure SMTP email notifications across all services
Added comprehensive email configuration to enable notifications for
password resets, user invitations, system alerts, and backup failures.

**Services configured:**

- **Vaultwarden** (vault/compose.yaml):
  - SMTP settings for password resets, 2FA, emergency access emails
  - Uses IONOS SMTP with force_tls security
  - Sender: hi@pivoine.art

- **Linkwarden** (links/compose.yaml):
  - Email server configuration for user invitations
  - Password reset functionality via email
  - Uses smtp:// connection string format

- **n8n** (n8n/compose.yaml):
  - SMTP mode enabled for workflow notifications
  - User invitation emails
  - Password reset support
  - SSL-secured connection

- **Netdata** (netdata/compose.yaml, health_alarm_notify.conf, msmtprc):
  - Health alarm notifications via email
  - MSMTP configuration for sending alerts
  - Notifications sent to valknar@pivoine.art
  - Alerts for system issues, resource exhaustion, service failures

**Common SMTP settings** (from .env):
- Provider: IONOS (smtp.ionos.de:465)
- From address: hi@pivoine.art
- Transport: SMTP with TLS/SSL
- Admin email: valknar@pivoine.art

**Backrest notifications:**
- Configured via web UI at restic.pivoine.art
- Supports webhooks to Gotify for push notifications
- Email notifications can be added through UI settings

All services now have proper email notification capabilities for
improved monitoring, user management, and security features.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 19:23:56 +01:00
7f892a47d7 fix: mount individual Netdata config files instead of directory
Changed from mounting entire go.d directory to mounting specific
config files (postgres.conf, filecheck.conf) to avoid conflicts
with Netdata's initialization script which needs to write to the
go.d directory during startup.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 18:53:26 +01:00
4b098b9463 feat: configure Netdata monitoring for PostgreSQL and Restic backups
Added monitoring configurations for infrastructure services:

- **PostgreSQL monitoring** (netdata/go.d/postgres.conf):
  - Configured go.d postgres collector with netdata user credentials
  - Monitors core PostgreSQL instance at 172.18.0.5:5432
  - Tracks database performance, connections, queries, and replication

- **Restic backup monitoring** (netdata/go.d/filecheck.conf):
  - Configured go.d filecheck collector for backup repository
  - Monitors /mnt/hidrive/users/valknar/Backup directory
  - Tracks backup repository size and modification times
  - Detects backup failures via directory state changes

Infrastructure updates:
- Mounted go.d configuration directory in Netdata container
- Mounted HiDrive backup directory (read-only) for monitoring
- Persistent collector configurations across container restarts

All monitoring visible in Netdata dashboard at netdata.pivoine.art
with HTTP Basic Auth protection.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 18:50:19 +01:00
3c7aad09ad security: add HTTP Basic Auth to Netdata dashboard
Added HTTP Basic Authentication to secure the Netdata monitoring dashboard:
- Added basicauth middleware using shared AUTH_USERS credentials
- Protects sensitive infrastructure metrics from unauthorized access
- Uses same credentials as Scrapy and other protected services
- Maintains SSL/TLS encryption via Traefik

Security improvements:
- Dashboard now requires username/password
- Prevents public access to server metrics
- Infrastructure monitoring data protected
- Follows security best practices from Netdata documentation

Access requires credentials stored in AUTH_USERS environment variable.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 18:37:01 +01:00
66579fa861 feat: add Netdata monitoring stack
Added Netdata real-time monitoring system at netdata.pivoine.art:
- Real-time infrastructure and container monitoring
- Auto-discovers all Docker containers
- Tracks CPU, memory, disk, network usage per service
- Low overhead monitoring (~1-3% CPU)
- Self-hosted with web dashboard on port 19999

Configuration:
- Created netdata/compose.yaml with full Traefik integration
- Added to main compose.yaml include list
- Added environment variables to arty.yml
- Mounted Docker socket for container metrics
- Mounted system directories for host metrics (/proc, /sys, /var/log)
- Three persistent volumes: config, lib, cache
- Required capabilities: SYS_PTRACE, SYS_ADMIN for system monitoring
- Watchtower enabled for automatic updates

Benefits for infrastructure:
- Monitor 20+ running services in real-time
- Track PostgreSQL, Redis, Traefik performance
- Watch backup processes (Backrest/Restic)
- Monitor Jellyfin transcoding load
- Alert on resource issues before they become critical
- Historical data for capacity planning

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 18:28:47 +01:00