自建Git - Gogs/Gitlab

代码修修改改多了,就有了版本控制的需求,Github是最好的选择,但对于个人来说,代码里面有非常重要的隐私信息,又需要方便的进行分享,于是就转到了自建git服务器。

  • Gogs:go语言编写的git服务,简单而强大,支持多用户;适合个人开发者
  • Gitlab:功能非常全面的git服务,适合公司与个人开发者的使用;资源消耗大

最开始我选择了Gogs,主要是gitlab资源消耗太大,小机子支撑不起内存消耗。目前更换成了8G内存,于是转到了Gitlab,毕竟界面美观且功能完整

从自建邮箱到配置文件

搭gitlab的过程很顺利,项目从gogs转移到gitlab上也很方便,但有个问题,gitlab的账户邮箱是需要进行验证的,找遍了面板设置之后,百度到了是需要对配置文件gitlab.rb进行修改。然后!我看到了宝塔面板的邮局管理器插件。

  • 宝塔邮局管理器:多域,多用户邮局,支持SMTP/IMAP/POP3/HTTP接口,需要25端口

好家伙,那我岂不是可以拥有一个自定义域名的邮箱了!?立马设置上。从MX解析到TXT防垃圾,设置域名用户再修改gitlab配置文件,弄了一堆之后,邮件发不出去

中间翻着百度,配置文件改来改去,试了几次之后,我想着是不是25端口不给开,去了腾讯云的文档看了下,发现除了不支持默认开放25端口之外,也不允许用本机进行邮件发送,否则腾讯云有理由进行永久封禁。那没办法,还是用qq的stmp吧。改了几遍,最终还是发不出去...

无语的错误

到处百度之后,了解到gitlab默认是使用sendmail的,只有配置了STMP之后,才会使用。

进去容器,开启一个终端,输入命令

gitlab-rails console  # 进入gitlab控制台

ActionMailer::Base.delivery_method  # 查询邮件服务依赖

=> :sendmail  # 返回

好家伙,这怎么用的sendmail,我不是配置了STMP么?

于是我终于发现了问题所在

# STMP配置原文
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.qq.com"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "123456789@qq.com"
# gitlab_rails['smtp_password'] = "qqpass"
# gitlab_rails['smtp_domain'] = "smtp.qq.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = true

这里有#,是因为配置文件所有代码都是#开头,我一直没注意到,#是有注释的意义的,我一直没有删除注释,修改来修改去的做了一大堆无用功...

把注释取消,重启,一次成功。

好吧......