a6a331f538adc2f1ebf9db1229e3783685dda7af
RESOLVED ISSUES: - Fixed Vaultwarden silently falling back to SQLite despite PostgreSQL configuration - Resolved GitHub issue #2835 silent fallback behavior in production environment - Eliminated PostgreSQL connection failures causing service startup problems CONFIGURATION FIXES: - PostgreSQL service: Simplified to use direct environment variables instead of Docker secrets - Vaultwarden service: Changed from DATABASE_URL_FILE to direct DATABASE_URL environment variable - Added proper service dependencies with depends_on: postgres - Removed conflicting Dockerfile.vaultwarden with hardcoded DATABASE_URL - Added debug logging (LOG_LEVEL: debug) for troubleshooting connection issues - Added DATABASE_MAX_CONNS: 10 to force database URL validation INFRASTRUCTURE UPDATES: - PostgreSQL 15.14 running successfully with vaultwarden:vaultwarden123 credentials - Vaultwarden 1.30.5 now properly using PostgreSQL instead of SQLite - All 26 Vaultwarden database tables successfully migrated to PostgreSQL - Service health checks passing: /alive endpoint returns 200 OK - Docker Swarm services: postgres_postgres (1/1), vaultwarden_vaultwarden (1/1) VERIFICATION RESULTS: ✅ PostgreSQL connectivity confirmed and database schema created ✅ Vaultwarden service fully operational on port 8088 ✅ NFS compatibility achieved by eliminating SQLite dependency ✅ Silent fallback issue permanently resolved This resolves the major infrastructure migration blocker identified in previous commits. The Vaultwarden service is now ready for production use with PostgreSQL backend. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
HomeAudit - Infrastructure Migration and Monitoring
A comprehensive home infrastructure audit, migration, and monitoring system for Docker Swarm deployment.
🏗️ Infrastructure Overview
Current Deployment Status
- ✅ Paperless Stack: Paperless-NGX (port 8000) + Paperless AI (port 3000) on OMV800
- ✅ Monitoring Stack: Prometheus + Grafana + Node Exporter + Blackbox Exporter
- ✅ Caddy Reverse Proxy: SSL termination and domain routing
- 🔄 Migration Progress: 85% complete
Device Inventory
| Device | IP | Role | Status |
|---|---|---|---|
| OMV800 | 192.168.50.229 | Docker Swarm Manager | ✅ Active |
| Surface | 192.168.50.254 | Caddy Reverse Proxy | ✅ Active |
| jonathan-2518f5u | 192.168.50.181 | Worker Node | ✅ Active |
| lenovo420 | 192.168.50.66 | Worker Node | ✅ Active |
| audrey | 192.168.50.145 | Worker Node | ✅ Active |
| fedora | 192.168.50.225 | Worker Node | ✅ Active |
📊 Monitoring Stack
Components
- Prometheus (port 9091): Metrics collection and storage
- Grafana (port 3002): Data visualization and dashboards
- Node Exporter (port 9100): System metrics collection
- Blackbox Exporter (port 9115): Service health monitoring
Metrics Coverage
- 15 Active Targets: Services, system, and health checks
- 784 Metrics: Comprehensive infrastructure monitoring
- Real-time Data: 15-60 second scrape intervals
- 30-day Retention: Historical trend analysis
Dashboards
- Infrastructure Overview: Service health and availability
- System Overview: CPU, memory, disk, network monitoring
Access URLs
- Grafana: https://grafana.pressmess.duckdns.org (admin/admin123)
- Prometheus: https://prometheus.pressmess.duckdns.org
🔧 Services Status
Active Services
- Paperless-NGX: Document management (port 8000)
- Paperless AI: AI-powered document processing (port 3000)
- Nextcloud: File storage and sync (port 8081)
- Home Assistant: Home automation (port 8123)
- Portainer: Container management (port 9000)
- AppFlowy: Note-taking (port 9080)
Database Services
- PostgreSQL: Primary database
- MariaDB: Secondary database
- Redis: Caching layer
- Mosquitto: MQTT broker
🚀 Quick Start
1. Access Monitoring
# Grafana Dashboard
open https://grafana.pressmess.duckdns.org
# Login: admin / admin123
# Prometheus Metrics
open https://prometheus.pressmess.duckdns.org
2. Check Service Health
# View all monitoring targets
curl "http://192.168.50.229:9091/api/v1/targets"
# Check system metrics
curl "http://192.168.50.229:9091/api/v1/query?query=up"
3. Monitor System Resources
# CPU Usage
curl "http://192.168.50.229:9091/api/v1/query?query=100%20-%20(avg%20by%20(instance)%20(irate(node_cpu_seconds_total{mode=\"idle\"}[5m]))%20*%20100)"
# Memory Usage
curl "http://192.168.50.229:9091/api/v1/query?query=(1%20-%20(node_memory_MemAvailable_bytes%20/%20node_memory_MemTotal_bytes))%20*%20100"
📁 Project Structure
HomeAudit/
├── stacks/ # Docker Swarm stacks
│ └── monitoring/ # Monitoring stack configuration
├── configs/ # Configuration files
│ └── monitoring/ # Prometheus, Grafana configs
├── scripts/ # Utility scripts
├── dev_documentation/ # Detailed documentation
└── comprehensive_discovery_results/ # Audit results
🔍 Monitoring Features
System Monitoring
- CPU Usage: Per-core and overall utilization
- Memory Usage: Total, available, cached, buffers
- Disk Usage: Space, I/O, mount points
- Network I/O: Bytes sent/received per interface
- System Load: 1m, 5m, 15m averages
Service Monitoring
- HTTP Health Checks: Web service availability
- TCP Health Checks: Database and backend services
- Response Times: Service performance tracking
- Availability Metrics: Uptime and reliability
Infrastructure Monitoring
- Docker Swarm: Service health and resource usage
- Container Metrics: Resource consumption per container
- Network Connectivity: Inter-service communication
- Hardware Health: System temperature and status
🛠️ Maintenance
Update Monitoring Stack
# Deploy updated configuration
ssh root@192.168.50.229 "cd /opt/stacks/monitoring && docker stack deploy -c final-monitoring.yml monitoring"
# Check service status
ssh root@192.168.50.229 "docker service ls | grep monitoring"
View Logs
# Prometheus logs
ssh root@192.168.50.229 "docker service logs monitoring_prometheus"
# Grafana logs
ssh root@192.168.50.229 "docker service logs monitoring_grafana"
📈 Performance Metrics
Current System Specs
- Total Memory: 31GB
- CPU Cores: Multi-core system
- Storage: SSD-based storage
- Network: Gigabit connectivity
Monitoring Performance
- Scrape Interval: 15-60 seconds
- Data Retention: 30 days
- Metrics Count: 784 different metrics
- Target Health: 15/15 targets healthy
🔮 Future Enhancements
Planned Improvements
- AlertManager: Smart alerting and notifications
- cAdvisor: Container resource monitoring
- Application Exporters: Database and service-specific metrics
- Centralized Logging: Log aggregation and analysis
Optional Enhancements
- Distributed Tracing: Request flow tracking
- APM: Application performance monitoring
- Synthetic Monitoring: User journey testing
- Automated Incident Response: Self-healing infrastructure
📞 Support
For issues or questions:
- Check the monitoring dashboards for system health
- Review service logs for error details
- Consult the comprehensive documentation in
dev_documentation/ - Check the migration status in
comprehensive_discovery_results/
Last Updated: August 30, 2025
Monitoring Status: ✅ Fully Operational
Migration Progress: 85% Complete
Description
Languages
Shell
93.8%
Python
6.2%