gitlab.yml.erb 10.8 KB
# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.

production: &base
  #
  # 1. GitLab app settings
  # ==========================

  ## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: <%= @gitlab_host %>
    port: <%= @gitlab_port %>
    https: <%= @gitlab_https %>

    # Uncomment and customize the last line to run in a non-root path
    # WARNING: We recommend creating a FQDN to host GitLab in a root path instead of this. 
    # Note that four settings need to be changed for this to work.
    # 1) In your application.rb file: config.relative_url_root = "/gitlab"
    # 2) In your gitlab.yml file: relative_url_root: /gitlab
    # 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
    # 4) In ../gitlab-shell/config.yml: gitlab_url: "http://127.0.0.1/gitlab"
    # relative_url_root: /gitlab

    # Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
    user: <%= node['gitlab']['user']['username'] %>

    ## Email settings
    # Email address used in the "From" field in mails sent by GitLab
    email_from: <%= @gitlab_email_from %>

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

    ## User settings
    default_projects_limit: <%= @gitlab_default_projects_limit %>
    default_can_create_group: <%= @gitlab_default_can_create_group %>  # default: true
    username_changing_enabled: <%= @gitlab_username_changing_enabled %> # default: true - User can change her username/namespace
    ## Default theme
    ##   BASIC  = 1
    ##   MARS   = 2
    ##   MODERN = 3
    ##   GRAY   = 4
    ##   COLOR  = 5
    default_theme: <%= @gitlab_default_theme %> # default: 2


    ## Users management
    # default: false - Account passwords are not sent via the email if signup is enabled. 
    signup_enabled: <%= @gitlab_signup_enabled %>
    #
    # default: true - If set to false, standard login form won't be shown on the sign-in page
    signin_enabled: <%= @gitlab_signin_enabled %>


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

    ## Automatic issue closing
    # If a commit message matches this regular expression, all issues referenced from the matched text will be closed.
    # This happens when the commit is pushed or merged into the default branch of a project.
    # When not specified the default issue_closing_pattern as specified below will be used.
    # issue_closing_pattern: '([Cc]lose[sd]|[Ff]ixe[sd]) +#\d+'

    ## Default project features settings
    default_projects_features:
      issues: <%= @gitlab_default_projects_features_issues %>
      merge_requests: <%= @gitlab_default_projects_features_merge_requests %>
      wiki: <%= @gitlab_default_projects_features_wiki %>
      snippets: <%= @gitlab_default_projects_features_snippets %>
      visibility_level: "<%= @gitlab_default_projects_features_visibility_level %>"  # can be "private" | "internal" | "public"

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

  ## External issues trackers
  issues_tracker:
    <% if @issues_tracker_redmine %>
    redmine:
      title: "<%= @issues_tracker_redmine_title %>"
      ## 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: "<%= @issues_tracker_redmine_project_url %>"

      ## 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: "<%= @issues_tracker_redmine_issues_url %>"

      ## If not nil, linkis to creating new issues will be replaced with this
      ## Use placeholders:
      ##  :project_id        - GitLab project identifier
      ##  :issues_tracker_id - Project Name or Id in external issue tracker
      new_issue_url: "<%= @issues_tracker_redmine_new_issue_url %>"
    <% end %>

    <% if @issues_tracker_jira %>
    jira:
      title: "<%= @issues_tracker_jira_title %>"
      project_url: "<%= @issues_tracker_jira_project_url %>"
      issues_url: "<%= @issues_tracker_jira_issues_url %>"
      new_issue_url: "<%= @issues_tracker_jira_new_issue_url %>"
    <% end %>

  ## Gravatar
  gravatar:
    enabled: <%= @gravatar_enabled %>            # Use user avatar image from Gravatar.com (default: true)
    # gravatar urls: possible placeholders: %{hash} %{size} %{email}
    plain_url: <%= single_quote(@gravatar_plain_url) %>     # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm
    ssl_url:   <%= single_quote(@gravatar_ssl_url) %>    # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm

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

  ## LDAP settings
  # You can inspect a sample of the LDAP users with login access by running:
  #   bundle exec rake gitlab:ldap:check RAILS_ENV=production
  ldap:
    enabled: <%= @ldap_enabled %>
    host: <%= single_quote(@ldap_host) %>
    port: <%= @ldap_port %>
    uid: <%= single_quote(@ldap_uid) %>
    method: <%= single_quote(@ldap_method) %> # "tls" or "ssl" or "plain"
    bind_dn: <%= single_quote(@ldap_bind_dn) %>
    password: <%= single_quote(@ldap_password) %>
    # 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: <%= @ldap_allow_username_or_email_login %>

    # Base where we can search for users
    #
    #   Ex. ou=People,dc=gitlab,dc=example
    #
    base: <%= single_quote(@ldap_base) %>

    # Filter LDAP users
    #
    #   Format: RFC 4515
    #   Ex. (employeeType=developer)
    #
    user_filter: <%= single_quote(@ldap_user_filter) %>

    # Base where we can search for groups
    #
    #   Ex. ou=Groups,dc=gitlab,dc=example
    #
    group_base: <%= single_quote(@ldap_group_base) %>

    admin_group: <%= single_quote(@ldap_admin_group) %>


  ## OmniAuth settings
  omniauth:
    # Allow login via Twitter, Google, etc. using OmniAuth providers
    enabled: <%= @omniauth_enabled %>

    # CAUTION!
    # This allows users to login without having a user account first (default: false).
    # User accounts will be created automatically when authentication was successful.
    allow_single_sign_on: <%= @omniauth_allow_single_sign_on %>
    # Locks down those users until they have been cleared by the admin (default: true).
    block_auto_created_users: <%= @omniauth_block_auto_created_users %>

    ## Auth providers
    # 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:
    # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Working-custom-omniauth-provider-configurations
    # 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.
    # Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html
    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',
      #     app_secret: 'YOUR APP SECRET',
      #     args: { scope: 'user:email' } }
<% @omniauth_providers.each do |provider| %>
      - <%= provider.to_json %>
<% end %>



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

  # GitLab Satellites
  satellites:
    # Relative paths are relative to Rails.root (default: tmp/repo_satellites/)
    path: <%= @satellites_path %>

  ## Backup settings
  backup:
    path: "<%= @backup_path %>"   # Relative paths are relative to Rails.root (default: tmp/backups/)
    keep_time: <%= @backup_keep_time %>   # default: 0 (forever) (in seconds)

  ## GitLab Shell settings
  gitlab_shell:
    path: <%= @gitlab_shell_path %>

    # REPOS_PATH MUST NOT BE A SYMLINK!!!
    repos_path: <%= @gitlab_shell_repos_path %>
    hooks_path: <%= @gitlab_shell_hooks_path %>

    # Git over HTTP
    upload_pack: <%= @gitlab_shell_upload_pack %>
    receive_pack: <%= @gitlab_shell_receive_pack %>

    # If you use non-standard ssh port you need to specify it
    ssh_port: <%= @gitlab_shell_ssh_port %>

  ## Git settings
  # CAUTION!
  # Use the default values unless you really know what you are doing
  git:
    bin_path: <%= @git_bin_path %>
    # 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
    max_size: <%= @git_max_size %> # 5.megabytes
    # Git timeout to read a commit, in seconds
    timeout: <%= @git_timeout %>

  #
  # 4. Extra customization
  # ==========================

  extra:
    <% if @extra_google_analytics_id %>
    ## Google analytics. Uncomment if you want it
    google_analytics_id: <%= single_quote(@extra_google_analytics_id) %>
    <% end %>

    <% if @extra_piwik_url %>
    ## Piwik analytics.
    piwik_url: <%= single_quote(@extra_piwik_url) %>
    piwik_site_id: <%= single_quote(@extra_piwik_site_id) %>
    <% end %>

    <% if @extra_sign_in_text %>
    ## Text under sign-in page (Markdown enabled)
    sign_in_text: |
    <% @extra_sign_in_text.to_s.split("\n").each do |line| %>
      <%= line %>
    <% end %>
    <% end %>

development:
  <<: *base

test:
  <<: *base
  gravatar:
    enabled: true
  gitlab:
    host: localhost
    port: 80
  issues_tracker:
    redmine:
      title: "Redmine"
      project_url: "http://redmine/projects/:issues_tracker_id"
      issues_url: "http://redmine/:project_id/:issues_tracker_id/:id"
      new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new"

staging:
  <<: *base