Skip to content

Open source Bitcoin-powered cloud storage with encrypted file sharing, distributed storage, and micropayment capabilities | By THE BITCOIN CORPORATION LTD

License

Notifications You must be signed in to change notification settings

bitcoin-apps-suite/bitcoin-drive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bitcoin Drive πŸš€

A decentralized file storage platform built on the BSV blockchain with Next.js, enabling users to securely upload, store, and tokenize files as NFTs.

🌟 Features

  • Blockchain Storage: Permanent file storage on BSV blockchain
  • NFT Tokenization: Convert any file into tradeable NFTs
  • Multiple Storage Methods: Choose between quick metadata storage or full on-chain storage
  • Google Authentication: Secure login with Google OAuth (HandCash coming soon)
  • Theme System: Multiple UI themes with dynamic switching
  • Responsive Design: Works seamlessly on desktop and mobile

πŸ›  Tech Stack

  • Framework: Next.js 15.5 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS v4
  • Authentication: NextAuth.js with Google OAuth
  • Database: Prisma ORM with SQLite
  • Icons: Lucide React
  • Blockchain: BSV libraries for transaction handling

πŸ“‹ Prerequisites

  • Node.js 18+
  • npm or yarn
  • Google OAuth credentials
  • HandCash Developer Account (optional)

πŸš€ Quick Start

1. Clone the repository

git clone https://github.com/bitcoin-apps-suite/bitcoin-drive.git
cd bitcoin-drive

2. Install dependencies

npm install

3. Set up environment variables

Create a .env.local file in the root directory:

# NextAuth Configuration
NEXTAUTH_URL=http://localhost:2030
NEXTAUTH_SECRET=your-secret-key-here

# Google OAuth
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret

# HandCash (Optional)
HANDCASH_APP_ID=your-handcash-app-id
HANDCASH_APP_SECRET=your-handcash-secret

4. Set up the database

npx prisma generate
npx prisma db push

5. Run the development server

npm run dev

Open http://localhost:2030 in your browser.

πŸ“‚ Project Structure

bitcoin-drive/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                 # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ api/             # API routes
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/        # NextAuth endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ handcash/    # HandCash integration
β”‚   β”‚   β”‚   └── upload/      # File upload handling
β”‚   β”‚   β”œβ”€β”€ layout.tsx       # Root layout
β”‚   β”‚   └── page.tsx         # Home page
β”‚   β”œβ”€β”€ components/          # React components
β”‚   β”‚   β”œβ”€β”€ Providers.tsx    # Context providers
β”‚   β”‚   β”œβ”€β”€ ThemeSelector.tsx # Theme system
β”‚   β”‚   └── UploadModal.tsx  # File upload UI
β”‚   └── lib/                 # Utilities
β”œβ”€β”€ prisma/
β”‚   └── schema.prisma        # Database schema
β”œβ”€β”€ public/                  # Static assets
└── package.json            # Dependencies

πŸ”§ Available Scripts

  • npm run dev - Start development server on port 2030
  • npm run build - Build for production
  • npm start - Start production server
  • npm run lint - Run ESLint
  • npm run backend - Run legacy Express server (deprecated)

🎨 Theme System

The app includes a dynamic theme system with multiple presets:

  • Cyberpunk (Purple/Pink)
  • Forest (Green)
  • Ocean (Blue)
  • Sunset (Orange/Pink)
  • Monochrome (Black/White)
  • Neon (Bright colors)
  • Custom themes can be added

πŸ” Authentication

The app supports two authentication methods:

  1. Google OAuth (Currently active)
  2. HandCash (Integration in progress)

Authentication is optional - users can browse the interface without signing in.

πŸ“€ File Upload

Files can be uploaded with different storage options:

  • Full BSV: Complete file stored on blockchain
  • Hybrid: Metadata on BSV, file on traditional storage
  • NFT Mode: Tokenize files as tradeable NFTs

🚒 Deployment

Vercel (Recommended)

vercel

The app auto-deploys to bitcoin-drive.vercel.app on push to main.

Docker

docker build -t bitcoin-drive .
docker run -p 2030:2030 bitcoin-drive

πŸ›  Development Tools

Kill Port 2030 App

A macOS utility app is included to quickly free port 2030:

open "Kill Port 2030.app"

Add it to your dock for quick access.

πŸ“„ Documentation

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the Open BSV License Version 5.

Β© 2025 The Bitcoin Corporation LTD. Registered in England and Wales β€’ Company No. 16735102

πŸ™ Acknowledgments

  • BSV Blockchain for scalable storage
  • HandCash for wallet integration
  • Next.js team for the amazing framework
  • The open-source community

πŸ“§ Contact

For questions or support, please open an issue on GitHub.



Β© 2025 The Bitcoin Corporation LTD. All rights reserved.

Built with ❀️ using Next.js and BSV# Auto-deploy test

About

Open source Bitcoin-powered cloud storage with encrypted file sharing, distributed storage, and micropayment capabilities | By THE BITCOIN CORPORATION LTD

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •