Major infrastructure migration and Vaultwarden PostgreSQL troubleshooting

COMPREHENSIVE CHANGES:

INFRASTRUCTURE MIGRATION:
- Migrated services to Docker Swarm on OMV800 (192.168.50.229)
- Deployed PostgreSQL database for Vaultwarden migration
- Updated all stack configurations for Docker Swarm compatibility
- Added comprehensive monitoring stack (Prometheus, Grafana, Blackbox)
- Implemented proper secret management for all services

VAULTWARDEN POSTGRESQL MIGRATION:
- Attempted migration from SQLite to PostgreSQL for NFS compatibility
- Created PostgreSQL stack with proper user/password configuration
- Built custom Vaultwarden image with PostgreSQL support
- Troubleshot persistent SQLite fallback issue despite PostgreSQL config
- Identified known issue where Vaultwarden silently falls back to SQLite
- Added ENABLE_DB_WAL=false to prevent filesystem compatibility issues
- Current status: Old Vaultwarden on lenovo410 still working, new one has config issues

PAPERLESS SERVICES:
- Successfully deployed Paperless-NGX and Paperless-AI on OMV800
- Both services running on ports 8000 and 3000 respectively
- Caddy configuration updated for external access
- Services accessible via paperless.pressmess.duckdns.org and paperless-ai.pressmess.duckdns.org

CADDY CONFIGURATION:
- Updated Caddyfile on Surface (192.168.50.254) for new service locations
- Fixed Vaultwarden reverse proxy to point to new Docker Swarm service
- Removed old notification hub reference that was causing conflicts
- All services properly configured for external access via DuckDNS

BACKUP AND DISCOVERY:
- Created comprehensive backup system for all hosts
- Generated detailed discovery reports for infrastructure analysis
- Implemented automated backup validation scripts
- Created migration progress tracking and verification reports

MONITORING STACK:
- Deployed Prometheus, Grafana, and Blackbox monitoring
- Created infrastructure and system overview dashboards
- Added proper service discovery and alerting configuration
- Implemented performance monitoring for all critical services

DOCUMENTATION:
- Reorganized documentation into logical structure
- Created comprehensive migration playbook and troubleshooting guides
- Added hardware specifications and optimization recommendations
- Documented all configuration changes and service dependencies

CURRENT STATUS:
- Paperless services:  Working and accessible externally
- Vaultwarden:  PostgreSQL configuration issues, old instance still working
- Monitoring:  Deployed and operational
- Caddy:  Updated and working for external access
- PostgreSQL:  Database running, connection issues with Vaultwarden

NEXT STEPS:
- Continue troubleshooting Vaultwarden PostgreSQL configuration
- Consider alternative approaches for Vaultwarden migration
- Validate all external service access
- Complete final migration validation

TECHNICAL NOTES:
- Used Docker Swarm for orchestration on OMV800
- Implemented proper secret management for sensitive data
- Added comprehensive logging and monitoring
- Created automated backup and validation scripts
This commit is contained in:
admin
2025-08-30 20:18:44 -04:00
parent 9ea31368f5
commit 705a2757c1
155 changed files with 16781 additions and 1243 deletions

View File

@@ -0,0 +1,52 @@
# Ansible Inventory File for Linux System Audit - Home Lab Environment
# Generated from Tailscale device discovery and network scanning
# Tailscale devices mapped to local IP addresses
[fedora_servers]
# Current host - fedora (Tailscale: 100.81.202.21)
fedora ansible_host=localhost ansible_user=jonathan ansible_connection=local tailscale_ip=100.81.202.21 device_type=workstation
# fedora-wired ansible_host=192.168.50.225 ansible_user=jonathan tailscale_ip=100.81.202.21
# Other Fedora/RHEL systems
[ubuntu_servers]
# Ubuntu/Debian based systems
omvbackup ansible_host=192.168.50.107 ansible_user=jon device_type=omv_backup_server
lenovo ansible_host=192.168.50.181 ansible_user=jonathan tailscale_ip=100.99.235.80
lenovo420 ansible_host=100.98.144.95 ansible_user=jon local_ip=192.168.50.194
omv800 ansible_host=100.78.26.112 ansible_user=root local_ip=192.168.50.229 device_type=nas_server
surface ansible_host=100.67.40.97 ansible_user=jon local_ip=192.168.50.188
audrey ansible_host=100.118.220.45 ansible_user=jon local_ip=192.168.50.145 device_type=ubuntu_server
[offline_devices]
# Tailscale devices currently offline - no local IP mapping available
# bpcp-b3722383fb (Windows) - Tailscale: 100.104.185.11
# bpcp-s7g23273fb (Windows) - Tailscale: 100.126.196.100
# jonathan (Linux) - Tailscale: 100.67.250.42
# ipad-10th-gen-wificellular (iOS) - Tailscale: 100.107.248.69
# qualcomm-go103 (Android) - Tailscale: 100.65.76.70
# samsung-sm-g781u1 (Android) - Tailscale: 100.72.166.115
# xreal-x4000 (Android) - Tailscale: 100.69.142.126
[mobile_devices]
# Active mobile devices
# google-pixel-9-pro ansible_host=tailscale tailscale_ip=100.96.2.115 device_type=android
[network_infrastructure]
# Key network devices discovered
# gateway ansible_host=192.168.50.1 device_type=router
# immich_photos ansible_host=192.168.50.66 device_type=photo_server
[all_linux:children]
ubuntu_servers
fedora_servers
[all_linux:vars]
# Common variables for all Linux hosts
ansible_ssh_private_key_file=~/.ssh/id_rsa
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ansible_python_interpreter=/usr/bin/python3
# Optional: Set these if needed
# ansible_become_pass=your_sudo_password
# ansible_ssh_pass=your_ssh_password