Launching today

Nexo
Self-hosted S3 storage that streams video and resizes images
3 followers
Self-hosted S3 storage that streams video and resizes images
3 followers
Self-hosted, S3-compatible object storage in one Go binary. Upload an MP4 and it streams as HLS at once; upload a photo and one URL serves AVIF, WebP or JPEG at the right size. Open source, one drive to a cluster.

Hi Product Hunt! 👋 I’m Paolo, the maker of Nexo.
Why I built it. Every project I worked on needed the same three things: somewhere S3-compatible to put files, a way to stream the videos, and images resized for every screen. That usually means object storage + a transcoding service + an image CDN, three bills and three things to keep running. Nexo puts them in one self-hosted binary.
What it does
🪣 Real S3. It passes all 451 applicable Ceph s3-tests and all 638 MinIO mint tests, so aws, rclone, your SDKs and backup tools just work.
🎬 Video that plays on upload. An MP4 streams as HLS immediately. Tick “HLS” when you create a bucket and a worker adds every quality from 240p to 4K, a poster and seek-bar thumbnails. There’s no ffmpeg, and it uses every core (1080p → 3 renditions at 3.2× real time).
🖼️ One URL, every format. Upload a photo and the same URL returns AVIF, WebP or JPEG depending on the browser, at the width you ask for with ?w=. It works on your own domain with a built-in edge cache.
🛡️ Built not to lose data. Erasure coding, bitrot checks, automatic healing, versioning, object lock and encryption (SSE-S3/KMS/C).
🖥️ Batteries included. A web console, a CLI, Prometheus + Grafana, Docker, Helm, deb/rpm, and binaries for Linux, macOS and Windows.
Coming from MinIO? There’s a step-by-step migration guide, and nexoctl diff verifies every object and version afterwards.
Try it in 30 seconds:
Then open http://localhost:9001.
It’s open source (AGPL-3.0). I’d love your feedback, especially on what’s missing for your use case. I’ll be here all day answering questions! 🙏
GitHub: https://github.com/R3n3r0/Nexo · Docs: https://r3n3r0.github.io/Nexo/