Technology Engineering

178inaba の技術ブログ

GitLabのメールを設定する

inabaです。

最近、GitLabをRaspberry Piにインストールしました。

inaba.hatenablog.com

メール来ない問題

GitLabに新しいユーザで登録するとメールが来るはずなのですが、来ません。

Postfixの設定めんどくさい説

Postfixの設定をサクッとすればいけるかなーと思っていろいろ調べたらGmailのアカウントとかパスワードとか必要そうでめんどくさそう。

d.hatena.ne.jp
d.hatena.ne.jp
kkv.hatenablog.com

調べた結果

  • Postfixがあるサーバまで正引きできるドメインが必要
  • 正引きできるドメインがない場合はGmailを経由する方法が使える
    • Gmailを経由する方法を仕様する場合はアカウントとパスワードを設定しないとならない。

という結果に。
Raspberry Pi自宅サーバなので固定IPではないし、PostfixGmailのアカウント書くなら下記の方法で行けるのでPostfixは諦めた。

GitLabのSMTP設定

GitLabにはPostfixを使う以外に、外部SMTPサーバを使う設定ができる。

gitlab.com

どうせパスワード設定するならこっちの設定をするほうがいい気がする。

・・・と思い、設定しようと思ったが、設定ファイルに平文でGmailのパスワード書くのは抵抗があるので、他のサービスを利用することにした。

Mailgun

www.mailgun.com

10000通/月まで無料なので良いと思います。
今回はこのSMTPサービスを使用します。
登録はそんなに難しくないので手順に従って登録していきます。

手順参考:
デベロッパーフレンドリーなAPIベースのメール配信システムMailgun | 三度の飯とエレクトロン

ドメイン

Mailgunを使うにはドメインが必要です。
多少お金はかかります(自分の場合、.comで1,382円/年)が、1個あるとこういう時に遊べるので買っておくと良いと思います。

設定

SMTP settingsのMailgunの項目を参考にGitLabにSMTPサーバの設定をします。

# 設定ファイルを編集
$ sudo nano /etc/gitlab/gitlab.rb

# GitLab再設定
$ sudo gitlab-ctl reconfigure

これでメールが来るようになります。

その他設定

external_url

メールは来るようになりますが、メールに書かれているURLがhttp://raspberrypiから始まっていて、このままではアクセスできません。

なので
external_url 'http://raspberrypi'

external_url 'http://raspberrypi.local'
に変えます。

メールに書かれているURLがhttp://raspberrypi.localで始まるようになり、アクセスができるようになります。

gitlab_email関連

送信元のメールアドレス等を設定します。
デフォルトでも支障はありませんが、せっかくなので自分のドメインのメールアドレス等に変えたほうが良いでしょう。
また、メールを受信したときに出る名前も変えられるので変えておきます。

gitlab_rails['gitlab_email_from'] = '<送信元アドレス>'
gitlab_rails['gitlab_email_display_name'] = 'GitLab From Raspberry Pi'
gitlab_rails['gitlab_email_reply_to'] = '<返信先アドレス>'

Postfixの削除

使わないのでPostfixは削除してしまって良いと思います。
設定等していないので、使うときはまたインストールすれば良いです。

# 設定ファイルも同時に削除できるpurgeで削除
$ sudo apt-get purge postfix 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  postfix*
0 upgraded, 0 newly installed, 1 to remove and 5 not upgraded.
After this operation, 3,095 kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 98621 files and directories currently installed.)
Removing postfix (2.11.3-1) ...
Purging configuration files for postfix (2.11.3-1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for libc-bin (2.19-18+deb8u6) ...

# もう一度削除しようとすると不要なパッケージが見られる。
$ sudo apt-get purge postfix 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'postfix' is not installed, so not removed
The following package was automatically installed and is no longer required:
  ssl-cert
Use 'apt-get autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

# ssl-certも不要と出たので削除
$ sudo apt-get -y purge ssl-cert
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  ssl-cert*
0 upgraded, 0 newly installed, 1 to remove and 5 not upgraded.
After this operation, 104 kB disk space will be freed.
(Reading database ... 98432 files and directories currently installed.)
Removing ssl-cert (1.0.35) ...
Purging configuration files for ssl-cert (1.0.35) ...
Processing triggers for man-db (2.7.0.2-5) ...

# 不要なパッケージが無いかもう一度実行
$ sudo apt-get -y purge ssl-cert
Reading package lists... Done
Building dependency tree        
Reading state information... Done
Package 'ssl-cert' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

もう不要なパッケージはなさそうでした。

adminのメールアドレス設定

ついでに、adminのアドレスがadmin@example.comになっているので受信可能なメールアドレスに変更します。
Web画面からrootでログインして、左のメニューからProfile Settingsを選択してメールアドレスを変更します。

まとめ

これで登録時にメールが来てGitLabを使い始めることができます。

今日はここまで。