Self-hosted unified dashboard that aggregates multiple Google Drive accounts into a single storage pool. Every upload automatically routes to the account with the most available space — no manual management, no paid tier.
Runs entirely on your local machine. Your files stay in your own Google Drive accounts.
Google gives every account 15 GB free. DrivePool lets you combine as many accounts as you want into one unified interface — effectively giving you N × 15 GB of free cloud storage. Add more accounts at any time without changing any configuration.
- Unified storage pool — one dashboard for all your Drive accounts
- Smart upload routing — Least-Used-Space strategy picks the best account on every upload
- Folder navigation — full hierarchy, breadcrumbs, grid & list views, search, filters
- Drag-to-folder — drag a file and drop it into any folder from a slide-in panel
- Shared with me — browse and download files others have shared with your accounts
- Trash management — delete goes to Drive trash; restore or permanently delete anytime
- Analytics — storage by account, file type charts, weekly upload activity
- Profile — display name, bio, avatar stored in your own Drive
- Secure — bcrypt-hashed PIN, httponly JWT cookie, OAuth tokens encrypted at rest (Fernet)
- No .env needed — secrets are stored directly in the local SQLite database
- Dark / light theme
- 100% open source, $0 cost
Prerequisites: Python 3.10+, Node.js 18+, at least one Google account
git clone https://github.com/saimon4u/Drive-Pool.git
cd DrivePoolYou only need one Google Cloud project and one credentials file — no matter how many Drive accounts you add.
- Go to Google Cloud Console → create a new project
- Enable Google Drive API
- Create an OAuth consent screen → choose External, fill in any app name, and add all Google accounts you want to connect as test users
- Create credentials → OAuth client ID → Web application → add
http://localhost:8000/api/auth/callbackas an authorized redirect URI → download JSON - Save as
config/credentials.json
pip install -r backend/requirements.txt
python backend/scripts/generate_secrets.pyEnter a PIN when prompted — your PIN hash, JWT secret, and encryption key are written directly to backend/drivepool.db. No .env file needed.
# Terminal 1 — backend
uvicorn backend.main:app --reload
# Terminal 2 — frontend
cd frontend && npm install && npm run devOpen http://localhost:3000, log in with your PIN, navigate to Settings, and click Connect another account to authorize each Google account via OAuth.
That's it — start uploading at http://localhost:3000/dashboard.
Go to Settings and click Connect another account — no file changes, no restart needed. Make sure the new Google account is added as a test user on the OAuth consent screen first. Each free Google account adds 15 GB to your pool.
| Layer | Tech |
|---|---|
| Backend | Python · FastAPI · SQLite · Google Drive API v3 |
| Frontend | Next.js (App Router) · Tailwind CSS |
See http://localhost:3000/docs once the app is running, or read frontend/app/docs/page.tsx directly.
MIT