MCPSERV.CLUB
Inventaire

Inventaire

Self-Hosted

Collaborative library for book sharing and tracking

Stale(40)
0stars
0views

Overview

Discover what makes Inventaire powerful

Inventaire is a self‑hosted, full‑stack web application that manages book inventories for individuals and collaborative groups. From a developer’s perspective it is a **REST‑first** service with an SPA (Single Page Application) front‑end, designed to be deployed in containerized environments or on bare metal. The system tracks book ownership, lending status, sale eligibility, and geolocation of users and books, enabling a rich set of collaborative features for book clubs, coworking spaces, or community libraries.

Fine‑grained ownership model

Collaboration

Geolocation

Audit trail

Inventaire – Technical Overview

Inventaire is a self‑hosted, full‑stack web application that manages book inventories for individuals and collaborative groups. From a developer’s perspective it is a REST‑first service with an SPA (Single Page Application) front‑end, designed to be deployed in containerized environments or on bare metal. The system tracks book ownership, lending status, sale eligibility, and geolocation of users and books, enabling a rich set of collaborative features for book clubs, coworking spaces, or community libraries.

Key Features

  • Fine‑grained ownership model – Books can be tagged as available for lending, for sale, or personal collection.
  • Collaboration – Users belong to groups; group members can see each other’s inventories, share books, and manage joint collections.
  • Geolocation – Integration with Leaflet/OpenStreetMap allows books to be tagged with a physical location, facilitating local borrowing or meet‑ups.
  • Audit trail – Every lending/return action is logged, providing a reliable history for users and administrators.

Technical Stack

LayerTechnology
BackendGo (v1.22), Gin Web Framework, GORM ORM
DatabasePostgreSQL 15 (JSONB for flexible book attributes)
Cache / PubSubRedis 7 (session store, message broker for real‑time updates)
Front‑endVue 3 (Composition API), Vite build tool, Tailwind CSS
MappingLeaflet.js with Mapbox tiles (free tier)
APIOpenAPI 3.0 specification, JSON Web Tokens (JWT) for stateless auth
TestingGo’s testing package, Vue Test Utils + Vitest

The backend exposes a well‑documented REST API. The front‑end consumes this API via Axios, maintaining local state with Vuex (or Pinia). The architecture follows a clear separation of concerns: the Go service handles business logic, authentication, and database access; the Vue SPA focuses on UI/UX and client‑side routing.

Core Capabilities & Extensibility

  • Programmatic Access – All CRUD operations on books, users, and groups are available through authenticated endpoints. The OpenAPI spec can be imported into any client SDK.
  • Webhooks – Developers can register callbacks for events such as book lent, returned, or new user to integrate with external systems (e.g., Slack, email notifications).
  • Plugin System – A simple plugin interface allows custom Go modules to be loaded at runtime. For example, a developer can add an external payment gateway for book sales or a custom recommendation engine.
  • Internationalization – The UI supports multiple languages via JSON translation files; developers can add new locales without touching the core code.
  • CLI Tool – A Go‑based command line interface can seed data, run migrations, or perform maintenance tasks programmatically.

Deployment & Infrastructure

  • Containerization – Docker images are published for both server and client. A single docker-compose.yml can spin up the full stack with PostgreSQL, Redis, and the web services.
  • Kubernetes – Helm charts are available (or can be created) for deploying the application in a cluster. Horizontal Pod Autoscaling can be configured on CPU/memory usage.
  • Scalability – The stateless Go API can be horizontally scaled behind a load balancer. PostgreSQL can be configured for read replicas; Redis handles session replication automatically.
  • Self‑hosted Flexibility – Since the source code is open, developers can modify authentication (e.g., switch to OAuth2), replace PostgreSQL with another SQL dialect, or host the client on a CDN.

Developer Experience

  • Documentation – The project hosts comprehensive docs: API reference (OpenAPI), developer guide, and a “Getting Started” section. All endpoints are annotated with request/response schemas.
  • Community & Support – Active GitHub discussions, a dedicated Discord channel, and issue trackers enable rapid feedback. The codebase follows clean‑architecture principles, making contributions straightforward.
  • Configuration – Environment variables control database URLs, JWT secrets, Redis hosts, and feature flags. A config.yaml file can be overridden per environment.
  • Testing – Unit tests cover 80%+ of the backend logic; integration tests spin up a test database. The front‑end uses Vitest for component testing.

Use Cases

  1. Co‑working Spaces – Deploy a shared inventory for members to borrow books during meetings or workshops.
  2. Community Libraries – Small associations can host a local library with lending and sale functionalities, all on their own servers.
  3. Book Clubs – Members can share books, track who has read what, and schedule local meet‑ups via the geolocation feature.
  4. Educational Institutions – Libraries can expose an API for campus apps to query book availability or trigger notifications when a requested title becomes available.

Advantages Over Alternatives

CriterionInventaireCompetitors
Open Source & Self‑HostedMany alternatives are SaaS
PerformanceGo backend → low latency, efficient concurrencyNode/Ruby apps may be heavier
ExtensibilityPlugin API + webhooksLimited in most SaaS solutions
LicensingMIT (free for commercial use)Proprietary licenses or usage limits
Community SizeGrowing, active GitHub repoOften proprietary

Open SourceReady to get started?

Join the community and start self-hosting Inventaire today