Files
2026-06-09 18:40:21 +02:00

170 lines
8.1 KiB
Markdown

---
title: GameVault
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, gaming, game-manager, drm-free, igdb, self-hosted-steam, csharp, dotnet]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Gaming, https://gamevau.lt/]
---
# 🎮 GameVault
> **"Steam auto-hébergé" pour vos jeux DRM-free** — scanne vos jeux, fetch les métadonnées IGDB, télécharge les jaquettes, et les rend jouables depuis une UI.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [gamevau.lt](https://gamevau.lt/) |
| **GitHub (frontend)** | [Phalcode/gamevault-app](https://github.com/Phalcode/gamevault-app) |
| **GitHub (backend)** | [Phalcode/gamevault-backend](https://github.com/Phalcode/gamevault-backend) |
| **License** | CC BY-NC-SA 4.0 (source-available, **pas open-source**) |
| **Langage** | C# / .NET 7+ (backend) + C# WPF (client Windows) |
| **Étoiles** | ⭐45 (catalogue) / ~750 (GitHub) |
| **Dernière MAJ** | 2025-12 (v1.17.5 frontend) |
| **Catégorie** | [[cat-gaming\|Gaming]] |
> ⚠️ **Note du catalogue** : la tâche d'origine mentionnait "Python", ce qui est incorrect. GameVault est écrit en **C#/.NET**. Attention également à la licence : le projet se déclare lui-même "**not open-source, and never was**" — il s'agit de **source-available** avec restrictions non-commerciales. Voir [l'explication officielle](https://gamevau.lt/blog/2023/07/13/).
## 📝 Description
**GameVault** est un **gestionnaire de bibliothèque de jeux PC** self-hosted qui se positionne comme "**le Steam auto-hébergé pour les jeux DRM-free**". Vous stockez vos jeux (achetés légalement, sans DRM) sur votre serveur, GameVault scanne, identifie via **IGDB** (Internet Game Database), récupère jaquettes, descriptions, trailers, et expose tout ça via une **UI type Steam** avec installation/launch en un clic.
L'architecture est **client-serveur** : un **backend C# .NET** gère la base, le scan, l'API, l'auth, et un **client Windows (WPF)** sert d'UI native (style Steam). Le projet fournit aussi une **API REST documentée** utilisable par d'autres clients tiers (utile pour les integrations Home Assistant ou Kodi par exemple).
Le modèle de licence est particulier : **CC BY-NC-SA 4.0** — vous pouvez installer, modifier, et même re-distribuer votre version modifiée, **mais pas à des fins commerciales**. L'auteur vend un **GameVault+ premium tier** (Ko-Fi/Liberapay) pour les utilisateurs qui veulent du support. **Pas d'open-source au sens OSI**, mais le code est consultable et modifiable.
**Fonctionnalités clés** :
-**Scan automatique** de vos dossiers de jeux
-**Match IGDB** automatique (nom, dev, jaquette, trailer, genre)
-**Tag/filter** : plateforme, genre, année, état d'installation
-**UI type Steam** : cover grid, detail view, "Play" button
-**Multi-utilisateurs** : bibliothèque partagée entre amis
-**API REST** complète (utilisable par des clients tiers)
-**Achievements** tracking
-**Bookmarks/Favoris**
-**Manifestes d'installation** pour gérer les dépendances (DirectX, redistribuables)
-**Compression/Décompression** à la volée pour économiser la bande passante
## 🚀 Installation
### Option 1 : Docker Compose (backend)
```yaml
# docker-compose.yml
services:
gamevault-backend:
container_name: gamevault-backend
image: phalcode/gamevault-backend:latest
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./gamevault/data:/app/data # base SQLite + cache
- /chemin/vers/jeux:/games:ro # dossier de jeux (lecture seule)
- /chemin/vers/jeux-cache:/games-cache # cache de scan
environment:
- TZ=Europe/Paris
- DATABASE_PATH=/app/data/gamevault.db
- GAMES_PATH=/games
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=Change...t
labels:
- "traefik.enable=true"
- "traefik.http.routers.gamevault.rule=Host(`gamevault.example.com`)"
- "traefik.http.routers.gamevault.entrypoints=websecure"
- "traefik.http.routers.gamevault.tls.certresolver=letsencrypt"
- "traefik.http.services.gamevault.loadbalancer.server.port=8080"
```
```bash
docker compose up -d
```
### Option 2 : Installation manuelle (backend)
```bash
git clone https://github.com/Phalcode/gamevault-backend.git
cd gamevault-backend
dotnet restore
dotnet run --project src/GameVault.Web
```
### Option 3 : Client Windows natif
Télécharger [gamevault-app](https://github.com/Phalcode/gamevault-app/releases) (Windows) — UI WPF qui se connecte à votre backend.
## ⚙️ Configuration
1. **Premier compte admin** : créé au premier démarrage avec `ADMIN_USERNAME` / `ADMIN_PASSWORD`. Changer immédiatement.
2. **Dossier de jeux** : monter le dossier où vous stockez vos `.exe` / `.iso` / dossiers de jeux. GameVault scanne récursivement.
3. **IGDB** : pour les métadonnées, soit utiliser le scraper par défaut, soit configurer une clé Twitch/IGDB dans `appsettings.json` (gratuit, voir [docs](https://api.igdb.com/)).
4. **Multi-utilisateurs** : créer des comptes depuis l'admin panel. Les permissions (admin/user) se gèrent via l'UI.
5. **Reverse proxy** : [[app-traefik]] ou [[app-caddy]] pour exposer avec HTTPS (utile pour le client Windows distant).
6. **Backup** : `./gamevault/data/gamevault.db` (SQLite) — sauvegarder régulièrement.
## 🔄 Alternatives
### Open Source / Source-available
- [[app-gameyfin]] — Concurrent direct, Kotlin/Spring, v2 réécrit
- **RomM** — Magnifique UI, mais orienté ROMs rétro
- **Gaseous** — Manager ROMs/jeux IGDB
- **Lutris** — Game manager Linux (open source, pas serveur)
- **Heroic Games Launcher** — Epic/GOG/Amazon Linux
- **Playnite** — Game library manager Windows (open source, pas serveur)
- **Hydra** — Launcher multi-platformes (Cloud)
- **LaunchBox** — Windows, freemium
### Propriétaires (ce que GameVault remplace)
- **Steam** — Le modèle de référence, mais propriétaire, lié à un compte
- **GOG Galaxy** — Launcher GOG/CD Projekt
- **Epic Games Launcher** — Launcher Epic
- **EA App / Origin** — Launcher EA
- **Ubisoft Connect** — Launcher Ubisoft
- **Battle.net** — Launcher Blizzard/Activision
### Comparaison rapide
| Critère | GameVault | Gameyfin | Lutris | Playnite |
| :--- | :--- | :--- | :--- | :--- |
| Type | Client-serveur | Serveur web | App Linux | App Windows |
| Self-hosted serveur | ✅ | ✅ | ❌ | ❌ |
| Scan IGDB | ✅ | ✅ | ❌ | ✅ |
| Multi-utilisateurs | ✅ | ✅ | ❌ | ❌ |
| API REST | ✅ | ✅ | ❌ | ❌ |
| Licence | CC BY-NC-SA 4.0 | AGPL-3.0 | GPL-3.0 | MIT |
| Langage | C#/.NET | Kotlin | Python/GTK | C#/.NET |
## 🔐 Sécurité
- **Auth obligatoire** sur le backend. Utiliser un mot de passe fort + 2FA (non natif — passer par [[app-authelia]] devant).
- **HTTPS obligatoire** : utiliser [[app-traefik]] ou [[app-caddy]] avec Let's Encrypt.
- **Dossier jeux en read-only** (`:ro` dans Docker) si vous voulez empêcher l'app de modifier vos fichiers de jeu.
- **API publique** : la REST API n'a pas d'auth par défaut, ne pas exposer directement sur Internet.
- **Légalité des jeux** : GameVault gère des jeux **DRM-free uniquement**. Les jeux avec DRM (Steam, Origin, ...) doivent être lancés via leur launcher officiel.
- **CC BY-NC-SA 4.0** : vous pouvez modifier le code pour votre usage, **mais interdiction d'usage commercial** et vous devez **re-distribuer vos modifications sous la même licence**.
- **Backups** : `./gamevault/data/` (SQLite + cache), et bien sûr le dossier de jeux source.
## 📚 Ressources
- [Site officiel](https://gamevau.lt/)
- [Documentation](https://gamevau.lt/docs/getting-started)
- [GitHub backend](https://github.com/Phalcode/gamevault-backend)
- [GitHub frontend](https://github.com/Phalcode/gamevault-app)
- [Pourquoi pas open-source](https://gamevau.lt/blog/2023/07/13/)
- [Discord communautaire](https://discord.gg/gamevault)
## Pages Liées
- [[cat-gaming]] — Catégorie Gaming
- [[app-gameyfin]] — Concurrent open-source direct
- [[app-romm]] — Magnifique UI ROMs
- [[app-traefik]] — Reverse proxy
- [[app-authelia]] — 2FA
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Durcir l'infra