A simple web UI for sharing Git repository folders with non-technical users. Think Dropbox or Google Drive, but powered by Git.
git-folder bridges the gap between developers using Git and creative professionals who need a simple, familiar interface for file management. Artists, designers, and other creatives can upload, download, and manage files without ever knowing they're using Git.
- 🎨 Simple drag-and-drop interface - Upload files just like Dropbox
- 📁 Folder-based sharing - Share specific folders from your Git repos
- 🔒 OAuth authentication - Login with GitHub, Google, or Discord
- 📦 Large file support - Automatic Git LFS handling for files up to 1GB
- 🔗 Public share links - Share folders with anyone, no login required
- 📝 Version history - Access previous versions of any file
- 🌓 Dark mode default - Easy on the eyes with light mode option
- 📱 Mobile responsive - Works on everything from phones to desktops
Perfect for indie developers and small teams who need to share assets with creative collaborators:
- Game developers sharing art assets with artists
- Web developers collaborating with designers
- Any project where non-technical users need file access
# Clone the repository
git clone https://github.com/yourusername/git-folder.git
cd git-folder
# Copy environment variables
cp .env.example backend/.env
# Edit backend/.env and set AUTH_MODE=dev for local development
# Start with Docker Compose
docker compose up --buildVisit http://localhost:8080/api/health to verify the backend is running.
Phase 2 - Authentication & Database ✅ Complete
- User authentication (GitHub, Google, Discord OAuth)
- SSH key management with secure encryption
- User profiles and preferences
- SQLite database with migrations
Phase 3 - Git Integration ✅ Complete
- Git repository operations (create, clone, delete)
- File upload/download with Git LFS support (up to 1GB)
- Branch management (create, switch, merge, delete)
- Chunked uploads with progress tracking and resume
- Version history and file operations API
- Comprehensive test coverage
- Docker Desktop (Windows 11, macOS, or Linux)
- Git with LFS support
- Install Docker Desktop for Windows
- Enable WSL2 backend
- Clone this repository
- Follow the setup guide in
/docs/dev-env.md
git-folder/
├── backend/ # Express.js API server
├── frontend/ # React UI (coming soon)
├── docker/ # Docker configuration
├── docs/ # Documentation
├── planning/ # Project specifications
└── scripts/ # Installation scripts (coming soon)
Key environment variables:
AUTH_MODE- Set todevfor no authentication during developmentDATABASE_TYPE- Usesqlite(default) ornocodbCOMMIT_MESSAGE_DIALOG- Show commit message dialog on uploadMAX_FILE_SIZE- Maximum file size in MB (default: 1024)
See .env.example for all configuration options.
- Backend: Node.js, Express, TypeScript, Objection.js
- Frontend: React, TypeScript, Vite (coming in Phase 4)
- Database: SQLite with Knex migrations
- Authentication: Passport.js with OAuth 2.0 (GitHub, Google, Discord)
- Session Management: express-session with SQLite store
- SSH Key Management: node-forge with AES-256-GCM encryption
- File Storage: Git + Git LFS
- Email: Mailgun
- Deployment: Docker + Docker Compose
See the detailed roadmap for development phases and progress.
This project is currently in early development. Contributions will be welcome once the core functionality is complete.
MIT License - see LICENSE file for details
- Built for creative professionals who deserve better than command-line Git
- Inspired by the simplicity of Dropbox and Google Drive
- Powered by the reliability of Git
- Vibe coding using Claude Code
Note: This project is under active development. Features and documentation will be updated as development progresses.