使用gogs搭建git服务

实验室的服务器闲着没用,打一个git服务给同学们用,思来想去最终使用gogs搭建,gogs具有轻量级、易安装、跨平台的优点。

方法一:直接搭建

所需环境

  • 系统:Ubuntu Server 18.04
  • 数据库:MySQL
  • 反向代理:nginx
  • git

步骤

  1. 更新软件源
    sudo apt-get update
  2. 添加一个系统用户git
    sudo adduser git
  3. 给git添加sudo权限
    sudo usermod -G sudo git
  4. 切换到git账户
    su git
  5. 下载gogs 安装包
    sudo wget -c https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz
  6. 解压安装包
    sudo tar zxvf gogs_0.11.91_linux_amd64.tar.gz
  7. 进入mysql
    SET GLOBAL storage_engine = 'InnoDB';:设置默认存储引擎
    CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin;:创建数据库名称为gogs
    CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';:创建用户名和密码
    GRANT ALL PRIVILEGES ON gogs.* TO 'root'@'localhost';:表示本机可以使用账户为root,密码为123456访问数据库gogs下所有表
    FLUSH PRIVILEGES;:更新权限
    QUIT;:退出命令行
    注意:通过mysql --version查询mysql版本号,如果是5.0以上版本,则默认engine就是InnoDB。
  8. 修改gogs service配置文件
    vim /home/git/gogs/scripts/init/debian/gogs
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Go Git Service"
NAME=gogs
SERVICEVERBOSE=yes
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
WORKINGDIR=/home/git/gogs #这个根据自己的目录修改
DAEMON=$WORKINGDIR/$NAME
DAEMON_ARGS="web"
USER=git  #如果运行gogs不是用的这个用户,则需要修改为对应用户

注意:
- 如果是创建的git用户 则目录修改为/home/git/gogs.对应的USER修改为git
- 如果是在root用户下安装在/usr/local/gogs/下 则对应的目录为:/usr/local/gogs/gogs.对应的USER修改为root
  1. 切换回root用户
    su ubuntu
  2. 复制gogs service配置到/etc/init.d/目录下
    cp /home/git/gogs/scripts/init/debian/gogs /etc/init.d/
  3. 增加执行权限
    sudo chmod +x /etc/init.d/gogs
  4. 复制gogs service到/etc/systemd/system/目录下
    sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
  5. 启动gogs服务
    sudo service gogs start
  6. 通过浏览器访问gogs配置页面进行配置
    http://localhost:3000/install,其中localhost需要换成服务器的ip,并且需要开放服务器3000端口。(如果有没有公网ip,只能设置为内网ip了)
    在配置页面中需要修改域名为自己的域名。如果改错了或者需要更换,可以通过sudo vi /home/git/gogs/custom/conf/app.ini来修改配置。
  7. 修改 nginx 配置文件,添加反向代理
    sudo vim /etc/nginx/sites-available/gogs
server {
    server_name 服务器地址;
    listen 80;

    location /{
        proxy_pass http://127.0.0.1:3000/;
        proxy_redirect default;
    }
}

这时便可以通过http://服务器地址来访问你的gogs了。

方法二:使用Docker

所需环境

  • 系统:Ubuntu Server 18.04
  • Docker
  • mysql
  1. 获取镜像
    docker pull gogs/gogs

  2. 创造一个本地目录
    mkdir -p /var/gogs

  3. 开启服务
    docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs

  4. 启动服务
    docker start gogs

  5. 创建数据库
    CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin;:创建数据库名称为gogs

  6. 通过浏览器访问gogs配置页面进行配置
    http://localhost:10080/
    配置
    域名填写服务器的ip,注意各项信息不要填错。

  • 注意:这里可能显示无法连接mysql数据库,原因是docker服务无法访问宿主机的mysql服务
    设置一下mysql访问权限即可:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 mysql>flush privileges;
// 其中各字符的含义:
// *.* 对任意数据库任意表有效
// "root" "password" 是数据库用户名和密码
// '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP
// flush privileges 刷新权限信息

对比总结

经过对比,显而易见Docker安装gogs更简单。所以我选择使用Docker。

后续自定义

gogs的header和footer不支持自定义

添加自定义 CSS 文件

这里展示如何为您的 Gogs 实例添加自定义 CSS 文件,目录和文件名都是为了方便演示,您可以把文件放在任何能够通过网络访问的目录。

  1. public/css 目录下创建一个名为 custom.css 的文件
  2. 向文件中添加一些 CSS 规则
  3. 编辑 templates/inject/head.tmpl 文件并添加一行内容 <link rel="stylesheet" href="/css/custom.css">
  4. 重启 Gogs
  5. 后续对自定义 CSS 文件的编辑不需要重启 Gogs

修改首页内容

首页源码位置 templates/home.tmpl

  1. 保留该文件的头部和尾部引用 注意保留:头:{{template "base/head" .}},尾:{{template "base/footer" .}}
  2. 编辑自定义首页中间部分 templates/home.tmpl
  3. 重启 Gogs

配置文件

地址:/var/gogs/gogs/conf/app.ini
如需变更配置,可以修改其内容

最终效果

skyhub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值