Getting Started

Set up BucketDrive in your local environment and connect your first S3 provider.

Prerequisites

  • Node.js 22+ (we recommend using Volta)
  • pnpm 10+ (npm install -g pnpm)
  • An S3-compatible storage provider (Storj, AWS, Backblaze, MinIO, etc.)

Installation

# Clone the monorepo
git clone https://github.com/DecOperations/BucketDrive.WTF.git
cd BucketDrive.WTF

# Install all dependencies
pnpm install

Environment Setup

Copy the example environment file and fill in your credentials:

cp .env.example .env

Required variables:

VariableDescription
STORJ_S3_ENDPOINTYour S3 endpoint URL
STORJ_S3_ACCESS_KEYS3 access key
STORJ_S3_SECRET_KEYS3 secret key
STORJ_S3_BUCKETDefault bucket name

Running the Dashboard

# Start the main application (Next.js 15 with Turbopack)
pnpm dev

This starts the dashboard at http://localhost:3000. The dashboard includes:

  • File Browser — Tree view, column view, drag-and-drop uploads
  • Built-in Editor — Syntax highlighting for 20+ languages
  • Bucket Sites — Static site hosting from your bucket
  • AI Chat — Chat with your files using Claude

Running the Landing Site

# Start the landing site + docs
pnpm --filter landing dev

Runs at http://localhost:3100.

Project Structure

BucketDrive.WTF/
├── apps/
│   ├── dashboard/          # Main Next.js app
│   ├── landing/            # Landing site + docs
│   └── playground/         # SDK demo
├── packages/
│   ├── s3worm/             # S3 file system SDK
│   ├── bucket-sync/        # Offline sync engine
│   ├── smol-agent/         # AI agent framework
│   ├── bucketdrive-types/  # Shared types
│   ├── bucketdrive-ui-kit/ # React components
│   └── bucketdrive-api-client/
├── docs/                   # Feature documentation
└── pnpm-workspace.yaml

Using the SDK

You can also use BucketDrive packages independently:

# S3Worm — S3 as a TypeScript file system
npm install s3worm

# UI Kit — React components
npm install @decoperations/bucketdrive-ui-kit

# API Client — TypeScript API client
npm install @decoperations/bucketdrive-api-client

Next Steps