Oracle Linux 8 安装 Gitea 代码托管服务

Gitea 是一个用 Go 编写的开源、自托管代码托管平台。 它与 GitHub 和 GitLab 等其他版本控制软件解决方案非常相似,具有问题跟踪、拉取请求、用户管理、通知等功能。 它可以安装在所有主要操作系统上,包括 Linux、macOS、Windows 和 ARM。 使用 Gitea,我们可以创建一个中央存储库,开发人员可以在其中合并和跟踪存储库中的代码更改。

如果我们正在寻找一个开源、轻量级、自托管的代码托管平台,那么 Gitea 是我们的最佳选择。

在这篇文章中,我们将向我们展示Oracle Linux 8上安装Gitea。

先决条件

  • 在 云平台上运行 Oracle Linux 8 的服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Oracle Linux 8 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 安装和配置 MariaDB 数据库

Gitea使用MariadB,MySQL或PostgreSQL数据库存储其数据。 在本教程中,我们将使用 MariaDB 服务器作为数据库后端。

首先,使用以下命令安装所有必需的依赖项:

dnf install git unzip gnupg2 nano wget -y

安装完所有依赖项后,运行以下命令安装 MariaDB 服务器:

dnf install mariadb-server -y

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

systemctl start mariadb
systemctl enable mariadb

我们可以使用以下命令检查Mariadb版本:

mysql --version

样本输出:

mysql  Ver 15.1 Distrib 10.3.32-MariaDB, for Linux (x86_64) using readline 5.1

接下来,使用以下命令登录到Mariadb Shell:

mysql

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

CREATE DATABASE gitea CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
GRANT ALL ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password';

接下来,通过以下命令冲洗特权并退出MariaDB Shell:

FLUSH PRIVILEGES;
EXIT;

接下来,编辑Mariadb配置文件并调整一些设置:

nano /etc/my.cnf.d/mariadb-server.cnf

在该行下方添加以下行 [mysqld]:

innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_default_row_format = dynamic

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

systemctl restart mariadb

第 3 步 – 安装和配置 Gitea

创建一个专门的用户来运行 Gitea 是个好主意。 我们可以使用以下命令创建它:

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

接下来,下载带有以下命令的Gitea二进制的最新版本:

wget https://dl.gitea.io/gitea/1.16.6/gitea-1.16.6-linux-amd64

接下来,将下载的二进制文件移至系统路径并在其上设置适当的权限:

mv gitea-1.16.6-linux-amd64 /usr/bin/gitea
chmod 755 /usr/bin/gitea

接下来,运行以下命令以验证gitea版本:

gitea --version

我们应该得到以下输出:

Gitea version 1.16.6 built with GNU Make 4.1, go1.18.1 : bindata, sqlite, sqlite_unlock_notify

接下来,我们需要创建一个目录结构来存储 Gitea 配置、数据和日志文件。

我们可以使用以下命令创建它:

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

第 4 步 – 为 Gitea 创建一个 Systemd 服务文件

接下来,我们将需要创建一个服务文件,以通过SystemD管理GITEA服务。 我们可以使用以下命令创建它:

nano /etc/systemd/system/gitea.service

添加以下行:

[Unit]
 Description=Gitea
 After=syslog.target
 After=network.target
 After=mysql.service

 [Service]
 RestartSec=2s
 Type=simple
 User=git
 Group=git
 WorkingDirectory=/var/lib/gitea/
 ExecStart=/usr/bin/gitea web -c /etc/gitea/app.ini
 Restart=always
 Environment=USER=git HOME=/home/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
   Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-04-30 08:45:45 EDT; 9s ago
 Main PID: 12643 (gitea)
    Tasks: 8 (limit: 23694)
   Memory: 125.4M
   CGroup: /system.slice/gitea.service
           └─12643 /usr/bin/gitea web -c /etc/gitea/app.ini

Apr 30 08:45:45 oraclelinux gitea[12643]: 2022/04/30 08:45:45 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/bin/gitea
Apr 30 08:45:45 oraclelinux gitea[12643]: 2022/04/30 08:45:45 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
Apr 30 08:45:45 oraclelinux gitea[12643]: 2022/04/30 08:45:45 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/cu>
Apr 30 08:45:45 oraclelinux gitea[12643]: 2022/04/30 08:45:45 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/log
Apr 30 08:45:45 oraclelinux gitea[12643]: 2022/04/30 08:45:45 ...s/install/setting.go:25:PreloadSettings() [I] Configuration file: /etc/gitea>
Apr 30 08:45:45 oraclelinux gitea[12643]: 2022/04/30 08:45:45 ...s/install/setting.go:26:PreloadSettings() [I] Prepare to run install page
Apr 30 08:45:46 oraclelinux gitea[12643]: 2022/04/30 08:45:46 ...s/install/setting.go:29:PreloadSettings() [I] SQLite3 is supported
Apr 30 08:45:46 oraclelinux gitea[12643]: 2022/04/30 08:45:46 cmd/web.go:208:listen() [I] Listen: http://0.0.0.0:3000
Apr 30 08:45:46 oraclelinux gitea[12643]: 2022/04/30 08:45:46 cmd/web.go:212:listen() [I] AppURL(ROOT_URL): http://localhost:3000/
Apr 30 08:45:46 oraclelinux gitea[12643]: 2022/04/30 08:45:46 ...s/graceful/server.go:61:NewServer() [I] Starting new Web server: tcp:0.0.0.0>

默认情况下,Gitea在端口3000上听。我们可以使用以下命令对其进行验证:

ss -antpl | grep 3000

我们应该得到以下输出:

LISTEN 0      128                *:3000             *:*    users:(("gitea",pid=12643,fd=6))  

第 5 步 – 访问 Gitea Web 界面

我们现在可以打开 Web 浏览器并输入 URL http://wer-server-ip:3000 以访问 Gitea Web 界面。 我们应该看到以下屏幕:
Gitea 数据库设置
Gitea General Seetins
Gitea URL 设置
Gitea 管理员用户设置

提供我们的 Gitea 存储库名称、以用户名身份运行、侦听端口、基本 URL、管理员用户名和密码,然后单击 Install Gitea 按钮。 安装完成后,我们将被重定向到 Gitea 仪表板:
Gitea 仪表板

在本指南中,我们解释了 Oracle Linux 8 上安装 Gitea 代码托管平台。我们现在可以开始在我们的开发环境中实施 Gitea,以便从一个中心位置管理和跟踪我们的代码。 在 的专用服务器上试一试!

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论