OpenBucket
A self-hosted, S3-compatible object store you can run as a container β or embed directly into a NestJS app.
OpenBucket speaks the Amazon S3 wire protocol (SigV4 auth, presigned URLs, multipart uploads, versioning, object lock, lifecycle, CORS, tagging, bucket policies) from a single Node.js process backed by SQLite and the local filesystem. It ships with a JSON admin API and a polished Angular admin console β no MinIO cluster, no AWS bill, no second service to babysit.
It comes in two shapes from one codebase:
- π³ Standalone β a small Docker image / Node app. Point any S3 SDK at it. β Run it with Docker
- π¦ Embeddable library β
@openbucket/nestjs. CallOpenBucketModule.forRoot({ β¦ })and mount a complete object store (S3 + admin API + admin console) inside your own NestJS app. β Embed it in NestJS
The first upload tutorial takes you from zero to "an uploaded file with a shareable URL" β the thing most apps actually need.

Why OpenBucketβ
The pitch is simple: it's the file backend for your app. Because it can run inside your process, it does things a remote S3 can't.
- Uploads, handled. A one-line multer engine,
uploadFrom()helpers, and presigned POST for direct browser uploads. - Serve smart. On-the-fly image transforms
(
?w=&h=&format=webp) with a cached derivative store. - React to changes. In-process
@OnObjectCreated()events + signed webhooks. - Multi-tenant ready. Scoped access keys restricted to a bucket/prefix, plus admin roles.
- Durable. Async replication to real S3 / R2 / B2, cold-object tiering, scheduled backups, and background integrity scrubbing.
- Production-ready. Prometheus
/metrics, an audit log, a CLI, and a security posture that's been through an audit.
Where to go nextβ
| If you want to⦠| Start here |
|---|---|
| Get it running fast | Quick start (Docker) Β· Quick start (NestJS) |
| Understand the pieces | Core concepts |
| Do a specific thing | Guides β uploads, transforms, events, sharing, multi-tenancy, backups, replication, observability, CLI |
| Look something up | Reference β config, the OpenBucketService API, S3 compatibility, CLI, admin API |
| Learn how it works | Concepts & the whitepaper |
| Run it in production | Operations β deploy, monitor, upgrade |
OpenBucket is pre-1.0 and under active development. The S3 surface and admin
console are feature-complete and tested; APIs may still change before 1.0. The
library publishes to the npm next dist-tag β npm install @openbucket/nestjs@next.
OpenBucket is an independent project and is not affiliated with or endorsed by Amazon Web Services. "Amazon S3" and "AWS" are trademarks of Amazon.com, Inc. "S3-compatible" describes wire-protocol compatibility only.