Your cloud storage. One desktop. Runs anywhere.
Drivebase is an open-source, self-hosted platform that connects your cloud storage providers β Google Drive, S3, local filesystem, and more β under a single interface. Browse, upload, transfer, and manage files across providers without touching each service separately.
The UI is designed as a desktop OS shell running in the browser. Apps (Files, Providers, Settings) open as windows you can move, resize, and switch between β making it feel like a native file manager rather than a typical web dashboard.
Run the installer in a terminal:
curl -fsSL https://drivebase.io/install | bashThis will create a drivebase/ directory with Docker Compose and a pre-configured config.toml (secrets auto-generated). After it finishes:
cd drivebase
docker compose up -dThen open http://localhost:4000.
- Desktop shell interface β windowed apps, a taskbar, and a desktop shell; feels like a native file manager in the browser
- Unified file browser β navigate folders and files across all connected providers in one place
- Multi-provider support β Google Drive, AWS S3 (and S3-compatible services), local filesystem
- Batch operations β copy, move, transfer, and delete across providers with preflight conflict analysis
- Smart conflict resolution β detect conflicts before they happen; resolve with overwrite, skip, rename, or manual review
- Real-time progress β live operation status via server-sent events; no polling required
- Resumable uploads β chunked upload sessions survive browser reloads
- Direct S3 uploads β presigned multipart URLs let clients upload straight to S3, bypassing the server
- Storage usage β per-provider quota and usage tracking with on-demand refresh
- Pluggable provider system β clean
IStorageProviderinterface makes adding new backends straightforward - GraphQL API β every capability is exposed through a typed GraphQL API
- Google Drive
- AWS S3 / S3-compatible (Cloudflare R2, Wasabi, Backblaze B2, MinIO, etc.)
- Local Filesystem
- Dropbox
- OneDrive
- Box
- Azure Blob Storage
- SFTP
| Layer | Technology |
|---|---|
| Runtime | Bun |
| Frontend | React 19, Vite, TanStack Router, Tailwind CSS 4 |
| API | GraphQL Yoga, graphql-sse |
| Workers | BullMQ |
| Database | PostgreSQL (Drizzle ORM) |
| Cache / Queue | Redis (ioredis) |
| Auth | Better Auth (cookie-based) |
- Bun 1.3.5 or later
- PostgreSQL 15+
- Redis 7+
git clone https://github.com/drivebase/drivebase.git
cd drivebase
bun installCopy the example config and fill in your values:
cp packages/config/config.example.toml config.tomlMinimum required values:
[server]
env = "prod"
port = 4000
host = "0.0.0.0"
[db]
url = "postgres://user:password@localhost:5432/drivebase"
[redis]
url = "redis://localhost:6379/0"
[crypto]
# Generate: openssl rand -base64 32
masterKeyBase64 = "<base64-encoded-32-byte-key>"
[auth]
# Generate: openssl rand -hex 32
betterAuthSecret = "<random-secret>"
baseUrl = "http://localhost:4000"
trustedOrigins = ["http://localhost:3000"]bun run db:migratebun run dev- API:
http://localhost:4000 - Web UI:
http://localhost:3000
Contributions are welcome. Please open an issue before starting significant work so we can align on direction.
- Fork the repository
- Create a feature branch
- Make your changes β run
bun run typecheckandbun testbefore pushing - Open a pull request