Post

オンプレの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にあるようです。

デフォルトでは以下の値になっており、やはりリポジトリ全体は拒否していないようです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# 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を記述。

1
2
User-Agent: *
Disallow: /

docker-compose.ymlにてマウント

1
2
3
4
5
6
version: '3.7'
services:
  gitlab:
    image: gitlab/gitlab-ce
    volumes:
      - './gitlab/robots.txt:/opt/gitlab/embedded/service/gitlab-rails/public/robots.txt'

サービス再起動

1
2
3
4
$ docker-compose up -d
[+] Running 1/1
 ? Container gitlab-gitlab-1  Started                                                                          17.0s
$

確認

記述した設定が反映されていることを確認。

1
2
3
4
5
6
7
$ 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: /
$
コンテンツは CC BY-NC-SA 4.0 の下で利用できます。