.. _components_configuration: ************************ Components Configuration ************************ .. important:: When reading this section, keep in mind the :ref:`xivocc_architecture` diagram. Overview ======== This section describes files installed by `xivocc-installer`. Some of these files may be modified for these reasons: * :ref:`basic_xivocc_configuration` * :ref:`components_customization` * :ref:`multi-server_installation` XiVO CC system configuration is stored in the ``/etc/docker/compose`` directory. All files are configured by the `xivocc-installer` and don't need to be edited. The directory contains these files: * ``docker-xivocc.yml``, called `compose file`, defines XiVO CC components and their configuration. It uses variables defined in the ``.env`` file. * ``.env`` file assigns values to variables used in the `compose file`. But this file is being generated by `xivocc-dcomp` script and **MUST NOT be edited directly**. * ``factory.env`` file stores XiVO CC version number and distribution and **should not be edited**. * ``custom.env`` file may be used for component customization and multi-server installation. If you want to change the default configuration, you can override the ``docker-xivocc.yml`` file with ``docker-xivocc.override.yml``. You can also create files with the following pattern : ``[0-9]{2}-.*\.override.yml`` Those files will be read by alphabetical order and added after ``docker-xivocc.yml`` and ``docker-xivocc.override.yml`` Example : 00-add-something.override.yml 01-add-other-features.override.yml Compose File ============ ``docker-xivocc.yml`` Sections -------- * The main headers in the compose file (without indent) are container names. * ``image`` - links to container image url on https://hub.docker.com/r/ page. * ``ports`` - exposes container internal ports to host in format HOST:CONTAINER. * ``volumes_from`` - mounts all of the volumes from another container * ``environment`` - adds environment variables into container system * ``extra_hosts`` - adds host address to /etc/hosts * ``links`` - adds another container's host address to /etc/hosts See detailed documentation on `docker web `_. Variables --------- Compose file contains more kinds of variables: * Variable in the ``environment`` section without assignment is replaced by the same variable from ``.env`` file. If it's not defined or assigned in the ``.env`` file, it doesn't appear in the container system. * Variable in the ``environment`` section with assigned value overrides value defined in the ``.env`` file. * Variable defined in the ``links`` section can be assigned to variable in the ``environment`` section. * Variable inside ``${ }`` block is replaced by value defined in ``.env`` file and can be used anywhere. * ``JAVA_OPTS`` - allocates Java memory and sets other Java options. If you want to use different values for containers, they must be assigned inside compose file. Or you can define new variable for this purpose - e.g.: ``JAVA_OPTS=${JAVA_OPTS_XUC}`` and set the value in the custom.env file. Factory env file ================ ``factory.env`` This file should not be edited. XiVO CC version matches version of xivocc-installer and the other distributions are only for testing purposes. * ``XIVOCC_TAG`` - XiVO CC version number * ``XIVOCC_DIST`` - XiVO CC distribution Custom env file ================ ``custom.env`` .. _basic_xivocc_configuration: Editing basic XiVO CC configuration ----------------------------------- In this file you can edit main configuration of XiVO CC originally set by the xivocc-installer: * ``XIVO_HOST`` * ``XUC_HOST`` * ``CONFIG_MGT_HOST`` * ``WEEKS_TO_KEEP`` * ``RECORDING_WEEKS_TO_KEEP`` * ``PLAY_AUTH_TOKEN`` (see :ref:`api_shared_token`) .. _components_customization: Components customization ------------------------ You can also change value of any option defined in the compose file. For example: * ``SHOW_RECORDING_CONTROLS`` * ``SHOW_QUEUE_CONTROLS`` The option value must not be assigned inside the compose file, otherwise it will not apply. .. _multi-server_installation: Multi-server installation ------------------------- Some XiVO CC components can run a separate server, but the installation procedure is not documented. For this purpose these variables can be set: * ``REPORTING_HOST`` * ``RECORDING_SERVER_HOST`` * ``PLAY_AUTH_TOKEN`` (see :ref:`api_shared_token`)