changeset 497:a4e36bf97da3

dos2unix docker-osimis.rst
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 31 Aug 2020 16:15:02 +0200
parents 1fdbf5b89b80
children 2ac9eacb4ade
files Sphinx/source/users/docker-osimis.rst
diffstat 1 files changed, 350 insertions(+), 348 deletions(-) [+]
line wrap: on
line diff
--- a/Sphinx/source/users/docker-osimis.rst	Mon Aug 31 08:37:23 2020 +0200
+++ b/Sphinx/source/users/docker-osimis.rst	Mon Aug 31 16:15:02 2020 +0200
@@ -1,348 +1,350 @@
-.. _docker-osimis:
-.. highlight:: bash
-
-
-Osimis Orthanc Docker images
-============================
-
-.. contents::
-   :depth: 3
-
-
-.. warning:: This documentation applies to ``osimis/orthanc`` images from the ``20.4.2`` version.  
-  
-  Note that these images have been re-written in April 2020.  The documentation
-  for older images is still available `here <https://osimis.atlassian.net/wiki/spaces/OKB/pages/26738689/How+to+use+osimis+orthanc+Docker+images#Howtouseosimis/orthancDockerimages>`__
-  
-  The new images are backward compatible with the previous images except for the
-  Google Cloud Platform configuration.  
-  
-  However, if you're still using legacy environment variables, you'll get some warning
-  encouraging you to update to the new namings since the backward compatibility
-  might be removed one day (currently planed in June 2021).
-
-
-Introduction
-------------
-
-Our commercial partner `Osimis <https://www.osimis.io>`__ 
-`publishes separated Docker images
-<https://hub.docker.com/repository/docker/osimis/orthanc>`__
-that are used by their technical team in order to provide professional 
-support to their customers.
-
-These images have been designed to be used with ``docker-compose`` and 
-provide a configuration system through:
-
-- environment variables
-- Docker secrets
-- classical configuration files
-- a mix of these options
-
-This `repository <https://bitbucket.org/osimis/orthanc-setup-samples/src>`__
-contains lots of examples on how to use these images.  In particular,
-`this example <https://bitbucket.org/osimis/orthanc-setup-samples/src/master/docker/all-usages/docker-compose.yml>`__ 
-shows all the way that can be used to generate the same
-configuration in Orthanc.
-
-
-Environmnent variables
-----------------------
-
-Any part of the Orthanc configuration file can be configured through an
-environment variable.  Now that Orthanc and its plugins have hundreds of
-configuration parameter, listing all these environment variable would be
-too long.  That's why we have defined a standard way of naming the variable:
-
-+---------------------------+----------------------------------------------+----------------------------------------------------------------+
-| Orthanc configuration     | Environment variable                         | Sample value                                                   |
-+===========================+==============================================+================================================================+
-| StableAge                 | ORTHANC__STABLE_AGE                          | ``30``                                                         |
-+---------------------------+----------------------------------------------+----------------------------------------------------------------+
-| DicomWeb.Root             | ORTHANC__DICOM_WEB__ROOT                     | ``/dicom-web/``                                                |
-+---------------------------+----------------------------------------------+----------------------------------------------------------------+
-| DicomWeb.Servers          | ORTHANC__DICOM_WEB__SERVERS                  | ``{"sample": [ "http://127.0.0.1/dicom-web/"]}``               |
-+---------------------------+----------------------------------------------+----------------------------------------------------------------+
-
-To find out an environment variable name from an Orthanc setting
-(i.e. ``DicomWeb.StudiesMetadata`` is the ``path`` to a setting):
-
-- everytime a word contains a capital letter, insert an underscore ``_`` in front.
-  ``DicomWeb.StudiesMetadata`` now becomes ``Dicom_Web.Studies_Metadata``
-- everytime you go down one level in the json configuration, insert
-  a double underscore ``__``.  ``Dicom_Web.Studies_Metadata`` now becomes
-  ``Dicom_Web__Studies_Metadata``
-- capitalize all letters.  ``Dicom_Web__Studies_Metadata`` now becomes
-  ``DICOM_WEB__STUDIES_METADATA``
-- add ``ORTHANC__`` in front.  ``DICOM_WEB__STUDIES_METADATA`` now becomes
-  ``ORTHANC__DICOM_WEB__STUDIES_METADATA``
-
-Note that, this automatic rule might fail because of 2 capital letters one after each other in some
-Orthanc settings.  Therefore, there are some `exceptions <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/env-var-non-standards.json>`__ to this rule 
-that are however quite intuitive.
-
-Special environment variables
------------------------------
-
-Other environment variables are not related to the Orthanc configuration file
-but can be specified to control the way Orthanc is run.
-
-- ``VERBOSE_STARTUP=true`` will allow you to debug the startup process and see
-  the configuration that has been provided to Orthanc.  This setup should be
-  disabled in production since it might display secret information like passwords
-  in your logs
-- ``VERBOSE_ENABLED=true`` will start Orthanc with the ``--verbose`` option
-- ``TRACE_ENABLED=true`` will start Orthanc with the ``--trace`` option
-- ``NO_JOBS=true`` will start Orthanc with the ``--no-jobs`` option
-- ``UNLOCK=true`` will start Orthanc with the ``--unlock`` option
-- ``MALLOC_ARENA_MAX=10`` will :ref:`control memory usage <scalability-memory>`
-- ``ORTHANC_JSON`` can be used to pass a json "root" configuration (see below).
-
-Configuration files
--------------------
-
-.. highlight:: yaml
-
-Configuration files should be stored in the ``/etc/orthanc/`` folder inside the Docker image.  
-This is done by building an image thanks to a ``Dockerfile``::
-
-  FROM osimis/orthanc
-  COPY orthanc.json /etc/orthanc/
-
-
-Configuration files can also be passed as secrets as shown in this ``docker-compose.yml``::
-
-  version: "3.3"
-    services:
-      orthanc-file-in-secrets:
-        image: osimis/orthanc
-        depends_on: [index-db]
-        ports: ["8201:8042"]
-        environment:
-          VERBOSE_STARTUP: "true"
-
-        secrets:
-          - orthanc.secret.json
-    
-    secrets:
-      orthanc.secret.json:
-        file: orthanc.secret.json
-
-Finaly, a whole configuration file can be passed as a JSON through the ``ORTHANC_JSON`` environment variable::
-
-  version: "3.3"
-    services:
-      orthanc-file-in-env-var:
-        image: osimis/orthanc
-        depends_on: [index-db]
-        ports: ["8200:8042"]
-        environment:
-          VERBOSE_ENABLED: "true"
-          OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED: "true"
-
-          ORTHANC_JSON: |
-            {
-              "Name": "orthanc-file-in-env-var",
-              "PostgreSQL" : {
-                "Host": "index-db",
-                "Password": "pg-password"
-              },
-              "RegisteredUsers": {
-                "demo": "demo"
-              }
-            }
-
-
-Docker secrets
---------------
-
-.. highlight:: yaml
-
-When using your container in a ``Docker Swarm`` or ``Kubernetes`` environment,
-it is usually advised to pass sensitive information through ``Docker Secrets``.
-For this purpose, any secret whose name is similar to the name of an 
-environment variable is considered as an environment variable::
-
-  version: "3.3"
-    services:
-      orthanc-with-direct-secret:
-        image: osimis/orthanc
-        depends_on: [index-db]
-        ports: ["8003:8042"]
-        environment:
-          ORTHANC__NAME: "orthanc-with-direct-secret"
-          VERBOSE_ENABLED: "true"
-
-          OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED: "true"
-
-          ORTHANC__POSTGRESQL__HOST: "index-db"
-          ORTHANC__REGISTERED_USERS: |
-            {"demo": "demo"}
-
-      secrets:
-        - ORTHANC__POSTGRESQL__PASSWORD
-    secrets:
-      ORTHANC__POSTGRESQL__PASSWORD:
-        file: ORTHANC__POSTGRESQL__PASSWORD
-
-
-Mixing configuration
---------------------
-
-Parts of your configuration can be defined in a configuration file, 
-another part in an environment variable and yet another in a secret.
-If the same setting is defined in multiple location, the latest one
-will overwrite the first.  Settings are evaluated in this order:
-
-- JSON files from ``/etc/orthanc/``
-- JSON files from ``/run/secrets`` (Docker secrets are copied there
-  by Docker)
-- environment variables
-- secret environment variables
-
-At this point, if some settings have not been defined yet, some defaults
-are applied (see below).
-
-
-Default configuration
----------------------
-
-.. highlight:: json
-
-Orthanc and each plugin might have some default settings that might
-eventually be different from the defaults included in the Orthanc 
-executable or the plugin library.  
-
-.. below json is copied from orthanc-builder/docker/orthanc/orthanc-defaults.json
-
-Orthanc non-standard defaults::
-
-  {
-    "StorageDirectory" : "/var/lib/orthanc/db",
-
-    "RemoteAccessAllowed": true,
-    "AuthenticationEnabled": true,
-    
-    "HttpsCACertificates" : "/etc/ssl/certs/ca-certificates.crt",
-
-    "Plugins" : ["/usr/share/orthanc/plugins/"]
-  }
-  
-
-Default lua scripts
--------------------
-
-Some lua scripts are already loaded in the image but are not configured to 
-be loaded by Orthanc automatically.  You'll have to add them to the ``"LuaScripts"`` 
-configuration if you want to use them.
-
-`/lua-scripts/filter-http-tools-reset.lua <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/filter-http-tools-reset.lua>`__ 
-can be used to regenerate the ``/tmp/orthanc.json`` configuration file that is loaded by Orthanc every time
-you POST to ``/tools/reset``.  Note that it declares an ``IncomingHttpRequestFilter`` 
-callback that might conflict with your scripts.
-
-
-Plugins
--------
-
-Plugins are automatically enabled as soon as you define a setting
-in their JSON section or as soon as you define to ``true`` their
-specific environment variable.
-
-Below is a list of all plugins, their environment variable and their default configuration 
-(only when their default configuration is different from the plugin defaults):
-
-
-.. below table is obtained by running orthanc-builder/docker/orthanc/generatePluginDoc.py
-
-
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| Plugin                                           | Environment variable                             | Default configuration                                                                              |
-+==================================================+==================================================+====================================================================================================+
-| **Authorization**                                | ``AUTHORIZATION_PLUGIN_ENABLED``                 |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **ConnectivityChecks**                           | ``CONNECTIVITY_CHECKS_PLUGIN_ENABLED``           |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **DicomWeb**                                     | ``DICOM_WEB_PLUGIN_ENABLED``                     | .. code-block:: json                                                                               |
-|                                                  |                                                  |                                                                                                    |
-|                                                  |                                                  |   {                                                                                                |
-|                                                  |                                                  |     "DicomWeb": {                                                                                  |
-|                                                  |                                                  |       "Enable": true                                                                               |
-|                                                  |                                                  |     }                                                                                              |
-|                                                  |                                                  |   }                                                                                                |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **Gdcm**                                         | ``GDCM_PLUGIN_ENABLED``                          | .. code-block:: json                                                                               |
-|                                                  | Note: enabled by default                         |                                                                                                    |
-|                                                  |                                                  |   {                                                                                                |
-|                                                  |                                                  |     "Gdcm": {                                                                                      |
-|                                                  |                                                  |       "Throttling": 4,                                                                             |
-|                                                  |                                                  |       "RestrictTransferSyntaxes": [                                                                |
-|                                                  |                                                  |         "1.2.840.10008.1.2.4.90",                                                                  |
-|                                                  |                                                  |         "1.2.840.10008.1.2.4.91",                                                                  |
-|                                                  |                                                  |         "1.2.840.10008.1.2.4.92",                                                                  |
-|                                                  |                                                  |         "1.2.840.10008.1.2.4.93"                                                                   |
-|                                                  |                                                  |       ]                                                                                            |
-|                                                  |                                                  |     }                                                                                              |
-|                                                  |                                                  |   }                                                                                                |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **OrthancWebViewer**                             | ``ORTHANC_WEB_VIEWER_PLUGIN_ENABLED``            |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **OsimisWebViewerBasic**                         | ``OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED``            |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **OsimisWebViewerBasicAlpha**                    | ``OSIMIS_WEB_VIEWER1_ALPHA_PLUGIN_ENABLED``      |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **PostgreSQL**                                   | ``POSTGRESQL_PLUGIN_ENABLED``                    | .. code-block:: json                                                                               |
-|                                                  |                                                  |                                                                                                    |
-|                                                  |                                                  |   {                                                                                                |
-|                                                  |                                                  |     "PostgreSQL": {                                                                                |
-|                                                  |                                                  |       "EnableIndex": true,                                                                         |
-|                                                  |                                                  |       "EnableStorage": false,                                                                      |
-|                                                  |                                                  |       "Port": 5432,                                                                                |
-|                                                  |                                                  |       "Host": "HOST MUST BE DEFINED",                                                              |
-|                                                  |                                                  |       "Database": "postgres",                                                                      |
-|                                                  |                                                  |       "Username": "postgres",                                                                      |
-|                                                  |                                                  |       "Password": "postgres",                                                                      |
-|                                                  |                                                  |       "EnableSsl": false,                                                                          |
-|                                                  |                                                  |       "Lock": false                                                                                |
-|                                                  |                                                  |     }                                                                                              |
-|                                                  |                                                  |   }                                                                                                |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **MySQL**                                        | ``MYSQL_PLUGIN_ENABLED``                         | .. code-block:: json                                                                               |
-|                                                  |                                                  |                                                                                                    |
-|                                                  |                                                  |   {                                                                                                |
-|                                                  |                                                  |     "MySQL": {                                                                                     |
-|                                                  |                                                  |       "EnableIndex": true,                                                                         |
-|                                                  |                                                  |       "EnableStorage": false,                                                                      |
-|                                                  |                                                  |       "Port": 3306,                                                                                |
-|                                                  |                                                  |       "Host": "HOST MUST BE DEFINED",                                                              |
-|                                                  |                                                  |       "Database": "mysql",                                                                         |
-|                                                  |                                                  |       "Username": "root",                                                                          |
-|                                                  |                                                  |       "Password": "mysql",                                                                         |
-|                                                  |                                                  |       "Lock": false                                                                                |
-|                                                  |                                                  |     }                                                                                              |
-|                                                  |                                                  |   }                                                                                                |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **Python**                                       | ``PYTHON_PLUGIN_ENABLED``                        |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **ServeFolders**                                 | ``SERVE_FOLDERS_PLUGIN_ENABLED``                 |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **Transfers**                                    | ``TRANSFERS_PLUGIN_ENABLED``                     |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **Worklists**                                    | ``WORKLISTS_PLUGIN_ENABLED``                     | .. code-block:: json                                                                               |
-|                                                  |                                                  |                                                                                                    |
-|                                                  |                                                  |   {                                                                                                |
-|                                                  |                                                  |     "Worklists": {                                                                                 |
-|                                                  |                                                  |       "Enable": true,                                                                              |
-|                                                  |                                                  |       "Database": "/var/lib/orthanc/worklists"                                                     |
-|                                                  |                                                  |     }                                                                                              |
-|                                                  |                                                  |   }                                                                                                |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-| **Wsi**                                          | ``WSI_PLUGIN_ENABLED``                           |                                                                                                    |
-+--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
-
-Under the hood
---------------
-
-The source code that is used to generate the image can be found `here <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/Dockerfile>`__.
-
-The python script that is used at startup can be found `here <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/generateConfiguration.py>`__
\ No newline at end of file
+.. _docker-osimis:
+.. highlight:: bash
+
+
+Osimis Orthanc Docker images
+============================
+
+.. contents::
+   :depth: 3
+
+
+.. warning:: This documentation applies to ``osimis/orthanc`` images from the ``20.4.2`` version.  
+  
+  Note that these images have been re-written in April 2020.  The documentation
+  for older images is still available `here <https://osimis.atlassian.net/wiki/spaces/OKB/pages/26738689/How+to+use+osimis+orthanc+Docker+images#Howtouseosimis/orthancDockerimages>`__
+  
+  The new images are backward compatible with the previous images except for the
+  Google Cloud Platform configuration.  
+  
+  However, if you're still using legacy environment variables, you'll get some warning
+  encouraging you to update to the new namings since the backward compatibility
+  might be removed one day (currently planed in June 2021).
+
+
+Introduction
+------------
+
+Our commercial partner `Osimis <https://www.osimis.io>`__ 
+`publishes separated Docker images
+<https://hub.docker.com/repository/docker/osimis/orthanc>`__
+that are used by their technical team in order to provide professional 
+support to their customers.
+
+These images have been designed to be used with ``docker-compose`` and 
+provide a configuration system through:
+
+- environment variables
+- Docker secrets
+- classical configuration files
+- a mix of these options
+
+This `repository <https://bitbucket.org/osimis/orthanc-setup-samples/src>`__
+contains lots of examples on how to use these images.  In particular,
+`this example <https://bitbucket.org/osimis/orthanc-setup-samples/src/master/docker/all-usages/docker-compose.yml>`__ 
+shows all the way that can be used to generate the same
+configuration in Orthanc.
+
+
+Environmnent variables
+----------------------
+
+Any part of the Orthanc configuration file can be configured through an
+environment variable.  Now that Orthanc and its plugins have hundreds of
+configuration parameter, listing all these environment variable would be
+too long.  That's why we have defined a standard way of naming the variable:
+
++---------------------------+----------------------------------------------+----------------------------------------------------------------+
+| Orthanc configuration     | Environment variable                         | Sample value                                                   |
++===========================+==============================================+================================================================+
+| StableAge                 | ORTHANC__STABLE_AGE                          | ``30``                                                         |
++---------------------------+----------------------------------------------+----------------------------------------------------------------+
+| DicomWeb.Root             | ORTHANC__DICOM_WEB__ROOT                     | ``/dicom-web/``                                                |
++---------------------------+----------------------------------------------+----------------------------------------------------------------+
+| DicomWeb.Servers          | ORTHANC__DICOM_WEB__SERVERS                  | ``{"sample": [ "http://127.0.0.1/dicom-web/"]}``               |
++---------------------------+----------------------------------------------+----------------------------------------------------------------+
+
+To find out an environment variable name from an Orthanc setting
+(i.e. ``DicomWeb.StudiesMetadata`` is the ``path`` to a setting):
+
+- everytime a word contains a capital letter, insert an underscore ``_`` in front.
+  ``DicomWeb.StudiesMetadata`` now becomes ``Dicom_Web.Studies_Metadata``
+- everytime you go down one level in the json configuration, insert
+  a double underscore ``__``.  ``Dicom_Web.Studies_Metadata`` now becomes
+  ``Dicom_Web__Studies_Metadata``
+- capitalize all letters.  ``Dicom_Web__Studies_Metadata`` now becomes
+  ``DICOM_WEB__STUDIES_METADATA``
+- add ``ORTHANC__`` in front.  ``DICOM_WEB__STUDIES_METADATA`` now becomes
+  ``ORTHANC__DICOM_WEB__STUDIES_METADATA``
+
+Note that, this automatic rule might fail because of 2 capital letters one after each other in some
+Orthanc settings.  Therefore, there are some `exceptions <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/env-var-non-standards.json>`__ to this rule 
+that are however quite intuitive.
+
+Special environment variables
+-----------------------------
+
+Other environment variables are not related to the Orthanc configuration file
+but can be specified to control the way Orthanc is run.
+
+- ``VERBOSE_STARTUP=true`` will allow you to debug the startup process and see
+  the configuration that has been provided to Orthanc.  This setup should be
+  disabled in production since it might display secret information like passwords
+  in your logs
+- ``VERBOSE_ENABLED=true`` will start Orthanc with the ``--verbose`` option
+- ``TRACE_ENABLED=true`` will start Orthanc with the ``--trace`` option
+- ``NO_JOBS=true`` will start Orthanc with the ``--no-jobs`` option
+- ``UNLOCK=true`` will start Orthanc with the ``--unlock`` option
+- ``MALLOC_ARENA_MAX=10`` will :ref:`control memory usage <scalability-memory>`
+- ``ORTHANC_JSON`` can be used to pass a json "root" configuration (see below).
+
+Configuration files
+-------------------
+
+.. highlight:: yaml
+
+Configuration files should be stored in the ``/etc/orthanc/`` folder inside the Docker image.  
+This is done by building an image thanks to a ``Dockerfile``::
+
+  FROM osimis/orthanc
+  COPY orthanc.json /etc/orthanc/
+
+
+Configuration files can also be passed as secrets as shown in this ``docker-compose.yml``::
+
+  version: "3.3"
+    services:
+      orthanc-file-in-secrets:
+        image: osimis/orthanc
+        depends_on: [index-db]
+        ports: ["8201:8042"]
+        environment:
+          VERBOSE_STARTUP: "true"
+
+        secrets:
+          - orthanc.secret.json
+    
+    secrets:
+      orthanc.secret.json:
+        file: orthanc.secret.json
+
+Finaly, a whole configuration file can be passed as a JSON through the ``ORTHANC_JSON`` environment variable::
+
+  version: "3.3"
+    services:
+      orthanc-file-in-env-var:
+        image: osimis/orthanc
+        depends_on: [index-db]
+        ports: ["8200:8042"]
+        environment:
+          VERBOSE_ENABLED: "true"
+          OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED: "true"
+
+          ORTHANC_JSON: |
+            {
+              "Name": "orthanc-file-in-env-var",
+              "PostgreSQL" : {
+                "Host": "index-db",
+                "Password": "pg-password"
+              },
+              "RegisteredUsers": {
+                "demo": "demo"
+              }
+            }
+
+
+Docker secrets
+--------------
+
+.. highlight:: yaml
+
+When using your container in a ``Docker Swarm`` or ``Kubernetes`` environment,
+it is usually advised to pass sensitive information through ``Docker Secrets``.
+For this purpose, any secret whose name is similar to the name of an 
+environment variable is considered as an environment variable::
+
+  version: "3.3"
+    services:
+      orthanc-with-direct-secret:
+        image: osimis/orthanc
+        depends_on: [index-db]
+        ports: ["8003:8042"]
+        environment:
+          ORTHANC__NAME: "orthanc-with-direct-secret"
+          VERBOSE_ENABLED: "true"
+
+          OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED: "true"
+
+          ORTHANC__POSTGRESQL__HOST: "index-db"
+          ORTHANC__REGISTERED_USERS: |
+            {"demo": "demo"}
+
+      secrets:
+        - ORTHANC__POSTGRESQL__PASSWORD
+    secrets:
+      ORTHANC__POSTGRESQL__PASSWORD:
+        file: ORTHANC__POSTGRESQL__PASSWORD
+
+
+Mixing configuration
+--------------------
+
+Parts of your configuration can be defined in a configuration file, 
+another part in an environment variable and yet another in a secret.
+If the same setting is defined in multiple location, the latest one
+will overwrite the first.  Settings are evaluated in this order:
+
+- JSON files from ``/etc/orthanc/``
+- JSON files from ``/run/secrets`` (Docker secrets are copied there
+  by Docker)
+- environment variables
+- secret environment variables
+
+At this point, if some settings have not been defined yet, some defaults
+are applied (see below).
+
+
+Default configuration
+---------------------
+
+.. highlight:: json
+
+Orthanc and each plugin might have some default settings that might
+eventually be different from the defaults included in the Orthanc 
+executable or the plugin library.  
+
+.. below json is copied from orthanc-builder/docker/orthanc/orthanc-defaults.json
+
+Orthanc non-standard defaults::
+
+  {
+    "StorageDirectory" : "/var/lib/orthanc/db",
+
+    "RemoteAccessAllowed": true,
+    "AuthenticationEnabled": true,
+    
+    "HttpsCACertificates" : "/etc/ssl/certs/ca-certificates.crt",
+
+    "Plugins" : ["/usr/share/orthanc/plugins/"]
+  }
+  
+
+Default lua scripts
+-------------------
+
+Some lua scripts are already loaded in the image but are not configured to 
+be loaded by Orthanc automatically.  You'll have to add them to the ``"LuaScripts"`` 
+configuration if you want to use them.
+
+`/lua-scripts/filter-http-tools-reset.lua <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/filter-http-tools-reset.lua>`__ 
+can be used to regenerate the ``/tmp/orthanc.json`` configuration file that is loaded by Orthanc every time
+you POST to ``/tools/reset``.  Note that it declares an ``IncomingHttpRequestFilter`` 
+callback that might conflict with your scripts.
+
+
+Plugins
+-------
+
+Plugins are automatically enabled as soon as you define a setting
+in their JSON section or as soon as you define to ``true`` their
+specific environment variable.
+
+Below is a list of all plugins, their environment variable and their default configuration 
+(only when their default configuration is different from the plugin defaults):
+
+
+.. below table is obtained by running orthanc-builder/docker/orthanc/generatePluginDoc.py
+
+
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| Plugin                                           | Environment variable                             | Default configuration                                                                              |
++==================================================+==================================================+====================================================================================================+
+| **Authorization**                                | ``AUTHORIZATION_PLUGIN_ENABLED``                 |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **ConnectivityChecks**                           | ``CONNECTIVITY_CHECKS_PLUGIN_ENABLED``           |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **DicomWeb**                                     | ``DICOM_WEB_PLUGIN_ENABLED``                     | .. code-block:: json                                                                               |
+|                                                  |                                                  |                                                                                                    |
+|                                                  |                                                  |   {                                                                                                |
+|                                                  |                                                  |     "DicomWeb": {                                                                                  |
+|                                                  |                                                  |       "Enable": true                                                                               |
+|                                                  |                                                  |     }                                                                                              |
+|                                                  |                                                  |   }                                                                                                |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **Gdcm**                                         | ``GDCM_PLUGIN_ENABLED``                          | .. code-block:: json                                                                               |
+|                                                  | Note: enabled by default                         |                                                                                                    |
+|                                                  |                                                  |   {                                                                                                |
+|                                                  |                                                  |     "Gdcm": {                                                                                      |
+|                                                  |                                                  |       "Throttling": 4,                                                                             |
+|                                                  |                                                  |       "RestrictTransferSyntaxes": [                                                                |
+|                                                  |                                                  |         "1.2.840.10008.1.2.4.90",                                                                  |
+|                                                  |                                                  |         "1.2.840.10008.1.2.4.91",                                                                  |
+|                                                  |                                                  |         "1.2.840.10008.1.2.4.92",                                                                  |
+|                                                  |                                                  |         "1.2.840.10008.1.2.4.93"                                                                   |
+|                                                  |                                                  |       ]                                                                                            |
+|                                                  |                                                  |     }                                                                                              |
+|                                                  |                                                  |   }                                                                                                |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **OrthancWebViewer**                             | ``ORTHANC_WEB_VIEWER_PLUGIN_ENABLED``            |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **OsimisWebViewerBasic**                         | ``OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED``            |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **OsimisWebViewerBasicAlpha**                    | ``OSIMIS_WEB_VIEWER1_ALPHA_PLUGIN_ENABLED``      |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **PostgreSQL**                                   | ``POSTGRESQL_PLUGIN_ENABLED``                    | .. code-block:: json                                                                               |
+|                                                  |                                                  |                                                                                                    |
+|                                                  |                                                  |   {                                                                                                |
+|                                                  |                                                  |     "PostgreSQL": {                                                                                |
+|                                                  |                                                  |       "EnableIndex": true,                                                                         |
+|                                                  |                                                  |       "EnableStorage": false,                                                                      |
+|                                                  |                                                  |       "Port": 5432,                                                                                |
+|                                                  |                                                  |       "Host": "HOST MUST BE DEFINED",                                                              |
+|                                                  |                                                  |       "Database": "postgres",                                                                      |
+|                                                  |                                                  |       "Username": "postgres",                                                                      |
+|                                                  |                                                  |       "Password": "postgres",                                                                      |
+|                                                  |                                                  |       "EnableSsl": false,                                                                          |
+|                                                  |                                                  |       "Lock": false                                                                                |
+|                                                  |                                                  |     }                                                                                              |
+|                                                  |                                                  |   }                                                                                                |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **MySQL**                                        | ``MYSQL_PLUGIN_ENABLED``                         | .. code-block:: json                                                                               |
+|                                                  |                                                  |                                                                                                    |
+|                                                  |                                                  |   {                                                                                                |
+|                                                  |                                                  |     "MySQL": {                                                                                     |
+|                                                  |                                                  |       "EnableIndex": true,                                                                         |
+|                                                  |                                                  |       "EnableStorage": false,                                                                      |
+|                                                  |                                                  |       "Port": 3306,                                                                                |
+|                                                  |                                                  |       "Host": "HOST MUST BE DEFINED",                                                              |
+|                                                  |                                                  |       "Database": "mysql",                                                                         |
+|                                                  |                                                  |       "Username": "root",                                                                          |
+|                                                  |                                                  |       "Password": "mysql",                                                                         |
+|                                                  |                                                  |       "Lock": false                                                                                |
+|                                                  |                                                  |     }                                                                                              |
+|                                                  |                                                  |   }                                                                                                |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **Python**                                       | ``PYTHON_PLUGIN_ENABLED``                        |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **ServeFolders**                                 | ``SERVE_FOLDERS_PLUGIN_ENABLED``                 |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **Transfers**                                    | ``TRANSFERS_PLUGIN_ENABLED``                     |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **Worklists**                                    | ``WORKLISTS_PLUGIN_ENABLED``                     | .. code-block:: json                                                                               |
+|                                                  |                                                  |                                                                                                    |
+|                                                  |                                                  |   {                                                                                                |
+|                                                  |                                                  |     "Worklists": {                                                                                 |
+|                                                  |                                                  |       "Enable": true,                                                                              |
+|                                                  |                                                  |       "Database": "/var/lib/orthanc/worklists"                                                     |
+|                                                  |                                                  |     }                                                                                              |
+|                                                  |                                                  |   }                                                                                                |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **Wsi**                                          | ``WSI_PLUGIN_ENABLED``                           |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+| **Osimis cloud** (synchronization plugin)        | ``OSIMIS_CLOUD_PLUGIN_ENABLED``                  |                                                                                                    |
++--------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------+
+
+Under the hood
+--------------
+
+The source code that is used to generate the image can be found `here <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/Dockerfile>`__.
+
+The python script that is used at startup can be found `here <https://bitbucket.org/osimis/orthanc-builder/src/master/docker/orthanc/generateConfiguration.py>`__