---
title: "Gitea"
description: "Gitea is a lightweight Git forge that is easy to run and simple to administer."
url: https://exe.dev/deploy/gitea
category: "Developer tools"
updated: 2026-10-17
---

# Gitea

Self-hosted Git forge with exe.dev SSO

- **Software:** Gitea (https://about.gitea.com)
- **Source:** https://github.com/go-gitea/gitea
- **License:** MIT
- **Example VM name:** `my-gitea` (yours will differ; on the VM, `hostname` prints it)
- **Machine-readable:** https://exe.dev/deploy/gitea/manifest.json

## What you get

- Gitea behind exe.dev's [HTTPS proxy](/docs/proxy), on port 8000
- nginx translating `X-ExeDev-UserID` and `X-ExeDev-Email` into `X-WEBAUTH-USER` and `X-WEBAUTH-EMAIL`
- Auto-registration, so any exe.dev user you share the VM with gets a Gitea account the first time they visit

Running on the VM:

- **Gitea**: The Gitea binary, managed by systemd, port 3000, data in `/var/lib/gitea`
- **nginx**: Translates the exe.dev headers into the names Gitea expects, port 8000

How it is reached:

- https://my-gitea.exe.xyz/ (private): Gitea, for you and anyone you [share](/docs/sharing) the VM with

## Deploy with Shelley

Open https://exe.dev/new?idea=gitea to create a VM whose agent, Shelley, follows this recipe. From a terminal:

```sh
curl -fsSL https://exe.dev/deploy/gitea/prompt.txt | ssh exe.dev new --prompt=/dev/stdin
```

Or follow the steps below by hand.

Run [Gitea](https://about.gitea.com/) on an exe.dev VM.

Gitea is a lightweight Git forge that is easy to run and simple to administer. It works well for private repos, small teams, and GitHub mirrors.

## Quick start

Create a new Gitea VM from the [Gitea starter](https://exe.dev/new?idea=gitea).

## How it works

exe.dev's [HTTPS proxy](/docs/proxy) handles TLS and forwards requests to port 8000 on your VM.

For authenticated users, exe.dev adds the `X-ExeDev-UserID` and `X-ExeDev-Email` headers. See [Login with exe.dev](/docs/login-with-exe) for details.

Gitea can use reverse proxy authentication with `X-WEBAUTH-USER` and `X-WEBAUTH-EMAIL`. nginx translates the exe.dev headers into the names Gitea expects.

With auto-registration enabled, any exe.dev user you [share](/docs/sharing) the VM with gets a Gitea account the first time they visit.

## Mirroring from GitHub

Gitea can mirror repositories from GitHub.

In the Gitea UI, choose **New Migration**, then **GitHub**. Enter the repository URL and a [personal access token](https://github.com/settings/tokens) with read access. Gitea will clone the repo and keep it in sync.

For private repos, use a fine-grained GitHub PAT with read-only **Contents** permission for the repos you want to mirror.

## Gitea vs Forgejo

Gitea and [Forgejo](/deploy/forgejo) are very similar on exe.dev.

Forgejo is a community fork of Gitea. Both use the same config format, the same reverse proxy auth flow, and the same basic setup. Pick the project you prefer.

## Related

- [Forgejo](https://exe.dev/deploy/forgejo.md): Self-hosted Git forge with exe.dev SSO
- [VS Code in your browser, with code-server](https://exe.dev/deploy/code-server.md): Your editor in a tab. Your projects right where you left them.
- [Dev, Test, Prod: Choose One, Two, or Three](https://exe.dev/deploy/dev-test-prod.md): You can build, test, and deploy on exe.dev.
- [Running a self-hosted GitHub Actions Runner](https://exe.dev/deploy/github-actions-runner.md): Log in easily into your CI environment
- [Spinning up a Marimo Notebook](https://exe.dev/deploy/marimo.md): An open source reactive notebook
- [Self-host n8n](https://exe.dev/deploy/n8n.md): Connect your apps. Let the boring bits run themselves.
