GitLab的替代者-轻量级Gogs安装与配置

我们使用docker安装gogs服务。

# 1. 安装

# 1.1 下载镜像

docker pull gogs/gogs

# 1.2 数据库准备

我们在postgresql中创建一个gogs的数据库,并授权。

数据库创建和授权可参考 postgresql_in_docker

# 1.3 准备证书文件

gogs.hellogitlab.com

为后面设置HTTPS协议做准备。

gogs.hellogitlab.com

这样便于后面为Gogs服务设置域名。

# 1.4 创建持久化目录

/dockerdata/gogs/data

# 1.5 运行容器

运行以下命令:

运行:

# 1.6 防火墙放行端口

防火墙放行10022和10080端口

我们先放行一下端口:

执行命令:

防火墙放行后。我们就可以在浏览器上查看gogs页面。

# 1.7 初始安装配置

http://hellogitlab.com:10080

我们使用postgresql,填写刚才创建的数据库信息:

最后需要对外暴露的域名和端口设置:

https://gogs.hellogitlab.com:10080/httpshttpshttp
test
https://gogs.hellogitlab.com:10080/meizhaohui/test.gitssh://git@gogs.hellogitlab.com:10022/meizhaohui/test.git

我尝试使用这两种方式下载仓库代码。

HTTP方式下载:

出现异常。

SSH方式下载:

可以看到,能正常下载。

此时,SSH形式可以正常下载。而HTTPS方式下载需要优化。

# 1.8 Nginx反向代理配置

为了让我们通过HTTPS加密形式访问Gogs服务,我们配置一下Nginx代码,将10080端口转发到10081端口,并且为10081端口设置SSL证书。

/etc/pki/nginx/
/etc/nginx/conf.d/gogs.conf

配置文件内容如下:

nginx -t

说明Nginx配置正确。

# 1.9 邮件配置

之前初始体验的时候,我们并没有配置Gogs的邮件,我们再次测试的时候,可以在初始安装界面加上邮件相关的配置。

notice@hellogitlab.com

可以在后面重新运行docker容器后,再进行配置。

# 1.10 头像优化

gravatar.com

OFFLINE_MODEtrue
.gogs.env
=

# 1.11 优化后重新运行容器

我们在运行容器时加载环境变量,并在容器运行后重启Nginx服务。

https://gogs.hellogitlab.com:10081

在重新运行容器前,我们将之前生成的数据库数据删除,以及持久化的数据删除。

先停止gogs容器。

删除持久化数据:

删除数据库,并新建数据库,并授权:

以上准备工作完成后,我们重新运行容器。

可以看到容器正常运行。

我们重启一下Nginx服务:

https://gogs.hellogitlab.com:10081/install

数据库配置:

应用基本配置:

邮件服务配置:

注意,此处邮件服务时,应在SMTP主机处加上端口号,我们需要使用SMTP加密,使用465端口号。

此处我们启用邮件通知提醒。

禁用Gravatar服务禁用用户自主注册

最后要设置一个管理员账号。

立即安装
控制面板

testrepo

创建后,测试一下是否能够正常克隆下载并提交修改。

此时,可以看到,测试仓库页面可以正常显示HTTPS和SSH方式的下载链接:

我们尝试下载一下。

HTTPS

可以看到,在输入正确的用户名和密码之后,可以正常下载。

fatal: Authentication failed forgit config --global --unset credential.helper

我们刷新页面,可以看到刚才的提交已经显示在页面上了:

说明HTTPS方式配置正常!

同样,使用SSH方式下载试一下。

使用SSH方式下载前,需要将自动的电脑公钥加到Gogs系统的个人账号的SSH密钥当中。

添加后,再使用SSH方式下载。

可以看到,能够正常下载。

如果你遇到异常提示:

~/.ssh/known_hostsgogs

我们再进行提交操作。

在Gogs系统上面,刷新页面,可以看到刚才的提交已经正常显示了:

说明我们的配置正常的!

后续你就可以自己创建比较正式的仓库,存放自己的代码了!

# 2. 服务地址优化

你如果按上述部署完成了部署的话,也可以不进行此节的操作。

https://gogs.hellogitlab.com

你可以参考 统一网站端口号 其中有详细的说明。

/etc/nginx/conf.d/gogs.conf

查看优化后的配置文件:

NginxNginx
https://gogs.hellogitlab.com/HTTPShttps://gogs.hellogitlab.com:10081/meizhaohui/testrepo.git

# 2.1 修改gogs的HTTPS端口号

GogsHTTPS10081443

我们先停止gogs容器,然后去持久化文件夹里面直接修改配置文件。

我们使用VIM进行修改:

3000EXTERNAL_URL = https://gogs.hellogitlab.com/:443

我们再启动一下gogs容器:

gogs

HTTPShttps://gogs.hellogitlab.com/meizhaohui/testrepo.git
HTTPS

尝试提交修改:

可以看到能够正常提交成功,说明我们的网站服务地址更新成功了!

100222222

参考: