DriveCellar

Self-hosted file browser for storage you already own. Point it at local folders or S3-compatible buckets, with no new blob store.

Play

About

DriveCellar is a self-hosted file browser for storage you already own. Point it at local folders or S3-compatible buckets. No new blob store. You get a web UI to browse, search, tag, share with links, and manage team access. It is lighter than a full cloud suite and nicer than SSH or the raw S3 console.

Features

  • Storage: Local paths; S3-compatible (AWS, MinIO, R2, and others); multiple connections per workspace
  • Files: Browse, upload and download, folders, rename, delete
  • Search & organization: Indexed search; tags with optional colors/icons
  • Sharing: Public links with optional expiry and password protection
  • Auth & teams: Email and password authentication; workspaces; roles (owner, admin, member); connection defaults and per-user overrides
  • Indexing: Auto index on new connection; manual re-index; optional schedule; run history

Why I built it

I wanted a simpler alternative to full cloud storage suites for storage that already exists. The project focuses on making self-hosted storage easier to browse, share, and control without taking ownership of the underlying files.

Engineering focus

DriveCellar follows one constraint: the app organizes and exposes files without becoming the storage provider. That pushes the architecture toward connection management, indexing, permissions, and metadata rather than a custom blob store.

Tech stack

  • TanStack Start
  • React 19
  • TanStack Router
  • TypeScript
  • tRPC
  • SQLite (better-sqlite3)
  • Drizzle ORM
  • Better Auth
  • Tailwind CSS v4
  • Zod

What this shows

This project shows full-stack product architecture: authentication, roles, storage integration, database modeling, background indexing, and a UI for a real operational workflow.

Deployment

Deploy with Docker to any container-hosting platform:

  • Railway, Render, Koyeb, Google Cloud Run
  • Use the published image: ghcr.io/bimsina/drivecellar:latest
  • Or build from source with pnpm install && pnpm setup:env && docker compose up --build