Skip to content

Gitea

Self-hosted Git forge with exe.dev SSO

Deploy on exe.dev

Shelley handles the setup.

Prefer a terminal?
curl -fsSL https://exe.dev/deploy/gitea/prompt.txt | ssh exe.dev new --prompt=/dev/stdin

Run Gitea 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.

What you get#

  • Gitea behind exe.dev's HTTPS 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
What's running, and where
Private https://my-gitea.exe.xyz/ Gitea, for you and anyone you share the VM with
my-gitea.exe.xyz exe.dev VM
Gitea The Gitea binary, managed by systemd :3000/var/lib/gitea
nginx Translates the exe.dev headers into the names Gitea expects :8000

Deploy with Shelley#

Click Deploy and Shelley will set up Gitea on a new VM, then check that it works. No config-file wrangling required.

Prefer a terminal?
curl -fsSL \
  https://exe.dev/deploy/gitea/prompt.txt \
  | ssh exe.dev new --prompt=/dev/stdin
What Shelley is told
Set up Gitea on this VM by following the exe.dev recipe at https://exe.dev/deploy/gitea.md from top to bottom.

The recipe's example VM name is my-gitea. This VM's name is the output of `hostname`: use it wherever the recipe writes my-gitea. Skip the step that creates the VM; you are on it.

You are done when all of these are true. Check each one yourself:
- 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

Finish with the URLs I should open.

Also at /deploy/gitea/prompt.txt. The recipe it follows is /deploy/gitea.md.

Quick start#

Create a new Gitea VM from the Gitea starter.

How it works#

exe.dev's HTTPS 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 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 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 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 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.

Updated Oct 17, 2026 · Markdown · manifest.json · Something wrong? Tell us