Repohub is a lightweight Git repository manager built with Node.js/Express for the backend and React + TailwindCSS for the frontend. It allows you to:
- Create Git repositories locally.
- Browse repository files in a tree view.
- View recent commits for each repository.
- Manage repositories without using external Git hosting services.
- Repository Management: Create, list, and view repositories.
- File Explorer: Browse repository contents with a folder/file tree view.
- Commits Viewer: See the latest commits of a repository.
- Lightweight & Local: Runs entirely on your local machine or server.
- TailwindCSS UI: Clean and responsive frontend.
- Backend: Node.js, Express, Simple-Git
- Frontend: React, TypeScript, TailwindCSS
- Other: Dotenv, Axios
- Node.js v20+
- Git installed on your machine
- Clone the repository:
git clone https://github.com/yourusername/repohub.git
cd repohub- Install dependencies for backend and frontend:
# Root project
pnpm install- Create a
.envfile in the backend (apps/backend) with the following:
ROOT_DIR=./data- Start the backend server:
cd apps/backend
pnpm dev- Start the frontend:
cd apps/frontend
pnpm dev- Open your browser at http://localhost:5173
-
GET
/api/repos- List all repositories. -
POST
/api/repos- Create a new repository.{"name": "repo-name"} -
GET
/api/repos/:name- Get file tree of a repository. -
GET
/api/repos/:name/commits- Get recent commits (returns empty array if no commits).
[
{
"hash": "abcd123",
"message": "Initial commit",
"author": "John Doe",
"date": "2025-11-21T05:00:00Z"
}
]- Repo List: Left sidebar
- File Tree: Center
- Commits: Right sidebar
- Uses
@myapp/uifor FileTree component.
- Support multiple branches.
- Add commit creation directly from the UI.
- Push/pull from remote repositories.
- User authentication.
MIT License