Deployment ========== To deploy the web-monitor, you require **web-monitor**, **workflow-db** and **workflow-mgr**. For test deployments there are also **catalog**, **testfixtures**, **amqbroker** and **autoreducer** to fake external services. Requirements ------------ * PostgreSQL 17 or higher * Python 3.11 Configuration ------------- web-monitor environment variables ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ====================== ====== =========== Variable Secret Description ====================== ====== =========== AMQ_BROKER List of ActiveMQ brokers APP_SECRET yes `Django SECRET_KEY `_ CATALOG_URL yes `ONCat URL `_ CATALOG_API_TOKEN yes `ONCat API token `_ DATABASE_HOST PostgreSQL hostname DATABASE_NAME Database name DATABASE_PASS yes PostgreSQL Owner password DATABASE_PORT PostgreSQL post DATABASE_USER PostgreSQL Owner username DJANGO_SETTINGS_MODULE `Description of settings `_ ICAT_PASS yes ActiveMQ password ICAT_USER ActiveMQ username LDAP_DOMAIN_COMPONENT yes Use in `AUTH_LDAP_USER_DN_TEMPLATE `_ LDAP_SERVER_URI yes `AUTH_LDAP_SERVER_URI `_ TIME_ZONE `Time zone to use `_ LOAD_INITIAL_DATA In non-production environments, loads default database "db_init.json" when set to "true". Set to "false" if loading a database dump instead ====================== ====== =========== workflow-db environment variables ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ====================== ====== =========== Variable Secret Description ====================== ====== =========== POSTGRES_DB Database name POSTGRES_PASSWORD yes PostgreSQL Owner password POSTGRES_USER PostgreSQL Owner username ====================== ====== =========== workflow-mgr environment variables ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ====================== ====== =========== Variable Secret Description ====================== ====== =========== AMQ_BROKER List of ActiveMQ brokers AMQ_QUEUE List of ActiveMQ queues dasmon should listen to| APP_SECRET yes `Django SECRET_KEY `_ DATABASE_HOST PostgreSQL hostname DATABASE_NAME Database name DATABASE_PASS yes PostgreSQL Owner password| DATABASE_PORT PostgreSQL post DATABASE_USER PostgreSQL Owner username ICAT_PASS yes ActiveMQ password ICAT_USER ActiveMQ username TIME_ZONE `Time zone to use `_ WORKFLOW_USER ActiveMQ workflow username WORKFLOW_PASS yes ActiveMQ workflow password ====================== ====== =========== catalog environment variables (TEST only) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ====================== ====== =========== Variable Secret Description ====================== ====== =========== ACTIVE_MQ_HOST ActiveMQ hostname ACTIVE_MQ_PORTS ActiveMQ port ICAT_PASS yes ActiveMQ password ICAT_USER ActiveMQ username ====================== ====== =========== testfixtures environment variables (TEST only) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ====================== ====== =========== Variable Secret Description ====================== ====== =========== BROKER ActiveMQ broker address DATABASE_HOST PostgreSQL hostname DATABASE_NAME Database name DATABASE_PASS yes PostgreSQL Owner password| DATABASE_PORT PostgreSQL post DATABASE_USER PostgreSQL Owner username ICAT_PASS yes ActiveMQ password ICAT_USER ActiveMQ username ====================== ====== =========== Additional configuration files ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * **amqbroker-deploy** (TEST only) -> `icat_activemq.xml `_ * icat and workflow username and passwords are set in here * **autoreducer-deploy** (TEST only)-> `post_processing.conf `_ * ActiveMQ server address needs to be set in here * icat username and password needs to be set in here * **web-monitor-deploy** -> `nginx conf `_ Notes ^^^^^ You need to make sure the following variables match: * ``DATABASE_*`` in **web-monitor**, **workflow-mgr** and **testfixtures**, and **POSTGRES_*** in database * ``ICAT_USER`` and ``ICAT_PASS`` in **web-monitor**, **workflow-mgr**, **catalog** and **testfixtures**, and **amqbroker** (``icat_activemq.xml``) and **autoreducer** (``post_processing.conf``) * ``WORKFLOW_USER`` and ``WORKFLOW_PASS`` in **workflow-mgr** and in **amqbroker** (``icat_activemq.xml``)