Links checked 2026-10-14
Self-hosting Gitea
The self-hosted route instead of GitHub, GitLab.
One container and a database gets you running, but the SSH configuration, the backup of the data directory and the database upgrade path are the parts that need a plan.
What it is
A self-hosted Git service: repositories over HTTPS and SSH, issues, pull requests, code review, package registries and a web interface, all in a single Go binary. The project's installation documentation covers containers, packages and building from source.
What you actually need
This is the reader's own hardware and configuration, not a price. We describe what a job needs; we do not put a figure on what self-hosting costs, because that depends on the provider, the term and the disk you choose.
- The server
- A VPS with room for the repositories. Git data only grows, and a mirror of a large repository is not something you can compress away.
- How it installs
- The published container images, a package, or the binary. The documentation notes that the rootless and rootful images are not interchangeable, so pick one and stay with it.
- Data store
- SQLite for a small instance; PostgreSQL or MySQL for busier ones, with compose examples for both in the documentation.
- What grows
- The data directory holds the repositories, attachments and configuration. It grows with every commit and it is what you back up.
Before it is safe to expose
- SSH exposed and firewall rules to match, plus the keys your team uses
- A reverse proxy and TLS for the web interface
- A backup of the data directory and the database, and a plan for the database version you are on
The trade-offs, specifically for Gitea
- Git repositories are large and never shrink. Disk planning is the part that catches people out, not CPU.
- The documentation pins example image versions deliberately and warns that PostgreSQL does not upgrade its own data directory, so a careless version bump can leave you needing a dump and restore.
- SSH access means port and firewall configuration that a hosted forge hides completely.
- You become the person the team depends on for pushing code. When it is unavailable, work stops, and there is no status page to point at.
And the six things you own from now on
These are true of every tool in this section, including Gitea. They are also the reason to decide against self-hosting, which is a legitimate decision.
- You own the updates. Security releases have to be applied by you, on your schedule, and a project that stops publishing releases becomes your problem to notice.
- You own the backups, and a backup is not a backup until you have restored from it once.
- You own the uptime. There is no status page to watch and no support line to call when it stops answering.
- You own the security patches, the TLS certificate, the reverse proxy and the firewall in front of it.
- You are the on-call rota. The failure mode nobody plans for is being the only person who knows how the thing was set up.
- The hardware has a running cost and a lifetime. Disks fail, and the replacement is on you.
What you give up
- The hosted platform's managed runners, integrations and support
- Some social and ecosystem features that only exist on the large forges
What you gain
- Source code stays on infrastructure you control
- No per-seat billing for private repositories
Elsewhere in the index
The box it runs on
A VPS with room for the repositories. Git data only grows, and a mirror of a large repository is not something you can compress away. That machine is the purchase this page is really about, and it is the one number we will not invent for you: the right size depends on the provider, the term and the disk, so check it on the provider's own page.
Hostinger
Hostinger's VPS product is the closest fit to a self-hosted application: its own page advertises root access, Docker and NVMe storage, with data centres in several regions.
See Hostinger's plansRead Hostinger's published pricing ↗DigitalOcean
Virtual machines billed as you use them, with separate volumes, snapshots and object storage for the parts you want to keep outside the server.
See DigitalOcean's plansRead DigitalOcean's published pricing ↗Hetzner
Cloud instances and dedicated servers with rates published per instance size, so the cost of a bigger box is visible before you move.
See Hetzner's plansRead Hetzner's published pricing ↗What to check before you buy
- A virtual machine you have root on, not a website plan with a control panel bolted on top.
- Snapshots or automated backups, and where those backups are stored.
- Block storage or object storage for the data that will outgrow the server's own disk.
- What the monthly rate renews at, rather than the first-term rate on the signup page.
- Where the data centre is, if the data has a jurisdiction attached to it.
The “See plans” links go through our own /go/ redirect and some are affiliate links, which pay us if you sign up. The descriptions and trade-offs on this page are written from the project's own documentation and are unaffected. The plain pricing link under each provider is not an affiliate link. See our disclosure.
Frequently asked questions about self-hosting Gitea
Answers restate the notes on this page or point at the project's own documentation. Self-hosting moves work to you rather than removing it, and these answers say so.
What is Gitea?
A self-hosted Git service: repositories over HTTPS and SSH, issues, pull requests, code review, package registries and a web interface, all in a single Go binary. We cover it as a replacement for GitHub, GitLab.
What do you need to run Gitea yourself?
The published container images, a package, or the binary. The documentation notes that the rootless and rootful images are not interchangeable, so pick one and stay with it. The requirements table on this page lists the server, the data store, what grows and what else to arrange first. Setup steps are at Gitea's Docker installation guide.
How hard is Gitea to run yourself?
We rate it Moderate. One container and a database gets you running, but the SSH configuration, the backup of the data directory and the database upgrade path are the parts that need a plan.
What are the trade-offs of self-hosting Gitea?
Our notes list these costs. Git repositories are large and never shrink. Disk planning is the part that catches people out, not CPU. The documentation pins example image versions deliberately and warns that PostgreSQL does not upgrade its own data directory, so a careless version bump can leave you needing a dump and restore.
What do you give up by running Gitea yourself?
You take on what GitHub, GitLab used to do for you. The hosted platform's managed runners, integrations and support. Some social and ecosystem features that only exist on the large forges. Self-hosting moves that work to you rather than removing it.
What do you gain by running Gitea yourself?
Our notes list these. Source code stays on infrastructure you control. No per-seat billing for private repositories.