Initial vault setup
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user