Gitea服务搭建指南
为什么选择Gitea
常用的私有Git服务器包含GitLab、Gitea、Gogs等。相对来说,GitLab功能最为全面,内置CI,但对内存和CPU的要求比较高,而Gogs和Gitea均比较轻量化。根据实际需求与条件最终选择了Gitea,Gitea是Gogs的社区版本,足够轻量化,并且包含LFS的支持。
环境准备
安装数据库:采用SQLite数据库
-
Windows安装:
下载网址:https://sqlite.org/download.html,如下图下载预编译版本中的sqlite-dll-win64-x64-3320300.zip版本安装即可。
安装说明:
安装时在安装目录(如C:\Program Files\SQLite3)解压下载下来的文件,同时添加该路径到环境变量Path中(添加到System的Path)。
到此SQLite已经安装完成,在命令提示符内输入sqlite3根据是否出现版本号等信息可以验证是否成功添加到环境变量。
对于SQLite的可视化管理可以使用SQliteStudio即可。
-
Linux安装:
Linux下安装SQLite,可以从下载页下载源代码自行编译,也可以直接下载编译好的二进制包。还可以更简单的从包源安装:
# apt-get install sqlite3
安装Git
-
Windows安装:
Git的taobao镜像下载(原网站国内访问较慢):https://npm.taobao.org/mirrors/git-for-windows/
下载完成后,是个可执行的安装文件。运行安装文件,即可完成Git客户端的安装。
安装完成后,也需要在环境变量中设置
Path
,加进去Git
命令的运行目录。Git运行目录是Git安装目录下的bin
目录。 -
Linux安装:
大多数情况下,Linux下会自带Git客户端,可以检查一下:
# git --version
如果已安装,会返回版本信息。
如果没有安装,就用包管理装一个
# apt-get install git
安装Gitea
-
Windows安装
下载for Windows的最新版1.11.5:https://gitea.io/zh-cn/
把下载下来的文件名改为
gitea.exe
,然后放到一个目录,比如D:\gitea
目录下,安装就完成了。Gitea在Windows上可以直接运行,也可以加为Service。
> d:\gitea\gitea.exe web cmd/web.go:107:runWeb() [I] Starting Gitea on PID: 5840
加到Service里运行就不用每次手动打开了,输入命令:
sc create gitea start= auto binPath= "\"d:\gitea\gitea.exe\" web --config \"d:\gitea\custom\conf\app.ini\""
点确定,就加到Windows服务里了。
-
Linux安装
下载for Linux的最新版1.12.1:
# wget -O gitea https://dl.gitea.io/gitea/1.12.1/gitea-1.12.1-linux-amd64
下载完成后,把gitea移到
/usr/local/bin
目录,并改为可执行。# mv gitea /usr/local/bin # chmod +x gitea
Gitea就安装完成了。
下面建几个Gitea的数据目录:
# mkdir /var/lib/gitea # mkdir /var/lib/gitea/{custom,data,log} # mkdir /etc/gitea
其中:
/var/lib/gitea是存放仓库相关文件的目录
/etc/gitea是存放配置文件app.ini的目录
为了服务器的安全,我们还需要创建一个系统用户
git
,# adduser git --system --shell /bin/bash --group --disabled-password --home /home/git
把上面建立的几个目录给到
git
用户:# chown -R git:git /var/lib/gitea # chown git:git /var/gitea
Gitea在Linux上需要以Service的方式运行。
把以下配置保存到文件
gitea.service
:[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target [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=/home/git GITEA_WORK_DIR=/var/lib/gitea [Install] WantedBy=multi-user.target
修改
gitea.service
为可执行,并复制到/etc/systemd/system
目录:# chmod +x gitea.service # mv gitea.service /etc/systemd/system# systemctl enable gitea.service
最后一步,启动Service:
# systemctl start gitea.service
Linux下的安装配置就完成了。
设置Gitea
运行Gitea后,打开http://localhost:3000即可以进入软件配置界面如下图:
-
数据库设置
先选择数据库类型。如果是用原有的数据库,相关的参数需要填进去。我们安装了SQLite3,所以选择这个。下面会有一个数据库路径,可以使用默认的。在Windows下,Gitea会自己在运行目录下建立目录和数据文件;Linux下是刚刚预先建立好的。
如果修改目录的话,Windows下不存在问题,但Linux下需要注意目录的权限。这个权限会跟着下面「以用户名运行」参数来设置。
-
一般设置
站点名称:页面首页显示的名称。
仓库根目录:用来存放源代码二进制数据,有默认位置,可以修改。
LFS根目录:用来存放大文件的目录,用于LFS服务。
-
禁止用户自助注册
如果可以开启就不能自己注册账号了,需要管理员统一管理。
-
管理员帐号设置
第一个注册的帐号,会自动成为管理员。在上面禁止注册后,需要这个管理员来建立用户帐号。
-
版本升级
如果需要升级新版本,先下载新版本的Gitea,然后停掉服务,覆盖旧的Gitea程序,再启动服务就可以了。
其他更多设置查看Gitea的文档即可。
参考文献: