Ubunt 18.04 中安装 Gitea

Git 是现在最流行的版本管理系统,但原生的 git 程序对于源码库、用户的管理没有提供相应的功能,在企业中部署、使用相对比较麻烦。 Gitea 是一个开源的,类似于 GitLib 的系统,可以在多个平台部署,提供了丰富的组织管理,用户管理,issue跟踪,Wiki等功能。本文介绍如何在 Ubuntu 18.04 Server 中安装 Gitea。

环境准备

环境需求

Gitea 使用 Git 原本的命令来操作 Git 库,所以在服务器中需要先安装 Git。 同时, Gitea 需要使用关系数据库来管理组织,用户等信息,所以我们也需要有要给安装好的数据库系统。 Gitea 本身支持多种关系数据库,比如:MySQL (MariaDB), SQLite 等。在本次安装中,选择使用 MySQL (MariaDB)。

安装 Git

实际上,在 Ubuntu 18.04 Server 的默认安装中已经自带了 Git, 你可以执行以下命令进行验证:

1
git --version

如果没有安装,则执行

1
suod apt-get install git

进行安装。

配置数据库

在安装好的数据库系统中新建一个数据库,名字不限。 在本例中命名为: gitea_db, 注意:字符集必须选用 utf8mb4, 然后建一个拥有该数据库的用户。

准备Linux用户

在 Ubuntu 中新建一个用户,该用户用来运行 Gitea 的服务进程,并提供对应的数据存储。

执行:

1
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

该命令建立一个名为 git 的用户, 该用户名和后面用到的运行服务的脚本有关系,所以建议直接复制上面的代码。 执行成功,系统显示:

1
2
3
4
Adding system user `git' (UID 112) ...
Adding new group `git' (GID 113) ...
Adding new user `git' (UID 112) with group `git' ...
Creating home directory `/home/git' ...

准备默认的目录

Gitea 系统运行时,需要保存相关的数据,包括源码库,所以我们需要准备好相关的目录,顺序执行以下命令建立目录:

1
2
3
4
5
6
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

安装 Gitea 服务

下载Gitea

执行:

1
wget -O gitea https://dl.gitea.io/gitea/1.11.2/gitea-1.11.2-linux-amd64

如果网络正常,将显示类似下面的结果:

1
2
3
4
5
6
7
8
9
10
--2020-03-08 05:57:37--  https://dl.gitea.io/gitea/1.11.2/gitea-1.11.2-linux-amd64
Resolving dl.gitea.io (dl.gitea.io)... 104.27.143.155, 104.27.142.155, 2606:4700:3033::681b:8f9b, ...
Connecting to dl.gitea.io (dl.gitea.io)|104.27.143.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 81229448 (77M) [application/octet-stream]
Saving to: ‘gitea’

gitea 100%[=================================================>] 77.47M 45.7KB/s in 19m 53s

2020-03-08 06:17:36 (66.5 KB/s) - ‘gitea’ saved [81229448/81229448]

可以看到, Gitea 被打包为一个 77.47M 大小的可执行文件。

将下载的文件赋予可执行权限

1
chmod +x gitea

然后将程序移到 /usr/local/bin 目录中,以便于在任何目录都可以访问。

截至现在为止,已经可以在命令行执行该程序了。但作为服务,我们希望把它配置为在后台执行,并且随系统启动而启动。

配置为 Linux 服务

网上已经有写好的 gitea 对应于 systemd 的配置文件,我们可以直接下载并放置到 /etc/systemd/system 目录中去。

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

下载完成后,我们可以打开该文件,看看该文件的关键部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
#RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024, uncomment
# the two values below, or use socket activation to pass Gitea its ports as above
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
###

可以看到,该文件中指明了相关的用户,目录,配置文件等信息。

顺序执行以下命令启动 Gitea 服务:

1
2
sudo systemctl daemon-reload
sudo systemctl enable --now gitea

如果正常,系统将显示:

1
Created symlink /etc/systemd/system/multi-user.target.wants/gitea.service → /etc/systemd/system/gitea.service.

配置 Gitea

完成上面的安装步骤后,在浏览器中访问:

1
http://<your ip>:3000

将会看到 Gitea 系统的首页,在首页的左上角选择: “Explore” 链接,就可以进入系统初始化界面。

  1. 配置数据库

配置数据库

  1. 配置库目录

配置库目录

  1. 配置可选配置

可选配置包括:

可选配置

不配置可选配置也可以运行,但基于这是要给私有的库,建议配置一些与安全相关的选项, 如: 禁止用户自己注册

禁止用户自己注册

以便于由管理员统一建立,管理用户。

管理员账户

设置好管理员账号,而不是用第一个注册的账号作为管理员。

设置完成以后,选择 “Install Gitea” 按钮,很快就完成了最终的设置。 后面就可以正常访问 Gitea 了。

安装完成后,记得将服务器上的 /etc/gitea 目录设置为只读,提供系统的安全性
执行:

1
2
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini

本文标题:Ubunt 18.04 中安装 Gitea

文章作者:晨星

发布时间:2020年03月08日 - 17:03

最后更新:2020年09月16日 - 08:09

原始链接:https://www.mls-tech.info/linux/ubuntu-18-setup-gitea/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。