源码安装

安装依赖

基本依赖

  • Go 语言:版本 >= 1.8

安装 Go 语言

如果您的系统已经安装要求版本的 Go 语言,可以跳过此小节。

下载

使用root用户来演示,所以工作目录在/root/

1
2
3
cd ~
wget https://studygolang.com/dl/golang/go1.12.1.linux-amd64.tar.gz
tar xvf go1.12.1.linux-amd64.tar.gz

设置环境

请设置和您系统环境对应的路径:

1
2
3
4
5
6
7
8
9
cd ~
mkdir -p $HOME/goproject/src
mkdir -p $HOME/goproject/pkg
mkdir -p $HOME/goproject/bin

echo 'export GOROOT=$HOME/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/goproject' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc
source $HOME/.bashrc

安装 Gogs

常用的安装方式:

1
2
3
4
5
6
# 下载并安装依赖
$ go get -u github.com/gogs/gogs

# 构建主程序
$ cd $GOPATH/src/github.com/gogs/gogs
$ go build

构建 develop 分支版本

如果您想要安装 develop(或其它)分支版本,则可以通过以下命令:

1
2
3
4
5
6
7
$ mkdir -p $GOPATH/src/github.com/gogs
$ cd $GOPATH/src/github.com/gogs

# 请确保没有使用 “https://github.com/gogs/gogs.git”
$ git clone --depth=1 -b develop https://github.com/gogs/gogs
$ cd gogs
$ go build

测试安装

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

1
2
cd $GOPATH/src/github.com/gogs/gogs
./gogs web

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

使用标签构建

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

  • sqlite3:SQLite3 数据库支持
  • pam:PAM 授权认证支持
  • cert:生成自定义证书支持
  • miniwinsvc:Windows 服务内置支持(或者您可以使用 NSSM 来创建服务)

例如,您需要支持以上所有功能,则需要先删除$GOPATH/pkg/{GOOS_GOARCH}/github.com/gogs/gogs目录,然后执行以下命令:

1
2
3
$ go get -u -tags "sqlite pam cert" github.com/gogs/gogs
$ cd $GOPATH/src/github.com/gogs/gogs
$ go build -tags "sqlite pam cert"

安装完成后可继续参照配置与运行

版本升级

从二进制升级

相关下载可以从 二进制安装 页面查看。
首先,确认当前安装的位置:

1
2
3
4
5
$ cd ~
$ pwd
/root
$ ls
gogs gogs-repositories

然后将当前目录移动到另一个临时的位置,但不是删除!

1
$ mv gogs gogs_old

下载并解压新的二进制:

1
2
3
4
5
# 请根据系统和类型获取相应的二进制版本
$ wget https://dl.gogs.io/$VERSION/gogs_$VERSION_$OS_$ARCH.tar.gz
$ tar -zxvf gogs_$VERSION_$OS_$ARCH.tar.gz
$ ls
gogs gogs_old gogs-repositories gogs_$VERSION_$OS_$ARCH.tar.gz

复制 custom、data 和 log 目录到新解压的目录中:

1
2
3
$ cp -R gogs_old/custom gogs
$ cp -R gogs_old/data gogs
$ cp -R gogs_old/log gogs

最后,运行并打开浏览器进行测试:

1
2
$ cd gogs
$ ./gogs web

从源码升级

升级 Gogs 的一般步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 更新源码以及依赖
$ go get -u github.com/gogs/gogs

$ cd $GOPATH/src/github.com/gogs/gogs

# 移除旧的二进制
$ rm gogs

# 或将旧的二进制进行备份
$ mv gogs gogs.$(date +%Y-%m-%d).old

# 重新构建 Gogs
$ go build

配置与运行

配置文件

默认配置文件

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

自定义配置文件

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

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

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

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

1
2
[database]
PASSWD = root

为什么要这么做?

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

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

运行 Gogs 服务

开发者模式

  • 您需要在 custom/conf/app.ini 文件中将选项 security -> INSTALL_LOCK 的值设置为 true。

  • 您可以使用超能的 make 命令:

    1
    2
    $ make
    $ ./gogs web

部署模式

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

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

配置文件手册

本手册会详尽地描述有关 Gogs 配置文件的选项,帮助您更好地理解和使用 Gogs。

请记住,任何修改都是发生在 custom/conf/app.ini 自定义配置文件中,该文件的具体位置与您的设置有关。

完整的默认设置可以通过 app.ini 文件查看。如果您看到类似 %(X)s 字符,这是由 ini 提供的递归取值的特性。
https://gogs.io/docs/advanced/configuration_cheat_sheet