在K1上安装Gogs来实现git server

Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

开源组件

源码安装

安装 Go 语言

Gogs 要求至少使用 Go 1.20 或更高的版本进行编译,具体安装步骤请参考 官方文档

设置环境

我们将创建一个名为 git 用户,并在该用户空间内完成剩余的安装步骤:

sudo adduser --disabled-login --gecos 'Gogs' git

编译 Gogs

# 克隆仓库到 "gogs" 子目录
git clone --depth 1 https://github.com/gogs/gogs.git gogs
# 修改工作目录
cd gogs
# 编译主程序,这个步骤会下载所有依赖
go build -o gogs

测试安装

您可以通过以下方式检查 Gogs 是否可以正常工作:

./gogs web

如果您没有发现任何错误信息,则可以使用 Ctrl-C 来终止运行。

使用标签构建

Gogs 默认并没有支持一些功能,这些功能需要在构建时明确使用构建标签(build tags)来支持。

目前使用标签构建的功能如下:

  • pam:PAM 授权认证支持
  • cert:生成自定义证书支持
  • minwinsvc:Windows 服务内置支持(或者您可以使用 NSSM 来创建服务)
go build -tags "pam cert" -o gogs

配置与运行

配置文件

默认配置文件

默认配置都保存在 conf/app.ini,您 永远不需要 编辑它。该文件从 v0.6.0 版本开始被嵌入到二进制中。

自定义配置文件

那么,在不允许修改默认配置文件 conf/app.ini 的情况下,怎么才能自定义配置呢?很简单,只要创建 custom/conf/app.ini 就可以!在 custom/conf/app.ini 文件中修改相应选项的值即可。

例如,需要改变仓库根目录的路径:

[repository]
ROOT = /home/jiahuachen/gogs-repositories

当然,您也可以修改数据库配置:

[database]
PASSWORD = root

为什么要这么做?

乍一看,这么做有些复杂,但是这么做可以有效地保护您的自定义配置不被破坏:

  • 从二进制安装的用户,可以直接替换二进制及其它文件而不至于重新编写自定义配置。
  • 从源码安装的用户,可以避免由于版本管理系统导致的文件修改冲突。

运行 Gogs 服务

开发者模式

  • 您需要在 custom/conf/app.ini 文件中将选项 security -> INSTALL_LOCK 的值设置为 true
  • 您可以使用超能的 make 命令:
$ make
$ ./gogs web

部署模式

脚本均放置在 scripts 目录,但请在仓库根目录执行它们

  • Gogs 支持多种方式的启动:
    • 普通:只需执行 ./gogs web
    • 守护进程:详见 scripts 文件夹
  • 然后访问 /install 来完成首次运行的配置工作

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部