Skip to content

daniel-silva-perez/github-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Clone

Git repository hosting and collaboration platform with code browsing, issues, and pull requests.

Packages

Package Port Description
api 4001 Express + Git Smart HTTP + Prisma backend
web 4002 Next.js 15 frontend
desktop Electron wrapper

Features

  • Git repository CRUD and hosting (push/pull/clone)
  • Code browser with syntax highlighting
  • File tree navigation
  • Commit history and diffs
  • Issues with labels and comments
  • Pull requests with code review
  • Repository starring
  • User profiles
  • Explore public repositories

Tech Stack

  • Web: Next.js 15 + React 19 + TypeScript + Tailwind CSS + shadcn/ui
  • API: Express.js + Prisma ORM + custom Git Smart HTTP server
  • Desktop: Electron 33
  • Database: PostgreSQL 16

Quick Start

Prerequisites

  • Node.js 20+
  • pnpm 9.x
  • Docker & Docker Compose (for PostgreSQL)

1. Install Dependencies

cd github-app
pnpm install

2. Start Database

pnpm db:up

Starts PostgreSQL at localhost:5433

3. Setup Environment Variables

cp api/.env.example api/.env
cp web/.env.example web/.env

4. Setup Database

cd api && npx prisma generate && npx prisma migrate dev --name init

5. Run Apps

# Terminal 1 — API
cd api && pnpm dev

# Terminal 2 — Web
cd web && pnpm dev

# Desktop
cd desktop && pnpm dev

Environment Variables

API (.env)

Variable Default Description
DATABASE_URL postgresql://github:github_pass@localhost:5433/github_db PostgreSQL connection
JWT_SECRET JWT signing secret
PORT 4001 API server port
GIT_REPOS_PATH /tmp/git-repos Bare git repos storage

Web (.env)

Variable Default Description
NEXT_PUBLIC_API_URL http://localhost:4001 API base URL

API Endpoints

  • POST /api/auth/register — User registration
  • POST /api/auth/login — User login
  • GET /api/repos — List repositories
  • POST /api/repos — Create repository
  • GET /api/repos/:owner/:name — Get repository
  • GET /api/repos/:owner/:name/issues — List issues
  • POST /api/repos/:owner/:name/issues — Create issue
  • GET /api/repos/:owner/:name/pulls — List PRs
  • Git server: http://localhost:4001/git/:owner/:repo.git

Desktop App

Loads web frontend at http://localhost:4002 with native menus, clone dialog, and terminal integration.

License

MIT

About

GitHub-style code hosting platform with repos, issues, pull requests, code browsing, and desktop wrapper.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors