
Self-hosting Gitea the easy way
Yulei ChenGitea is a lightweight, self-hosted Git service. It gives you repository hosting, pull requests, issue tracking, CI/CD with Gitea Actions, package registries, and more. GitHub is great, but if you want full control over your code and data - or just want to avoid per-seat pricing - self-hosting Gitea is a solid choice.
Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get Gitea running in minutes - no server setup, no reverse proxy config, no infrastructure to maintain.
Prerequisites
Before deploying, ensure you have a Sliplane account (free trial available).
Quick start
Sliplane provides one-click deployment with presets.
- Click the deploy button above
- Select a project
- Select a server (If you just signed up you get a 48-hour free trial server)
- Click Deploy!
About the preset
The one-click deploy above uses Sliplane's Gitea preset. Here's what it includes:
- Gitea 1.26.1 image (
gitea/gitea:1.26.1, current as of May 2026) - check Docker Hub for newer versions - Persistent storage mounted to
/datafor repositories, database, and configuration - Healthcheck configured on the web UI port (3000)
- Ready for HTTPS out of the box via Sliplane's automatic TLS
Next steps
Once Gitea is running, open the domain Sliplane provided (e.g. gitea-xxxx.sliplane.app).
Initial setup
On your first visit, Gitea shows an installation page. Most settings are pre-configured, but you'll want to:
- Set the Site Title to whatever you like
- Create an Administrator Account at the bottom of the page
- Click Install Gitea
After that, you're logged in and ready to create repositories.
Configuration
Gitea stores its configuration in /data/gitea/conf/app.ini inside the container. You can customize behavior through environment variables using the GITEA__section__key format. For example:
| Variable | Description |
|---|---|
GITEA__server__ROOT_URL | The public URL of your instance |
GITEA__mailer__ENABLED | Enable email notifications (true/false) |
GITEA__service__DISABLE_REGISTRATION | Disable public sign-ups after creating your admin account |
See the Gitea configuration cheat sheet for the full list of options.
SSH access
The preset runs Gitea's built-in SSH server. If you need SSH-based Git access, you can configure it through the Gitea admin panel or environment variables. For most users, HTTPS cloning works out of the box with the domain Sliplane provides.
Logging
By default, Gitea logs to STDOUT, which works well with Sliplane's built-in log viewer. You can adjust the log level by setting the GITEA__log__LEVEL variable to debug, info, warn, or error. For general Docker log tips, check out our post on how to use Docker logs.
Cost comparison
You can also self-host Gitea with other cloud providers. Here is a pricing comparison for the most common ones:
| Provider | vCPU | RAM | Disk | Monthly Cost | Note |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 (~$10.65) | Flat rate, 1 TB bandwidth, SSL included |
| Fly.io | 2 | 2 GB | 40 GB | ~$18 | Disk and bandwidth billed separately |
| Render | 1 | 2 GB | 40 GB | ~$35 | 100 GB bandwidth, Disk billed separately |
| Railway | 2 | 2 GB | 40 GB | ~$67 + $20 plan | Pro plan floor, usage-based, bandwidth billed separately |
Click here to see how these numbers were calculated.
(Assuming an always-on instance running 730 hrs/month)
- Sliplane: flat €9/month for the Base server. Unlimited services on the same server, 1 TB egress and SSL included.
- Fly.io:
shared-cpu-2x2 GB = $11.83/mo + 40 GB volume × $0.15/GB = $6 -> ~$17.83/mo. Egress billed separately ($0.02/GB in EU). - Render: closest match is Standard ($25, 1 vCPU / 2 GB) plus 40 GB disk × $0.25/GB = $10 -> ~$35/mo. Stepping up to Pro (2 vCPU / 4 GB) costs $85/mo + disk.
- Railway (Pro plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/mo compute, plus the $20/mo Pro plan floor and $0.05/GB egress.
Bandwidth costs can add up fast on usage-based providers. Use our bandwidth cost comparison tool to see what your egress would cost on each platform.
FAQ
Can Gitea replace GitHub for my team?
For most small-to-medium teams, yes. Gitea supports Git hosting, pull requests, code review, issue tracking, a package registry, and CI/CD via Gitea Actions. You won't get GitHub's massive ecosystem of integrations, but for day-to-day development workflows, Gitea covers the essentials.
How do I disable public registration?
Set the environment variable GITEA__service__DISABLE_REGISTRATION to true and redeploy. This is recommended after you've created your admin account and invited your team.
How do I update Gitea?
Change the image tag in your service settings (e.g. from gitea:1.26.1 to a newer version) and redeploy. Check Docker Hub for the latest stable release. Gitea handles database migrations automatically on startup.
What's the difference between Gitea and Forgejo?
Forgejo is a hard fork of Gitea, created in 2022 over governance concerns. Both share the same codebase roots and are very similar feature-wise. Gitea is backed by a company (Gitea Ltd.) and tends to move faster on enterprise features, while Forgejo is purely community-driven. If you're interested in Forgejo, check out our post on self-hosting Forgejo the easy way.
Can I migrate repositories from GitHub or GitLab?
Yes. Gitea has a built-in migration tool that can import repositories (including issues, pull requests, and labels) from GitHub, GitLab, Forgejo, and other platforms. You can find it under New Migration in the UI.