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。
首先,使用文本编辑器创建并编辑一个新的Systemd服务文件:
sudo vi /etc/systemd/system/gitea.service
在这个文件中添加以下内容:
[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
表示这个服务会在多用户模式下启动(通常是默认模式)。
- 保存文件并关闭编辑器。使用
vi
的话,按Esc
键,然后输入:wq
并回车。 接下来,我们需要让Systemd重新加载它的配置以应用新创建的服务:
sudo systemctl daemon-reload
启用开机自动启动Gitea服务,并且启动:
sudo systemctl enable gitea sudo systemctl start gitea
sudo systemctl enable gitea
:设置Gitea为开机自启动。sudo systemctl start gitea
:立即启动Gitea服务。
验证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
到这里就已经搭建完毕了!