Koillection Documentation

repository·1.8·Indexed 22 days ago

https://github.com/benjaminjonard/koillection

A self-hosted, flexible collection management system for tracking physical items such as books, DVDs, stamps, and games. It supports PostgreSQL, MariaDB, and MySQL, allowing users to manage metadata manually or via custom HTML scrapers. The system includes a REST API via API Platform for managing ChoiceLists and Datum resources, as well as various console commands for maintenance, such as thumbnail regeneration and database clean-up.

Tokens
2.2K
Snippets
6
Records
23
Agent score
79%

What's inside Koillection

  1. Overview of Koillection

    1.8

    Koillection is a self-hosted collection manager designed to track physical collections such as books, DVDs, stamps, games, and more. It is highly flexible and does not come with pre-built metadata downloads; instead, users can tailor their own HTML scrapers or add metadata manually.

    Supported Databases:

    • PostgreSQL (>= 10.0)
    • MariaDB (>= 10.0)
    • MySQL (>= 8.0)
  2. Try Koillection via Gitpod Demo

    1.8

    You can run a temporary instance of Koillection using Gitpod to test the application.

    1. Open the project in Gitpod using the provided button.
    2. Wait for Gitpod to finish loading.
    3. Select More actions -> Open in browser to access the running instance.
    https://gitpod.io/#https://github.com/koillection/koillection-gitpod
  3. Datum constraints and requirements

    1.8

    A Datum must satisfy the following structural constraints:

    • Exclusivity: A Datum can belong to either an Item OR a Collection, but not both.
    • Presence: A Datum must belong to at least one Item or one Collection (it cannot be orphaned).
    • Label: The label field is required and must be a non-empty string.
  4. Configure Datum types and values

    1.8

    A Datum represents a single piece of information. Its behavior and validation depend on the type field.

    Supported Types: text, textarea, country, date, rating, number, price, link, list, choice-list, checkbox, image, file, sign, video.

    Validation Rules for value based on type:

    • rating: Must be a string choice of '1' through '10'.
    • checkbox: Must be '0' or '1'.
    • price: Must match a numeric/decimal regex.
    • number: Must match a signed numeric/decimal regex.
    • country: Must be a valid country code.
    • date: Must be a valid date.
    • link: Must be a valid URL with a TLD.
    • list & choice-list: Must be valid JSON.
    • image, sign, file, video: The value field must be null as these use dedicated file upload properties.
  5. Install Symfony Runtime for Koillection

    1.8

    If the application reports that the Symfony Runtime is missing, you need to require the symfony/runtime package via Composer to ensure the application environment can be bootstrapped correctly.

    composer require symfony/runtime
  6. Install dependencies for Koillection

    1.8

    If you encounter errors stating that dependencies are missing when running the bin/console command, you must install the project's PHP dependencies using Composer.

    Run the following command in the project root:

    composer install