曦远 (DealiAxy)一份私人的文字刊物

StarBlog
返回文章列表折页手记阅读全文
DevOps

开启GitLab的邮件通知功能以及一些外观配置

这次把邮件功能、域名、外观啥的配置好了,写篇文章记录一下

曦远 (DealiAxy)约 10 分钟
目录11 个章节

前言

维护GitLab的同事离职了

刚好又有新实习生需要申请账号

只能我来出手了

其实之前安装了 GitLab 之后一直还是用得比较粗糙的

属于是勉强能用的水平,有些配置都还没改好

这次把邮件功能、域名、外观啥的配置好了,写篇文章记录一下

目录结构

先来回顾一下 GitLab 的目录结构

我们的 GitLab 是使用 docker 部署的

gitlab
├── config
├── data
├── logs
├── shell
└── docker-compose.yml

具体的目录结构也是看具体的配置

本文就以这个目录结构为例,进行具体的配置

配置邮件功能

修改 config/gitlab.rb 文件

话说 GitLab 居然是 ruby 写的?(难怪觉得卡卡的)

编辑邮件配置这一块

这里以腾讯企业邮箱为例

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@codelab.com"
gitlab_rails['smtp_password'] = "email-password"
gitlab_rails['smtp_domain'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_ssl'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['gitlab_email_from'] = "gitlab@codelab.com"

保存与加载配置

配置完成保存一下

进入 GitLab 容器

docker compose exec gitlab bash

执行命令

gitlab-ctl reconfigure
gitlab-ctl restart

搞定

额外邮件配置

对了,还有个额外配置可以改一下,我这里就只修改了 gitlab_email_from 其他的有需要的同学可以改一下

### Email Settings

# gitlab_rails['gitlab_email_enabled'] = true

##! If your SMTP server does not like the default 'From: gitlab@gitlab.example.com'
##! can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = 'example@example.com'
gitlab_rails['gitlab_email_display_name'] = 'Example'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
gitlab_rails['gitlab_email_subject_suffix'] = ''
gitlab_rails['gitlab_email_smime_enabled'] = false
gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'
gitlab_rails['gitlab_email_smime_cert_file'] = '/etc/gitlab/ssl/gitlab_smime.crt'
gitlab_rails['gitlab_email_smime_ca_certs_file'] = '/etc/gitlab/ssl/gitlab_smime_cas.crt'

发送测试邮件

我用的方法是进入 ruby console 手动发送

在 GitLab 实例的前台页面没找到有什么测试发送的地方

首先进入 GitLab 容器的 shell

docker compose exec gitlab bash

之后启动 ruby console

gitlab-rails console

输入命令发邮件

Notify.test_email('your-email@example.com', 'Test Email', 'This is a test email.').deliver_now

这个方法很好,如果有哪里配置错了,也可以从报错信息里直观的看到

几个跟邮件有关的功能

  • 登录到你的 GitLab 实例。
  • 进入 Admin Area(管理员区域)。
  • 导航到 Settings > Integrations。

这个页面的中文应该是“实例级集成管理”,我这个版本的 GitLab 有俩跟邮件有关的,分别是:

  • 推送时发送电子邮件
  • 流水线状态电子邮件

顾名思义,前面邮箱配置好了就可以启用这俩

之后满足条件就可以在指定邮箱接收到通知邮件了

重新使用 swag 来分配域名+https

在之前那篇GitLab安装的文章里,我是直接把几个端口都映射出来

现在改成swag做反代,需要修改一下几个地方

例如要分配给 GitLab 的域名是 gitlab.dealiaxy.com

首先修改 docker-compose 配置,把容器加入 swag 网络

version: "3"
services:
  gitlab:
    image: gitlab/gitlab-ee:latest
    restart: always
    hostname: gitlab
    container_name: gitlab
    ports:
      - 9443:443
      - 9022:22
    networks:
      - swag
    volumes:
      - /etc/localtime:/etc/localtime
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab

networks:
  swag:
    name: swag
    external: true

重启容器

在 swag 里做 GitLab 容器的 80 端口反代

然后 config/gitlab.rb 配置里修改一下

external_url "http://gitlab.dealiaxy.com"

这里使用 HTTP 就好,https 在 swag 那边会配置,如果这里写了 https ,那么会要在 GitLab 里提供证书配置,比较麻烦。

然后 ssh host 也得改一下

gitlab_rails['gitlab_ssh_host'] = gitlab.dealiaxy.com

搞定

外观配置

同样在 Admin Area 里,有个“外观”配置

里面可以修改logo、登录页面的图片、说明(而且还支持markdown)啥的

我稍微改了一下,效果是这样

然后还有 New Project Guidelines 和 Profile Image Guidelines

分别是创建项目和用户修改头像时左侧的引导提示

随便写一点或者用大模型生成就完事了

这样配置下来就有模有样

版本升级

使用 docker-compose pull 命令来拉取最新的镜像后

先 down 然后再 up 就可以使更新生效了~

如果只是 restart 就只会重新启动现有的容器

小结

本文主要还是记录了邮件配置

还有一些比较零散的配置

接下来还要继续完善一下 CICD 流程

到时搞定之后再写文章记录

_EOF_

开启GitLab的邮件通知功能以及一些外观配置

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…