Initial scaffolding: PS_Launcher v0.2
Client (C# / .NET 8 / WPF, MVVM via CommunityToolkit.Mvvm):
- PSLauncher.App: WPF UI dark theme (Epic-style sidebar + hero + big play button)
with UpdateAvailableDialog rendering Markdown release notes via Markdig.Wpf.
- PSLauncher.Core: services for installation registry (scans Proserve v{X.Y.Z}/),
process launcher, manifest fetch, SHA-256 integrity, HTTP download with
progress, ZIP install via .tmp + atomic rename, update orchestrator.
- PSLauncher.Models: RemoteManifest, InstalledVersion, LocalConfig DTOs.
Server (PHP 8 for OVH mutualisé, deployed under www/PS_Launcher/):
- Front controller + routes /manifest and /releasenotes/{version}.
- Static signed-manifest workflow with tools/sign-manifest.php CLI to
recompute SHA-256 and sizeBytes after each ZIP upload.
- .htaccess: HTTPS redirect, rewrite, security headers.
- config.example.php template; real config.php is gitignored.
Cohabiting versions: each release lives in its own Proserve v{version}/ folder
under installRoot. Old versions are never deleted automatically.
Roadmap: v0.3 = HTTP Range resume + Polly retry + state.json,
v0.4 = MySQL license + Ed25519 signatures + DPAPI, v0.5 = settings/UX polish.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
54
README.md
Normal file
54
README.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user