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)
# 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"
docker compose up -d
Option 2 : Installation manuelle (backend)
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 (Windows) — UI WPF qui se connecte à votre backend.
Configuration
- Premier compte admin : créé au premier démarrage avec
ADMIN_USERNAME/ADMIN_PASSWORD. Changer immédiatement. - Dossier de jeux : monter le dossier où vous stockez vos
.exe/.iso/ dossiers de jeux. GameVault scanne récursivement. - 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). - Multi-utilisateurs : créer des comptes depuis l'admin panel. Les permissions (admin/user) se gèrent via l'UI.
- Reverse proxy : [[app-traefik]] ou [[app-caddy]] pour exposer avec HTTPS (utile pour le client Windows distant).
- 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 (
:rodans 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.
