#!/bin/bash

# SCRIPT FLOW EXPLANATION FOR USERS
cat << 'EOF'
╔════════════════════════════════════════════════════════════════╗
║              Ubuntu Post-Install Setup Script                  ║
╚════════════════════════════════════════════════════════════════╝

This script is divided into TWO main phases:

┌────────────────────────────────────────────────────────────────┐
│ PHASE 1: ESSENTIAL SYSTEM SETUP (Required)                     │
├────────────────────────────────────────────────────────────────┤
│ These are installed/configured FIRST:                          │
│   ✓ System updates and essential packages                      │
│   ✓ OpenSSH server (remote access)                             │
│   ✓ rsync, curl, wget (core utilities)                         │
│   ✓ SSH key configuration                                      │
│   ✓ Docker & Docker Compose (container platform)               │
│   ✓ Hard drive mounting (storage setup)                        │
│                                                                 │
│ These are REQUIRED for everything else to work.                │
└────────────────────────────────────────────────────────────────┘

┌────────────────────────────────────────────────────────────────┐
│ PHASE 2: SERVICE SELECTION MENU (Optional)                     │
├────────────────────────────────────────────────────────────────┤
│ After Phase 1, you'll see a CHECKBOX MENU where you can:       │
│   • Select which services to INSTALL                            │
│   • Select which services to UNINSTALL                          │
│   • Skip services you don't want                                │
│                                                                 │
│ Services include:                                               │
│   • Self-hosted apps (ActualBudget, Keycloak, Jellyfin, etc.)  │
│   • Network services (Samba, VPNs, fail2ban)                    │
│   • Monitoring tools (Uptime Kuma, Portainer, Watchtower)      │
│   • And many more...                                            │
└────────────────────────────────────────────────────────────────┘

┌────────────────────────────────────────────────────────────────┐
│ RE-RUNNING THIS SCRIPT                                         │
├────────────────────────────────────────────────────────────────┤
│ You can safely re-run this script on an already configured     │
│ server:                                                         │
│   • Phase 1 will DETECT existing installations and skip them   │
│   • Phase 2 menu will show ALL services (installed and not)    │
│   • Select NEW services to add                                 │
│   • Or select UNINSTALL to remove services                     │
│                                                                 │
│ The script is IDEMPOTENT - safe to run multiple times!         │
└────────────────────────────────────────────────────────────────┘

Press ENTER to continue with Phase 1 (Essential Setup)...
EOF

read -p ""

# Now continue with the actual script...
EOF
