= form_for @application_setting, url: admin_application_settings_path, html: { class: 'form-horizontal fieldset-form' } do |f| = form_errors(@application_setting) %fieldset %legend Visibility and Access Controls .form-group = f.label :default_branch_protection, class: 'control-label col-sm-2' .col-sm-10 = f.select :default_branch_protection, options_for_select(Gitlab::Access.protection_options, @application_setting.default_branch_protection), {}, class: 'form-control' .form-group.project-visibility-level-holder = f.label :default_project_visibility, class: 'control-label col-sm-2' .col-sm-10 = render('shared/visibility_radios', model_method: :default_project_visibility, form: f, selected_level: @application_setting.default_project_visibility, form_model: Project.new) .form-group.project-visibility-level-holder = f.label :default_snippet_visibility, class: 'control-label col-sm-2' .col-sm-10 = render('shared/visibility_radios', model_method: :default_snippet_visibility, form: f, selected_level: @application_setting.default_snippet_visibility, form_model: ProjectSnippet.new) .form-group.project-visibility-level-holder = f.label :default_group_visibility, class: 'control-label col-sm-2' .col-sm-10 = render('shared/visibility_radios', model_method: :default_group_visibility, form: f, selected_level: @application_setting.default_group_visibility, form_model: Group.new) .form-group = f.label :restricted_visibility_levels, class: 'control-label col-sm-2' .col-sm-10 - restricted_level_checkboxes('restricted-visibility-help').each do |level| .checkbox = level %span.help-block#restricted-visibility-help Selected levels cannot be used by non-admin users for projects or snippets. If the public level is restricted, user profiles are only visible to logged in users. .form-group = f.label :import_sources, class: 'control-label col-sm-2' .col-sm-10 - import_sources_checkboxes('import-sources-help').each do |source| .checkbox= source %span.help-block#import-sources-help Enabled sources for code import during project creation. OmniAuth must be configured for GitHub = link_to "(?)", help_page_path("integration/github") , Bitbucket = link_to "(?)", help_page_path("integration/bitbucket") and GitLab.com = link_to "(?)", help_page_path("integration/gitlab") .form-group %label.control-label.col-sm-2 Enabled Git access protocols .col-sm-10 = select(:application_setting, :enabled_git_access_protocol, [['Both SSH and HTTP(S)', nil], ['Only SSH', 'ssh'], ['Only HTTP(S)', 'http']], {}, class: 'form-control') %span.help-block#clone-protocol-help Allow only the selected protocols to be used for Git access. %fieldset %legend Account and Limit Settings .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :gravatar_enabled do = f.check_box :gravatar_enabled Gravatar enabled .form-group = f.label :default_projects_limit, class: 'control-label col-sm-2' .col-sm-10 = f.number_field :default_projects_limit, class: 'form-control' .form-group = f.label :max_attachment_size, 'Maximum attachment size (MB)', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :max_attachment_size, class: 'form-control' .form-group = f.label :session_expire_delay, 'Session duration (minutes)', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :session_expire_delay, class: 'form-control' %span.help-block#session_expire_delay_help_block GitLab restart is required to apply changes .form-group = f.label :user_oauth_applications, 'User OAuth applications', class: 'control-label col-sm-2' .col-sm-10 .checkbox = f.label :user_oauth_applications do = f.check_box :user_oauth_applications Allow users to register any application to use GitLab as an OAuth provider .form-group = f.label :user_default_external, 'New users set to external', class: 'control-label col-sm-2' .col-sm-10 .checkbox = f.label :user_default_external do = f.check_box :user_default_external Newly registered users will by default be external %fieldset %legend Sign-up Restrictions .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :signup_enabled do = f.check_box :signup_enabled Sign-up enabled .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :send_user_confirmation_email do = f.check_box :send_user_confirmation_email Send confirmation email on sign-up .form-group = f.label :domain_whitelist, 'Whitelisted domains for sign-ups', class: 'control-label col-sm-2' .col-sm-10 = f.text_area :domain_whitelist_raw, placeholder: 'domain.com', class: 'form-control', rows: 8 .help-block ONLY users with e-mail addresses that match these domain(s) will be able to sign-up. Wildcards allowed. Use separate lines for multiple entries. Ex: domain.com, *.domain.com .form-group = f.label :domain_blacklist_enabled, 'Domain Blacklist', class: 'control-label col-sm-2' .col-sm-10 .checkbox = f.label :domain_blacklist_enabled do = f.check_box :domain_blacklist_enabled Enable domain blacklist for sign ups .form-group .col-sm-offset-2.col-sm-10 .radio = label_tag :blacklist_type_file do = radio_button_tag :blacklist_type, :file .option-title Upload blacklist file .radio = label_tag :blacklist_type_raw do = radio_button_tag :blacklist_type, :raw, @application_setting.domain_blacklist.present? || @application_setting.domain_blacklist.blank? .option-title Enter blacklist manually .form-group.blacklist-file = f.label :domain_blacklist_file, 'Blacklist file', class: 'control-label col-sm-2' .col-sm-10 = f.file_field :domain_blacklist_file, class: 'form-control', accept: '.txt,.conf' .help-block Users with e-mail addresses that match these domain(s) will NOT be able to sign-up. Wildcards allowed. Use separate lines or commas for multiple entries. .form-group.blacklist-raw = f.label :domain_blacklist, 'Blacklisted domains for sign-ups', class: 'control-label col-sm-2' .col-sm-10 = f.text_area :domain_blacklist_raw, placeholder: 'domain.com', class: 'form-control', rows: 8 .help-block Users with e-mail addresses that match these domain(s) will NOT be able to sign-up. Wildcards allowed. Use separate lines for multiple entries. Ex: domain.com, *.domain.com .form-group = f.label :after_sign_up_text, class: 'control-label col-sm-2' .col-sm-10 = f.text_area :after_sign_up_text, class: 'form-control', rows: 4 .help-block Markdown enabled %fieldset %legend Sign-in Restrictions .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :signin_enabled do = f.check_box :signin_enabled Sign-in enabled - if omniauth_enabled? && button_based_providers.any? .form-group = f.label :enabled_oauth_sign_in_sources, 'Enabled OAuth Sign-In sources', class: 'control-label col-sm-2' .col-sm-10 .btn-group{ data: { toggle: 'buttons' } } - oauth_providers_checkboxes.each do |source| = source .form-group = f.label :two_factor_authentication, 'Two-factor authentication', class: 'control-label col-sm-2' .col-sm-10 .checkbox = f.label :require_two_factor_authentication do = f.check_box :require_two_factor_authentication Require all users to setup Two-factor authentication .form-group = f.label :two_factor_authentication, 'Two-factor grace period (hours)', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :two_factor_grace_period, min: 0, class: 'form-control', placeholder: '0' .help-block Amount of time (in hours) that users are allowed to skip forced configuration of two-factor authentication .form-group = f.label :home_page_url, 'Home page URL', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :home_page_url, class: 'form-control', placeholder: 'http://company.example.com', :'aria-describedby' => 'home_help_block' %span.help-block#home_help_block We will redirect non-logged in users to this page .form-group = f.label :after_sign_out_path, class: 'control-label col-sm-2' .col-sm-10 = f.text_field :after_sign_out_path, class: 'form-control', placeholder: 'http://company.example.com', :'aria-describedby' => 'after_sign_out_path_help_block' %span.help-block#after_sign_out_path_help_block We will redirect users to this page after they sign out .form-group = f.label :sign_in_text, class: 'control-label col-sm-2' .col-sm-10 = f.text_area :sign_in_text, class: 'form-control', rows: 4 .help-block Markdown enabled .form-group = f.label :help_page_text, class: 'control-label col-sm-2' .col-sm-10 = f.text_area :help_page_text, class: 'form-control', rows: 4 .help-block Markdown enabled %fieldset %legend Continuous Integration .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :shared_runners_enabled do = f.check_box :shared_runners_enabled Enable shared runners for new projects .form-group = f.label :shared_runners_text, class: 'control-label col-sm-2' .col-sm-10 = f.text_area :shared_runners_text, class: 'form-control', rows: 4 .help-block Markdown enabled .form-group = f.label :max_artifacts_size, 'Maximum artifacts size (MB)', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :max_artifacts_size, class: 'form-control' .help-block Set the maximum file size each jobs's artifacts can have = link_to "(?)", help_page_path("user/admin_area/settings/continuous_integration", anchor: "maximum-artifacts-size") - if Gitlab.config.registry.enabled %fieldset %legend Container Registry .form-group = f.label :container_registry_token_expire_delay, 'Authorization token duration (minutes)', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :container_registry_token_expire_delay, class: 'form-control' %fieldset %legend Metrics %p Setup InfluxDB to measure a wide variety of statistics like the time spent in running SQL queries. These settings require a = link_to 'restart', help_page_path('administration/restart_gitlab') to take effect. = link_to icon('question-circle'), help_page_path('administration/monitoring/performance/introduction') .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :metrics_enabled do = f.check_box :metrics_enabled Enable InfluxDB Metrics .form-group = f.label :metrics_host, 'InfluxDB host', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :metrics_host, class: 'form-control', placeholder: 'influxdb.example.com' .form-group = f.label :metrics_port, 'InfluxDB port', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :metrics_port, class: 'form-control', placeholder: '8089' .help-block The UDP port to use for connecting to InfluxDB. InfluxDB requires that your server configuration specifies a database to store data in when sending messages to this port, without it metrics data will not be saved. .form-group = f.label :metrics_pool_size, 'Connection pool size', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :metrics_pool_size, class: 'form-control' .help-block The amount of InfluxDB connections to open. Connections are opened lazily. Users using multi-threaded application servers should ensure enough connections are available (at minimum the amount of application server threads). .form-group = f.label :metrics_timeout, 'Connection timeout', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :metrics_timeout, class: 'form-control' .help-block The amount of seconds after which an InfluxDB connection will time out. .form-group = f.label :metrics_method_call_threshold, 'Method Call Threshold (ms)', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :metrics_method_call_threshold, class: 'form-control' .help-block A method call is only tracked when it takes longer to complete than the given amount of milliseconds. .form-group = f.label :metrics_sample_interval, 'Sampler Interval (sec)', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :metrics_sample_interval, class: 'form-control' .help-block The sampling interval in seconds. Sampled data includes memory usage, retained Ruby objects, file descriptors and so on. .form-group = f.label :metrics_packet_size, 'Metrics per packet', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :metrics_packet_size, class: 'form-control' .help-block The amount of points to store in a single UDP packet. More points results in fewer but larger UDP packets being sent. %fieldset %legend Background Jobs %p These settings require a restart to take effect. .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :sidekiq_throttling_enabled do = f.check_box :sidekiq_throttling_enabled Enable Sidekiq Job Throttling .help-block Limit the amount of resources slow running jobs are assigned. .form-group = f.label :sidekiq_throttling_queues, 'Sidekiq queues to throttle', class: 'control-label col-sm-2' .col-sm-10 = f.select :sidekiq_throttling_queues, sidekiq_queue_options_for_select, { include_hidden: false }, multiple: true, class: 'select2 select-wide', data: { field: 'sidekiq_throttling_queues' } .help-block Choose which queues you wish to throttle. .form-group = f.label :sidekiq_throttling_factor, 'Throttling Factor', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :sidekiq_throttling_factor, class: 'form-control', min: '0.01', max: '0.99', step: '0.01' .help-block The factor by which the queues should be throttled. A value between 0.0 and 1.0, exclusive. %fieldset %legend Spam and Anti-bot Protection .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :recaptcha_enabled do = f.check_box :recaptcha_enabled Enable reCAPTCHA %span.help-block#recaptcha_help_block Helps prevent bots from creating accounts .form-group = f.label :recaptcha_site_key, 'reCAPTCHA Site Key', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :recaptcha_site_key, class: 'form-control' .help-block Generate site and private keys at %a{ href: 'http://www.google.com/recaptcha', target: 'blank' } http://www.google.com/recaptcha .form-group = f.label :recaptcha_private_key, 'reCAPTCHA Private Key', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :recaptcha_private_key, class: 'form-control' .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :akismet_enabled do = f.check_box :akismet_enabled Enable Akismet %span.help-block#akismet_help_block Helps prevent bots from creating issues .form-group = f.label :akismet_api_key, 'Akismet API Key', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :akismet_api_key, class: 'form-control' .help-block Generate API key at %a{ href: 'http://www.akismet.com', target: 'blank' } http://www.akismet.com %fieldset %legend Abuse reports .form-group = f.label :admin_notification_email, 'Abuse reports notification email', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :admin_notification_email, class: 'form-control' .help-block Abuse reports will be sent to this address if it is set. Abuse reports are always available in the admin area. %fieldset %legend Error Reporting and Logging %p These settings require a restart to take effect. .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :sentry_enabled do = f.check_box :sentry_enabled Enable Sentry .help-block Sentry is an error reporting and logging tool which is currently not shipped with GitLab, get it here: %a{ href: 'https://getsentry.com', target: '_blank' } https://getsentry.com .form-group = f.label :sentry_dsn, 'Sentry DSN', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :sentry_dsn, class: 'form-control' %fieldset %legend Repository Storage .form-group = f.label :repository_storages, 'Storage paths for new projects', class: 'control-label col-sm-2' .col-sm-10 = f.select :repository_storages, repository_storages_options_for_select, {include_hidden: false}, multiple: true, class: 'form-control' .help-block Manage repository storage paths. Learn more in the = succeed "." do = link_to "repository storages documentation", help_page_path("administration/repository_storages") %fieldset %legend Repository Checks .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :repository_checks_enabled do = f.check_box :repository_checks_enabled Enable Repository Checks .help-block GitLab will periodically run %a{ href: 'https://www.kernel.org/pub/software/scm/git/docs/git-fsck.html', target: 'blank' } 'git fsck' in all project and wiki repositories to look for silent disk corruption issues. .form-group .col-sm-offset-2.col-sm-10 = link_to 'Clear all repository checks', clear_repository_check_states_admin_application_settings_path, data: { confirm: 'This will clear repository check states for ALL projects in the database. This cannot be undone. Are you sure?' }, method: :put, class: "btn btn-sm btn-remove" .help-block If you got a lot of false alarms from repository checks you can choose to clear all repository check information from the database. %fieldset %legend Koding .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :koding_enabled do = f.check_box :koding_enabled Enable Koding .form-group = f.label :koding_url, 'Koding URL', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :koding_url, class: 'form-control', placeholder: 'http://gitlab.your-koding-instance.com:8090' .help-block Koding has integration enabled out of the box for the %strong gitlab team, and you need to provide that team's URL here. Learn more in the = succeed "." do = link_to "Koding administration documentation", help_page_path("administration/integration/koding") %fieldset %legend PlantUML .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :plantuml_enabled do = f.check_box :plantuml_enabled Enable PlantUML .form-group = f.label :plantuml_url, 'PlantUML URL', class: 'control-label col-sm-2' .col-sm-10 = f.text_field :plantuml_url, class: 'form-control', placeholder: 'http://gitlab.your-plantuml-instance.com:8080' .help-block Allow rendering of = link_to "PlantUML", "http://plantuml.com" diagrams in Asciidoc documents using an external PlantUML service. %fieldset %legend Usage statistics .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :version_check_enabled do = f.check_box :version_check_enabled Version check enabled .help-block Let GitLab inform you when an update is available. %fieldset %legend Email .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :email_author_in_body do = f.check_box :email_author_in_body Include author name in notification email body .help-block Some email servers do not support overriding the email sender name. Enable this option to include the name of the author of the issue, merge request or comment in the email body instead. .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :html_emails_enabled do = f.check_box :html_emails_enabled Enable HTML emails .help-block By default GitLab sends emails in HTML and plain text formats so mail clients can choose what format to use. Disable this option if you only want to send emails in plain text format. %fieldset %legend Automatic Git repository housekeeping .form-group .col-sm-offset-2.col-sm-10 .checkbox = f.label :housekeeping_enabled do = f.check_box :housekeeping_enabled Enable automatic repository housekeeping (git repack, git gc) .help-block If you keep automatic housekeeping disabled for a long time Git repository access on your GitLab server will become slower and your repositories will use more disk space. We recommend to always leave this enabled. .checkbox = f.label :housekeeping_bitmaps_enabled do = f.check_box :housekeeping_bitmaps_enabled Enable Git pack file bitmap creation .help-block Creating pack file bitmaps makes housekeeping take a little longer but bitmaps should accelerate 'git clone' performance. .form-group = f.label :housekeeping_incremental_repack_period, 'Incremental repack period', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :housekeeping_incremental_repack_period, class: 'form-control' .help-block Number of Git pushes after which an incremental 'git repack' is run. .form-group = f.label :housekeeping_full_repack_period, 'Full repack period', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :housekeeping_full_repack_period, class: 'form-control' .help-block Number of Git pushes after which a full 'git repack' is run. .form-group = f.label :housekeeping_gc_period, 'Git GC period', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :housekeeping_gc_period, class: 'form-control' .help-block Number of Git pushes after which 'git gc' is run. %fieldset %legend Web terminal .form-group = f.label :terminal_max_session_time, 'Max session time', class: 'control-label col-sm-2' .col-sm-10 = f.number_field :terminal_max_session_time, class: 'form-control' .help-block Maximum time for web terminal websocket connection (in seconds). Set to 0 for unlimited time. .form-actions = f.submit 'Save', class: 'btn btn-save'