五环小胖子的博客

gogs搭建git服务器及使用

2017-02-08
Ryan

gogs-logo

环境要求

  • MySQl: version>=5.5.3
  • git(bash): Version >= 1.7.1 for both server and client sides
  • ssh server: Ignore this if you’re only going to use HTTP/HTTPS or use builtin SSH server
  • Recommend Cygwin OpenSSH

安装

Tips: 基于centos6.5 64位系统

MySQL安装

这里默认已经安装过mysql数据库,如果未安装有两种安装方式

1、yum安装

2、源码安装,mysql install command

Git安装

1、yum安装,这种方式有个缺点:版本比较老

2、源码安装

yum remove git
yum install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel -y
wget https://github.com/git/git/archive/v2.9.0.tar.gz
tar xzvf v2.9.0.tar.gz
cd git-2.9.0
autoconf
./configure --prefix=/your-path
make && make install
ln -s /your-path/bin/git /usr/bin/git

gogs安装及运行

1、下载预编译二进制包

wget https://cdn.gogs.io/gogs_v0.9.128_linux_amd64.tar.gz
tar -xf gogs_v0.9.128_linux_amd64.tar.gz

2、导入所需的数据库

mysql -u root -p < scripts/mysql.sql

3、配置文件custom/conf/app.ini,如果没有则建立一个,默认配置文件配置手册

4、创建启动脚本

cp script/init/centos/gogs /etc/init.d/gogs

5、对/etc/init.d/gogs进行编辑,主要按照实际的运行环境来,如日志存放目录,gogs命令位置等,修正过后启动服务

chmod +x gogs
/etc/init.d/gogs start

6、nginx反向代理(非必须)

server {
    server_name 域名或IP;
    listen 80; # 或者 443,如果你使用 HTTPS 的话
    # ssl on; 是否启用加密连接
    # 如果你使用 HTTPS,还需要填写 ssl_certificate 和 ssl_certificate_key

    location / { # 如果你希望通过子路径访问,此处修改为子路径,注意以 / 开头并以 / 结束
        proxy_pass http://127.0.0.1:3000/;
    }
}

7、最后说明一下我这里是按照root用户来运行gogs的,推荐使用git用户来运行

sudo adduser git
su git

修改一下配置文件及目录权限,就可重新运行gogs了

gogs使用

使用和GitHub类似,这里重点说下用户权限控制,服务启动后访问配置好的url即可打开页面,第一次进入的时候需要你填写一个表单,填写完毕后就可正常使用gogs了。注意:无需创建admin账户,系统默认ID=1的账户为admin账户

web-img

gogs里面对于用户权限控制,主要是依托于组织下的团队,一个组织里可以创建多个团队,团队权限类型分为:

  • 读取权限:这个团队将拥有查看和克隆所属仓库的权限
  • 写入权限:这个团队将拥有查看、克隆和推送所属仓库的权限
  • 管理权限:这个团队将拥有查看、克隆、推送和添加其他组织成员到团队的权限

创建不同权限类型的团队,然后将相应的组织成员添加到团队里面,并将组织下的某个私有仓库添加到所需的团队中,举个栗子:我添加了一个FE团队权限为写入权限,并将FE的同学添加到团队里面,然后将名为fe-test的私有仓库添加至该团队(fe-test仓库只属于FE团队),这样不在FE团队的同学就无法查看fe-test而FE同学可以。


上一篇 晒晒结婚照