Self-hosting Gitea the easy way

Self-hosting Gitea the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
4 min

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

SliplaneDeploy Gitea >
  1. Click the deploy button above
  2. Select a project
  3. Select a server (If you just signed up you get a 48-hour free trial server)
  4. 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 /data for 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:

  1. Set the Site Title to whatever you like
  2. Create an Administrator Account at the bottom of the page
  3. 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:

VariableDescription
GITEA__server__ROOT_URLThe public URL of your instance
GITEA__mailer__ENABLEDEnable email notifications (true/false)
GITEA__service__DISABLE_REGISTRATIONDisable 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:

ProvidervCPURAMDiskMonthly CostNote
Sliplane22 GB40 GB€9 (~$10.65)Flat rate, 1 TB bandwidth, SSL included
Fly.io22 GB40 GB~$18Disk and bandwidth billed separately
Render12 GB40 GB~$35100 GB bandwidth, Disk billed separately
Railway22 GB40 GB~$67 + $20 planPro 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-2x 2 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.

Self-host Gitea now - It's easy!

Sliplane gives you everything you need to run your own Git service without server hassle.