Overview
Discover what makes Open QuarterMaster powerful
Open QuarterMaster (OQM) is a self‑hosted inventory management engine that exposes its core logic through a **RESTful JSON API** while offering a lightweight web UI (the *Base Station*) for day‑to‑day operations. At its heart lies a **domain‑driven core** written in C# (.NET 8) that models items, locations, movements, and ownership. The core is intentionally agnostic of any persistence mechanism; it delegates data storage to a pluggable **repository layer** that supports both relational databases (PostgreSQL, MySQL) and NoSQL stores (MongoDB). This design allows developers to swap storage back‑ends without touching business logic, which is crucial for scaling from a single Raspberry Pi to an enterprise‑grade Kubernetes cluster.
Modular plugin architecture
Event‑driven workflow
Strong typing & validation
Kubernetes
Overview
Open QuarterMaster (OQM) is a self‑hosted inventory management engine that exposes its core logic through a RESTful JSON API while offering a lightweight web UI (the Base Station) for day‑to‑day operations. At its heart lies a domain‑driven core written in C# (.NET 8) that models items, locations, movements, and ownership. The core is intentionally agnostic of any persistence mechanism; it delegates data storage to a pluggable repository layer that supports both relational databases (PostgreSQL, MySQL) and NoSQL stores (MongoDB). This design allows developers to swap storage back‑ends without touching business logic, which is crucial for scaling from a single Raspberry Pi to an enterprise‑grade Kubernetes cluster.
Key Features
- Modular plugin architecture – Each extension lives in
software/pluginsand registers itself with the core via a simple attribute‑based discovery system. Plugins can expose new REST endpoints, add background workers, or hook into existing lifecycle events (e.g.,OnItemAdded). - Event‑driven workflow – OQM publishes domain events to a built‑in message bus (currently SignalR for real‑time web hooks, with optional RabbitMQ or Azure Service Bus support). This makes it trivial to wire up external systems such as POS terminals, RFID readers, or ERP back‑ends.
- Strong typing & validation – All API contracts are defined with OpenAPI/Swagger, and the core uses FluentValidation for request payloads. This guarantees that clients receive clear error messages and developers can auto‑generate SDKs in multiple languages.
Technical Stack
| Layer | Technology | Rationale |
|---|---|---|
| API & Core | C# / .NET 8, ASP.NET Core | Mature ecosystem, excellent performance on Linux, easy Docker support |
| Persistence | Entity Framework Core + provider abstraction | Rapid development with LINQ; provider‑agnostic for PostgreSQL/MySQL/MongoDB |
| UI | React (Vite), TailwindCSS | Responsive front‑end with minimal bundle size |
| Messaging | SignalR + optional RabbitMQ | Low‑latency WebSocket communication for real‑time updates |
| Deployment | Docker Compose / Helm charts, optional k8s manifests | Containerized by default; supports ARM64 for Raspberry Pi |
Deployment & Infrastructure
OQM ships with a single‑host Docker Compose bundle that pulls the core, base station, and optional PostgreSQL image. For production, the repository recommends:
- Kubernetes: Deploy the core as a Deployment with a persistent PostgreSQL StatefulSet; expose the Base Station via an Ingress.
- Raspberry Pi: Use the provided ARM‑compatible images; scale horizontally by adding more Pi nodes behind a load balancer.
- High‑availability: The core exposes a health endpoint (
/healthz) and can be behind a Kubernetes readiness probe. Database replication is left to the underlying DB engine, but the repository layer supports read‑replica connections.
Integration & Extensibility
Developers can extend OQM in two primary ways:
- Plugin development – Implement the
IOqmPlugininterface, register routes inConfigureServices, and hook into events via delegates. The plugin package is distributed as a NuGet library, allowing versioned upgrades without touching the core. - Webhooks & API – OQM can send HTTP POSTs to any external URL when inventory changes occur. Conversely, third‑party systems can consume the OpenAPI spec and integrate via authenticated bearer tokens (JWT). The core also supports OIDC for single‑sign‑on if you run it behind an IdentityServer.
Developer Experience
- Documentation – The repo contains a comprehensive
docs/folder with architecture diagrams, API reference (auto‑generated), and plugin developer guides. - Community – An active Discord channel, GitHub Discussions, and a contributor list of 12+ maintainers provide rapid feedback.
- Configuration – All runtime settings are externalized in
appsettings.jsonor environment variables, enabling CI/CD pipelines to inject secrets securely.
Use Cases
| Scenario | How OQM Helps |
|---|---|
| Homebrew pantry | Store item counts, expiration dates, and generate reorder lists via the UI. |
| Retail POS | Plug a lightweight POS module that consumes OQM’s API to update stock in real time. |
| Warehouse automation | Connect RFID scanners to a custom plugin that updates location data via webhooks. |
| SaaS multi‑tenant | Spin up a core instance per tenant; use the plugin system to enforce tenant isolation and custom workflows. |
Advantages Over Alternatives
- Zero‑cost licensing – MIT license allows unrestricted use in commercial products.
- Performance & scalability – .NET 8 core runs efficiently on ARM and x86, with optional async I/O for database calls.
- Modularity – Unlike monolithic solutions, OQM’s plugin system lets developers add only the features they need.
- Open‑source ecosystem – All dependencies are open, and the community actively maintains security patches.
In short, Open QuarterMaster offers a clean, extensible API‑first architecture that can grow from a hobbyist project on a Raspberry Pi to an enterprise inventory backbone, all while keeping the developer experience smooth and well‑documented.
Open SourceReady to get started?
Join the community and start self-hosting Open QuarterMaster today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Beets
Organize, tag, and play your music library effortlessly
Tox
Secure, serverless instant messaging for all devices
Mataroa
Minimalist blogging for writers
Piwigo
Open‑source photo gallery for teams and individuals
multi-scrobbler
Cross‑platform music scrobbling for any source and client
RetroShare
Decentralized secure communication and file sharing