如何在 Debian 11 上安装 Gitea Git 服务如何在 Debian 11 上安装 Gitea Git 服务如何在 Debian 11 上安装 Gitea Git 服务如何在 Debian 11 上安装 Gitea Git 服务
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Debian 11 上安装 Gitea Git 服务

发表 admin at 2025年2月28日
类别
  • 未分类
标签

本教程适用于这些操作系统版本

  • Debian 11(Bullseye)
  • Debian 10(Buster)

在此页

  1. 先决条件
  2. 安装和配置 MariaDB 数据库
  3. 安装 Gitea
  4. 为 Gitea 创建系统服务文件
  5. 为 Gitea 配置 Nginx
  6. 访问 Gitea 网络界面
  7. 结论

Gitea 是一个免费、开源、自托管且著名的 Git 服务器,使用 Go 编程语言编写。是一个类似Github的版本控制平台。它健壮、可扩展并提供许多功能,包括问题和时间跟踪、存储库分支、文件锁定以及标记、合并和许多其他功能。如果您正在寻找自托管的 Git 服务,那么 Gitea 可能是您可以使用的最佳选择。

在本教程中,我将向您展示如何在 Debian 11 上安装 Gitea。

先决条件

  • 运行 Debian 11 的服务器。
  • 在服务器上配置了根密码。

安装和配置 MariaDB 数据库

Gitea 使用 MariaDB/MySQL 作为数据库后端。所以数据库服务器必须安装在你的服务器上。如果未安装,您可以通过运行以下命令来安装它:

apt-get install mariadb-server -y

安装 MariaDB 后,您需要设置 MariaDB 密码并确保安装安全。您可以通过运行 mysql_secure_installation 脚本来完成:

mysql_secure_installation

如下图所示回答所有问题:

Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

接下来,使用以下命令连接到 MariaDB 接口:

mysql -u root -p

连接后,使用以下命令为 Gitea 创建数据库和用户:

MariaDB [(none)]> CREATE DATABASE gitea;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password';

接下来,使用以下命令刷新权限并退出 MariaDB:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> QUIT;

安装 Gitea

首先,您需要创建一个专门的用户来运行 Gitea。您可以使用以下命令创建它:

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

您应该看到以下输出:

Adding system user `git' (UID 109) ...
Adding new group `git' (GID 115) ...
Adding new user `git' (UID 109) with group `git' ...
Creating home directory `/opt/git' ...

接下来,使用以下命令下载最新版本的 Gitea:

curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |grep browser_download_url | cut -d '"' -f 4 | grep '\linux-amd64$' | wget -i -

接下来,使用以下命令将 Gitea 二进制文件移动到系统路径:

mv gitea-*-linux-amd64 /usr/local/bin/gitea

接下来,为 Gitea 二进制文件设置可执行权限:

chmod +x /usr/local/bin/gitea

接下来,使用以下命令验证 Gitea 版本:

gitea --version

您应该看到以下输出:

Gitea version 1.15.3 built with GNU Make 4.1, go1.16.8 : bindata, sqlite, sqlite_unlock_notify

接下来,您需要为 Gitea 创建一个目录结构。您可以使用以下命令创建它:

mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}

接下来,使用以下命令设置适当的权限和所有权:

chown git:git /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chown root:git /etc/gitea
chmod 770 /etc/gitea

完成后,您可以继续下一步。

为 Gitea 创建系统服务文件

接下来,您需要为 Gitea 创建一个 systemd 服务文件。您可以使用以下命令创建它:

nano /etc/systemd/system/gitea.service

添加以下行:

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

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

[Install]
WantedBy=multi-user.target

保存并关闭文件,然后使用以下命令重新加载 systemd 守护进程:

systemctl daemon-reload

接下来,使用以下命令启动并启用 Gitea 服务:

systemctl start gitea
systemctl enable gitea

要检查 Gitea 服务,请运行以下命令:

systemctl status gitea

您应该看到以下输出:

? gitea.service - Gitea (Git with a cup of tea)
     Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 12:59:27 UTC; 9s ago
   Main PID: 19179 (gitea)
      Tasks: 8 (limit: 4679)
     Memory: 128.3M
        CPU: 1.415s
     CGroup: /system.slice/gitea.service
             ??19179 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 cmd/web.go:102:runWeb() [I] Starting Gitea on PID: 19179
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/setting/setting.go:569:NewContext() [W] Custom config '/etc/gitea/app.ini' not>
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/custom
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/log
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:25:PreloadSettings() [I] Preparing to run install page
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:28:PreloadSettings() [I] SQLite3 Supported
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 cmd/web.go:196:listen() [I] Listen: http://0.0.0.0:3000
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 ...s/graceful/server.go:62:NewServer() [I] Starting new Web server: tcp:0.0.0.0:300>

此时Gitea已经启动并监听3000端口,可以通过以下命令查看:

ss -antpl | grep 3000

您应该看到以下输出:

LISTEN 0      4096               *:3000             *:*    users:(("gitea",pid=19179,fd=6))

完成后,您可以继续下一步。

为 Gitea 配置 Nginx

接下来,您需要安装和配置 Nginx 作为 Gitea 的反向代理。首先,使用以下命令安装 Nginx:

apt-get install nginx -y

接下来,使用以下命令创建 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/gitea.conf

添加以下行:

server {
    listen 80;
    server_name gitea.example.com;
    access_log /var/log/nginx/gitea_access.log;
    error_log /var/log/nginx/gitea_error.log;


    location / {
        proxy_pass http://localhost:3000;
    }
}

保存并关闭文件,然后验证 Nginx 是否存在任何语法错误:

nginx -t

您应该看到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来,使用以下命令重新启动 Nginx 服务:

systemctl restart nginx

要检查 Nginx 状态,请运行以下命令:

systemctl status nginx

您应该看到以下输出:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 13:00:33 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 19209 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19211 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19212 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 3.2M
        CPU: 50ms
     CGroup: /system.slice/nginx.service
             ??19212 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19213 nginx: worker process
             ??19214 nginx: worker process

Oct 02 13:00:33 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 02 13:00:33 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

接下来,您需要编辑 Gitea app.ini 文件并定义您的域信息:

nano /etc/gitea/app.ini

更改以下行:

DOMAIN           = gitea.example.com
ROOT_URL         = http://gitea.example.com/

保存并关闭文件,然后重启 Gitea 服务以应用更改:

systemctl restart gitea

完成后,您可以继续下一步。

访问 Gitea Web 界面

现在,打开您的 Web 浏览器并使用 URL http://gitea.example.com 访问 Gitea Web 界面。您将被重定向到以下页面:

提供您的 Gitea 数据库信息、URL、管理员用户名、密码、端口,然后单击“安装 Gitea”按钮。您应该在以下页面上看到 Gitea 仪表板:

结论

恭喜!您已经在 Debian 11 上成功安装了带有 Nginx 作为反向代理的 Gitea。您可以在您的开发环境中实施 Gitea 来跟踪和管理您的项目。

©2015-2025 Norria support@norria.com