self-hosted · git-backed · community-pooled
Scan a barcode — a filament spool, a board game, a book off the shelf — and know what it is. OpenBarcodeDB is a barcode database you run yourself, backed by a community-editable, git-reviewed data pool instead of a closed API you don't control.
One lookup, three moving parts
Everything runs on your own hardware. Item data is pooled through ordinary git merge requests — reviewed like code, not silently trusted.
Scan or type a barcode
UPC, EAN, ISBN — or a made-up code for something that never had one. A product can carry more than one real barcode; OpenBarcodeDB treats them as equals, not a primary-plus-aliases hierarchy.
Core resolves it
A small self-hosted Go API holds your database and serves lookups instantly. Nothing leaves your network unless you choose to sync.
Sync with the pool, on your terms
Pull community data via git, propose your own additions as merge requests. Field-level review tiers mean low-stakes edits merge automatically; anything sensitive waits for a human.
Built for the shelf, the bin, the spool rack
Categories are schema-defined and extensible — add a field, add a category, no code changes required.
Six repos, each with one job
No monolith. Clone what you need; every piece is independently useful.
The Go API and sync engine. Your database, your rules, your data.
webA fast, no-build scan-and-browse frontend for everyday lookups.
adminReview queue, conflict resolution, key management, sync control.
dataThe canonical, community-pooled item data and category schemas.
imagesShared, community-contributed item photos, synced alongside data.
deployOne docker-compose.yml to run core, web, and admin together.
What this project won't compromise on
- Your data stays yours
- Self-hosted by default. Sharing with the community pool is opt-in, reviewed, and reversible — never automatic.
- Nothing destructive without review
- Deletes are soft. Deletion propagation to the shared pool always requires a human decision on the receiving end.
- Recoverable by design
- A bootstrap admin key always gets you back in. Revoked keys and rejected writes leave an audit trail, never a dead end.
- No barcode is more "correct"
- A product can carry two real, independent barcodes. Neither wins — both just work.
Run your own copy this afternoon.
One docker-compose.yml brings up the API, the scan-and-browse frontend, and the admin panel together. No account, no vendor, no API quota.