Host Gitea on VeloxaHost
Gitea is a self-hosted Git service written in Go, with repositories, issues, pull requests, wikis, package registries and Gitea Actions for CI. Teams and individual developers run it as a light, single-binary alternative to GitHub or GitLab on their own server.
The one-click install puts the Gitea binary in /usr/local/bin/gitea on Ubuntu 24.04, creates a git user with data in /var/lib/gitea and configuration in /etc/gitea, and starts the gitea systemd service. Open port 3000 to finish setup in the web installer.
Install it yourself
- Install Git and create the
gitsystem user.apt install -y git adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git - Download the binary. Check
https://dl.gitea.com/gitea/for the current version; Gitea dropped the old1.prefix, so releases are numbered like28.1.0.VERSION=28.1.0 wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/$VERSION/gitea-$VERSION-linux-amd64 && chmod +x /usr/local/bin/gitea - Create the data and configuration directories.
mkdir -p /var/lib/gitea/{custom,data,log} /etc/gitea chown -R git:git /var/lib/gitea && chmod -R 750 /var/lib/gitea chown root:git /etc/gitea && chmod 770 /etc/gitea - Install the official systemd unit and start Gitea.
wget -O /etc/systemd/system/gitea.service https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/service/systemd/gitea.service systemctl daemon-reload && systemctl enable --now gitea - Open
http://<server>:3000and complete the web installer: database (SQLite is fine for a small team), server domain, base URL and an administrator account. - Make the configuration read-only once the installer has written it.
chmod 750 /etc/gitea && chmod 640 /etc/gitea/app.ini - For HTTPS, point a domain at an address where ports 80 and 443 reach the server (a dedicated IPv4 address, a paid add-on with limited availability; IPv6 is not available in US East yet) and proxy with Caddy, then set the base URL in
app.inito thehttps://address.apt install -y caddy printf 'git.example.com {\n reverse_proxy 127.0.0.1:3000\n}\n' > /etc/caddy/Caddyfile && systemctl reload caddy
FAQ
What license is Gitea under?
Gitea is released under the MIT license. The project also offers a commercial Gitea Enterprise edition, but the free, MIT-licensed binary has the full Git hosting feature set described here.
Which database should Gitea use?
The web installer offers SQLite, PostgreSQL, MySQL, MariaDB and Microsoft SQL Server. SQLite needs no separate server and suits a small team; the one-click install does not set up a database server, so SQLite is the quick choice there. Larger installs usually move to PostgreSQL.
How do I upgrade Gitea?
Stop the service, back up with sudo -u git gitea dump -c /etc/gitea/app.ini, replace /usr/local/bin/gitea with the new binary, and start the service again. Gitea migrates its database on start. A VeloxaHost snapshot taken before the upgrade gives you a one-step rollback.
Can people push over SSH?
Yes. Gitea uses the system's SSH server and the git user by default. On VeloxaHost's shared IPv4 address, one port of the server's port block is forwarded to port 22 by default, so set SSH_PORT in the [server] section of app.ini to that public port and clone URLs will match.
How do I protect the repositories against loss?
Turn on scheduled backups for the server in the VeloxaHost console: every 6 or 12 hours, daily or weekly, keeping the last 1 to 10. A backup can be restored to a new server. Hourly to weekly snapshots are also available for quick rollbacks.
Which VeloxaHost size fits Gitea?
The recommended 1 vCPU and 2 GB of RAM is a Veloxa 1: 1 vCPU, 2 GB RAM and 50 GB of disk for $10 a month, billed at $0.02 an hour and capped at the monthly price. Running Gitea Actions jobs on the same server needs more CPU and memory, which a container can get from the console while it runs.