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
79 lines
2.0 KiB
Bash
Executable File
79 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Test host connectivity script
|
|
# Tests each host from all_hosts.txt individually
|
|
|
|
set -uo pipefail
|
|
|
|
# Load passwords
|
|
source secrets/ssh_passwords.env
|
|
|
|
# Discovery directory
|
|
DISCOVERY_DIR="comprehensive_discovery_results"
|
|
|
|
echo "=== TESTING HOST CONNECTIVITY ==="
|
|
echo "Testing each host from: $DISCOVERY_DIR/all_hosts.txt"
|
|
echo
|
|
|
|
# Test each host
|
|
while IFS=: read -r host user; do
|
|
if [[ -z "$host" || "$host" == "localhost" ]]; then
|
|
continue
|
|
fi
|
|
|
|
echo "🔍 Testing: $host (user: $user)"
|
|
|
|
# Get password for this host
|
|
case "$host" in
|
|
"fedora")
|
|
password="$FEDORA_PASSWORD"
|
|
;;
|
|
"lenovo")
|
|
password="$LENOVO_PASSWORD"
|
|
;;
|
|
"lenovo420")
|
|
password="$LENOVO420_PASSWORD"
|
|
;;
|
|
"omv800")
|
|
password="$OMV800_PASSWORD"
|
|
;;
|
|
"surface")
|
|
password="$SURFACE_PASSWORD"
|
|
;;
|
|
"audrey")
|
|
password="$AUDREY_PASSWORD"
|
|
;;
|
|
"raspberrypi")
|
|
password="$RASPBERRYPI_PASSWORD"
|
|
;;
|
|
*)
|
|
password=""
|
|
;;
|
|
esac
|
|
|
|
if [[ -z "$password" ]]; then
|
|
echo "❌ No password configured for $host"
|
|
else
|
|
echo " Password: [CONFIGURED]"
|
|
|
|
# Test SSH connection
|
|
if sshpass -p "$password" ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$user@$host" "echo 'SSH connection successful'" 2>/dev/null; then
|
|
echo "✅ SSH: SUCCESS"
|
|
|
|
# Test basic commands
|
|
echo " Testing basic commands..."
|
|
if sshpass -p "$password" ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$user@$host" "hostname && whoami && pwd" 2>/dev/null; then
|
|
echo "✅ Commands: SUCCESS"
|
|
else
|
|
echo "❌ Commands: FAILED"
|
|
fi
|
|
else
|
|
echo "❌ SSH: FAILED"
|
|
fi
|
|
fi
|
|
|
|
echo "---"
|
|
done < "$DISCOVERY_DIR/all_hosts.txt"
|
|
|
|
echo "=== CONNECTIVITY TEST COMPLETE ==="
|