如何在 CentOS 8 上安装 Gitea
admin
2023-08-03 05:31:32
0

Gitea 是一个在 Go 中编写的自托管开源 git 服务器。它配备了存储库文件编辑器、项目问题跟踪、用户管理、通知、内置 wiki 等。

Gitea是一个轻量级应用程序,可以安装在功能不太强大的系统上。如果您正在寻找内存占用空间更小的 Gitlab 替代方案,并且不需要 Gitlab 提供的所有铃声和口哨,您应该尝试 Gitea。

本文介绍如何在 CentOS 8 上安装和配置 Gitea。

先决条件

Gitea 支持SQLite、PostgreSQL和MySQL /MariaDB作为数据库后端。

我们将使用 SQLite。它是一个轻量级数据库,在单个文件中存储数据。如果 CentOS 计算机上未安装 SQLite,您可以通过以 sudo 用户方式运行以下命令来安装它:

sudo dnf install sqlite

我们假设SELinux 已禁用或设置为允许模式。

安装 Gitea

Gitea 可以从源、二进制和作为包安装。它也可以部署为 Docker 映像。我们将使用 thr 二进制安装 Gitea。

安装 Git

第一步是在CentOS上安装 Git:

sudo dnf install git

通过显示 Git 版本来验证安装:

git --version
git version 2.18.4

创建 Git 用户

创建新的系统用户以运行 Gitea 应用程序:

sudo useradd \\   --system \\   --shell /bin/bash \\   --comment \'Git Version Control\' \\   --create-home \\   --home /home/git \\   git

该命令将创建一个名为 的新用户和组,并将主目录设置为 。git/home/git

下载 Gitea 二进制文件

最新的Gitea二进制文件可以从Gitea下载页面下载。请确保下载适合体系结构的二进制文件。

在编写本文时,最新版本为 1.12.3。如果有新版本可用,请更改下面的命令中的变量。VERSION

使用wget下载目录中的 Gitea 二进制文件:/tmp

VERSION=1.12.3sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64

可以从任何位置运行二进制文件。我们将遵循约定,将二进制文件移动到目录:/usr/local/bin

sudo mv /tmp/gitea /usr/local/bin

使二进制可执行:

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

以下命令将创建必要的目录并设置所需的权限和所有权:

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}sudo chown git: /var/lib/gitea/{data,indexers,log}sudo chmod 750 /var/lib/gitea/{data,indexers,log}sudo mkdir /etc/giteasudo chown root:git /etc/giteasudo chmod 770 /etc/gitea

上述目录结构由官方 Gitea 文档推荐。

目录的权限设置为以便安装向导可以创建配置文件。安装完成后,我们将设置更严格的权限。/etc/gitea770

创建系统单元文件

Gitea 提供了一个系统单元文件,该文件配置为与我们的设置相匹配。

通过键入以下类型将文件下载到目录:/etc/systemd/system/

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

完成后,启用并启动 Gitea 服务:

sudo systemctl daemon-reloadsudo systemctl enable --now gitea

验证服务是否成功启动:

sudo systemctl status gitea
● gitea.service - Gitea (Git with a cup of tea)
   Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-01-04 21:27:23 UTC; 3s ago
 Main PID: 14804 (gitea)
    Tasks: 9 (limit: 1152)
   CGroup: /system.slice/gitea.service
           └─14804 /usr/local/bin/gitea web --config /etc/gitea/app.ini
...

配置 Gitea

现在 Gitea 已启动并运行,是时候通过 Web 界面完成安装了。

默认情况下,Gitea 侦听所有网络接口上的端口上的连接。您需要配置防火墙才能访问Gitea Web 界面:3000

sudo firewall-cmd --permanent --zone=public --add-port=3000/tcpsudo firewall-cmd --reload

打开浏览器,输入 ,初始配置页面将显示:http://YOUR_DOMAIN_IR_IP:3000/install

Gitea Install Hu0fef48a1a4fc23c829fe9e7f27f3c37c 115259 768x0 Resize Q75 LanczosGitea Install Hu0fef48a1a4fc23c829fe9e7f27f3c37c 115259 768x0 Resize Q75 Lanczos
Gitea Install Hu0fef48a1a4fc23c829fe9e7f27f3c37c 115259 768×0 Resize Q75 Lanczos

填写所需的字段,如下:

数据库设置:

  • 数据库类型:SQLite3
  • 路径:使用绝对路径,/var/lib/gitea/data/gitea.db

应用程序常规设置:

  • 网站标题 – 输入组织名称。
  • 存储库根路径 – 保留默认值 。/home/git/gitea-repositories
  • Git LFS 根路径 – 保留默认值 。/var/lib/gitea/data/lfs
  • 以用户名运行 – git
  • SSH 服务器域 – 输入您的域或服务器 IP 地址。
  • SSH 端口 – 22,如果 SSH 正在侦听其他端口,请更改它
  • Gitea HTTP 侦听端口 – 3000
  • Gitea 基本 URL – 使用 http 和您的域或服务器 IP 地址。
  • 日志路径 – 保留默认值/var/lib/gitea/log

稍后,您可以通过编辑 Gitea 配置文件来更改设置。

完成后,点击\”安装 Gitea\”按钮。安装是即时的。完成后,您将被重定向到登录页面。

点击\”立即注册\”链接。第一个注册用户将自动添加到管理组。

若要使安装更安全,请使用以下方法将 Gitea 配置文件的权限更改为只读:

sudo chmod 750 /etc/giteasudo chmod 640 /etc/gitea/app.ini

就是这样。Gitea 已安装在 CentOS 计算机上。

将 Nginx 配置为 SSL 终止代理

此步骤是可选的,但强烈建议这样做。若要使用 Nginx 作为反向代理,需要有指向服务器公共 IP 的域或子域。在本教程中,我们将使用 。git.example.com

首先,安装 Nginx 并使用以下教程生成免费的\”让我们加密 SSL 证书\”:

完成后,打开文本编辑器并编辑域服务器块文件:

sudo nano /etc/nginx/conf.d/git.example.com.conf

/etc/nginx/conf.d/git.示例.com.conf

server {
    listen 80;
    server_name git.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://git.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name git.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/git.example.com.access.log;
    error_log /var/log/nginx/git.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}

复制

不要忘记将计算机替换为 gitea git.example.com,并设置 SSL 证书文件的正确路径。HTTP 流量重定向到 HTTPS 。

完成后,重新启动 Nginx 服务以使更改生效:

sudo systemctl restart nginx

接下来,更改 Gitea 域和根 URL。为此,请打开配置文件并编辑以下行:

sudo nano /etc/gitea/app.ini

/等/吉泰亚/应用程序.ini

[server]
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

复制

通过键入:

sudo systemctl restart gitea

此时,Gitea 代理已配置,您可以在:https://git.example.com

配置电子邮件通知

对于要发送的通知电子邮件,您可以安装 Postfix 或使用事务性邮件服务,如 SendGrid、MailChimp、MailGun 或 SES。

若要启用电子邮件通知,请打开配置文件并编辑以下行:

sudo nano /etc/gitea/app.ini

/等/吉泰亚/应用程序.ini

[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

复制

请确保使用正确的 SMTP 服务器信息。

每次编辑文件时,都需要重新启动 Gitea 服务才能使更改生效:app.ini

sudo systemctl restart gitea

要验证设置并发送测试电子邮件,请登录到 Gitea 并转到:站点管理 > 配置 > SMTP 邮件配置。

Gitea 还允许您通过创建 Webhook连接到 Slack,并向 Slack 通道发送通知。

升级吉泰亚

升级到最新的 Gitea 版本是一项简单的任务。您只需要下载并替换二进制文件。

  1. 停止 Gitea 服务:
    sudo systemctl stop gitea
  2. 下载最新的 Gitea 二进制文件并移动到目录:/usr/local/bin
    VERSION=wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64sudo mv /tmp/gitea /usr/local/bin
  3. 使二进制可执行:
    sudo chmod +x /usr/local/bin/gitea
  4. 重新启动 Gitea 服务:
    sudo systemctl restart gitea

就是这样。

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何在电报Telegram中隐... 点击进入:ChatGPT工具插件导航大全 在Android上的电报中隐藏您的电话号码 您可以通过切换...
在 iCloud 上关闭“查找... 如果您是 Apple 的长期用户,您肯定会遇到过 Find My 应用程序,它本机安装在 iPhon...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
Hive OS 部署 PXE ... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何在 iPhone 14 P... Apple 的 iPhone 14 Pro 是第一款配备 48MP 传感器的 iPhone。所有以前...