一、背景介绍

如果想可视化地查看文件的变更,查看每次提交的细节,那么可以搭建一个带 Web 的git服务器

目前的选择是 gitlib 和 gogs

gogs 使用go编写,配置简单,轻量级,个人使用完全够用

公司的话会选gitlib



二、安装

因为搭建go环境,编译安装挺麻烦的,所以我选择docker安装,docker的优点:

  • 镜像小,官方镜像也才40M,相对其它镜像来说已经很小了

  • 可以通过挂载卷把容器里的目录放在宿主机上,这和在宿主机上直接跑gogs没什么区别,git仓库都能在目录中找到

  • 安全,如果gogs被挖出漏洞,容器也能给我们一层防护

但是数据库的话还是得自己安装,放容器里不符合数据库设计的初衷



2.1 数据库、docker安装

建立数据库,创建用户,授权用户:

CREATE DATABASE `gogs` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'gogs'@'%' IDENTIFIED BY 'your_password';
GRANT ALL ON gogs.* TO 'gogs'@'%';



2.2 gogs安装

安装gogs docker

docker pull gogs/gogs:latest
docker run -d -p 3000:3000 -p 3022:22 -v /var/gogs:/data --name=gogs gogs/gogs
# 后续启动重启
docker start|restart gogs

这样一来就安装好了,本机的3000端口就是gogs web,3022端口就是gogs ssh,本机的/var/gogs就是gogs容器里的/data



2.3 gogs web安装

访问3000端口,进行配置

都可以是默认,建议修改的选项有:

127.0.0.1:3000/gogs/禁止用户自主注册启用登录访问限制

此时不设置,后续只能通过配置文件设置,无法在web更改设置

第一个注册的用户是管理员



三、配置

vi /var/gogs/gogs/conf/app.ini
docker restart gogs