--- title: Gameyfin created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, gaming, game-manager, library, igdb, kotlin, spring-boot, vaadin, react] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Gaming, https://github.com/gameyfin/gameyfin] --- # 🎯 Gameyfin > **Library manager de jeux moderne en Kotlin/Spring** — scanne vos jeux, fetch les mĂ©tadonnĂ©es IGDB, UI web rĂ©active Vaadin + React. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [gameyfin.app](https://gameyfin.app/) | | **GitHub** | [gameyfin/gameyfin](https://github.com/gameyfin/gameyfin) | | **License** | AGPL-3.0 | | **Langage** | Kotlin + Spring Boot 3 (backend) + Vaadin Hilla + React (frontend) | | **Étoiles** | ⭐36 (catalogue) | | **DerniĂšre MAJ** | 2026 (v2.x) | | **CatĂ©gorie** | [[cat-gaming\|Gaming]] | ## 📝 Description **Gameyfin** est un **gestionnaire de bibliothĂšque de jeux vidĂ©o** self-hosted, Ă©crit en **Kotlin** avec **Spring Boot 3** cĂŽtĂ© backend et **Vaadin Hilla + React** cĂŽtĂ© frontend. C'est un projet relativement jeune (v2 réécrit from scratch) qui se positionne comme une alternative moderne et plus lĂ©gĂšre Ă  [[app-gamevault]]. L'objectif est simple : **vous pointez Gameyfin vers un dossier de jeux, il scanne, identifie via IGDB, rĂ©cupĂšre jaquettes et mĂ©tadonnĂ©es, et vous offre une UI web rĂ©active pour parcourir, filtrer, et lancer vos jeux**. La v2 a introduit un **systĂšme de plugins** (PF4J) pour Ă©tendre les fonctionnalitĂ©s : scrapers alternatifs, intĂ©grations launchers tiers, etc. Gameyfin se distingue de la concurrence par son **architecture 100% web** (pas de client natif Ă  installer), son **systĂšme de plugins** flexible, et sa stack technique moderne (Kotlin, Spring, Vaadin, React). Le frontend est gĂ©nĂ©rĂ© par Vaadin Hilla (qui combine Vue/React + endpoints Java typĂ©s) et reste trĂšs rĂ©actif. **FonctionnalitĂ©s clĂ©s** : - ✅ **Scan automatique** des dossiers de jeux - ✅ **Match IGDB** : nom, dev, jaquette, description, trailers - ✅ **UI web rĂ©active** (Vaadin Hilla + React), responsive - ✅ **Multi-bibliothĂšques** : plusieurs dossiers scannĂ©s, Ă©tiquetables - ✅ **SystĂšme de plugins** (PF4J) : scrapers alternatifs, intĂ©grations - ✅ **Multi-utilisateurs** : comptes, partage de bibliothĂšque - ✅ **Collections** : crĂ©er des regroupements thĂ©matiques - ✅ **Tags / Filtres avancĂ©s** : plateforme, genre, annĂ©e, Ă©tat - ✅ **Recherche full-text** performante - ✅ **Pas de DRM** : Gameyfin ne gĂšre que les jeux DRM-free (et l'assume) ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml services: gameyfin: container_name: gameyfin image: ghcr.io/gameyfin/gameyfin:latest restart: unless-stopped ports: - "8080:8080" volumes: - ./gameyfin/data:/app/data # base SQLite + cache - /chemin/vers/jeux:/games:ro # dossier de jeux (lecture seule) - ./gameyfin/config:/app/config # config (optionnel) environment: - TZ=Europe/Paris - SERVER_PORT=8080 - GAMEYFIN_BASE_URL=http://localhost:8080 # pour IGDB et Open Graph - ADMIN_USERNAME=admin - ADMIN_PASSWORD=Change...t labels: - "traefik.enable=true" - "traefik.http.routers.gameyfin.rule=Host(`gameyfin.example.com`)" - "traefik.http.routers.gameyfin.entrypoints=websecure" - "traefik.http.routers.gameyfin.tls.certresolver=letsencrypt" ``` ```bash docker compose up -d ``` ### Option 2 : JAR standalone ```bash git clone https://github.com/gameyfin/gameyfin.git cd gameyfin ./gradlew bootRun # ou ./gradlew bootJar java -jar build/libs/gameyfin-*.jar ``` ### Option 3 : Unraid / Synology L'image Docker est compatible — configurer via les templates communautaires. ## ⚙ Configuration 1. **Premier compte admin** : créé au premier dĂ©marrage avec `ADMIN_USERNAME` / `ADMIN_PASSWORD`. Changer immĂ©diatement. 2. **Ajouter une bibliothĂšque** : *Admin > Libraries > New* → donner un nom, pointer vers le dossier de jeux, configurer le scraper (IGDB par dĂ©faut). 3. **IGDB credentials** : crĂ©er une app Twitch ([dev.twitch.tv](https://dev.twitch.tv/console)) → obtenir Client ID + Secret → configurer dans *Admin > Settings > Integrations > IGDB*. 4. **Plugins** : *Admin > Plugins* pour activer/dĂ©sactiver les scrapers alternatifs (ScreenScraper, MobyGames, ...). 5. **Multi-utilisateurs** : *Admin > Users* pour crĂ©er des comptes. Les non-admins ont accĂšs en lecture seule Ă  la bibliothĂšque partagĂ©e. 6. **Reverse proxy** : [[app-traefik]] ou [[app-caddy]] pour HTTPS. Attention, Vaadin Hilla utilise des **WebSockets** et des **endpoints serveur typĂ©s** : ne pas interfĂ©rer avec les chemins `/connect/*` et `/HILLA/*`. 7. **Backup** : `./gameyfin/data/gameyfin.db` (SQLite) — sauvegarder rĂ©guliĂšrement. ## 🔄 Alternatives ### Open Source - [[app-gamevault]] — Concurrent direct, C#/.NET, plus mature - **RomM** ([rommapp/romm](https://github.com/rommapp/romm)) — Magnifique UI, orientĂ© ROMs - **Gaseous** — ROMs/jeux IGDB, plus ancien - **Lutris** — Game manager Linux, pas de serveur - **Playnite** — Library manager Windows, pas de serveur - **LaunchBox / BigBox** — Windows, freemium - **Hydra Launcher** — Multi-platformes, open source - **Daijishƍ** — Launcher Android/PC ### PropriĂ©taires (ce que Gameyfin remplace) - **Steam** — ModĂšle de rĂ©fĂ©rence, propriĂ©taire - **GOG Galaxy** — Launcher GOG - **Epic Games Launcher** — Launcher Epic - **EA App** — Launcher EA - **Ubisoft Connect** — Launcher Ubisoft - **Battle.net** — Launcher Blizzard - **Amazon Games** — Launcher Amazon ### Comparaison rapide | CritĂšre | Gameyfin | GameVault | RomM | Gaseous | | :--- | :--- | :--- | :--- | :--- | | Type | Serveur web | Client-serveur | Serveur web | Serveur web | | Langage | Kotlin/Spring | C#/.NET | Python/React | C#/.NET | | Scan IGDB | ✅ | ✅ | ✅ | ✅ | | Multi-utilisateurs | ✅ | ✅ | ✅ | ❌ | | Plugins | ✅ PF4J | ❌ | LimitĂ© | ❌ | | UI | Moderne | Type Steam | TrĂšs belle | Correcte | | Licence | AGPL-3.0 | CC BY-NC-SA 4.0 | GPL-3.0 | MIT | ## 🔐 SĂ©curitĂ© - **Auth obligatoire** : changer `ADMIN_PASSWORD` au premier dĂ©marrage, idĂ©alement utiliser un mot de passe gĂ©nĂ©rĂ© (`openssl rand -base64 24`). - **HTTPS obligatoire** : [[app-traefik]] ou [[app-caddy]] avec Let's Encrypt. Vaadin Hilla ne supporte pas le mixed content. - **Dossier jeux en `:ro`** : Gameyfin n'a pas besoin d'Ă©crire dans les jeux eux-mĂȘmes. - **2FA** : non natif. Pour ajouter 2FA, mettre devant [[app-authelia]] ou [[app-authentik]]. - **LĂ©galitĂ© des jeux** : Gameyfin gĂšre des jeux **DRM-free uniquement**, comme GameVault. Les jeux Steam/Epic doivent ĂȘtre lancĂ©s via leurs launchers officiels. - **Backups** : `./gameyfin/data/` (SQLite + cache). Le dossier de jeux source doit aussi ĂȘtre sauvegardĂ©. - **WebSockets** : bien configurer le reverse proxy pour ne pas casser les connexions temps rĂ©el Vaadin Hilla. ## 📚 Ressources - [Site officiel](https://gameyfin.app/) - [GitHub gameyfin/gameyfin](https://github.com/gameyfin/gameyfin) - [Documentation](https://gameyfin.app/docs) - [Discord communautaire](https://discord.gg/gameyfin) - [Release notes v2](https://github.com/gameyfin/gameyfin/releases) ## Pages LiĂ©es - [[cat-gaming]] — CatĂ©gorie Gaming - [[app-gamevault]] — Concurrent C#/.NET - [[app-retrom]] — Frontend Ă©mulation moderne - [[app-retroassembly]] — Frontend Ă©mulation WASM - [[app-traefik]] — Reverse proxy - [[app-authelia]] — 2FA devant l'UI - [[recettes-docker-compose]] — Templates Docker - [[securisation-home-lab]] — Durcir l'infra