{"id":13555785,"url":"https://github.com/inventaire/inventaire","last_synced_at":"2025-12-15T13:11:10.924Z","repository":{"id":26795638,"uuid":"30254057","full_name":"inventaire/inventaire","owner":"inventaire","description":"a libre collaborative book mapper, powered by open-knowledge :books:","archived":false,"fork":false,"pushed_at":"2025-03-30T12:02:47.000Z","size":14491,"stargazers_count":455,"open_issues_count":234,"forks_count":28,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-03-30T13:19:56.940Z","etag":null,"topics":["books","inventory","libre","linked-open-data"],"latest_commit_sha":null,"homepage":"https://wiki.inventaire.io/wiki/Inventaire_software","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inventaire.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/AGPL-3.0-only.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-03T17:03:27.000Z","updated_at":"2025-03-30T12:02:51.000Z","dependencies_parsed_at":"2023-02-18T11:17:10.072Z","dependency_job_id":"3f102d43-4d28-46d5-aa4f-6afb31800714","html_url":"https://github.com/inventaire/inventaire","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inventaire%2Finventaire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inventaire%2Finventaire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inventaire%2Finventaire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inventaire%2Finventaire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inventaire","download_url":"https://codeload.github.com/inventaire/inventaire/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246966071,"owners_count":20861989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["books","inventory","libre","linked-open-data"],"created_at":"2024-08-01T12:03:24.914Z","updated_at":"2025-12-15T13:11:10.914Z","avatar_url":"https://github.com/inventaire.png","language":"TypeScript","funding_links":[],"categories":["JavaScript","others","TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Inventaire\n\n**[Visit inventaire.io](https://inventaire.io) | [Create an instance](https://git.inventaire.io/inventaire/tree/main/docs) | [Wiki](https://wiki.inventaire.io) | [Contact us](https://wiki.inventaire.io/wiki/Communication_channels) | [Donate](https://wiki.inventaire.io/wiki/Funding#Donations)**\n\n[![License](https://img.shields.io/badge/license-AGPL3-blue.svg)](http://www.gnu.org/licenses/agpl-3.0.html)\n[![Node](https://img.shields.io/badge/node-\u003e=v4-brightgreen.svg)](https://nodejs.org)\n[![Code Climate](https://codeclimate.com/github/inventaire/inventaire/badges/gpa.svg)](https://codeclimate.com/github/inventaire/inventaire)\u003cbr\u003e\n\n\u003c/div\u003e\n\nInventaire is a libre/open webapp to make inventories and lists of books, powered by open-knowledge.\n\n[![inventory screenshot](https://github.com/inventaire/inventaire/assets/1596934/844c04ff-a216-48dc-b3b9-c33a106b8fbe)](https://inventaire.io)\n\nThis repository hosts the server-side code of the [Inventaire association](https://wiki.inventaire.io/wiki/Association), a collaborative resources mapper project, while yet only focused on exploring books mapping with [Wikidata](https://wikidata.org/) and [ISBNs](https://en.wikipedia.org/wiki/International_Standard_Book_Number). The flagship instance is https://inventaire.io and anyone may [create their own federated instance](https://git.inventaire.io/inventaire/tree/main/docs).\n\nThis repository tracks server-side developments, while the (heavy) [client-side can be found here](https://github.com/inventaire/inventaire-client). Client-related technical issues should go in the client repo, while this repo gathers all other technical issues. Non-technical discussions, such as feature requests, should preferably happen in the [chat](https://wiki.inventaire.io/wiki/Communication_channels#Chat).\n\n## Summary\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n- [Installation](#installation)\n  - [Dependencies to install manually](#dependencies-to-install-manually)\n  - [Project development environment installation](#project-development-environment-installation)\n    - [server](#server)\n      - [emails](#emails)\n    - [client](#client)\n  - [Installation tips](#installation-tips)\n  - [Repositories and Branches](#repositories-and-branches)\n    - [server](#server-1)\n    - [client](#client-1)\n    - [i18n](#i18n)\n    - [deploy](#deploy)\n    - [docker](#docker)\n- [Stack Map](#stack-map)\n- [Concepts map](#concepts-map)\n- [Contribute](#contribute)\n- [Documentation](#documentation)\n- [Wiki](#wiki)\n- [API](#api)\n- [Administration](#administration)\n- [License](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Installation\n\n*This is the installation documentation for a developement environment. For production setup, see*: [docs](https://git.inventaire.io/inventaire/tree/main/docs)\n\n### Dependencies to install manually\n- [git](https://git-scm.com/), [curl](https://curl.haxx.se) (used in some installation scripts), [graphicsmagick](www.graphicsmagick.org/README.html) (used to resize images), [inotify-tools](https://github.com/rvoicilas/inotify-tools) (used in API tests scripts):\n- [NodeJS](https://nodejs.org/) (\u003e=10, using the latest LTS is recommended), [NVM](https://github.com/creationix/nvm) (allows greater version update flexibility)\n- a [CouchDB](https://couchdb.apache.org/) (\u003e=3.1) instance (on port 5984 for default config)\n- an [Elasticsearch](https://www.elastic.co/fr/products/elasticsearch) (\u003e=7.10) instance (on port 9200 for default config)\n\nTo install all this those dependencies on Debian/Ubuntu:\n\nFor packages available in Ubuntu default repositories:\n```sh\nsudo apt-get update\nsudo apt-get install git curl wget graphicsmagick inotify-tools\n```\nFor packages that need a more elaborated installation, see their own documentation:\n* [Install NodeJS latest LTS via NVM](https://github.com/nvm-sh/nvm#installing-and-updating)\n* [Install CouchDB](https://docs.couchdb.org/en/stable/install/unix.html)\n* [Install ElasticSearch](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html)\n\nAlternatively, CouchDB and Elasticsearch could be run in Docker, see [docker-inventaire](https://github.com/inventaire/docker-inventaire)\n\nWhatever the way you installed CouchDB and Elasticsearch, you should now be able to get a response from them:\n```sh\n# Verify that CouchDB is up\ncurl http://localhost:5984\n# Verify that Elasticsearch is up\ncurl http://localhost:9200\n```\n\n### Project development environment installation\n```sh\ngit clone https://github.com/inventaire/inventaire.git\ncd inventaire\nnpm install --global tsx\nnpm install\n```\n\nThis should have installed:\n- the server (this git repository) in the current directory\n- the client ([inventaire-client](https://github.com/inventaire/inventaire-client)) in the `client` directory\n- i18n strings ([inventaire-i18n](https://github.com/inventaire/inventaire-i18n)) in the `inventaire-i18n` directory\n\n#### server\n\nThe installation step above should have triggered the creation of a `./config/local.cjs` file, in which you can override all present in `./config/default.cjs`: make sure to set `db` `username` and `password` to your CouchDB username and password.\n\nAnd now you should be all set! You can now start the server (on port `3006` by default)\n```sh\n# Starting the server in watch mode so that it reboots on file changes\nnpm run watch\n```\n\n##### emails\n\nTo debug emails in the browser:\n* Get some username and password at https://ethereal.email/create and set the following values in config: `mailer.nodemailer.user` and `mailer.nodemailer.pass`.\n* Make an action that triggers the email you would like to work on on the local server (ex: send a friend request)\n* Open https://ethereal.email/messages to see the generated email\n\nNote that, while convenient, debugging emails in the browser is quite an approximation, as some email clients are antiquated, and, sadly, modern CSS can't be used.\n\n#### client\n\nIf you want to work on the [client](https://github.com/inventaire/inventaire-client), you need to start the webpack watcher and dev server (on port `3005` by default)\n```sh\n# In another terminal\ncd inventaire/client\nnpm run watch\n```\n\n### Installation tips\n* To use executable that are used by the project (such as `mocha`), you can either find them in `./node_modules/.bin` or install them globally with npm: `npm install -g tsx mocha lev2` etc.\n\n### Repositories and Branches\n\n#### [server](https://github.com/inventaire/inventaire)\n- [**main**](https://github.com/inventaire/inventaire/tree/main): the stable branch. Unstable work should happen in feature-specific branches and trigger pull requests when ready to be merged in the main branch. See [Code Contributor Guidelines](https://github.com/inventaire/inventaire/wiki/Code-Contributor-Guidelines).\n\n#### [client](https://github.com/inventaire/inventaire-client)\n- [**main**](https://github.com/inventaire/inventaire-client/tree/main): the stable branch. Unstable work should happen in feature-specific branches and trigger pull requests when ready to be merged in the main branch. See [Code Contributor Guidelines](https://github.com/inventaire/inventaire/wiki/Code-Contributor-Guidelines).\n\n#### [i18n](https://github.com/inventaire/inventaire-i18n)\nThe repository tracking strings used in the server (for emails, activitypub) and client (for the web UI) in all the supported languages. To contribute to translations, see the [Inventaire Weblate project](https://weblate.framasoft.org/engage/inventaire/)\n- [**main**](https://github.com/inventaire/inventaire-i18n/tree/main): tracking translations fetched from [Weblate](https://weblate.framasoft.org/engage/inventaire/) and build scripts\n\n#### [deploy](https://github.com/inventaire/inventaire-deploy)\ntracking installation scripts to run inventaire in production (for production documentation, see [docs](https://git.inventaire.io/inventaire/tree/main/docs))\n- [**main**](https://github.com/inventaire/inventaire-deploy/tree/main): the main implementation for Debian/Ubuntu systems. Additional branches can be started to document installation on other environments\n\n#### [docker](https://github.com/inventaire/docker-inventaire)\n- [**main**](https://github.com/inventaire/docker-inventaire/tree/main): tracking docker installation files\n\n## Stack Map\nThis repository correspond to the the \"Server\" section in the [stack map](https://inventaire.github.io/stack/)\n\n## Concepts map\n\nThe app has a few core concepts, see the [Glossary](https://wiki.inventaire.io/wiki/Glossary) for more detailed information\n\n## Contribute\nFor code-related contributions, see [*How to contribute* on wiki.inventaire.io](https://wiki.inventaire.io/wiki/Technic#How_to_contribute).\n\n## Documentation\n\n### User documentation\n\nMost of the user doc is on the [wiki](https://wiki.inventaire.io), especially in the [help section](https://wiki.inventaire.io/wiki/Help).\n\n### Admin documentation\n\nSee the [production documentation](https://git.inventaire.io/inventaire/tree/main/docs).\n\n### Technical documentation\n\nThe [technical wiki page](https://wiki.inventaire.io/wiki/Technic) gives a detailed explanation of the architectural choices.\n\nSee our not exhaustive [API](https://api.inventaire.io) documentation\n\n## License\nInventaire is an open-sourced project licensed under [AGPLv3](./LICENSES/AGPL-3.0-only.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finventaire%2Finventaire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finventaire%2Finventaire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finventaire%2Finventaire/lists"}