# PS_Launcher

Launcher Windows pour l'application UE5 **PROSERVE** : gère plusieurs versions cohabitantes,
téléchargement et installation de nouvelles versions depuis un serveur, validation de license,
release notes.

## Composants

- **`src/`** — Solution C# / .NET 8 / WPF (Visual Studio 2022 + SDK .NET 8 requis)
  - `PSLauncher.App` : UI WPF (style Epic Games Launcher)
  - `PSLauncher.Core` : services (Manifest, Download, Install, Process…)
  - `PSLauncher.Models` : DTOs partagés
- **`server/`** — Code serveur PHP 8 (à déployer sous `www/PS_Launcher/` sur OVH mutualisé)

## Démarrage rapide (dev)

```
dotnet build PS_Launcher.sln
dotnet run --project src/PSLauncher.App
```

Pour produire un binaire autonome distribuable (un seul .exe ~70 Mo) :

```
dotnet publish src/PSLauncher.App -c Release
# Sortie : src/PSLauncher.App/bin/Release/net8.0-windows/win-x64/publish/PSLauncher.exe
```

## Configuration locale

Le launcher écrit sa config dans `%LocalAppData%\PSLauncher\config.json` au premier lancement.
Édite `serverBaseUrl` pour pointer vers ton serveur :

```json
{
  "serverBaseUrl": "https://ton-domaine.com/PS_Launcher/api",
  "installRoot": "C:\\ASTERION\\GIT\\PS_Launcher\\ASTERION_VR"
}
```

## État (roadmap)

- ✅ **v0.1** — Scan + lancement de versions installées
- ✅ **v0.2** — Manifest distant, download ZIP, install cohabitante, release notes Markdown
- ⏳ **v0.3** — Reprise (HTTP Range), retry Polly, state.json
- ⏳ **v0.4** — License (MySQL + Ed25519 + DPAPI)
- ⏳ **v0.5** — Settings, suppression manuelle versions, toasts
- ⏳ **v1.0** — Auto-update launcher, MSI installer

Voir le plan détaillé pour la roadmap complète.

## Licence / interne

Repo interne ASTERION. Ne pas distribuer.
