Interesting settings

DOCKER_LIMITS

A dictionary of limits to virtual machines. These limits include:

time

An integer representing the total allowed time limit (in seconds) of build processes. This time limit affects the parent process to the virtual machine and will force a virtual machine to die if a build is still running after the allotted time expires.

memory

The maximum memory allocated to the virtual machine. If this limit is hit, build processes will be automatically killed. Examples: ‘200m’ for 200MB of total memory, or ‘2g’ for 2GB of total memory.

PRODUCTION_DOMAIN

This is the domain that is used by the main application dashboard (not documentation pages).

RTD_INTERSPHINX_URL

This is the domain that is used to fetch the intersphinx inventory file. If not set explicitly this is the PRODUCTION_DOMAIN.

DEFAULT_PRIVACY_LEVEL

What privacy projects default to having. Generally set to public. Also acts as a proxy setting for blocking certain historically insecure options, like serving generated artifacts directly from the media server.

PUBLIC_DOMAIN

A special domain for serving public documentation. If set, public docs will be linked here instead of the PRODUCTION_DOMAIN.

PUBLIC_DOMAIN_USES_HTTPS

If True and PUBLIC_DOMAIN is set, that domain will default to serving public documentation over HTTPS. By default, documentation is served over HTTP.

ALLOW_ADMIN

Whether to include django.contrib.admin in the URL’s.

RTD_BUILD_MEDIA_STORAGE

Use this storage class to upload build artifacts to cloud storage (S3, Azure storage). This should be a dotted path to the relevant class (eg. 'path.to.MyBuildMediaStorage'). Your class should mixin readthedocs.builds.storage.BuildMediaStorageMixin.

ELASTICSEARCH_DSL

Default:

{
   'default': {
      'hosts': '127.0.0.1:9200'
   },
}

Settings for elasticsearch connection. This settings then pass to elasticsearch-dsl-py.connections.configure

ES_INDEXES

Default:

{
     'project': {
         'name': 'project_index',
         'settings': {'number_of_shards': 5,
                      'number_of_replicas': 0
                      }
     },
     'page': {
         'name': 'page_index',
         'settings': {
             'number_of_shards': 5,
             'number_of_replicas': 0,
         }
     },
 }

Define the elasticsearch name and settings of all the index separately. The key is the type of index, like project or page and the value is another dictionary containing name and settings. Here the name is the index name and the settings is used for configuring the particular index.

ES_TASK_CHUNK_SIZE

The maximum number of data send to each elasticsearch indexing celery task. This has been used while running elasticsearch_reindex management command.

ES_PAGE_IGNORE_SIGNALS

This settings is used to determine whether to index each page separately into elasticsearch. If the setting is True, each HTML page will not be indexed separately but will be indexed by bulk indexing.

ELASTICSEARCH_DSL_AUTOSYNC

This setting is used for automatically indexing objects to elasticsearch.

Docker pass-through settings

If you run a Docker environment, it is possible to pass some secrets through to the Docker containers from your host system. For security reasons, we do not commit these secrets to our repository. Instead, we individually define these settings for our local environments.

We recommend using direnv for storing local development secrets.

Allauth secrets

It is possible to set the Allauth application secrets for our supported providers using the following environment variables:

RTD_SOCIALACCOUNT_PROVIDERS_GITHUB_CLIENT_ID
RTD_SOCIALACCOUNT_PROVIDERS_GITHUB_SECRET
RTD_SOCIALACCOUNT_PROVIDERS_GITLAB_CLIENT_ID
RTD_SOCIALACCOUNT_PROVIDERS_GITLAB_SECRET
RTD_SOCIALACCOUNT_PROVIDERS_BITBUCKET_OAUTH2_CLIENT_ID
RTD_SOCIALACCOUNT_PROVIDERS_BITBUCKET_OAUTH2_SECRET
RTD_SOCIALACCOUNT_PROVIDERS_GOOGLE_CLIENT_ID
RTD_SOCIALACCOUNT_PROVIDERS_GOOGLE_SECRET

Stripe secrets

The following secrets are required to use djstripe and our Stripe integration.

RTD_STRIPE_SECRET
RTD_STRIPE_PUBLISHABLE
RTD_DJSTRIPE_WEBHOOK_SECRET