Finder for your data lake — on any cloud.
Open Parquet, CSV and Avro without downloading them, see Delta and Iceberg tables for what they are, and run SQL straight on files — across Amazon S3, Cloudflare R2, Azure, Google Cloud, Backblaze B2, Wasabi, Dropbox and OneDrive, from one web app on your own server.
- 10+ storage providers
- Delta & Iceberg aware
- SQL on files (DuckDB)
- No telemetry
- AGPL-3.0 licence
7 of 7 objects · 239 MB
A sample bucket you can click through: try the filters, then pick a file — the Quick Look pane follows.
See how jvinu works in about a minute.
Connect storage, find and preview files, share a link with limits and download a folder as one zip — recorded in the real app, no edits.
Read what happens in the video
- Connect any cloud in seconds
- Browse folders with real thumbnails
- Upload files and folders
- Preview photos and video instantly
- Search the whole bucket
- Share links with an expiry, a download limit and a password
- Download a whole folder as one zip
- See what your storage costs
Stop juggling a console for every cloud.
Media in S3, backups in B2, edge assets in R2, a project or two on Google Cloud or Azure — and a separate, admin-heavy console for each. jvinu puts them side by side.
Without jvinu
Fragmented and slow
- A browser tab per cloud: the AWS, Azure, Google Cloud, Oracle and Cloudflare consoles, each with its own sign-in.
- Clashing words for the same thing — buckets, containers, namespaces, Spaces.
- Sharing a file means a raw presigned URL: no password, no download limit, no way to take it back.
- Desktop tools that want your secret keys copied onto every laptop.
With jvinu
One calm window
- One window that treats every provider as the same familiar file system.
- Share links with an expiry, a download limit and a password — and revoke them any time.
- Thumbnails, previews and costs up front, before you download a byte.
- Keys encrypted on your server and used only there; the browser never receives them.
Works with Amazon S3, Cloudflare R2, Backblaze B2 and every major cloud.
Pick a provider, name the bucket, paste the keys. jvinu checks they can list the bucket before anything is saved — then every provider looks and works the same.
Amazon S3
- Any region — redirects followed for you
- Storage classes and archive warnings
- Presigned links, multipart uploads, SSE-S3
Azure Blob Storage
- Storage account and container
- Access tiers shown per blob
- SAS links, block uploads
Google Cloud Storage
- Service-account key JSON
- Storage classes shown per object
- V4 signed URLs, resumable uploads
Oracle Cloud Object Storage
- Tenancy namespace and API key
- Native, atomic rename
- Share links served through jvinu
Cloudflare R2, Wasabi, Backblaze B2 & DigitalOcean Spaces
- Endpoint built from your account or region
- R2 jurisdictions: EU and FedRAMP
- Zero-egress downloads shown as free
Dropbox
- Sign in with an app key — no secret
- The whole account or one folder
- Real folders, moved in one step
OneDrive
- Personal and work accounts
- Sign in with a short device code
- Large files in upload sessions
Your own storage
- Bundled Garage server, set up for you
- MinIO, Garage or any S3-compatible API
- Floci emulators for local development
Try it without a cloud account
Start the Floci emulators and pick “Use Floci defaults” when connecting — S3, Azure, Google Cloud and Oracle, all on your machine.
Everything you need to manage object storage, in the browser.
The everyday jobs — find, preview, share, move, download — made calm and fast, whichever cloud the files live in.
Preview data files in place
Parquet, CSV, JSON and Avro open as a table — columns, types, row count, first rows — read from a few kilobytes of the file, not the whole thing.
Delta, Iceberg and Hudi tables
Folders that are tables say so: version, files, rows, schema and history from their own metadata. Deleting or moving files inside one stops to warn you first.
SQL straight on files
SELECT … FROM 'sales/**/*.parquet' on any cloud, run by DuckDB in a sandbox that sees only those files. Save the result back as Parquet or CSV.
AI agents, without your keys — coming in jvinu Cloud
With jvinu Cloud, Claude Code, Cursor and other MCP clients will list, read, preview and query your files — scoped per token, read-only unless you say otherwise.
Compare and copy across clouds
What's missing from the backup? Diff two folders on any two providers by name, size and checksum — then copy what's missing in one click.
Live folders
Watch a folder while a pipeline writes to it: the listing refreshes itself and new files light up as they land.
Bulk metadata
Fix Content-Type and Cache-Control on hundreds of files at once, change storage classes and tags — the cure for a CDN serving files wrong.
READMEs, notes and team pins
A folder's README shows above its files, like on GitHub. Leave notes such as “don't delete — pipeline X reads this”, and pin what the team keeps opening.
Quick Look with the space bar
Space on any file shows it full size — photos, video, PDFs, code with highlighting, Markdown, data tables — and the arrow keys move to the next.
Search the whole bucket
⌘K searches every folder on the server, not only the ones you opened. Filter to images and video, data files, starred, or anything over 10 MB.
Share links with limits
Links that expire, stop after a number of downloads, ask for a password and can be revoked at any time. They work on every provider.
A share bucket for cheaper downloads
Serve links from a copy on a low-egress store such as Cloudflare R2 or your own server. Copied once, deleted when the link ends.
Encryption you control
Encrypt files with your own passphrase before they leave your server. It's rclone's crypt format, so rclone can always read them too.
Download folders as a zip
One streamed download for a folder or a selection — up to 10,000 files, with folder structure and names intact.
Know the cost before you click
Roughly what a download or share costs, egress and retrieval fees included — and a warning before you read from an archive tier.
Bulk actions as background jobs
Copy, move, rename and delete up to 100,000 objects with live progress and a cancel button. Nothing is ever overwritten silently.
A history of every change
An activity log for each bucket or folder: who uploaded, moved, renamed or deleted what, and when — plus share links made, revoked and downloaded. Kept for 180 days.
Drag-and-drop uploads
Drop in files or whole folders. They stream straight to the cloud in parts, with progress per file and no size-hungry temp copies.
Storage analytics
Size, growth by month, file types, storage classes and largest files for any bucket or folder — with an estimated monthly bill.
Public URLs for your CDN
Put Cloudflare or another CDN in front of a public bucket and copy correctly encoded public links, special characters and all.
Read-only by default, no telemetry
New connections start read-only: the server refuses every write until you allow it. Nothing about you or your files is ever sent anywhere.
Encrypt files before they reach the cloud.
Keep your files private from your storage provider — with your own passphrase, and without giving up previews or sharing.
Your passphrase, your key
Choose a passphrase when you connect a bucket. Every file is encrypted on your server before it's uploaded.
The provider sees only ciphertext
Yet thumbnails, previews, search, zips and share links keep working — jvinu decrypts on the way out.
No lock-in
It's rclone's crypt format, so rclone can decrypt the same files with the same passphrase, with or without jvinu.
Made for the way people actually use storage.
Data engineers
Check what a pipeline wrote without spinning up a notebook: preview the Parquet, query the partition, see the Delta table's last commit — on whichever cloud it landed.
Photographers and creators
Browse years of photos and footage in S3 or B2 by thumbnail, and send clients a password-protected link that expires on its own.
Agencies delivering to clients
Deliver big files from a cheap share bucket, cap the downloads, revoke when the project ends, and hand over whole folders as one zip.
Developers and DevOps
Inspect buckets across AWS, Google Cloud, Azure and local emulators from one tab. The folder you're in lives in the URL, so links land right there.
Homelabs and privacy
Run it with its bundled storage on a spare machine, encrypt with your own passphrase, and keep every key on hardware you own.
How jvinu compares.
Next to the consoles each cloud gives you, and the desktop apps that keep a copy of your keys on every computer.
| Feature | Cloud consoles | Desktop storage apps | jvinu |
|---|---|---|---|
| Every provider in one window | One per cloud | Varies | Yes |
| Works in any browser, nothing to install per computer | Yes | No | Yes |
| Team access without handing out keys | Per-cloud users | Keys on each computer | Yes |
| Share links with expiry, download limits and passwords | Expiry only | Expiry only | Yes |
| Download a folder as one zip | No | Varies | Yes |
| Encryption before upload, readable by rclone | No | Varies | Yes |
| Download cost estimates | No | No | Yes |
| Free and open source | — | Varies | AGPL-3.0 |
Your keys stay on your server.
jvinu is self-hosted. Credentials live in your database, encrypted, and the browser only ever sees file names.
AES-256-GCM at rest
Every saved credential is sealed under a key derived from your JVINU_SECRET and bound to its connection.
Zero browser secrets
Keys never go back to the page — not in cookies, local storage or HTML. The browser holds only a session cookie.
Official SDKs, server-side
Every call goes out from your server through the AWS, Azure, Google Cloud and Oracle SDKs, or Dropbox's and Microsoft's own APIs.
Your browser
session cookie + CSRF token
jvinu server
decrypts keys in memory
Official cloud SDK
signs the request
Your storage provider
S3 · Azure · GCS · OCI · Dropbox · OneDrive
Built on
- Framework
- Next.js 16 (App Router)
- UI
- React 19 · Tailwind CSS v4
- Language
- TypeScript, strict mode
- Database
- SQLite, or Postgres
- Hardening
- CSRF tokens, strict CSP, sandboxed previews
Honest current limits
- One shared workspace: every signed-in user sees every connection — no roles yet.
- Single sign-on (OIDC) is built but not yet tested against a live identity provider.
- Encryption covers file contents; file and folder names stay readable.
- Background jobs run inside the server: a restart stops running ones (they're marked interrupted).
- Uploads up to 5 GB per file by default (JVINU_MAX_UPLOAD_MB).
Self-host jvinu with Docker in two minutes.
Set a master key and start it; you choose your password the first time you sign in. One small database file on a volume is all there is to back up.
Copy the example settings
Generate a master key for JVINU_SECRET
Start jvinu on http://localhost:3000
Optional: bundled storage on this machine
The first sign-in asks for a setup code from docker compose logs jvinu, so only you choose the password. Prefer config? Set JVINU_ADMIN_PASSWORD or the OIDC variables in .env. Health check: GET /api/health.
Frequently asked questions.
What is jvinu?
jvinu is a free, open-source web app for browsing and managing files in object storage. It connects to Amazon S3, Cloudflare R2, Backblaze B2, Azure Blob Storage, Google Cloud Storage, Oracle Cloud, Wasabi, DigitalOcean Spaces, Dropbox, OneDrive and any S3-compatible server, and shows them all in one Finder-like window. You run it yourself, with Docker.
What does the name mean, and how do you say it?
jvinu is the Lojban word for “view” — what you see from where you stand. Say it “zhvee-noo” (the j as in “déjà vu”). One view over every bucket, table and file you have, on any cloud.
Can I preview Parquet, CSV and Avro files without downloading them?
Yes. Select a data file and jvinu shows its columns, types, row count and first 100 rows. For Parquet it reads only the footer and the first pages — a few kilobytes of a multi-gigabyte file — using a built-in DuckDB.
Does it understand Delta Lake, Apache Iceberg and Hudi tables?
Yes. A folder that is a table says so, with its version, file count, rows, schema, partitions and history read from the table's own metadata. Deleting, moving or uploading files inside a table stops to explain what would break, because those changes belong to the engine (Databricks, Spark, Snowflake).
Can I run SQL on files in S3, Azure or Google Cloud?
Yes. Write SELECT … FROM 'sales/**/*.parquet' and jvinu runs it with DuckDB in a sandbox that can only see those files, on any provider. Results can be saved back to a bucket as Parquet, CSV or JSON Lines.
Can AI agents like Claude Code or Cursor use my buckets through jvinu?
Not in the free self-hosted version. Access for AI agents through MCP is coming with jvinu Cloud: a token per agent, the connections it may reach and whether it may write — and the agent never holds your cloud keys.
Is jvinu free?
Yes. jvinu is open source under the GNU AGPL-3.0 licence and free to self-host, for personal or commercial use. Your only costs are your own server and what your storage provider charges.
How do I browse an S3 bucket without the AWS console?
Connect the bucket in jvinu with an access key that can list it. You then get folders, thumbnails, previews, search and drag-and-drop uploads in the browser — without signing in to the AWS console, and without giving the key to anyone else.
Can I share a file with a link that expires or needs a password?
Yes. Share links can expire after an hour, a day, a week or a month (or never), stop after a set number of downloads, ask for a password, and be revoked at any time from the Shared links view. They work on every provider, including ones that can't sign links themselves.
Can I encrypt files before they reach my cloud provider?
Yes. Connect a bucket with a passphrase and jvinu encrypts every file on your server before it's uploaded, so the provider only stores ciphertext. It uses rclone's crypt format, so rclone can decrypt the same files without jvinu.
Can I download a whole folder as a zip?
Yes. Select files and folders, or open a folder, and download them as one zip. It's streamed as it's read — nothing piles up on the server — and holds up to 10,000 files, with folder structure and non-English names intact.
Does it work with MinIO, Garage or Cloudflare R2?
Yes. Anything that speaks the S3 API works, including MinIO, Garage, Cloudflare R2, Backblaze B2, Wasabi and DigitalOcean Spaces. jvinu can even run its own Garage storage server for you.
Where are my access keys stored?
On your server only, in its database, encrypted with AES-256-GCM under a master key you choose. Keys are never sent to the browser, and every request to your storage is made from your server through the provider's official SDK.
How is jvinu different from rclone or a desktop S3 client?
rclone is a superb command-line tool, and jvinu can read and write its encrypted format. Desktop clients keep keys on each computer. jvinu is a shared web app: open it in any browser, preview and share files with limits, and keep the keys on one server.
How do I install it?
With Docker: copy .env.example to .env, set JVINU_SECRET, and run docker compose up -d. It's then on port 3000, where the first sign-in chooses your password, with a one-time setup code from docker compose logs jvinu. Add --profile storage for built-in storage on the same machine.
Tier it right.
The commonest storage mistake is paying hot prices for cold data. Sort each file into the tier that fits how often it’s opened, and watch what it saves. The prices are real.
All your cloud storage in one calm window. Free, and yours.
Self-hosted · AGPL-3.0 · runs anywhere Docker does