GitLab Omnibusロゴ差し替えスクリプト

  • 6
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

研究室のGitLabをfrom sourceからOmnibus packageに移行した.
そこでロゴ(狐)の差し替えをする際に少しハマり,スクリプトを書いたのでメモしておく.

7.13以上対応版

GitLab 7.13で,GitLabのロゴがオシャレになった.

この影響で,pngがsvgに差し替えられるなどの変更があったので,スクリプトを更新した.
svgの作成には,無料化されたMicrosoft Expression Design 4を使用した.

  • /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/favicon.ico
  • /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/logo.svg (210x210px)
  • /opt/gitlab/embedded/service/gitlab-rails/public/favicon.ico
  • /opt/gitlab/embedded/service/gitlab-rails/public/apple-touch-icon.png (210x210px)
  • /opt/gitlab/embedded/service/gitlab-rails/public/apple-touch-icon-precomposed.png (210x210px)
  • /opt/gitlab/embedded/service/gitlab-rails/public/logo.svg (210x210px)
update.sh
#!/bin/sh

sudo gitlab-ctl stop
sudo chown -R git:git /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo cp *.ico *.svg /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/
sudo cp *.ico *.png *.svg /opt/gitlab/embedded/service/gitlab-rails/public/
sudo gitlab-rake assets:clean assets:precompile
sudo chown -R root:root /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo gitlab-ctl start

ロゴの差し替え方法

ロゴのpngの配置などは,Gitlabのロゴを差し替える - Qiitaに詳しく書かれている.
(今回使用したGitLab 7.9.1ではlogo-black.pngは不要なみたい.)

以下の2つのファイルを,適切なサイズの画像に差し替える.

  • /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/brand_logo.png
  • /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/logo-white.png

assets pipelineを更新する.ここでエラーが出て失敗した.

$ sudo gitlab-rake assets:precompile
rake aborted!
Errno::EACCES: Permission denied @ rb_sysopen - /opt/gitlab/embedded/service/gitlab-rails/public/assets/brand_logo-83a5201d76d99b08d6ee58076626a452.png
...

public/assets/のownerがrootになっているのが原因のようだ.

解決方法

public/assets/のownerをgitにしてからassets:precompileし,元に戻すことにした.
GitLabの更新の度に作業するのは面倒なので,ShellScriptを書いた.

update.sh
#!/bin/sh

sudo gitlab-ctl stop
sudo chown -R git:git /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo cp *.png /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/
sudo gitlab-rake assets:clean assets:precompile
sudo chown -R root:root /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo gitlab-ctl start

以下のようにpngとスクリプトを配置して./update.shを実行すれば良い.

gitlab_logo
|-- brand_logo.png
|-- logo-white.png
|-- update.sh

おわりに

gitlab.png

今後の研究室サーバの引き継ぎも考えて,Omnibusに移行しました.
gitlab:backup:createして,MySQLからPostgreSQLに変換して,リストアするだけなので簡単ですね.
作業に当たり,下記を参考にしました.