Linux 下如何安装和配置 Gitea:自建 Git 服务的完整指南

在当今的开发环境中,Git 已经成为版本控制的首选工具。虽然 GitHub 和 GitLab 等平台提供了强大的托管服务,但对于一些团队或个人来说,自建 Git 服务可能更具吸引力。Gitea 是一个轻量级的自托管 Git 服务,它易于安装和配置,适合中小型团队使用。本文将详细介绍如何在 Linux 系统上安装和配置 Gitea,帮助你快速搭建自己的 Git 服务。

1. 为什么选择 Gitea?

Linux 如何安装和配置 Gitea 自建 Git 服务

Gitea 是一个开源的自托管 Git 服务,具有以下优点:

  • 轻量级:Gitea 的资源占用较低,适合在小型服务器上运行。
  • 易于安装:Gitea 的安装过程简单,配置也相对直观。
  • 功能丰富:支持代码托管、Issue 跟踪、Pull Request、Wiki 等功能。
  • 社区活跃:Gitea 有一个活跃的社区,问题能够快速得到解决。

2. 安装前的准备工作

在开始安装 Gitea 之前,确保你的 Linux 系统满足以下要求:

  • 操作系统:Ubuntu 20.04 或 CentOS 8(其他 Linux 发行版也可参考本文步骤)。
  • 内存:至少 1GB RAM。
  • 磁盘空间:至少 10GB 可用空间。
  • 数据库:MySQL、PostgreSQL 或 SQLite(推荐使用 MySQL 或 PostgreSQL)。

2.1 安装依赖

首先,更新系统并安装必要的依赖包:

sudo apt update
sudo apt install -y git curl wget

如果你使用的是 CentOS,可以使用以下命令:

sudo yum update
sudo yum install -y git curl wget

2.2 安装数据库

Gitea 支持多种数据库,这里以 MySQL 为例。安装 MySQL 并设置 root 密码:

sudo apt install -y mysql-server
sudo mysql_secure_installation

创建 Gitea 使用的数据库和用户:

sudo mysql -u root -p
CREATE DATABASE gitea;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 安装 Gitea

3.1 下载 Gitea

访问 Gitea 的官方 GitHub 仓库,下载最新版本的二进制文件:

wget -O gitea https://dl.gitea.io/gitea/1.15.0/gitea-1.15.0-linux-amd64

3.2 设置权限并运行

将下载的二进制文件移动到 /usr/local/bin 目录,并设置可执行权限:

sudo mv gitea /usr/local/bin/
sudo chmod +x /usr/local/bin/gitea

创建一个专用的用户来运行 Gitea:

sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/gitea gitea

创建 Gitea 的工作目录:

sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R gitea:gitea /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/

3.3 配置 Gitea

Gitea 的配置文件位于 /etc/gitea/app.ini。你可以通过以下命令生成默认配置文件:

sudo mkdir -p /etc/gitea
sudo chown gitea:gitea /etc/gitea
sudo -u gitea gitea web -c /etc/gitea/app.ini

编辑配置文件,设置数据库连接和其他参数:

[database]
DB_TYPE  = mysql
HOST     = localhost
NAME     = gitea
USER     = gitea
PASSWD   = your_password

3.4 配置系统服务

为了让 Gitea 在系统启动时自动运行,可以创建一个 systemd 服务文件:

sudo nano /etc/systemd/system/gitea.service

添加以下内容:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target

[Service]
RestartSec=2s
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=gitea HOME=/home/gitea

[Install]
WantedBy=multi-user.target

保存并退出,然后启用并启动 Gitea 服务:

sudo systemctl enable gitea
sudo systemctl start gitea

4. 访问 Gitea

安装完成后,打开浏览器并访问 http://your_server_ip:3000。你将看到 Gitea 的初始化页面,按照提示完成配置。

4.1 初始化配置

在初始化页面中,填写以下信息:

  • 数据库设置:选择 MySQL,并填写之前创建的数据库信息。
  • 应用 URL:填写你的服务器地址,例如 http://your_server_ip:3000
  • 管理员账户:设置管理员账户的用户名和密码。

完成配置后,点击“安装 Gitea”按钮,等待安装完成。

4.2 登录并使用

安装完成后,使用设置的管理员账户登录 Gitea。你可以创建新的仓库、管理用户、设置权限等。

5. 配置反向代理(可选)

为了提高安全性和性能,建议使用 Nginx 或 Apache 作为反向代理。以下是 Nginx 的配置示例:

sudo nano /etc/nginx/sites-available/gitea

添加以下内容:

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

保存并退出,然后启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
sudo systemctl restart nginx

现在,你可以通过 http://your_domain.com 访问 Gitea。

6. 总结

通过本文的步骤,你已经成功在 Linux 系统上安装和配置了 Gitea。Gitea 作为一个轻量级的自托管 Git 服务,不仅易于安装,还提供了丰富的功能,非常适合中小型团队使用。如果你希望进一步优化 Gitea 的性能和安全性,可以参考官方文档进行更多高级配置。

无论你是个人开发者还是团队负责人,Gitea 都能为你提供一个高效、稳定的代码托管平台。现在,开始享受自建 Git 服务带来的便利吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。