gitlab.yml.example 12.4 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 36 37
    # relative_url_root: /gitlab

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

    ## Email settings
    # Email address used in the "From" field in mails sent by GitLab
38
    email_from: example@example.com
39

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

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

54 55 56 57 58 59 60 61 62 63
    ## 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

64 65
    # Restrict setting visibility levels for non-admin users.
    # The default is to allow all levels.
66
    # restricted_visibility_levels: [ "public" ]
67

68
    ## Automatic issue closing
Sytse Sijbrandij's avatar
Sytse Sijbrandij committed
69
    # 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
70
    # This happens when the commit is pushed or merged into the default branch of a project.
Sytse Sijbrandij's avatar
Sytse Sijbrandij committed
71
    # When not specified the default issue_closing_pattern as specified below will be used.
72
    # Tip: you can test your closing pattern at http://rubular.com
73
    # issue_closing_pattern: '([Cc]lose[sd]|[Ff]ixe[sd]) #(\d+)'
74

75 76 77 78 79
    ## Default project features settings
    default_projects_features:
      issues: true
      merge_requests: true
      wiki: true
80
      snippets: false
81
      visibility_level: "private"  # can be "private" | "internal" | "public"
82

83 84 85 86
    ## Webhook settings
    # Number of seconds to wait for HTTP response after sending webhook HTTP POST request (default: 10)
    # webhook_timeout: 10

87 88
    ## Repository downloads directory
    # When a user clicks e.g. 'Download zip' on a project, a temporary zip file is created in the following directory.
89
    # The default is 'tmp/repositories' relative to the root of the Rails app.
90 91
    # repository_downloads_path: tmp/repositories

92
  ## External issues trackers
93
  issues_tracker:
94
    # redmine:
95
    #   title: "Redmine"
96 97 98 99 100
    #   ## 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"
101
    #
102 103 104 105 106 107
    #   ## 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"
108
    #
Philzen's avatar
Philzen committed
109
    #   ## If not nil, links to creating new issues will be replaced with this
110 111 112 113
    #   ## 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"
114
    #
115
    # jira:
116
    #   title: "Atlassian Jira"
117 118 119
    #   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"
120

121 122
  ## Gravatar
  gravatar:
123
    enabled: true                 # Use user avatar image from Gravatar.com (default: true)
124
    # gravatar urls: possible placeholders: %{hash} %{size} %{email}
125 126
    # 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
127 128 129 130 131 132

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

  ## LDAP settings
133 134
  # You can inspect a sample of the LDAP users with login access by running:
  #   bundle exec rake gitlab:ldap:check RAILS_ENV=production
135 136
  ldap:
    enabled: false
137 138 139 140 141 142 143 144 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 190 191 192 193 194 195 196
    servers:
      -
        ## provider_id
        #
        # This identifier is used by GitLab to keep track of which LDAP server each
        # GitLab user belongs to. Each LDAP server known to GitLab should have a unique
        # provider_id. This identifier cannot be changed once users from the LDAP server
        # have started logging in to GitLab.
        #
        # Format: one word, using a-z (lower case) and 0-9
        # Example: 'paris' or 'uswest2'

        provider_id: main

        ## 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: ''
197

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

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

    ## Auth providers
211 212
    # 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
213
    # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations
214 215
    # 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
216
    # Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html
217 218 219 220 221 222 223
    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',
224 225
      #     app_secret: 'YOUR APP SECRET',
      #     args: { scope: 'user:email' } }
226 227 228 229 230 231 232 233 234 235 236



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

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

  ## Backup settings
  backup:
    path: "tmp/backups"   # Relative paths are relative to Rails.root (default: tmp/backups/)
    # keep_time: 604800   # default: 0 (forever) (in seconds)
243 244 245 246
    # upload:
    #   # Fog storage connection settings, see http://fog.io/storage/ .
    #   connection:
    #     provider: AWS
247
    #     region: eu-west-1
248 249 250 251
    #     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'
252 253 254

  ## GitLab Shell settings
  gitlab_shell:
255 256
    path: /home/git/gitlab-shell/

257 258 259 260 261 262 263 264
    # 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

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

  ## Git settings
Riyad Preukschas's avatar
Riyad Preukschas committed
269
  # CAUTION!
270 271 272
  # Use the default values unless you really know what you are doing
  git:
    bin_path: /usr/bin/git
dosire's avatar
dosire committed
273 274 275
    # 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
276
    max_size: 20971520 # 20.megabytes
277
    # Git timeout to read a commit, in seconds
278 279
    timeout: 10

280 281 282 283
  #
  # 4. Extra customization
  # ==========================

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

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

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

297
development:
298
  <<: *base
299 300

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

    # When you run tests we clone and setup gitlab-shell
309
    # In order to setup it correctly you need to specify
310
    # your system username you use to run GitLab
311
    # user: YOUR_USERNAME
312 313 314 315 316 317
  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/
318 319
  issues_tracker:
    redmine:
320
      title: "Redmine"
321
      project_url: "http://redmine/projects/:issues_tracker_id"
322
      issues_url: "http://redmine/:project_id/:issues_tracker_id/:id"
323
      new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new"
324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
  ldap:
    enabled: false
    servers:
      -
        provider_id: main
        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
339 340

staging:
341
  <<: *base