j.foucher 1acb735641 PROSERVE v1.5.3 migrations : idempotent SQLs (FK syntax fix)
Schema source-of-truth for the proserveapi DB, versioned outside the
release ZIPs (the actual binaries live in version/ but are gitignored).

0001_Init.sql — full bootstrap of proserveapi (12 tables + view +
reference data + FKs). Reworked from a phpMyAdmin dump to be safely
re-runnable on:
  - fresh install (everything created)
  - existing customer DB pre-populated manually before launcher rollout
  - re-import via phpMyAdmin or mysql CLI
Idempotency tools used:
  - CREATE TABLE IF NOT EXISTS
  - INSERT IGNORE INTO ...  for reference rows
  - ADD PRIMARY KEY / KEY / UNIQUE KEY IF NOT EXISTS
  - ADD FOREIGN KEY IF NOT EXISTS `name` (...)  REFERENCES ...
    (note: MariaDB does NOT accept `ADD CONSTRAINT IF NOT EXISTS name
     FOREIGN KEY ...` — the IF NOT EXISTS goes after FOREIGN KEY, not
     after CONSTRAINT)
  - CREATE OR REPLACE VIEW
  - Removed the dump's `START TRANSACTION` / `COMMIT` (the launcher
    wraps each script in its own tx; embedded BEGIN/COMMIT would break
    the rollback semantics)
  - Removed `DEFINER=root@localhost` (uses CURRENT_USER, more portable)

0002_SessionType_ps_1.4.5.sql — adds id=7 'LongRange' + renames id=6
to 'Rescue'. Now uses INSERT IGNORE for the new row (skips if 0001
already inserted it on a fresh install) and the UPDATE is naturally
idempotent.

0003_UserSize_ps_1.5.0.sql — adds users.size column. Now uses
ADD COLUMN IF NOT EXISTS (the column is also in the recent 0001
baseline, so on a fresh install this will skip; on an upgrade from a
pre-0003 DB it actually adds it).

Validated locally on MariaDB 10.4 (XAMPP) with two consecutive runs of
each file: exit code 0 on every run, no errors.

.gitignore tightened so version/ only tracks _migrations/*.sql — the
~14 GB UE5 binaries and the _report/ build artifacts stay out of git.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 09:35:14 +02:00

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 :

{
  "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.

Description
No description provided
Readme 170 MiB
Languages
C# 46%
HTML 29%
PHP 23.3%
CSS 0.6%
Batchfile 0.5%
Other 0.6%