前言
維護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 流程
到時搞定之後再寫文章記錄