Files
roa2web-service-auto/deployment
Marius Mutu 09a368355d Complete Windows deployment console FULL INTEGRATION with auto-detection
This commit completes the unified Windows deployment console with automatic detection of first-time install vs update, eliminating the need for separate Install-*.ps1 scripts.

## Changes

### Added Detection Functions
- `Test-BackendInstalled`: Checks if backend is installed (venv + service + requirements.txt)
- `Test-TelegramBotInstalled`: Checks if telegram bot is installed (venv + service + app files)

### Added Prerequisite Installation Functions
- `Install-Chocolatey`: Automated Chocolatey package manager installation
- `Install-Python`: Python 3.11 installation via Chocolatey
- `Install-NSSM`: NSSM (Windows service manager) installation via Chocolatey
- `Install-IISModules`: IIS and required modules (URL Rewrite, Application Initialization)

### Added First-Time Installation Functions
- `Install-BackendFirstTime`: Complete backend first-time installation (~240 lines)
  - Directory structure creation
  - Backend, frontend, shared files copying with exclusions
  - .env.example template copying
  - Virtual environment creation with proper pip installation
  - Windows Service creation via NSSM
  - IIS Application Pool and Web Application configuration

- `Install-TelegramBotFirstTime`: Complete telegram bot first-time installation (~155 lines)
  - Directory structure (app, data, logs, temp, backups)
  - App files and requirements.txt copying
  - Virtual environment creation
  - Windows Service creation via NSSM

### Updated Deployment Functions with Auto-Routing
- `Deploy-Backend`: Now calls `Test-BackendInstalled` first
  - If NOT installed → routes to `Install-BackendFirstTime`
  - If installed → proceeds with existing UPDATE logic (backup, stop, update, start)

- `Deploy-TelegramBot`: Now calls `Test-TelegramBotInstalled` first
  - If NOT installed → routes to `Install-TelegramBotFirstTime`
  - If installed → proceeds with existing UPDATE logic (backup, stop, update, start)

## Benefits

1. **Single Entry Point**: Users can run the same deploy command for both first-time install and updates
2. **No Separate Install Scripts**: Eliminates confusion between Install-*.ps1 and Deploy-*.ps1
3. **Automatic Detection**: Intelligently detects what needs to be done
4. **Safer Updates**: Always checks if components exist before attempting updates
5. **Better UX**: Clear warnings about first-time installation vs updates

## Usage

```powershell
# Interactive (auto-detects install vs update)
.\ROA2WEB-Console.ps1
# Select: Deploy Components > Backend + Frontend

# Command line (auto-detects install vs update)
.\ROA2WEB-Console.ps1 -NonInteractive -Action DeployBackend
.\ROA2WEB-Console.ps1 -NonInteractive -Action DeployTelegramBot
.\ROA2WEB-Console.ps1 -NonInteractive -Action DeployAll
```

The console will automatically:
- Detect if backend/telegram-bot are installed
- Perform first-time installation if needed (including prerequisites)
- Perform updates if already installed (with automatic backups)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 02:23:59 +02:00
..