# Advanced morpheus.rb Settings

Morpheus allows for additional advanced customizations for system managed services within the morpheus.rb file located in `/etc/morpheus/morpheus.rb`. Below is a list of the supported items available in the `morpheus.rb` file.

NOTE

Service configuration settings are not applicable for externalized services such as external MySQL, Opensearch or RabbitMQ clusters. Only connection settings are applicable for external services. Additionally, to configure HPE Morpheus Enterprise to utilize alternate ports for SSL, you may have to take additional configuration steps. If simply appending a port to your `appliance_url` value doesn’t work.

```
```
app['encryption_key_suffix'] = '$suffix'  
  # Replace $suffix with the suffix string of your choice. See `https://docs.morpheusdata.com/en/latest/getting_started/additional/encryption.html` for important details and warnings.  
appliance_url 'https://morpheus.appliance-url.com'  
  # Appending alternate port to appliance_url is supported. ie 'https://morpheus.appliance-url.com:8443'  
  # The appliance_url cannot exceed 64 characters  
  # The appliance_url must not contain a trailing `/`.  
bitcan['backup_directory'] = '/var/opt/morpheus/bitcan/backups'  
bitcan['working_directory'] = '/var/opt/morpheus/bitcan/working'  
opensearch['auth_password'] = 'xxxxxxxxxxxxxxxx'  
opensearch['auth_user'] = 'morpheus-es-user'  
opensearch['enable'] = true  
opensearch['es_hosts'] = {'127.0.0.1' => 9200}  
opensearch['host'] = "127.0.0.1"  
opensearch['port'] = "9200"  
opensearch['tmp_dir'] = '/var/tmp/opensearch'  
opensearch['use_tls'] = false  
↓ The following Opensearch settings are only valid for Internal/Embedded Opensearch services  
opensearch['log_dir'] = '/var/log/morpheus/opensearch'  
opensearch['memory_alloc_arena_max'] = 2  
opensearch['memory_map_max'] = 65536  
opensearch['memory_map_threshold'] = 131072  
opensearch['memory_top_pad'] = 131072  
opensearch['memory_trim_threshold'] = 131072  
opensearch['open_files'] = 204800  
opensearch['secure_mode'] = false  
opensearch['xms'] = 0.25 #### Configurable for customers running into high memory issues, values are the percentage of total RAM. Both ui and es xms/xmx config only apply if Opensearch is enabled.  
opensearch['xmx'] = 0.25  
guacd['guacamole_enabled'] = false  
guacd['host'] = localhost #### The host guacd is listening on, if not configured 'localhost' is the default value  
logging['svlogd_num'] = 30 #### keep 30 rotated log files  
logging['svlogd_size'] = 209715200 #### 200 MB in bytes  
logging['svlogd_timeout'] = 86400 #### rotate after 24 hours in seconds  
mysql['enable'] = true  
mysql['host'] = {'127.0.0.1' => 3306}  
mysql['use_tls'] = false  
mysql['morpheus_db_user'] = 'morpheus-db-user'  
mysql['morpheus_password'] = 'morpheus-db-password'  
mysql['morpheus_db'] = 'xxxxxxxxxxxxxxxx'  
mysql['mysql_url_overide'] = 'jdbc:mysql://10.30.20.10:3306,10.30.20.11:3306,10.30.20.12:3306/morpheusdb?autoReconnect=true&useUnicode=true&characterEncoding=utf8&failOverReadOnly=false&useSSL=false'  
↓ The following mysql settings are only valid for Internal/Embedded mysql services  
mysql['tmp_dir'] = '/tmp/mysql'  
mysql['log_dir'] = '/var/log/morpheus/mysql'  
mysql['max_active'] = 150 # The combined value off all app node max_active values must be lower than max_connections setting in mysql  
mysql['max_connections'] = 151  
mysql['max_allowed_packet'] = 67108864  
mysql['mysql_connect_timeout'] = 60000  
mysql['mysql_max_reconnects'] = 2  
mysql['mysql_queries_before_retry_source'] = 0  
mysql['mysql_seconds_before_retry_source'] = 300  
nginx['cache_max_size'] = '5000m'  
nginx['enable'] = true  
nginx['loading_pages']['failure_page_h1'] = 'Morpheus Server Error'  
nginx['loading_pages']['failure_page_h2'] = 'Please contact your system administrator for assistance.'  
nginx['loading_pages']['failure_page_title'] = 'Morpheus Server Error'  
nginx['loading_pages']['iteration_time'] = 10000 # milliseconds  
nginx['loading_pages']['loading_page_h1'] = 'Morpheus is Loading...'  
nginx['loading_pages']['loading_page_h2'] = 'please wait'  
nginx['loading_pages']['loading_page_title'] = 'Morpheus Loading'  
nginx['loading_pages']['max_loops'] = 60 # seconds  
nginx['loading_pages']['timeout_page'] = '/timeout.html'  
nginx['loading_pages']['timout_page_h1'] = 'Timeout waiting for Morpheus to load, click below to try again.'  
nginx['loading_pages']['timout_page_title'] = 'Morpheus timeout, please try again...'  
nginx['log_format_name'] = 'custom'  
nginx['log_format'] = '\'$remote_addr - $remote_user [$time_local] "$request" \' \'$status $body_bytes_sent "$http_referer" \' \'"$http_user_agent" "$http_x_forwarded_for" \' \'rt=$request_time uct="$upstream_connect_time" uht="$upstream_header_time" urt="$upstream_response_time"\';'  
nginx['listen_ipv6'] = nil #### IPv6 will be added to ``morpheus.conf`` and ``morpheus-ssl.conf`` listeners if any value is set in morpheus.rb other than ``nil``, including "off" or false  
nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"  
nginx['ssl_company_name'] = "Morpheus, LLC"  
nginx['ssl_country_name'] = "US"  
nginx['ssl_email_address'] = "personal@email.com"  
nginx['ssl_locality_name'] = "San Mateo"  
nginx['ssl_organizational_unit_name'] = "DevOps"  
nginx['ssl_protocols'] = "TLSv1 TLSv1.1 TLSv1.2"  
nginx['ssl_session_cache'] = "builtin:1000  shared:SSL:10m"  
nginx['ssl_session_timeout'] = "5m"  
nginx['ssl_state_name'] = "CA"  
nginx['worker_connections'] = 10240  
nginx['workers'] = integer calculated from number of cpus  
nginx['ssl_access_ping_log'] = false #### false by default, when true GET requests to the ``/ping`` endpoint are logged in the ``/var/log/morpheus/nginx/morpheus-ssl-access.log`` file on the appliance  
nginx['access_ping_log'] = false #### false by default, when true GET requests to the ``/ping`` endpoint are logged in the ``/var/log/morpheus/nginx/morpheus-ssl-access.log`` file on the appliance  
rabbitmq['enable'] = true  
rabbitmq['host'] = '127.0.0.1'  
rabbitmq['port'] = '5672'  
rabbitmq['queue_user_password'] = 'xxxxxxxxxxxxxxxx'  
rabbitmq['queue_user'] = 'morpheus-rmq-user'  
rabbitmq['vhost'] = 'morpheus'  
↓ The following rabbitmq settings are only valid for Internal/Embedded rabbitmq services  
rabbitmq['heartbeat'] = nil  
rabbitmq['log_dir'] = '/var/log/morpheus/rabbitmq'  
rabbitmq['nodename'] = 'rabbit@localhost'  
rabbitmq['port'] = '5672'  
rabbitmq['use_tls'] = false  
repo['repo_host_url'] = 'https://www.hpe.com/support/hpesc'  
ui['http_client_connect_timeout'] = 10000  #### milliseconds  
ui['jobs_enabled'] = true #### This option disables the appliance jobs service on the appliance node when set to false. This should be disabled only when configuring jobs to run on specific app nodes in HA environments.  
ui['kerberos_config'] = nil  
ui['kerberos_login_config'] = nil  
ui['log_dir'] = '/var/log/morpheus/morpheus-ui'  
ui['max_memory_mb'] = nil  
ui['memory_alloc_arena_max'] = 2  
ui['memory_map_max'] = 65536  
ui['memory_map_threshold'] = 131072  
ui['memory_top_pad'] = 131072  
ui['memory_trim_threshold'] = 131072  
ui['pxe_boot_enabled'] = false #### This option disables the PXE service within the app  
ui['support_links'] = {  
  'name' => ['url', 'i18n'],  
  'name1' => ['url1', i18n1'],  
  'name2' => ['url2', i18n2']  
} #### The internationalization configuration is optional. The result of this configuration are entries in the support dropdown menu in the upper bar of the application window which override the default entries.  
ui['vm_images_cdn_url'] = 'https://morpheus-images.morpheusdata.com'  
ui['xms'] = 0.25 #### Configurable for customers running into high memory issues, values are the percentage of total RAM. Both ui and es xms/xmx config only apply if Opensearch is enabled.  
ui['xmx'] = 0.25
```
```
