f96fdbdf51
Co-authored-by: Cursor <cursoragent@cursor.com>
76 lines
1.9 KiB
Markdown
76 lines
1.9 KiB
Markdown
# tinqs-git
|
|
|
|
**Tinqs' self-hosted Git+LFS hosting for game studios** — a fork of [Gitea](https://github.com/go-gitea/gitea) v1.26.1.
|
|
|
|
`git.tinqs.com` · Go · SQLite · S3 LFS · OAuth2 SSO with `platform.tinqs.com`
|
|
|
|
---
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
# Prerequisites: Go 1.26.2+, Node.js 22+, pnpm
|
|
git clone https://git.arikigame.com/tinqs-ltd/tinqs-git.git
|
|
cd tinqs-git
|
|
git checkout tinqs/main
|
|
|
|
# Build
|
|
TAGS="bindata sqlite sqlite_unlock_notify" make build
|
|
|
|
# Run (creates gitea.db automatically)
|
|
./tinqs-git web --port 4141
|
|
# Open http://localhost:4141
|
|
```
|
|
|
|
## Dev
|
|
|
|
```bash
|
|
make watch-backend # Go hot reload
|
|
make watch-frontend # Vite HMR
|
|
make watch # both
|
|
```
|
|
|
|
## Test
|
|
|
|
```bash
|
|
make test # everything
|
|
make test-backend # Go unit tests
|
|
make test-sqlite # SQLite integration tests
|
|
make lint # all linters
|
|
```
|
|
|
|
## Build tags
|
|
|
|
| Tag | Purpose |
|
|
|-----|---------|
|
|
| `bindata` | Embed frontend assets into binary |
|
|
| `sqlite` | Compile SQLite via CGo (required) |
|
|
| `sqlite_unlock_notify` | SQLite perf optimization |
|
|
|
|
## Repo structure
|
|
|
|
```
|
|
tinqs-git/
|
|
├── main.go ← entry point
|
|
├── Makefile ← build system
|
|
├── cmd/ ← CLI (web, migrate, admin, cert)
|
|
├── routers/ ← HTTP routes
|
|
├── modules/ ← business logic (auth, lfs, git, setting)
|
|
├── models/ ← DB models (NEVER modify)
|
|
├── services/ ← service layer
|
|
├── templates/ ← Go HTML templates
|
|
├── web_src/ ← frontend source (TS, Less, Vue)
|
|
├── public/ ← static assets
|
|
├── .gitea/workflows/ ← CI (Gitea Actions)
|
|
└── .cursor/ ← agent infrastructure
|
|
```
|
|
|
|
## Branches
|
|
|
|
- `main` — tracks upstream releases (quarterly rebase)
|
|
- `tinqs/main` — our fork with Tinqs customizations
|
|
|
|
## License
|
|
|
|
MIT — same as upstream Gitea.
|