
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) - 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 expose it via a Sliplane SSH tunnel. Our Back Up and Restore PostgreSQL via SSH Tunnel tutorial walks through a similar setup. 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.