Kick off a software project quickly.

Logo Gitea

Gitea

Your own GitHub, self-hosted on a single VPS — repositories, pull requests, CI/CD and a package registry, with no per-seat billing.

2 GB RAM 1 vCPU (2 vCPU with Actions runners) Port 3000 Available

Tech stack

DockerGoPostgreSQL 16
Minimum RAM2 GB
Minimum CPU1 vCPU (2 vCPU with Actions runners)
Default port3000
Compatible OSubuntu-24.04

Gitea is a lightweight, self-hosted Git service written in Go and released under the MIT licence. It gives you the whole GitHub workflow — repositories, branches, issues, pull requests, code review, wiki, releases — on infrastructure you control, from a single binary that starts in seconds and idles on a few hundred megabytes of RAM.

On a ServOrbit VPS, Gitea runs as two containers: `gitea/gitea` for the application and `postgres:16-alpine` for the database. The web UI is served on port 3000 behind the nginx vhost with HTTPS, and Git over SSH listens on port 2222 so `git clone` and `git push` work with your usual public key. Repository data and the PostgreSQL database each live in a named Docker volume, so a full backup is a volume snapshot.

Beyond hosting code, Gitea bundles two things that usually cost extra elsewhere. Gitea Actions is a CI/CD engine that reads the same workflow YAML as GitHub Actions — existing `.github/workflows` files run almost unchanged on a runner you install yourself. And the built-in package registry speaks npm, Docker/OCI, Maven, NuGet, PyPI, Composer, Cargo and Helm from the same instance that hosts your code. Organisations, teams and protected branches let you reproduce a whole company's Git setup without a monthly per-developer subscription.

Key features

Complete Git platform: repositories, branches, tags, issues, pull requests, code review, wiki and releases — the workflow your team already knows.
Gitea Actions: CI/CD built in, compatible with the GitHub Actions workflow syntax — reuse your existing `.github/workflows` files on a runner you host.
Built-in package registry: npm, Docker/OCI, Maven, NuGet, PyPI, Composer, Cargo and Helm, served from the same instance as your code.
Organisations, teams and fine-grained permissions: per-repository access rules, protected branches, required reviews and code owners.
Git over HTTPS and SSH: clone and push through the nginx vhost, or straight over SSH on port 2222 with per-user public keys.
Repository mirroring: pull mirrors keep an upstream GitHub or GitLab repository in sync; push mirrors publish yours outward automatically.
Authentication that fits your stack: local accounts, LDAP, SMTP, OAuth2 (GitHub, GitLab, Google, generic OIDC) — and Gitea can itself act as an OAuth2 provider for your other apps.
Written in Go, MIT-licensed: one binary, no runtime to maintain, and a few hundred megabytes of RAM for a team-sized instance.

When to use this solution?

1

Private company Git server

Host every internal repository on your own VPS instead of a SaaS account billed per developer. Client projects, proprietary code and unreleased work stay inside infrastructure you own, in a jurisdiction you choose. Onboarding a new developer is creating an account, not adding a paid seat — the cost of the instance does not change when the team grows.

2

CI/CD without a per-minute bill

Gitea Actions reads the same workflow syntax as GitHub Actions, so your existing `.github/workflows` files run with little or no change. Install a runner on the same VPS or on a dedicated build machine and every push, tag and pull request triggers your pipeline — with no build-minute quota and no queue shared with other customers.

3

Internal package and container registry

Publish private npm packages, Docker images, Maven artifacts or PyPI wheels straight to the instance that already hosts your code: `docker push git.example.com/team/api:1.4`. One set of credentials, one backup, one URL for source and artifacts — instead of a separate registry service per ecosystem.

Deploy Gitea on your VPS

Guide optimized for ServOrbit Cloud VPS.

01

Order a ServOrbit VPS

2 GB of RAM is a comfortable starting point for a small team: Gitea itself idles on a few hundred megabytes and PostgreSQL takes the rest. Plan more headroom if you intend to run Gitea Actions runners on the same machine, since builds are the heaviest part of the workload.

02

Point a domain at the VPS

Gitea needs a domain name: clone URLs, webhooks, OAuth callbacks and the package registry all embed the public address of the instance. Create an A record such as git.example.com pointing to your VPS IP — TLS is issued and renewed automatically once the app is deployed.

03

One-click deploy from the marketplace

Open your ServOrbit dashboard → Marketplace → Development → Gitea → Deploy. Docker pulls gitea/gitea and postgres:16-alpine, generates the database credentials, and the web UI answers on port 3000 behind the HTTPS vhost within a minute.

04

Create the admin account and your first repository

Open your domain in a browser: the first account registered becomes the site administrator. From Site Administration you can then close public registration, wire up LDAP or OAuth2, and set the default branch protection rules before inviting your team. Create a repository and push to it: git remote add origin [email protected]:2222/team/api.git.

05

Add a runner for Gitea Actions

CI is off until a runner is registered. Generate a token in Site Administration → Actions → Runners, then start gitea/act_runner on the VPS or on a separate build host pointing at your instance URL. Push a workflow file to .github/workflows/ci.yml and the job appears in the Actions tab on the next commit.

Frequently asked questions

For the day-to-day workflow, yes: repositories, branches, issues, pull requests with review and approvals, wiki, releases, protected branches, webhooks, CI/CD through Gitea Actions and a package registry are all built in. What you give up is the GitHub ecosystem around the product — the public marketplace of third-party Actions, Copilot, Dependabot and the network effect of public open-source. For private company code, that ecosystem is rarely what you were paying for.

Kick off a software project quickly.

Activate Gitea on your infrastructure.

Dedicated Cloud VPS — IPv4 included, European datacenter, support included. Your data never leaves your server.

Recommended configuration: 2 GB RAM · 1 vCPU (2 vCPU with Actions runners)

Need help?

Browse our help center and FAQ, or write to our team — support in French, English and Arabic.