---
# HomeAudit Infrastructure Migration Summary
# Generated: 2025-08-24
# Comprehensive analysis of 7 devices for migration planning

infrastructure:
  devices:
    omv800.local:
      role: "primary_storage_media_server"
      os: "Debian GNU/Linux 12 (bookworm)"
      kernel: "6.12.38+deb12-amd64"
      architecture: "x86_64"
      cpu: 
        model: "Intel Core i5-6400 @ 2.70GHz"
        cores: 4
        threads: 4
        max_freq: "3300.0000 MHz"
        min_freq: "800.0000 MHz"
      memory: "32GB (31Gi available)"
      storage:
        total_capacity: "~20.8TB"
        drives:
          - device: "sda"
            size: "3.6T"
            filesystem: "xfs"
            mount: "/srv/dev-disk-by-uuid-3155f69a-52f3-4a27-8f95-493850a5a8cd"
          - device: "sdb"
            size: "476.9G"
            type: "system_drive"
            partitions:
              - "512M vfat /boot/efi"
              - "464.3G ext4 /"
              - "976M swap"
          - device: "sdc"
            size: "238.5G"
            filesystem: "ext4"
            mount: "/srv/dev-disk-by-uuid-0f772f0b-917d-4337-a3c5-5cc5d3badac9"
          - device: "sdd"
            size: "1.9T"
            filesystem: "ext4"
            mount: "/srv/dev-disk-by-uuid-97cb939b-5af7-4dc1-8190-072eafb37d41"
          - device: "sde"
            size: "14.6T"
            filesystem: "ext4"
            mount: "/srv/dev-disk-by-uuid-5c3ca805-b67d-4cdb-af3d-926c0e16917c"
      critical_data_paths:
        - "/srv/mergerfs/DataPool"
        - "/srv/mergerfs/presscloud"
      migration_complexity: "high"
      migration_priority: 1

    jonathan-2518f5u:
      role: "home_automation_hub"
      os: "Ubuntu 24.04.3 LTS (Noble Numbat)"
      architecture: "x86_64"
      migration_complexity: "high"
      migration_priority: 2
      # Additional hardware details would be gathered similarly

    fedora:
      role: "development_workstation"
      os: "Fedora Linux 42 (Workstation Edition)"
      architecture: "x86_64"
      migration_complexity: "medium"
      migration_priority: 4

    lenovo420:
      role: "auxiliary_services"
      os: "Ubuntu 24.04.3 LTS"
      architecture: "x86_64"
      migration_complexity: "medium"
      migration_priority: 5

    surface:
      role: "appflowy_development"
      os: "Ubuntu 24.04.3 LTS"
      architecture: "x86_64"
      migration_complexity: "medium"
      migration_priority: 6

    audrey:
      role: "monitoring_utilities"
      os: "Ubuntu 24.04.3 LTS"
      architecture: "x86_64"
      migration_complexity: "low"
      migration_priority: 7

    raspberrypi:
      role: "minimal_services"
      os: "Debian GNU/Linux 12 (bookworm)"
      kernel: "6.12.34+rpt-rpi-v8"
      architecture: "aarch64"
      migration_complexity: "low"
      migration_priority: 8

# Service Categories by Business Criticality
service_categories:
  critical_infrastructure:
    description: "Essential network and storage services"
    priority: 1
    services:
      - name: "AdGuard Home"
        host: "omv800.local"
        function: "DNS filtering and blocking"
        ports: ["53/tcp", "53/udp", "3000/tcp"]
        data_persistence: ["config"]
        
      - name: "Unbound"
        host: "omv800.local"
        function: "Recursive DNS resolver"
        ports: ["5335/tcp"]
        data_persistence: ["config"]

  media_entertainment:
    description: "Media streaming and entertainment services"
    priority: 2
    services:
      - name: "Jellyfin"
        host: "omv800.local"
        function: "Media server"
        image: "jellyfin/jellyfin:latest"
        ports: ["8096/tcp"]
        volumes:
          - "jellyfin-config:/config"
          - "jellyfin-cache:/cache"
        bind_mounts:
          - "/srv/mergerfs/DataPool/Movies:/media/movies"
          - "/srv/mergerfs/DataPool/tv_shows:/media/tv_shows"
        health_check: "curl --noproxy 'localhost' -Lk -fsS http://localhost:8096/health"
        restart_policy: "unless-stopped"
        migration_notes: "Large media files require careful bandwidth planning"

  productivity_collaboration:
    description: "File sharing and productivity applications"
    priority: 3
    services:
      - name: "Nextcloud"
        host: "omv800.local"
        function: "Cloud storage and collaboration"
        image: "nextcloud:latest"
        ports: ["8080/tcp"]
        bind_mounts:
          - "/srv/mergerfs/DataPool/nextcloud/data:/var/www/html"
          - "/srv/mergerfs/DataPool/nextcloud/config:/var/www/html/config"
          - "/srv/mergerfs/DataPool/nextcloud/custom_apps:/var/www/html/custom_apps"
          - "/srv/mergerfs/DataPool/nextcloud/themes:/var/www/html/themes"
        network: "nextcloud_nextcloud-internal"
        depends_on:
          - "nextcloud-db"
          - "nextcloud-redis"
        environment:
          - "REDIS_HOST=nextcloud-redis"
          - "MYSQL_HOST=nextcloud-db"
          - "NEXTCLOUD_TRUSTED_DOMAINS=localhost,nextcloud.local,192.168.50.66,100.98.144.95"
        migration_complexity: "high"
        migration_notes: "Database dependency requires coordinated migration"

      - name: "Nextcloud Database"
        host: "omv800.local"
        function: "MySQL database for Nextcloud"
        container: "nextcloud-db"
        volumes: ["database volume with critical user data"]
        
      - name: "Gitea"
        host: "omv800.local"
        function: "Git repository hosting"
        migration_complexity: "medium"

  photo_management:
    description: "Photo storage and AI processing"
    priority: 3
    services:
      - name: "Immich"
        host: "omv800.local"
        function: "Photo management with AI"
        components:
          - "immich_postgres"
          - "immich_redis"  
          - "immich_machine_learning"
        migration_complexity: "high"
        migration_notes: "ML models and PostgreSQL data require special handling"

  home_automation:
    description: "Home automation and IoT management"
    priority: 2
    services:
      - name: "Home Assistant"
        host: "jonathan-2518f5u"
        function: "Home automation hub"
        migration_complexity: "high"
        migration_notes: "Critical for home automation, requires device access"
        
      - name: "ESPHome"
        host: "jonathan-2518f5u"
        function: "ESP device management"
        
      - name: "Mosquitto"
        host: "jonathan-2518f5u"
        function: "MQTT broker"
        
      - name: "Z-Wave JS UI"
        host: "jonathan-2518f5u"
        function: "Z-Wave device management"

  document_management:
    description: "Document processing and workflow"
    priority: 4
    services:
      - name: "Paperless-NGX"
        hosts: ["omv800.local", "jonathan-2518f5u"]
        function: "Document management system"
        components:
          - "paperless-ngx_webserver_1"
          - "paperless-ngx_broker_1"
          - "paperless-db-1"
        migration_complexity: "medium"

  development_tools:
    description: "Development and testing environment"
    priority: 5
    services:
      - name: "AppFlowy Cloud"
        host: "surface"
        function: "Collaborative workspace"
        components:
          - "appflowy-cloud-appflowy_cloud-1"
          - "appflowy-cloud-postgres-1"
          - "appflowy-cloud-redis-1"
          - "appflowy-cloud-minio-1"
          - "appflowy-cloud-nginx-1"
          - "appflowy-cloud-gotrue-1"
          - "appflowy-cloud-appflowy_worker-1"
          - "appflowy-cloud-admin_frontend-1"
          - "appflowy-cloud-appflowy_web-1"
        migration_complexity: "high"

  monitoring_management:
    description: "System monitoring and management"
    priority: 6
    services:
      - name: "Portainer Agent"
        hosts: ["multiple"]
        function: "Docker container management"
        migration_complexity: "low"
        
      - name: "Watchtower"
        hosts: ["multiple"]
        function: "Automatic container updates"
        migration_complexity: "low"
        
      - name: "Uptime Kuma"
        host: "audrey"
        function: "Uptime monitoring"
        migration_complexity: "low"

# Data Storage Analysis
data_storage:
  critical_volumes:
    nextcloud_data:
      path: "/srv/mergerfs/DataPool/nextcloud"
      estimated_size: "large"
      contains: "user files, database, configurations"
      backup_required: true
      
    jellyfin_media:
      paths: 
        - "/srv/mergerfs/DataPool/Movies"
        - "/srv/mergerfs/DataPool/tv_shows"
      estimated_size: "very_large"
      contains: "media files"
      backup_required: false
      migration_method: "sync_transfer"
      
    immich_photos:
      path: "/srv/mergerfs/DataPool/immich"
      estimated_size: "large"
      contains: "photos, ML models, metadata"
      backup_required: true
      
    home_assistant_config:
      path: "/config"
      estimated_size: "small"
      contains: "automation configurations, device states"
      backup_required: true
      criticality: "very_high"

  docker_volumes:
    persistent_volumes:
      - "jellyfin-config"
      - "jellyfin-cache"
      - "nextcloud-db-data"
      - "immich-postgres-data"
      - "gitea-data"
    
  mount_points:
    mergerfs_pools:
      - path: "/srv/mergerfs/DataPool"
        devices: ["multiple large drives"]
        function: "unified storage pool"
        migration_complexity: "high"

# Migration Strategy Matrix
migration_matrix:
  phase_1_critical:
    duration: "1-2 days"
    services:
      - "AdGuard Home"
      - "Unbound"  
      - "Home Assistant"
    validation:
      - "DNS resolution functional"
      - "Home automation responsive" 
      - "Network services accessible"
    rollback_plan: "Keep original services running until validation complete"
    
  phase_2_media:
    duration: "3-5 days"
    services:
      - "Jellyfin"
      - "Nextcloud"
    considerations:
      - "Large data transfer requirements"
      - "Bandwidth limitations during business hours"
      - "User notification required"
    validation:
      - "Media streaming functional"
      - "File sync operational"
      - "Database integrity verified"
    
  phase_3_productivity:
    duration: "2-3 days"
    services:
      - "Immich"
      - "Gitea"
      - "Paperless-NGX"
    validation:
      - "Photo AI processing functional"
      - "Git repositories accessible"
      - "Document processing operational"
      
  phase_4_development:
    duration: "1-2 days"
    services:
      - "AppFlowy Cloud"
      - "Development containers"
    validation:
      - "Development environment accessible"
      - "Collaborative features functional"
      
  phase_5_monitoring:
    duration: "1 day"
    services:
      - "Portainer"
      - "Watchtower"
      - "Uptime Kuma"
    validation:
      - "Container management operational"
      - "Monitoring dashboards accessible"

# Technical Migration Requirements
migration_requirements:
  network:
    bandwidth_needed: "1Gbps minimum for data transfer"
    downtime_tolerance: "2-4 hours for critical services"
    dns_changes: "Required for service discovery"
    
  storage:
    backup_space_required: "50% of total data"
    transfer_methods:
      - "rsync for incremental sync"
      - "docker volume backup/restore"
      - "database dumps and imports"
      
  dependencies:
    service_interdependencies:
      - "nextcloud -> nextcloud-db + nextcloud-redis"
      - "immich -> immich_postgres + immich_redis + immich_machine_learning"
      - "paperless -> paperless-db + paperless-broker"
      - "appflowy -> postgres + redis + minio"
      
  validation_checkpoints:
    automated_tests:
      - "container health checks"
      - "port accessibility tests"
      - "database connection tests"
      - "volume mount verification"
    manual_tests:
      - "user interface accessibility"
      - "data integrity verification"
      - "performance baseline comparison"

# Resource Allocation Planning
resource_planning:
  target_infrastructure:
    recommended_specs:
      cpu: "8+ cores for containerized workload"
      memory: "32GB+ for databases and media processing"
      storage: "NVMe for databases, bulk storage for media"
      network: "Gigabit ethernet minimum"
      
  container_resource_requirements:
    high_resource:
      - "Immich ML processing"
      - "Nextcloud with large user base"
      - "Home Assistant with many integrations"
    medium_resource:
      - "Jellyfin media serving"
      - "Database containers"
    low_resource:
      - "Monitoring containers"
      - "Proxy containers"