Audited what users and operators actually see, not raw grep counts. The rendered DOM, page titles, meta and footer on git.hanzo.ai were already clean; the frontend bundle is clean on main (the live hits were a stale deployed image, v1.26.19). What survived was server-side text and locales. User-visible: - Locale values: 12 -> 0 across 11 languages. The bulk was the admin self-check telling operators to run "gitea doctor convert"; our binary is gitd, so the instruction was wrong as well as off-brand. - Credential prompt realm when OAuth2 is disabled (the branch whose job is to NOT match Git Credential Manager's "Gitea" probe). - Admin diagnosis download is hanzo-git-diagnosis-*.zip; dump artifacts are hanzo-git-dump-*.zip / hanzo-git-db.sql. - Azure AD icon gradient ids no longer carry the upstream name. Source hygiene only: svgo cleanupIds already rewrote them before shipping. Outbound identity (what third parties see): - User-Agent to OAuth providers, haveibeenpwned and remote LFS servers is now Hanzo Git. The git-lfs "git-lfs/<version>" prefix is untouched; some LFS servers parse it. Operator-visible: - CLI help, descriptions and examples name gitd, not gitea. Several were telling operators to run commands that do not exist. - Migration/startup failure text (wrong-DB-version, no-SQLite-support, collation warning, internal-API contact error). The "upgrade to Gitea 1.6.4 first" note keeps the upstream name: that release is a real point in the schema lineage and renaming it would make it a lie. - Prometheus namespace gitea_ -> hanzogit_. Verified metrics are disabled on git.hanzo.ai, so no dashboard exists to break; this is the cheapest moment to do it. - Default log file, PID file, and the container entrypoint message. - Our own X-* headers are now function-namespaced per the platform's vendor-free convention: X-Cache-Debug, X-Internal-Auth, X-LFS-Content-Length, X-Vite-Dev-Server. Every side ships in one binary, so the rename is atomic. Correctness found on the way: - LLM.md documented GITEA__<section>__<KEY>; only GIT__ is accepted and there is no fallback, so a stale GITEA__ var is silently ignored. - EnvConfigKeyPrefixGitea held "GIT__" — name now matches its value. - api_packages_container_test.go still asserted the old registry realm while the code emits ours, so that test could not pass. - README told developers to run ./gitea web; docs/build-setup.md told contributors to clone go-gitea/gitea instead of this fork. Deliberately kept, and why, recorded in LLM.md: MIT attribution, dependency import paths, addressing values whose rename silently redirects (webhook type, .gitea/ repo conventions, index and analyzer names, /data/gitea), the GCM interop realm, and three wire contracts with external consumers (X-GITEA-OTP, webhook delivery headers, mail headers) that need an owner decision rather than a blind rename. Co-authored-by: Hanzo Dev <[email protected]>
2.6 KiB
Setup and requirements
This document lists the tools you need to build Gitea from source and how to get the code. Once your environment is ready, see development.md for the build and development workflow, and testing.md for running tests.
For the contribution workflow and review process, see CONTRIBUTING.md.
Requirements
Go
Install Go and set up your Go environment. The
required version is the one declared in go.mod; installing the same
version your continuous integration uses avoids gofmt differences between Go
releases.
Note
Some
maketasks build external Go tools on demand (for examplemake watch-backend). To use them, the"$GOPATH"/bindirectory must be on your executablePATH; otherwise you have to manage those tools yourself.
Node.js and pnpm
Install Node.js to build the JavaScript and CSS
files. The minimum supported version is the one declared in
package.json (engines.node); the latest LTS is recommended.
Gitea manages frontend dependencies with pnpm. The make
targets invoke it for you, so installing pnpm manually is only needed if you want
to run pnpm commands directly.
Make
Gitea uses Make to drive builds, linting, and tests. On Windows it can be installed via MSYS2 or Chocolatey.
Python with uv (optional)
Linting the templates, workflow files, and YAML requires Python tooling that Gitea
runs through uv. After installing uv, make creates
the environment automatically (uv sync); you only need this if you run
make lint-templates, make lint-yaml, or make lint-actions locally.
Git LFS
The integration tests require Git LFS to be installed.
Getting the source code
Clone the repository:
git clone https://github.com/hanzoai/git
To contribute changes, fork the repository on GitHub and add your fork as a git remote so you can push branches and open pull requests. See GitHub's working with forks documentation for the details.
Installing dependencies
Most build and test targets install the dependencies they need on their own. To
fetch everything up front, run make deps (or the per-group make deps-frontend,
make deps-backend, make deps-tools, make deps-py).