1. 系统更新

前提条件,需要先安装Git,如果没有安装可以先看这篇文章进行安装在
Linux CentOS 7搭建最新Git 2.42.0 https://songzixian.com/linuxcmot/1972.html

首先,我们需要确保系统的软件包是最新的。这一步可以通过以下命令来完成:

sudo yum update -y

sudo yum update -y命令会更新系统中所有已安装的软件包,以确保你使用的是最新版本的工具和库。-y选项表示自动确认所有提示,无需手动输入“yes”。

2. 安装Git

Gitea是基于Git的代码托管平台,因此我们需要先安装Git。在CentOS 7中,可以通过以下命令安装:

sudo yum install git -y

这个命令会安装Git,这个工具是用来管理和跟踪你的代码版本的。

3. 创建专用用户git

出于安全考虑,我们将创建一个专用用户来运行Gitea服务。这样,即使Gitea遭到攻击,损害也会被限制在这个用户的权限范围内。

执行以下命令来创建一个名为git的系统用户和用户组:

sudo adduser --system --shell /bin/bash --comment 'Git Version Control' --user-group git
  • --system:表示创建一个系统用户,系统用户通常用于运行服务。
  • --shell /bin/bash:为该用户指定一个Shell环境,这里使用的是Bash Shell。
  • --comment 'Git Version Control':添加对该用户的描述,方便识别。
  • --user-group:创建一个与用户名相同的用户组。

4. 创建Gitea的数据目录

Gitea需要一些目录来存储数据、日志等内容。我们需要为其创建相关目录并设置权限:

sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
  • mkdir -p /var/lib/gitea/{custom,data,log}:创建了三个目录:custom用于自定义配置,data用于存储数据,log用于存储日志文件。
  • chown -R git:git /var/lib/gitea/:将这三个目录的所有者和组更改为git用户和组。
  • chmod -R 750 /var/lib/gitea/:设置目录权限,只有所有者可以读写和执行,组用户可以读取和执行,其他用户无权访问。

5. 下载并安装Gitea

现在,我们来下载Gitea的二进制文件并将其安装到系统中。Gitea官网提供了多种方式下载Gitea,最简单的是直接下载预编译的二进制文件:

wget -O gitea  https://dl.gitea.com/gitea/1.19.3/gitea-1.19.3-linux-amd64
sudo mv gitea /usr/local/bin/
sudo chmod +x /usr/local/bin/gitea
  • wget -O gitea https://dl.gitea.io/gitea/1.19.3/gitea-1.19.3-linux-amd64:使用wget命令下载Gitea的二进制文件,并将其保存为gitea
  • sudo mv gitea /usr/local/bin/:将下载的Gitea文件移动到系统的/usr/local/bin/目录,这个目录通常用于存放用户安装的可执行文件。
  • sudo chmod +x /usr/local/bin/gitea:将Gitea文件设为可执行文件。

6. 配置Systemd服务

为了方便管理Gitea,我们可以创建一个Systemd服务,这样可以通过命令行方便地启动、停止和重启Gitea。

  1. 首先,使用文本编辑器创建并编辑一个新的Systemd服务文件:

    sudo vi /etc/systemd/system/gitea.service
  2. 在这个文件中添加以下内容:

    [Unit]
    Description=Gitea (Git with a cup of tea)
    After=syslog.target
    After=network.target
    # If using database services like MySQL/PostgreSQL, uncomment the following lines:
    # Requires=mysql.service
    # Requires=postgresql.service
    
    [Service]
    RestartSec=2s
    Type=simple
    User=git
    Group=git
    WorkingDirectory=/var/lib/gitea/
    ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
    Restart=always
    Environment=USER=git HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea
    
    [Install]
    WantedBy=multi-user.target
  • [Unit]部分定义了服务的描述和依赖关系。
  • [Service]部分定义了服务如何启动、使用哪个用户和组、工作目录是什么、以及如何重启。
  • [Install]部分定义了服务安装时的行为,WantedBy=multi-user.target表示这个服务会在多用户模式下启动(通常是默认模式)。
  1. 保存文件并关闭编辑器。使用vi的话,按Esc键,然后输入:wq并回车。
  2. 接下来,我们需要让Systemd重新加载它的配置以应用新创建的服务:

    sudo systemctl daemon-reload
  3. 启用开机自动启动Gitea服务,并且启动:

    sudo systemctl enable gitea
    sudo systemctl start gitea
  • sudo systemctl enable gitea:设置Gitea为开机自启动。
  • sudo systemctl start gitea:立即启动Gitea服务。
  1. 验证Gitea服务是否成功启动:

    sudo systemctl status gitea

如果一切顺利,你应该看到Gitea服务正在运行的状态。

7. 配置防火墙

如果你的服务器有防火墙,我们需要确保外部访问Gitea的HTTP/HTTPS端口是开放的。Gitea默认运行在3000端口上,因此我们需要开放该端口:

sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
  • --permanent:表示永久生效。
  • --add-port=3000/tcp:开放3000端口,Gitea使用该端口提供Web服务。
  • --add-port=22/tcp:开放22端口,这个是SSH端口,通常是默认开放的,但确保它是打开的以便Gitea可以使用SSH。
  • --reload:重载防火墙规则以使新规则生效。

8. 访问Gitea Web界面

现在你可以通过浏览器访问Gitea的Web界面了。默认情况下,Gitea运行在3000端口,所以你需要在浏览器中输入以下地址:

http://<your_server_ip>:3000

<your_server_ip>替换为你的服务器的IP地址。例如,如果你的服务器IP是192.168.1.100,你可以在浏览器中输入http://192.168.1.100:3000

9. 完成Gitea Web安装

在浏览器中打开Gitea后,你会看到一个安装界面。在这里你需要完成一些基本的配置:

  • Database Type:选择SQLite3(如果你只是测试或不需要使用外部数据库)。
  • Application Name:给你的Gitea实例起一个名字。
  • Repository Root Path:使用默认路径 /var/lib/gitea/data/gitea-repositories
  • Log Path:使用默认路径 /var/lib/gitea/log
  • Run User:输入git
  • Gitea Base URL:输入http://<your_server_ip>:3000

其他选项可以根据需要进行配置。填写完所有必要信息后,点击“Install Gitea”按钮。

Gitea将根据你的配置文件完成最后的安装步骤,并启动你的Gitea实例。

10. 后续维护

一旦Gitea安装完毕并运行,你可以使用以下命令来管理它:

  • 查看服务状态

    sudo systemctl status gitea
  • 重启服务

    sudo systemctl restart gitea
  • 停止服务

    sudo systemctl stop gitea

访问:ip:3000
1724916270989.jpg
到这里就已经搭建完毕了!

Last modification:August 29, 2024
如果觉得这篇技术文章对你有用,请随意赞赏