オンプレのGitLabのrobots.txtを設定した
GitLabがGoogleに載るのを拒否したい
VRChatのアバターやその他個人的なプログラム用にGitLabをオンプレで構築しています。
もちろん、ほとんどのリポジトリは非公開リポジトリにしているため、中身は見れないのですが、とはいえGitLabの存在すら知られたくありません。
地味に検索汚染になるし・・・。
ということで、検索エンジンを拒否してみようと思います。
robots.txtの場所
検索エンジンの登録を拒否するのはいくつか方法がありますが、雑にrobots.txtで設定してみようと思います。
Docker版GitLabではrobots.txtの場所は/opt/gitlab/embedded/service/gitlab-rails/public/robots.txt
にあるようです。
デフォルトでは以下の値になっており、やはりリポジトリ全体は拒否していないようです。
# egrep -v "^#|^$" /opt/gitlab/embedded/service/gitlab-rails/public/robots.txt
User-Agent: *
Disallow: /autocomplete/users
Disallow: /autocomplete/projects
Disallow: /search
Disallow: /admin
Disallow: /profile
Disallow: /dashboard
Disallow: /users
Disallow: /api/v*
Disallow: /help
Disallow: /s/
Disallow: /-/profile
Disallow: /-/ide/
Disallow: /-/experiment
Allow: /users/sign_in
Allow: /users/sign_up
Allow: /users/*/snippets
User-Agent: *
Disallow: /*/new
Disallow: /*/edit
Disallow: /*/raw
Disallow: /*/realtime_changes
User-Agent: *
Disallow: /groups/*/analytics
Disallow: /groups/*/contribution_analytics
Disallow: /groups/*/group_members
Disallow: /groups/*/-/saml/sso
User-Agent: *
Disallow: /*/*.git$
Disallow: /*/archive/
Disallow: /*/repository/archive*
Disallow: /*/activity
Disallow: /*/blame
Disallow: /*/commits
Disallow: /*/commit
Disallow: /*/commit/*.patch
Disallow: /*/commit/*.diff
Disallow: /*/compare
Disallow: /*/network
Disallow: /*/graphs
Disallow: /*/merge_requests/*.patch
Disallow: /*/merge_requests/*.diff
Disallow: /*/merge_requests/*/diffs
Disallow: /*/deploy_keys
Disallow: /*/hooks
Disallow: /*/services
Disallow: /*/protected_branches
Disallow: /*/uploads/
Disallow: /*/project_members
Disallow: /*/settings
Disallow: /*/-/import
Disallow: /*/-/environments
Disallow: /*/-/jobs
Disallow: /*/-/requirements_management
Disallow: /*/-/pipelines
Disallow: /*/-/pipeline_schedules
Disallow: /*/-/dependencies
Disallow: /*/-/licenses
Disallow: /*/-/metrics
Disallow: /*/-/incidents
Disallow: /*/-/value_stream_analytics
Disallow: /*/-/analytics
Disallow: /*/insights
#
拒否する
今回の場合はGitLab配下全て登録されたくないため、全てのページを拒否します。
Dockerの場合は上記場所にマウントしてやれば情報を上書きしてやることができます。
そうでなくても書き換えてやればたぶん行けるはずです。
設定記述
適当にrobots.txtを記述。
User-Agent: *
Disallow: /
docker-compose.ymlにてマウント
version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ce
volumes:
- './gitlab/robots.txt:/opt/gitlab/embedded/service/gitlab-rails/public/robots.txt'
サービス再起動
$ docker-compose up -d
[+] Running 1/1
? Container gitlab-gitlab-1 Started 17.0s
$
確認
記述した設定が反映されていることを確認。
$ curl https://git.jo3qma.com/robots.txt | head
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 26 100 26 0 0 2363 0 --:--:-- --:--:-- --:--:-- 2363
User-Agent: *
Disallow: /
$