为自己安装轻量级git代码管理仓库Gogs

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

环境要求

  • 操作系统:
    ubuntu 16.04 LTS (Xenial Xerus)

  • 数据库:
    MySQL:版本 >= 5.5.3

  • git(bash):
    服务端和客户端均需版本 >= 1.7.1

源码安装

  • 基本依赖
    Go 语言:版本 >= 1.5(我使用go1.8.1,Go环境设置不再赘述)

  • 下载并编译

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

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

初始化数据库

1
2
DROP DATABASE IF EXISTS gogs;
CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

配置Gogs

创建目录

1
2
mkdir -p custom/conf
cp conf/app.ini custom/conf

修改配置 vim custom/conf/app.ini

1
2
3
4
5
6
7
8
9
10
[server]
PROTOCOL = http
DOMAIN = yourdomain
ROOT_URL = http://git.yourdomain/
HTTP_ADDR = 0.0.0.0
HTTP_PORT = 3000


[database]
PASSWD = root

参考Gogs配置

开机启动

修改 vim scripts/systemd/gogs.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[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
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target

根据情况修改运行用户和gogs的下载(启动目录)。

启动Gogs

1
2
3
systemctl enable gogs.service

systemctl start gogs.service

登录

登录http://git.yourdomain/,现在可以使用自己的git服务了。