前言

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

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

开启GitLab的邮件通知功能以及一些外观配置的更多相关文章

  1. gitlab配置邮件通知功能操作记录

    之前已经介绍了gitlab的部署http://www.cnblogs.com/kevingrace/p/5651402.html但是没有配置邮箱通知功能,今天这里介绍下gitlab安装后的邮箱配置操作 ...

  2. Django error信息邮件通知功能配置部署

    1. 最近QA成为项目的重点,除了突破依赖外部表的阻力开始启用单元测试,还有一点就是对在线的生产服务的错误信息启用这个邮件通知功能,下面简单说一下启用方法: 1.发送邮件账号配置配置: EMAIL_H ...

  3. jenkins邮件通知功能

    第部分:全局设置 第一步:进入jenkins的系统设置 第二步:设置管理员邮件地址: 第三步:下载email-ext插件并填写对应的内容: 第四部:填写邮件通知 第五步:以上就是系统管理里需要填写的全 ...

  4. 配置Redmine的邮件通知功能

    依据<Windows下安装Redmine 2.5.2不全然指南 >一文,我们搭建主要的 Redmine 平台.如今是时候做进一步的配置了. 作为一个项目管理平台,必须能够通知项目成员有关项 ...

  5. 设置jenkins的邮件通知功能

    1.进入系统配置页面配置邮件发送的SMTP 2. 进入项目配置页面,配置邮件通知:(每次不稳定构建时会邮件通知)

  6. SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 邮件作为一种非常便利的预警实现方式,在及时性和易用性 ...

  7. Jenkins+Jmeter持续集成笔记(四:定时任务和邮件通知)

    通过前几篇文章,jmeter+ant+jenkins自动化持续构建的测试平台基本成型.既然要自动化平台,最基本的肯定要实现不经过人工干预,平台会在特定的条件下自动运行测试脚本,并在脚本运行结束后,发送 ...

  8. Jenkins 配置邮件通知步骤

    Jenkins 配置邮件通知前言 可以在Jenkins 中配置邮件通知,比如在构建失败时发送邮件通知项目组来及时修复问题. Jenkins 邮件通知功能的插件主要包括: Mailer Plugin ( ...

  9. Jenkins之邮件通知

    Jenkins默认有一个邮件通知功能,但功能比较单一,能自定义的东西很少,一般使用Extended E-mail Notification插件来发送邮件,EXT Email插件功能比较多,但设置也比较 ...

  10. Ossec 安装并配置邮件通知

    Ossec 安装并配置邮件通知 目录 Ossec 安装并配置邮件通知 1. 介绍 2. 软硬件环境 3. 安装步骤 3.1 Server 3.2 Agent 3.3 配置邮件通知 4. 参考资料 1. ...

随机推荐

  1. C#老码农的职业生涯

    开头白 大家好,我是tibos,19年10月1号由深圳回武汉的码农,目前入职武汉福禄网络,最近刷到的年终总结也比较多,赶在这最后一天,我也来凑个热闹 心路历程 -> 菜鸟入江湖 13年开启码农的 ...

  2. 记一次U8的插件开发

    在u8上开发一个winform的插件用来实现不同账套之间的单据协同,使用的方法是用存储过程走数据库.因为原账套的数据量会很大,如果直接在插件上用单线程传输,那肯定会造成传输过程,u8卡死的.一种方法是 ...

  3. 基于 GoLang 编写的 IOT 物联网在线直播抓娃娃企业级项目

    基于 GoLang 编写的 IOT 物联网在线直播抓娃娃企业级项目 引言 前几年,娱乐物联网的热度很高.我当时所在的公司启动了一个将线下娃娃机的玩法,迁移到线上的项目,因此公司决定开发一个在线直播抓娃 ...

  4. HTML——input之单行文本框

    在 HTML 中,把 <input> 标签的 type 属性设置为 text 可以表示单行文本框,又叫做常规文本框.具体语法格式如下: <input type="text& ...

  5. HTML——基本标签

    1.标题标签 <h1>标题1</h1> <h2>标题2</h2> <h3>标题3</h3> <h4>标题4</ ...

  6. itest(爱测试) 4.5.5 发布,开源BUG 跟踪管理 & 敏捷测试管理&极简项目管理软件

    itest 简介 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理4合1,又有丰富的统计分析.可按测试包分配测试用例执行,也可建测试迭代(含任务, ...

  7. 面试必会->Redis篇

    01- 你们项目中哪里用到了Redis ? 在我们的项目中很多地方都用到了Redis , Redis在我们的项目中主要有三个作用 : 使用Redis做热点数据缓存/接口数据缓存 使用Redis存储一些 ...

  8. js数据类型的检查

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  9. xv6 内核空间共享

    首发公号:Rand_cs 共享内核空间 我们常说,每个进程都有自己的虚拟地址空间,但其中内核部分是共享的. 这就有个问题,如何共享的? 系统启动时创建了一张内核页表,里面记录着内核地址空间与物理地址空 ...

  10. xv6 文件系统

    文件系统 公众号:Rand_cs 本文继续来看 x v 6 xv6 xv6 的文件系统部分, x v 6 xv6 xv6 将文件系统的设计分为 7 层: 磁 盘 → 缓 存 区 → 日 志 → i n ...