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


    前言#

    维护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 流程

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

    作者:DealiAxy

    出处:https://www.cnblogs.com/deali/p/18307703

    版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

    微信公众号:「程序设计实验室」
    新版StarBlog已经上线,地址:http://blog.deali.cn

  • 相关阅读:
    Nginx__高级进阶篇之LNMP动态网站环境部署
    docker mysqldump备份/恢复数据库
    【学一点儿前端】ajax、axios和fetch的概念、区别和易混淆点
    Centos安装Docker的详细安装步骤
    【gcc】RtpTransportControllerSend学习笔记 2
    C++异常捕获
    ASP.NET程序设计 ——琴社网站
    泽攸科技JS系列高精度台阶仪在半导体领域的应用
    使用go的并发性来解决Hilbert酒店问题
    详解nvim内建LSP体系与基于nvim-cmp的代码补全体系
  • 原文地址:https://www.cnblogs.com/deali/p/18307703