如何在 CentOS 8 上安装 Gitea

2022年 10月 13日 133.7k 0

如何在 CentOS 8 上安装 Gitea

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 映像。我们将使用二进制文件安装 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.3
sudo 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/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

上面的目录结构是 Gitea 官方文档推荐的。

目录的权限/etc/gitea设置为,770以便安装向导可以创建配置文件。安装完成后,我们将设置更多限制性权限。

创建一个系统单元文件

Gitea 提供了一个配置为匹配我们设置的 Systemd 单元文件。

/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-reload
sudo 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 侦听3000所有网络接口上端口上的连接。您需要配置防火墙 以启用对 Gitea Web 界面的访问:

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

打开浏览器,输入http://YOUR_DOMAIN_IR_IP:3000/install,会出现初始配置页面:

填写必填字段,如下所示:

数据库设置:

  • 数据库类型: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 Base URL - 使用 http 和您的域或服务器 IP 地址。
  • 日志路径 - 保留默认值/var/lib/gitea/log

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

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

点击“立即注册”链接。第一个注册用户会自动添加到管理员组。
为了使安装更安全,请将 Gitea 配置文件的权限更改 为只读,使用:

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

Gitea 已安装在您的 CentOS 机器上。

将 Nginx 配置为 SSL 终止代理

此步骤是可选的,但强烈推荐。要将Nginx 用作反向代理 ,您需要有一个域或子域指向您的服务器公共 IP。在本教程中,我们将使用git.example.com.

首先,安装 Nginx 并使用以下指南生成免费的 Let's Encrypt SSL 证书:

  • 如何在 CentOS 8 上安装 Nginx
  • 在 CentOS 8 上使用 Let's Encrypt 保护 Nginx

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

sudo nano /etc/nginx/conf.d/git.example.com.conf
/etc/nginx/conf.d/git.example.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
/etc/gitea/app.ini
[server]
DOMAIN = git.example.com
ROOT_URL = https://git.example.com/

通过键入以下内容重新启动 Gitea 服务:

sudo systemctl restart gitea

至此,Gitea代理就配置好了,可以通过以下方式访问:https://git.example.com

配置电子邮件通知

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

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

sudo nano /etc/gitea/app.ini
/etc/gitea/app.ini
[mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD

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

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

sudo systemctl restart gitea

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

Gitea 还允许您通过创建web webhook连接到 Slack 并将通知发送到您的Slack 频道 。

升级Gitea

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

  • 停止 Gitea 服务:
sudo systemctl stop gitea
  • 下载最新的 Gitea 二进制文件并将其移至/usr/local/bin目录:
VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
  • 使二进制可执行文件:
sudo chmod +x /usr/local/bin/gitea
  • 重启Gitea服务:
sudo systemctl restart gitea

结论

我们已经向您展示了如何在 CentOS 8 上安装 Gitea。您现在应该访问Gitea 文档页面 并了解如何配置您的安装并创建您的第一个项目。

相关文章

LeaferJS 1.0 重磅发布:强悍的前端 Canvas 渲染引擎
10分钟搞定支持通配符的永久有效免费HTTPS证书
300 多个 Microsoft Excel 快捷方式
一步步配置基于kubeadmin的kubevip高可用
istio全链路传递cookie和header灰度
REST Web 服务版本控制

发布评论