2014-12-26 21:54:36 +00:00
< div class = "config-setup-tool-element" >
<!-- Basic Configuration -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< i class = "fa fa-gears" > < / i > Basic Configuration
< / div >
< div class = "co-panel-body" >
< table class = "config-table" >
< tr >
< td > Enterprise Logo URL:< / td >
< td >
< span class = "config-string-field" binding = "config.ENTERPRISE_LOGO_URL"
placeholder="URL of a logo to use for your enterprise">< / span >
< div class = "help-text" >
This is optional. If not specified, the default logo will be used.
< / div >
< / td >
< td >
< img ng-src = "{{ config.ENTERPRISE_LOGO_URL }}" >
< / td >
< / tr >
< tr >
< td class = "non-input" > Contact Information:< / td >
< td colspan = "2" >
< span class = "config-list-field" binding = "config.CONTACT_INFO" item-title = "Contact URL"
placeholder="Add contact information">< / span >
< div class = "help-text" style = "margin-top: 10px;" >
Information to show in the Contact Page. If none specified, CoreOS contact information
is displayed.
< / div >
< div class = "help-text" >
< table class = "inner-table" >
< tr > < td > < i class = "fa fa-envelope" > < / i > E-mail< / td > < td > mailto:some@email.com< / td > < / tr >
< tr > < td > < i class = "fa fa-comment" > < / i > IRC< / td > < td > irc://server:port/channel< / td > < / tr >
< tr > < td > < i class = "fa fa-phone" > < / i > Telephone< / td > < td > tel:number< / td > < / tr >
< tr > < td > < i class = "fa fa-twitter" > < / i > Twitter< / td > < td > https://twitter.com/twitterhandle< / td > < / tr >
< tr > < td > < i class = "fa fa-ticket" > < / i > URL< / td > < td > http(s)://*< / td > < / tr >
< / table >
< / div >
< / td >
< / tr >
< tr >
< td > User Creation:< / td >
< td >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "ftuc" type = "checkbox" ng-model = "config.FEATURE_USER_CREATION" >
< label for = "ftuc" > Enable User Creation< / label >
< / div >
2014-12-26 21:54:36 +00:00
< div class = "help-text" >
If enabled, users can be created from the registry UI.
< / div >
< / td >
< / tr >
< tr >
< td > Build Support:< / td >
< td colspan = "2" >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "ftbs" type = "checkbox" ng-model = "config.FEATURE_BUILD_SUPPORT" >
< label for = "ftbs" > Enable Dockerfile Build< / label >
< / div >
2014-12-26 21:54:36 +00:00
< div class = "help-text" >
If enabled, users can submit Dockerfiles to be built and pushed by the Enterprise Registry.
< / div >
< div ng-if = "config.FEATURE_BUILD_SUPPORT" style = "margin-top: 10px" >
< strong > Note: Build workers are required for this feature.< / strong >
See < a href = "https://coreos.com/docs/enterprise-registry/build-support/" target = "_blank" > Adding Build Workers< / a > for instructions on how to setup build workers.
< / div >
< / td >
< / tr >
< / table >
< / div >
< / div >
<!-- Server Configuration -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< i class = "fa fa-cloud" > < / i > Server Configuration
< / div >
< div class = "co-panel-body" >
< table class = "config-table" >
< tr >
< td > Server hostname:< / td >
< td >
< span class = "config-string-field" binding = "config.SERVER_HOSTNAME"
2014-12-27 00:18:00 +00:00
placeholder="Hostname (and optional port if non-standard)">< / span >
2014-12-26 21:54:36 +00:00
< div class = "help-text" >
2014-12-27 00:18:00 +00:00
The HTTP host (and optionally the port number if a non-standard HTTP/HTTPS port) of the location
2014-12-26 21:54:36 +00:00
where the registry will be accessible on the network
< / div >
< / td >
< / tr >
< tr >
< td > SSL:< / td >
< td >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "enable-ssl" type = "checkbox" ng-model = "config.PREFERRED_URL_SCHEME"
ng-true-value="https" ng-false-value="http">
< label for = "enable-ssl" > Enable SSL< / label >
< / div >
< div class = "help-text" style = "margin-bottom: 10px" >
2014-12-26 21:54:36 +00:00
A valid SSL certificate and private key files are required to use this option.
< / div >
2014-12-27 00:18:00 +00:00
< table class = "config-table" ng-show = "config.PREFERRED_URL_SCHEME == 'https'" >
< tr >
< td class = "non-input" > Certificate:< / td >
< td >
< span class = "config-file-field" filename = "ssl.cert" > < / span >
< div class = "help-text" >
The certificate must be in PEM format.
< /div
< / td >
< / tr >
< tr >
< td class = "non-input" > Private key:< / td >
< td >
< span class = "config-file-field" filename = "ssl.key" > < / span >
< / td >
< / tr >
< / table >
2014-12-26 21:54:36 +00:00
< / td >
< / tr >
< / table >
< / div >
< / div >
<!-- Redis -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< img src = "/static/img/redis-small.png" > redis
< / div >
< div class = "co-panel-body" >
< div class = "description" >
< p > A < a href = "http://redis.io" target = "_blank" > redis< / a > key-value store is required for real-time events and build logs.< / p >
< / div >
< table class = "config-table" >
< tr >
< td > Redis hostname:< / td >
< td >
< span class = "config-string-field" binding = "mapped.redis.hostname"
placeholder="The redis server hostname">< / span >
< / td >
< / tr >
< tr >
< td > Redis port:< / td >
< td >
< span class = "config-numeric-field" binding = "mapped.redis.port" default-value = "6379" > < / span >
< div class = "help-text" >
Access to this port and hostname must be allowed from all hosts running
the enterprise registry
< / div >
< / td >
< / tr >
< tr >
< td > Redis password:< / td >
< td >
< span class = "config-string-field" binding = "mapped.redis.password"
placeholder="Optional password for connecting to redis">< / span >
< / td >
< / tr >
< / table >
< div class = "co-panel-button-bar" >
< button class = "btn btn-default" > < i class = "fa fa-sign-in" > < / i > Test Configuration< / button >
< / div >
< / div >
< / div > <!-- /Redis -->
<!-- Registry Storage -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< i class = "fa fa-download" > < / i > Registry Storage
< / div >
< div class = "co-panel-body" >
< div class = "description" >
< p >
Registry images can be stored either locally or in a remote storage system.
< strong > A remote storage system is required for high-avaliability systems.< / strong >
< / p >
< table class = "config-table" >
< tr >
< td class = "non-input" > Storage Engine:< / td >
< td >
< select ng-model = "config.DISTRIBUTED_STORAGE_CONFIG.local[0]" >
< option value = "LocalStorage" > Locally mounted directory< / option >
< option value = "S3Storage" > Amazon S3< / option >
< option value = "GoogleCloudStorage" > Google Cloud Storage< / option >
< option value = "RadosGWStorage" > Ceph Object Gateway (RADOS)< / option >
< / select >
< / td >
< / tr >
<!-- Storage Path -->
< tr >
< td > Storage Path:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].storage_path"
placeholder="Path under the volume or bucket">< / span >
< / td >
< / tr >
<!-- S3 -->
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'S3Storage'" >
< td > Access Key:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].s3_access_key"
placeholder="AWS access key">< / span >
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'S3Storage'" >
< td > Secret Key:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].s3_secret_key"
placeholder="AWS secret key">< / span >
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'S3Storage'" >
< td > Bucket Name:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].s3_bucket"
placeholder="S3 bucket name">< / span >
< / td >
< / tr >
<!-- GCS -->
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'GoogleCloudStorage'" >
< td > Access Key:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].access_key"
placeholder="GCS access key">< / span >
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'GoogleCloudStorage'" >
< td > Secret Key:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].secret_key"
placeholder="GCS secret key">< / span >
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'GoogleCloudStorage'" >
< td > Bucket Name:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].bucket_name"
placeholder="GCS bucket name">< / span >
< / td >
< / tr >
<!-- RADOS -->
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'" >
< td > Hostname:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].hostname"
placeholder="RADOS Hostname">< / span >
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'" >
< td > Is Secure:< / td >
< td >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "dsc-secure" type = "checkbox" ng-model = "config.DISTRIBUTED_STORAGE_CONFIG.local[1].is_secure" >
< label for = "dsc-secure" > Requires SSL< / label >
< / div >
2014-12-26 21:54:36 +00:00
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'" >
< td > Access Key:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].access_key"
placeholder="Access key">< / span >
< div class = "help-text" >
See < a href = "http://ceph.com/docs/master/radosgw/admin/" target = "_blank" >
RADOS Documentation
< / a > for more information
< / div >
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'" >
< td > Secret Key:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].secret_key"
placeholder="Secret key">< / span >
< / td >
< / tr >
< tr ng-show = "config.DISTRIBUTED_STORAGE_CONFIG.local[0] == 'RadosGWStorage'" >
< td > Bucket Name:< / td >
< td >
< span class = "config-string-field"
binding="config.DISTRIBUTED_STORAGE_CONFIG.local[1].bucket_name"
placeholder="Bucket name">< / span >
< / td >
< / tr >
< / table >
< / div >
< div class = "co-panel-button-bar" >
< button class = "btn btn-default" > < i class = "fa fa-sign-in" > < / i > Test Configuration< / button >
< / div >
< / div >
< / div >
<!-- E - mail -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< i class = "fa fa-envelope" > < / i > E-mail
< / div >
< div class = "co-panel-body" >
< div class = "description" >
< p > Valid e-mail server configuration is required for notification e-mails and the ability of
users to reset their passwords.< / p >
< / div >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "ftmail" type = "checkbox" ng-model = "config.FEATURE_MAILING" >
< label for = "ftmail" > Enable E-mails< / label >
< / div >
2014-12-26 21:54:36 +00:00
< table class = "config-table" ng-show = "config.FEATURE_MAILING" >
< tr >
< td > SMTP Server:< / td >
< td >
< span class = "config-string-field" binding = "config.MAIL_SERVER"
placeholder="SMTP server for sending e-mail">< / span >
< / td >
< / tr >
< tr >
< td > SMTP Server Port:< / td >
< td >
< span class = "config-numeric-field" binding = "config.MAIL_PORT"
default-value="587">< / span >
< / td >
< / tr >
< tr >
< td > TLS:< / td >
< td >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "mut" type = "checkbox" ng-model = "config.MAIL_USE_TLS" >
< label for = "mut" > Use TLS< / label >
< / div >
2014-12-26 21:54:36 +00:00
< / td >
< / tr >
< tr >
< td > Mail Sender:< / td >
< td >
< span class = "config-string-field" binding = "config.DEFAULT_MAIL_SENDER"
placeholder="E-mail address">< / span >
< div class = "help-text" >
E-mail address from which all e-mails are sent. If not specified,
< code > support@quay.io< / code > will be used.
< / div >
< / td >
< / tr >
< tr >
< td > Authentication:< / td >
< td >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
2015-01-04 19:38:41 +00:00
< input id = "uma" type = "checkbox" ng-model = "config.MAIL_USE_AUTH" >
2014-12-27 00:18:00 +00:00
< label for = "uma" > Requires Authentication< / label >
< / div >
2014-12-26 21:54:36 +00:00
2015-01-04 19:38:41 +00:00
< table class = "config-table" ng-show = "config.MAIL_USE_AUTH" >
2014-12-26 21:54:36 +00:00
< tr >
< td > Username:< / td >
< td >
< span class = "config-string-field" binding = "config.MAIL_USERNAME"
placeholder="Username for authentication">< / span >
< / td >
< / tr >
< tr >
< td > Password:< / td >
< td >
< span class = "config-string-field" binding = "config.MAIL_PASSWORD"
placeholder="Password for authentication">< / span >
< / td >
< / tr >
< / table >
< / td >
< / tr >
< / table >
< div class = "co-panel-button-bar" ng-show = "config.FEATURE_MAILING" >
< button class = "btn btn-default" > < i class = "fa fa-sign-in" > < / i > Test Configuration< / button >
< / div >
< / div >
< / div > <!-- /E - mail -->
<!-- Authentication -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< i class = "fa fa-users" > < / i > Authentication
< / div >
< div class = "co-panel-body" >
< div class = "description" >
< p >
Authentication for the registry can be handled by either the registry itself or LDAP.
External authentication providers (such as Github) can be used on top of this choice.
< / p >
< / div >
< table class = "config-table" >
< tr >
< td class = "non-input" > Authentication:< / td >
< td >
< select ng-model = "config.AUTHENTICATION_TYPE" >
< option value = "Database" > Local Database< / option >
< option value = "LDAP" > LDAP< / option >
< / select >
< / td >
< / tr >
< / table >
< table class = "config-table" ng-show = "config.AUTHENTICATION_TYPE == 'LDAP'" >
< tr >
< td > LDAP URI:< / td >
< td > < span class = "config-string-field" binding = "config.LDAP_URI" > < / span > < / td >
< / tr >
< tr >
< td > Administrator DN:< / td >
< td > < span class = "config-string-field" binding = "config.LDAP_ADMIN_DN" > < / span > < / td >
< / tr >
< tr >
< td > Base DN:< / td >
< td > < span class = "config-list-field" item-title = "DN" binding = "config.LDAP_BASE_DN" > < / span > < / td >
< / tr >
< tr >
< td > Administrator Password:< / td >
< td > < span class = "config-string-field" binding = "config.LDAP_ADMIN_PASSWD" > < / span > < / td >
< / tr >
< tr >
< td > E-mail Attribute:< / td >
< td > < span class = "config-string-field" binding = "config.LDAP_EMAIL_ATTR" > < / span > < / td >
< / tr >
< tr >
< td > UID Attribute:< / td >
< td > < span class = "config-string-field" binding = "config.LDAP_UID_ATTR" > < / span > < / td >
< / tr >
< tr >
< td > User RDN:< / td >
< td > < span class = "config-list-field" item-title = "RDN" binding = "config.LDAP_USER_RDN" > < / span > < / td >
< / tr >
< / table >
< div class = "co-panel-button-bar" ng-show = "config.AUTHENTICATION_TYPE == 'LDAP'" >
< button class = "btn btn-default" > < i class = "fa fa-sign-in" > < / i > Test Configuration< / button >
< / div >
< / div >
< / div > <!-- /Authentication -->
<!-- Github Authentication -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< i class = "fa fa-github" > < / i > Github (Enterprise) Authentication
< / div >
< div class = "co-panel-body" >
< div class = "description" >
< p >
If enabled, users can use Github or Github Enterprise to authenticate to the registry.
< / p >
< p >
< strong > Note:< / strong > A registered Github (Enterprise) OAuth application is required.
View instructions on how to
< a href = "https://coreos.com/docs/enterprise-registry/github-auth/" target = "_blank" >
Create an OAuth Application in GitHub
< / a >
< / p >
< / div >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "ftghl" type = "checkbox" ng-model = "config.FEATURE_GITHUB_LOGIN" >
< label for = "ftghl" > Enable Github Authentication< / label >
< / div >
2014-12-26 21:54:36 +00:00
< table class = "config-table" ng-show = "config.FEATURE_GITHUB_LOGIN" >
< tr >
< td > Github Endpoint:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_LOGIN_CONFIG.GITHUB_ENDPOINT"
placeholder="The Github server">
< / span >
< div class = "help-text" >
https://github.com/ for github.com. For Github enterprise, the internal Github endpoint.
< / div >
< / td >
< / tr >
< tr >
< td > API Endpoint:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_LOGIN_CONFIG.API_ENDPOINT"
placeholder="API server endpoint">
< / span >
< div class = "help-text" >
https://api.github.com/ for github.com. For Github Enterprise, leave empty.
< / div >
< / td >
< / tr >
< tr >
< td > OAuth Client ID:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_LOGIN_CONFIG.CLIENT_ID" >
< / span >
< / td >
< / tr >
< tr >
< td > OAuth Client Secret:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_LOGIN_CONFIG.CLIENT_SECRET" >
< / span >
< / td >
< / tr >
< / table >
< div class = "co-panel-button-bar" ng-show = "config.FEATURE_GITHUB_LOGIN" >
< button class = "btn btn-default" > < i class = "fa fa-sign-in" > < / i > Test Configuration< / button >
< / div >
< / div >
< / div > <!-- /Github Authentication -->
<!-- Google Authentication -->
< div class = "co-panel" >
< div class = "co-panel-heading" >
< i class = "fa fa-google" > < / i > Google Authentication
< / div >
< div class = "co-panel-body" >
< div class = "description" >
< p >
If enabled, users can use Google to authenticate to the registry.
< / p >
< p >
< strong > Note:< / strong > A registered Google OAuth application is required.
Visit the
< a href = "https://console.developers.google.com" target = "_blank" >
Google Developer Console
< / a >
to register an application.
< / p >
< / div >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "ftgoa" type = "checkbox" ng-model = "config.FEATURE_GOOGLE_LOGIN" >
< label for = "ftgoa" > Enable Google Authentication< / label >
< / div >
2014-12-26 21:54:36 +00:00
< table class = "config-table" ng-show = "config.FEATURE_GOOGLE_LOGIN" >
< tr >
< td > OAuth Client ID:< / td >
< td >
< span class = "config-string-field" binding = "config.GOOGLE_LOGIN_CONFIG.CLIENT_ID" >
< / span >
< / td >
< / tr >
< tr >
< td > OAuth Client Secret:< / td >
< td >
< span class = "config-string-field" binding = "config.GOOGLE_LOGIN_CONFIG.CLIENT_SECRET" >
< / span >
< / td >
< / tr >
< / table >
< div class = "co-panel-button-bar" ng-show = "config.FEATURE_GOOGLE_LOGIN" >
< button class = "btn btn-default" > < i class = "fa fa-sign-in" > < / i > Test Configuration< / button >
< / div >
< / div >
< / div > <!-- /Google Authentication -->
<!-- Github Trigger -->
< div class = "co-panel" ng-show = "config.FEATURE_BUILD_SUPPORT" >
< div class = "co-panel-heading" >
< i class = "fa fa-github" > < / i > Github (Enterprise) Build Triggers
< / div >
< div class = "co-panel-body" >
< div class = "description" >
< p >
If enabled, users can setup Github or Github Enterprise triggers to invoke Registry builds.
< / p >
< p >
< strong > Note:< / strong > A registered Github (Enterprise) OAuth application (< strong > separate from Github Authentication< / strong > ) is required.
View instructions on how to
< a href = "https://coreos.com/docs/enterprise-registry/github-auth/" target = "_blank" >
Create an OAuth Application in GitHub
< / a >
< / p >
< / div >
2014-12-27 00:18:00 +00:00
< div class = "co-checkbox" >
< input id = "ftgb" type = "checkbox" ng-model = "config.FEATURE_GITHUB_BUILD" >
< label for = "ftgb" > Enable Github Triggers< / label >
< / div >
2014-12-26 21:54:36 +00:00
< table class = "config-table" ng-show = "config.FEATURE_GITHUB_BUILD" >
< tr >
< td > Github Endpoint:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_TRIGGER_CONFIG.GITHUB_ENDPOINT"
placeholder="The Github server">
< / span >
< div class = "help-text" >
https://github.com/ for github.com. For Github enterprise, the internal Github endpoint.
< / div >
< / td >
< / tr >
< tr >
< td > API Endpoint:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_TRIGGER_CONFIG.API_ENDPOINT"
placeholder="API server endpoint">
< / span >
< div class = "help-text" >
https://api.github.com/ for github.com. For Github Enterprise, leave empty.
< / div >
< / td >
< / tr >
< tr >
< td > OAuth Client ID:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_TRIGGER_CONFIG.CLIENT_ID" >
< / span >
< / td >
< / tr >
< tr >
< td > OAuth Client Secret:< / td >
< td >
< span class = "config-string-field" binding = "config.GITHUB_TRIGGER_CONFIG.CLIENT_SECRET" >
< / span >
< / td >
< / tr >
< / table >
< div class = "co-panel-button-bar" ng-show = "config.FEATURE_GITHUB_BUILD" >
< button class = "btn btn-default" > < i class = "fa fa-sign-in" > < / i > Test Configuration< / button >
< / div >
< / div >
< / div > <!-- /Github Trigger -->
< / div >