gitlab.yml.example 12.5 KB
Newer Older
1
# # # # # # # # # # # # # # # # # #
2
# GitLab application config file  #
3
# # # # # # # # # # # # # # # # # #
4 5
#
# How to use:
6 7 8 9 10
# 1. Copy file as gitlab.yml
# 2. Update gitlab -> host with your fully qualified domain name
# 3. Update gitlab -> email_from
# 4. If you installed Git from source, change git -> bin_path to /usr/local/bin/git
# 5. Review this configuration file for other settings you may want to adjust
11

12 13 14 15 16 17 18
production: &base
  #
  # 1. GitLab app settings
  # ==========================

  ## GitLab settings
  gitlab:
19
    ## Web server settings (note: host is the FQDN, do not include http://)
20
    host: localhost
21 22
    port: 80 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
    https: false # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
23

24 25 26 27 28
    # Uncommment this line below if your ssh host is different from HTTP/HTTPS one
    # (you'd obviously need to replace ssh.host_example.com with your own host).
    # Otherwise, ssh host will be set to the `host:` value above
    # ssh_host: ssh.host_example.com

29 30
    # WARNING: See config/application.rb under "Relative url support" for the list of
    # other files that need to be changed for relative url support
31 32 33 34 35
    # relative_url_root: /gitlab

    # Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
    # user: git

36 37 38 39 40
    ## Date & Time settings
    # Uncomment and customize if you want to change the default time zone of GitLab application.
    # To see all available zones, run `bundle exec rake time:zones:all`
    # time_zone: 'UTC'

41 42
    ## Email settings
    # Email address used in the "From" field in mails sent by GitLab
43
    email_from: example@example.com
44

45 46
    # Email server smtp settings are in [a separate file](initializers/smtp_settings.rb.sample).

47
    ## User settings
48
    default_projects_limit: 10
49
    # default_can_create_group: false  # default: true
50
    # username_changing_enabled: false # default: true - User can change her username/namespace
Izaak Alpert's avatar
Izaak Alpert committed
51 52 53 54 55 56
    ## Default theme
    ##   BASIC  = 1
    ##   MARS   = 2
    ##   MODERN = 3
    ##   GRAY   = 4
    ##   COLOR  = 5
Izaak Alpert's avatar
Izaak Alpert committed
57
    # default_theme: 2 # default: 2
Izaak Alpert's avatar
Izaak Alpert committed
58

59 60 61 62 63 64 65 66 67 68
    ## Users can create accounts
    # This also allows normal users to sign up for accounts themselves
    # default: false - By default GitLab administrators must create all new accounts
    # signup_enabled: true

    ## Standard login settings
    # The standard login can be disabled to force login via LDAP
    # default: true - If set to false the standard login form won't be shown on the sign-in page
    # signin_enabled: false

69 70
    # Restrict setting visibility levels for non-admin users.
    # The default is to allow all levels.
71
    # restricted_visibility_levels: [ "public" ]
72

73
    ## Automatic issue closing
Sytse Sijbrandij's avatar
Sytse Sijbrandij committed
74
    # If a commit message matches this regular expression, all issues referenced from the matched text will be closed.
Julien Kirch's avatar
Julien Kirch committed
75
    # This happens when the commit is pushed or merged into the default branch of a project.
Sytse Sijbrandij's avatar
Sytse Sijbrandij committed
76
    # When not specified the default issue_closing_pattern as specified below will be used.
77
    # Tip: you can test your closing pattern at http://rubular.com
78
    # issue_closing_pattern: '([Cc]lose[sd]|[Ff]ixe[sd]) #(\d+)'
79

80 81 82 83 84
    ## Default project features settings
    default_projects_features:
      issues: true
      merge_requests: true
      wiki: true
85
      snippets: false
86
      visibility_level: "private"  # can be "private" | "internal" | "public"
87

88 89 90 91
    ## Webhook settings
    # Number of seconds to wait for HTTP response after sending webhook HTTP POST request (default: 10)
    # webhook_timeout: 10

92 93
    ## Repository downloads directory
    # When a user clicks e.g. 'Download zip' on a project, a temporary zip file is created in the following directory.
94
    # The default is 'tmp/repositories' relative to the root of the Rails app.
95 96
    # repository_downloads_path: tmp/repositories

97
  ## External issues trackers
98
  issues_tracker:
99
    # redmine:
100
    #   title: "Redmine"
101 102 103 104 105
    #   ## If not nil, link 'Issues' on project page will be replaced with this
    #   ## Use placeholders:
    #   ##  :project_id        - GitLab project identifier
    #   ##  :issues_tracker_id - Project Name or Id in external issue tracker
    #   project_url: "http://redmine.sample/projects/:issues_tracker_id"
106
    #
107 108 109 110 111 112
    #   ## If not nil, links from /#\d/ entities from commit messages will replaced with this
    #   ## Use placeholders:
    #   ##  :project_id        - GitLab project identifier
    #   ##  :issues_tracker_id - Project Name or Id in external issue tracker
    #   ##  :id                - Issue id (from commit messages)
    #   issues_url: "http://redmine.sample/issues/:id"
113
    #
Philzen's avatar
Philzen committed
114
    #   ## If not nil, links to creating new issues will be replaced with this
115 116 117 118
    #   ## Use placeholders:
    #   ##  :project_id        - GitLab project identifier
    #   ##  :issues_tracker_id - Project Name or Id in external issue tracker
    #   new_issue_url: "http://redmine.sample/projects/:issues_tracker_id/issues/new"
119
    #
120
    # jira:
121
    #   title: "Atlassian Jira"
122 123 124
    #   project_url: "http://jira.sample/issues/?jql=project=:issues_tracker_id"
    #   issues_url: "http://jira.sample/browse/:id"
    #   new_issue_url: "http://jira.sample/secure/CreateIssue.jspa"
125

126
  ## Gravatar
127
  ## For Libravatar see: http://doc.gitlab.com/ce/customization/libravatar.html
128
  gravatar:
129
    enabled: true                 # Use user avatar image from Gravatar.com (default: true)
130
    # gravatar urls: possible placeholders: %{hash} %{size} %{email}
131 132
    # plain_url: "http://..."     # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon
    # ssl_url:   "https://..."    # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon
133 134 135 136 137 138

  #
  # 2. Auth settings
  # ==========================

  ## LDAP settings
139 140
  # You can inspect a sample of the LDAP users with login access by running:
  #   bundle exec rake gitlab:ldap:check RAILS_ENV=production
141 142
  ldap:
    enabled: false
143
    servers:
144
      main: # 'main' is the GitLab 'provider ID' of this LDAP server
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
        ## label
        #
        # A human-friendly name for your LDAP server. It is OK to change the label later,
        # for instance if you find out it is too large to fit on the web page.
        #
        # Example: 'Paris' or 'Acme, Ltd.'
        label: 'LDAP'

        host: '_your_ldap_server'
        port: 636
        uid: 'sAMAccountName'
        method: 'ssl' # "tls" or "ssl" or "plain"
        bind_dn: '_the_full_dn_of_the_user_you_will_bind_with'
        password: '_the_password_of_the_bind_user'

        # This setting specifies if LDAP server is Active Directory LDAP server.
        # For non AD servers it skips the AD specific queries.
        # If your LDAP server is not AD, set this to false.
        active_directory: true

        # If allow_username_or_email_login is enabled, GitLab will ignore everything
        # after the first '@' in the LDAP username submitted by the user on login.
        #
        # Example:
        # - the user enters 'jane.doe@example.com' and 'p@ssw0rd' as LDAP credentials;
        # - GitLab queries the LDAP server with 'jane.doe' and 'p@ssw0rd'.
        #
        # If you are using "uid: 'userPrincipalName'" on ActiveDirectory you need to
        # disable this setting, because the userPrincipalName contains an '@'.
        allow_username_or_email_login: false

        # Base where we can search for users
        #
        #   Ex. ou=People,dc=gitlab,dc=example
        #
        base: ''

        # Filter LDAP users
        #
        #   Format: RFC 4515 http://tools.ietf.org/search/rfc4515
        #   Ex. (employeeType=developer)
        #
        #   Note: GitLab does not support omniauth-ldap's custom filter syntax.
        #
        user_filter: ''
190

191 192 193 194 195 196 197
      # GitLab EE only: add more LDAP servers
      # Choose an ID made of a-z and 0-9 . This ID will be stored in the database
      # so that GitLab can remember which LDAP server a user belongs to.
      # uswest2:
      #   label:
      #   host:
      #   ....
198 199


200
  ## OmniAuth settings
201
  omniauth:
202
    # Allow login via Twitter, Google, etc. using OmniAuth providers
203 204 205
    enabled: false

    # CAUTION!
206
    # This allows users to login without having a user account first (default: false).
207 208
    # User accounts will be created automatically when authentication was successful.
    allow_single_sign_on: false
209
    # Locks down those users until they have been cleared by the admin (default: true).
210 211 212
    block_auto_created_users: true

    ## Auth providers
213 214
    # Uncomment the following lines and fill in the data of the auth provider you want to use
    # If your favorite auth provider is not listed you can use others:
Drew Blessing's avatar
Drew Blessing committed
215
    # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations
216 217
    # The 'app_id' and 'app_secret' parameters are always passed as the first two
    # arguments, followed by optional 'args' which can be either a hash or an array.
dosire's avatar
dosire committed
218
    # Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html
219 220 221 222 223 224 225
    providers:
      # - { name: 'google_oauth2', app_id: 'YOUR APP ID',
      #     app_secret: 'YOUR APP SECRET',
      #     args: { access_type: 'offline', approval_prompt: '' } }
      # - { name: 'twitter', app_id: 'YOUR APP ID',
      #     app_secret: 'YOUR APP SECRET'}
      # - { name: 'github', app_id: 'YOUR APP ID',
226 227
      #     app_secret: 'YOUR APP SECRET',
      #     args: { scope: 'user:email' } }
228 229 230 231 232 233 234 235 236 237 238



  #
  # 3. Advanced settings
  # ==========================

  # GitLab Satellites
  satellites:
    # Relative paths are relative to Rails.root (default: tmp/repo_satellites/)
    path: /home/git/gitlab-satellites/
239
    timeout: 30
240 241 242 243 244

  ## Backup settings
  backup:
    path: "tmp/backups"   # Relative paths are relative to Rails.root (default: tmp/backups/)
    # keep_time: 604800   # default: 0 (forever) (in seconds)
245 246 247 248
    # upload:
    #   # Fog storage connection settings, see http://fog.io/storage/ .
    #   connection:
    #     provider: AWS
249
    #     region: eu-west-1
250 251 252 253
    #     aws_access_key_id: AKIAKIAKI
    #     aws_secret_access_key: 'secret123'
    #   # The remote 'directory' to store your backups. For S3, this would be the bucket name.
    #   remote_directory: 'my.s3.bucket'
254 255 256

  ## GitLab Shell settings
  gitlab_shell:
257 258
    path: /home/git/gitlab-shell/

259 260 261 262 263 264 265 266
    # REPOS_PATH MUST NOT BE A SYMLINK!!!
    repos_path: /home/git/repositories/
    hooks_path: /home/git/gitlab-shell/hooks/

    # Git over HTTP
    upload_pack: true
    receive_pack: true

267
    # If you use non-standard ssh port you need to specify it
268 269 270
    # ssh_port: 22

  ## Git settings
Riyad Preukschas's avatar
Riyad Preukschas committed
271
  # CAUTION!
272 273 274
  # Use the default values unless you really know what you are doing
  git:
    bin_path: /usr/bin/git
dosire's avatar
dosire committed
275 276 277
    # The next value is the maximum memory size grit can use
    # Given in number of bytes per git object (e.g. a commit)
    # This value can be increased if you have very large commits
278
    max_size: 20971520 # 20.megabytes
279
    # Git timeout to read a commit, in seconds
280 281
    timeout: 10

282 283 284 285
  #
  # 4. Extra customization
  # ==========================

286
  extra:
287 288 289
    ## Google analytics. Uncomment if you want it
    # google_analytics_id: '_your_tracking_id'

Sebastian Winkler's avatar
Sebastian Winkler committed
290 291 292 293
    ## Piwik analytics.
    # piwik_url: '_your_piwik_url'
    # piwik_site_id: '_your_piwik_site_id'

294
    ## Text under sign-in page (Markdown enabled)
295
    # sign_in_text: |
296 297 298
    #   ![Company Logo](http://www.companydomain.com/logo.png)
    #   [Learn more about CompanyName](http://www.companydomain.com/)

299
development:
300
  <<: *base
301 302

test:
303
  <<: *base
304 305 306 307 308
  gravatar:
    enabled: true
  gitlab:
    host: localhost
    port: 80
309 310

    # When you run tests we clone and setup gitlab-shell
311
    # In order to setup it correctly you need to specify
312
    # your system username you use to run GitLab
313
    # user: YOUR_USERNAME
314 315 316 317 318 319
  satellites:
    path: tmp/tests/gitlab-satellites/
  gitlab_shell:
    path: tmp/tests/gitlab-shell/
    repos_path: tmp/tests/repositories/
    hooks_path: tmp/tests/gitlab-shell/hooks/
320 321
  issues_tracker:
    redmine:
322
      title: "Redmine"
323
      project_url: "http://redmine/projects/:issues_tracker_id"
324
      issues_url: "http://redmine/:project_id/:issues_tracker_id/:id"
325
      new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new"
326 327 328
  ldap:
    enabled: false
    servers:
329
      main:
330 331 332 333 334 335 336 337 338 339
        label: ldap
        host: 127.0.0.1
        port: 3890
        uid: 'uid'
        method: 'plain' # "tls" or "ssl" or "plain"
        base: 'dc=example,dc=com'
        user_filter: ''
        group_base: 'ou=groups,dc=example,dc=com'
        admin_group: ''
        sync_ssh_keys: false
340 341

staging:
342
  <<: *base