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

5.8 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Koillection 2026-06-07 2026-06-07 app
catalogue
tracking
collections
livres
vinyles
bd
php
symfony
high false
https://selfh.st/apps/koillection
https://github.com/benjaminjonard/koillection

Koillection

Un gestionnaire de collections physiques auto-hébergé, conçu pour inventorer livres, vinyles, BD, jeux vidéo, films, timbres et tout autre type de collection.

Métadonnée Valeur
Site web https://koillection.github.io/
GitHub https://github.com/benjaminjonard/koillection
License MIT
Langage principal PHP (Symfony)
Étoiles GitHub 1.2k
Dernière MAJ 2026-06-01 (v1.8.1)
Catégorie cat-tracking

Description

Koillection est un projet français (par Benjamin Jonard) qui permet de gérer n'importe quel type de collection physique depuis une interface web soignée. Contrairement à des solutions comme Discogs ou Goodreads qui se concentrent sur un médium particulier, Koillection est volontairement générique : vous pouvez créer une collection de vinyles, une autre de mangas, une autre de jeux Switch, et tout administrer depuis la même instance. Chaque collection peut avoir ses propres champs personnalisés, ses tags, et ses statuts (possédé, recherché, prêté, perdu…).

L'application est bâtie sur Symfony (PHP 8+) et expose une API REST complète via API Platform, ce qui ouvre la porte à des intégrations tierces (Home Assistant, scripts personnels, applications mobiles). Le rendu visuel est moderne grâce à Twig, et l'interface est traduite en plus de 10 langues dont le français (à 100%). Les utilisateurs peuvent laisser des notes, des avis, et obtenir des statistiques détaillées sur leur collection (valeur estimée, répartition par genre, par année d'acquisition…).

Le point différenciant est la gestion des scrapers HTML/JSON personnalisés : il n'y a pas de source de métadonnées imposée, vous pouvez écrire vos propres extracteurs (JMESPath pour JSON, sélecteurs CSS pour HTML) pour récupérer automatiquement titre, auteur, année, photo et description depuis n'importe quel site web. Cela permet par exemple de cataloguer ses DVDs depuis Allociné, ses mangas depuis MangaUpdates, ou ses vinyles depuis Discogs.

Installation

Via Docker (recommandé)

services:
  koillection:
    container_name: koillection
    image: koillection/koillection:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - koillection-images:/app/public/uploads/images
    environment:
      - APP_ENV=prod
      - APP_SECRET=changez-moi-en-production
      - DATABASE_URL=postgresql://koillection:secret@db:5432/koillection
    depends_on:
      db:
        condition: service_healthy

  db:
    image: postgres:18-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_DB=koillection
      - POSTGRES_USER=koillection
      - POSTGRES_PASSWORD=secret
    volumes:
      - koillection-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U koillection"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  koillection-db:
  koillection-images:

Installation manuelle

  1. Pré-requis : PHP 8.0+, Composer, PostgreSQL ≥10 ou MySQL ≥8 / MariaDB ≥10.
  2. Cloner : git clone https://github.com/benjaminjonard/koillection.git
  3. Installer les dépendances : composer install
  4. Configurer .env.local avec vos paramètres de BDD
  5. Lancer les migrations : php bin/console doctrine:migrations:migrate
  6. Démarrer le serveur web (Nginx + PHP-FPM) ou symfony serve en dev

Configuration

  • Premier utilisateur créé lors de l'inscription initiale devient automatiquement administrateur.
  • Configurer le fuseau horaire et la langue par défaut dans config/packages/translation.yaml.
  • Activer/désactiver l'inscription publique depuis le panneau d'administration.
  • Définir des scrapers personnalisés via l'admin (HTML ou JSON) pour automatiser la récupération de métadonnées.
  • L'API Platform expose les endpoints REST sous /api — sécurisez-les si l'instance est publique.

Alternatives

Open source

  • app-dvinyl — focus médias physiques avec valorisation automatique via Discogs/Hardcover/TMDB
  • app-koillection (cette fiche) — équivalent plus générique et personnalisable
  • Grocy — gestion d'inventaire domestique (alimentaire et objets) avec scanner de codes-barres
  • Collectorz — solutions payantes, parfois gratuites pour un usage personnel
  • Grouvee — pour les collectionneurs de jeux vidéo

Propriétaires

  • Discogs — référence pour les vinyles, mais base de données centralisée
  • Goodreads / Storygraph — pour les livres, avec composante sociale
  • Delicious Library — solution Mac pour cataloguer tous types de médias

Sécurité

  • Sauvegarder la base de données avant chaque mise à jour, l'auteur insiste sur ce point dans son README.
  • Stocker les uploads d'images sur un volume persistant (sinon perte au rebuild du conteneur).
  • En production, changer APP_SECRET par une valeur aléatoire forte (32+ caractères).
  • Placer derrière un reverse proxy avec HTTPS (Let's Encrypt automatique via Traefik/Caddy).
  • Restreindre l'accès à l'API REST si l'inscription publique est ouverte (rate limiting, clé API).

Ressources

Pages Liées