ozan e4adcb0757
Build tstudio CLI / build (push) Waiting to run
Build & Deploy Platform / build (push) Waiting to run
feat: server auto-creates Cursor PAT on tstudio OAuth2 login
Server-side internal flow — no public API change:
- On OAuth2 authorization_code exchange for tstudio-cli app, server
  creates a "cursor" PAT with all scopes via direct DB access
- PAT returned as cursor_token field in the token response
- CLI reads it and displays Cursor/DeepSeek setup instructions
- Only created on first login (skipped if "cursor" PAT already exists)
- Token shown once — user must save it

Keeps reqBasicOrRevProxyAuth on public /users/{username}/tokens endpoint.
No token escalation risk — PAT creation is server-internal only.

Also: Bearer auth fix for OAuth2 JWT tokens in CLI API client.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-22 12:09:33 +01:00
2026-04-01 11:26:52 +08:00
2026-04-08 01:17:05 +08:00
2026-03-30 13:47:41 +00:00
2024-07-23 12:07:41 +00:00
2025-06-16 12:03:51 +00:00
2025-09-04 01:17:14 +00:00
2026-04-24 12:40:36 -07:00
2023-01-24 18:52:38 +00:00
2026-04-05 18:25:27 +00:00
2016-11-08 08:42:05 +01:00
2026-03-22 08:18:42 -07:00
2026-01-16 11:00:16 +00:00
2026-02-22 19:56:45 +00:00

tinqs-git

Tinqs' self-hosted Git+LFS hosting for game studios — a fork of Gitea v1.26.1.

git.tinqs.com · Go · SQLite · S3 LFS · OAuth2 SSO with platform.tinqs.com


Quick start

# 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

make watch-backend      # Go hot reload
make watch-frontend     # Vite HMR
make watch              # both

Test

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

Deployment

Runs on the Lightsail server (gitea-tinqs-v2, IP 46.51.144.31) as a systemd service on port :3000 behind tinqs-proxy.

# Build
TAGS="bindata sqlite sqlite_unlock_notify" make build

# Deploy to Lightsail
ssh -i ~/.ssh/LightsailDefaultKey-eu-west-1.pem ubuntu@46.51.144.31
sudo systemctl stop gitea
scp tinqs-git ubuntu@46.51.144.31:/usr/local/bin/gitea
sudo systemctl start gitea
sudo systemctl status gitea

DNS: git.arikigame.com46.51.144.31. Full infra docs: docs/ai/devops.md.

License

MIT — same as upstream Gitea.

S
Description
Tinqs Studio platform (Gitea fork)
Readme MIT 980 MiB
Languages
Go 77.1%
TypeScript 8.9%
Handlebars 6.7%
JavaScript 2.6%
CSS 1.8%
Other 2.7%