.. _configuration:
Configuration
=============
Pulp uses `dynaconf `_ for its settings which allows you
to configure Pulp in a few ways:
By Configuration File
---------------------
To configure Pulp by settings file, you must set the format and location of the config file by
specifying the ``PULP_SETTINGS`` environment variable. For example, if you wanted to use Python to
specify your configuration, and provide it at ``/etc/pulp/settings.py`` you could::
export PULP_SETTINGS=/etc/pulp/settings.py
Or in a systemd file you could::
Environment="PULP_SETTINGS=/etc/pulp/settings.py" as the Ansible Installer does.
Dynaconf supports `settings in multiple file formats `_
This file should have permissions of:
* mode: 640
* owner: root
* group: pulp (the group of the account that pulp runs under)
* SELinux context: system_u:object_r:etc_t:s0
If it is in its own directory like ``/etc/pulp``, the directory should have permissions of:
* mode: 750
* owner: root
* group: pulp (the group of the account that pulp runs under)
* SELinux context: unconfined_u:object_r:etc_t:s0
By Environment Variables
------------------------
Many users specify their Pulp settings entirely by Environment Variables. Each of the settings can
be configured using Dynaconf by prepending ``PULP_`` to the name of the setting and specifying that
as an Environment Variable. For example the ``SECRET_KEY`` can be specified by exporting the
``PULP_SECRET_KEY`` variable.