常用的私有Git服务器包含GitLab、Gitea、Gogs等。相对来说,GitLab功能最为全面,内置CI,但对内存和CPU的要求比较高,而Gogs和Gitea均比较轻量化。根据实际需求与条件最终选择了Gitea,Gitea是Gogs的社区版本,足够轻量化,并且包含LFS的支持。

 

2|0环境准备

2|1安装数据库:采用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

 

2|2安装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

 

3|0安装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下的安装配置就完成了。

 

4|0设置Gitea

运行Gitea后,打开http://localhost:3000即可以进入软件配置界面如下图:

 

 

  • 数据库设置

    先选择数据库类型。如果是用原有的数据库,相关的参数需要填进去。我们安装了SQLite3,所以选择这个。下面会有一个数据库路径,可以使用默认的。在Windows下,Gitea会自己在运行目录下建立目录和数据文件;Linux下是刚刚预先建立好的。

    如果修改目录的话,Windows下不存在问题,但Linux下需要注意目录的权限。这个权限会跟着下面「以用户名运行」参数来设置。

  • 一般设置

    站点名称:页面首页显示的名称。

    仓库根目录:用来存放源代码二进制数据,有默认位置,可以修改。

    LFS根目录:用来存放大文件的目录,用于LFS服务。

  • 禁止用户自助注册

    如果可以开启就不能自己注册账号了,需要管理员统一管理。

  • 管理员帐号设置

    第一个注册的帐号,会自动成为管理员。在上面禁止注册后,需要这个管理员来建立用户帐号。

  • 版本升级

    如果需要升级新版本,先下载新版本的Gitea,然后停掉服务,覆盖旧的Gitea程序,再启动服务就可以了。

 

其他更多设置查看Gitea的文档即可。

 

参考文献:

[1] https://mp.weixin.qq.com/s/QsFhT0G7ny9K8F8mnCUj3A

[2] https://www.jianshu.com/p/acd5fc63895d

 

__EOF__