https://github.com/two-tech-dev/endgit-core
https://github.com/two-tech-dev/endgit-core
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/two-tech-dev/endgit-core
- Owner: two-tech-dev
- License: agpl-3.0
- Created: 2026-04-28T14:36:25.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-08T16:09:26.000Z (about 2 months ago)
- Last Synced: 2026-05-08T17:23:29.768Z (about 2 months ago)
- Language: TypeScript
- Size: 320 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# EndGit Core
**CI/CD + Plugin Marketplace API for Endstone**
EndGit Core is the backend API server that powers the EndGit ecosystem — a CI/CD pipeline and plugin marketplace designed specifically for [Endstone](https://github.com/EndstoneMC/endstone) Bedrock Dedicated Server plugins.
## Features
- 🔐 **GitHub OAuth** — Authenticate with GitHub, auto-link repositories
- 📦 **Plugin Management** — Full CRUD for plugins, versions, and metadata
- 🔄 **GitHub Webhooks** — Auto-trigger builds on `git push`
- 📤 **Artifact Storage** — Local filesystem or S3-compatible (AWS, MinIO, R2)
- ⭐ **Ratings & Reviews** — Community feedback system
- 🛡️ **Moderation** — Admin tools for plugin quality control
- 🔑 **JWT Auth** — Secure API with role-based access
## Quick Start
### Prerequisites
- Node.js >= 20
- Docker (for PostgreSQL + Redis)
- pnpm
### Setup
```bash
# Clone
git clone https://github.com/two-tech-dev/endgit-core.git
cd endgit-core
# Start databases
docker-compose up -d
# Install dependencies
pnpm install
# Setup environment
cp .env.example .env
# Edit .env with your GitHub App credentials
# Generate Prisma client & push schema
pnpm db:generate
pnpm db:push
# Start development server
pnpm dev
```
The API will be available at `http://localhost:4000`.
### API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| `GET` | `/api/v1/health` | Health check |
| `POST` | `/api/v1/auth/login` | Login with GitHub token |
| `GET` | `/api/v1/plugins` | List plugins |
| `GET` | `/api/v1/plugins/:slug` | Plugin details |
| `GET` | `/api/v1/builds/:id` | Build details |
| `POST` | `/api/v1/github/repos/:id/enable` | Enable CI for a repo |
| `POST` | `/api/v1/webhooks/github` | GitHub webhook receiver |
| `GET` | `/api/v1/download/file/:key` | Download artifact |
## Architecture
```
endgit-core/
├── src/
│ ├── index.ts # Express app entry
│ ├── routes/ # API route handlers
│ └── middleware/ # Auth, rate limiting
├── packages/
│ ├── database/ # Prisma schema & client
│ ├── storage/ # S3 / Local storage providers
│ └── types/ # Shared TypeScript types
└── docker-compose.yml # PostgreSQL + Redis
```
## Related Repositories
| Repository | Description |
|------------|-------------|
| [endgit-web](https://github.com/two-tech-dev/endgit-web) | Next.js web dashboard |
| [endgit-worker](https://github.com/two-tech-dev/endgit-worker) | Build worker (Docker sandboxing) |
| [endgit-cli](https://github.com/two-tech-dev/endgit-cli) | CLI tool for developers |
## License
This project is licensed under the [GNU Affero General Public License v3.0](LICENSE).