Added comprehensive production infrastructure: Systemd Service: - guruconnect.service with auto-restart, resource limits, security hardening - setup-systemd.sh installation script Prometheus Metrics: - Added prometheus-client dependency - Created metrics module tracking: - HTTP requests (count, latency) - Sessions (created, closed, active) - Connections (WebSocket, by type) - Errors (by type) - Database operations (count, latency) - Server uptime - Added /metrics endpoint - Background task for uptime updates Monitoring Configuration: - prometheus.yml with scrape configs for GuruConnect and node_exporter - alerts.yml with alerting rules - grafana-dashboard.json with 10 panels - setup-monitoring.sh installation script PostgreSQL Backups: - backup-postgres.sh with gzip compression - restore-postgres.sh with safety checks - guruconnect-backup.service and .timer for automated daily backups - Retention policy: 30 daily, 4 weekly, 6 monthly Health Monitoring: - health-monitor.sh checking HTTP, disk, memory, database, metrics - guruconnect.logrotate for log rotation - Email alerts on failures Updated CHECKLIST_STATE.json to reflect Week 1 completion (77%) and Week 2 start. Created PHASE1_WEEK2_INFRASTRUCTURE.md with comprehensive planning. Ready for deployment and testing on RMM server.
21 lines
495 B
Desktop File
21 lines
495 B
Desktop File
[Unit]
|
|
Description=GuruConnect PostgreSQL Backup
|
|
Documentation=https://git.azcomputerguru.com/azcomputerguru/guru-connect
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
User=guru
|
|
Group=guru
|
|
WorkingDirectory=/home/guru/guru-connect/server
|
|
|
|
# Environment variables (database password)
|
|
EnvironmentFile=/home/guru/guru-connect/server/.env
|
|
|
|
# Run backup script
|
|
ExecStart=/bin/bash /home/guru/guru-connect/server/backup-postgres.sh
|
|
|
|
# Logging
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=guruconnect-backup
|