Files
HomeAudit/scripts/simple_vaultwarden_check.sh
admin 705a2757c1 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
2025-08-30 20:18:44 -04:00

93 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
echo "🔍 Simple Vaultwarden Migration Check"
echo "===================================="
# Test 1: SSH connectivity
echo "Test 1: SSH connectivity to lenovo410"
if ssh jonathan@192.168.50.181 "echo 'SSH works'" 2>/dev/null; then
echo "✅ SSH connection successful"
else
echo "❌ SSH connection failed"
exit 1
fi
# Test 2: Vaultwarden container status
echo "Test 2: Vaultwarden container status"
if ssh jonathan@192.168.50.181 "docker ps | grep vaultwarden" 2>/dev/null; then
echo "✅ Vaultwarden container is running"
else
echo "❌ Vaultwarden container not found"
exit 1
fi
# Test 3: Data directory
echo "Test 3: Data directory check"
if ssh jonathan@192.168.50.181 "[ -d '/home/jonathan/vaultwarden/data' ]" 2>/dev/null; then
echo "✅ Data directory exists"
# Check for critical files
if ssh jonathan@192.168.50.181 "[ -f '/home/jonathan/vaultwarden/data/db.sqlite3' ]" 2>/dev/null; then
echo "✅ SQLite database exists"
else
echo "❌ SQLite database not found"
exit 1
fi
else
echo "❌ Data directory not found"
exit 1
fi
# Test 4: NFS mount
echo "Test 4: NFS mount check"
if ssh jonathan@192.168.50.181 "[ -d '/mnt/vaultwarden' ]" 2>/dev/null; then
echo "✅ NFS vaultwarden directory exists on lenovo410"
# Test write access
if ssh jonathan@192.168.50.181 "touch /mnt/vaultwarden/test_write && rm -f /mnt/vaultwarden/test_write" 2>/dev/null; then
echo "✅ Write access to NFS directory"
else
echo "❌ Cannot write to NFS directory"
exit 1
fi
else
echo "❌ NFS vaultwarden directory not found on lenovo410"
exit 1
fi
# Test 5: Docker Swarm
echo "Test 5: Docker Swarm check"
if docker node ls >/dev/null 2>&1; then
echo "✅ Docker Swarm manager access"
else
echo "❌ Not on Docker Swarm manager"
exit 1
fi
# Test 6: Create backup
echo "Test 6: Creating backup"
mkdir -p ./backups/vaultwarden
BACKUP_FILE="./backups/vaultwarden/test_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
if ssh jonathan@192.168.50.181 "tar czf - -C /home/jonathan/vaultwarden/data ." > "$BACKUP_FILE" 2>/dev/null; then
BACKUP_SIZE=$(stat -c%s "$BACKUP_FILE" 2>/dev/null || echo "0")
echo "✅ Backup created: $BACKUP_FILE (${BACKUP_SIZE} bytes)"
if [ "$BACKUP_SIZE" -gt 1000000 ]; then
echo "✅ Backup size is reasonable"
else
echo "⚠️ Backup seems small"
fi
else
echo "❌ Backup creation failed"
exit 1
fi
echo ""
echo "🎉 All tests passed! Vaultwarden migration is ready."
echo ""
echo "Next steps:"
echo "1. Run: ./scripts/migrate_vaultwarden_sqlite.sh"
echo "2. Test the new service for 24 hours"
echo "3. Stop the old service if everything works correctly"