Appliance Settings

The Administration -> Settings section sets global configuration parameters for the Appliance, Tenant Registration, Email, Proxy and sets which Cloud types are enabled.

Appliance Settings

Host Level Firewall Enabled
Enables or Disables the host level firewall. This must be Enabled to use Morpheus Security Groups.
Appliance URL
The default URL used for Agent install and Agent functionality. All Instances and Hosts must be able to resolve and reach this URL over 443 for successful agent install and communication.

Note

Alternate Appliance URLs can be configured per Cloud in the Edit Cloud -> Advanced Options section.

Internal Appliance URL (PXE)
For PXE-Boot your appliance needs to be routable directly with minimal NAT masquerading. This allows one to override the default appliance url endpoint for use by the PXE Server. If this is unset, the default appliance url will be used instead.
API Allowed Origins
Specifies which origins are allowed to access the Morpheus API.

Tenant Management Settings

Registration Enabled
If enabled, the appliance login screen will have a “NEED AN ACCOUNT? SIGN UP HERE” link added, enabling new Tenant registration.
Default Tenant Role
Sets the default Tenant Role applied to Tenants created from Tenant Registration.
Default User Role
Sets the default User Role applied to the User created from a Tenant Registration.

Email Settings

A default installation of Morpheus uses a online service called postmarkapp. Morpheus api requests to the postmarkapp service to send notification e-mails.

To add your own SMTP server you will need to go to the Administration and Settings of your Morpheus appliance. You will then need to provide Morpheus the following information, your mail server systems administrator should provide you with the below information and the preferred encryption method.

  • From Address
  • SMTP Server
  • SMTP Port
  • SSL Enabled
  • TLS Encryption
  • SMTP User
  • SMTP Password

We recommend that you add your Morpheus server to your SMTP white list as well as using user authentication as an additional security measure.

Once you have added your SMTP server information into Morpheus scroll down the Administration and Settings page and press the blue save button which can be found under enabled clouds.

When you have saved your SMTP server settings in the Morpheus appliance you will then need to restart the Morpheus-ui. To restart the Morpheus-ui connection to your Morpheus server via ssh and run the below command.

sudo morpheus-ctl restart morpheus-ui

Important

If you do not restart the Morpheus-ui the notifications will be sent by the original notification service postmarkapp. Please note it can take up to 3 minutes for the ui to become reachable again. has a built in SMTP server for email notifications and alerts. An alternate SMTP server can be specified below:

Add an alternate SMTP Server:

  • From Address
  • SMTP Server
  • SMTP Port
  • SSL Enabled
  • TLS Encryption
  • SMTP User
  • SMTP Password

Proxy Settings

The Morpheus Appliance can be configured to communicate through a Proxy server for Cloud API’s and Agent communication back to the Appliance.

Note

Additional Proxy configuration is available in the Infrastructure -> Network -> Proxies section. Added Proxies can be scoped to Clouds in the Edit Cloud -> Advanced Options section of the Cloud.

Add a Global Proxy server by entering the following:

  • Proxy Host
  • Proxy Port
  • Proxy User
  • Proxy Password
  • Proxy Domain
  • Proxy Workstation

Enabled Clouds

Cloud types can be Enabled or Disabled in this section. When a Cloud type is disabled, it will be removed from the available options when adding new clouds in the Infrastructure section.

Available Cloud types:

  • Morpheus
  • OpenStack
  • Amazon
  • Metacloud
  • VMware vCenter
  • VMware vCloud Air
  • SoftLayer
  • Google Cloud
  • Azure (Public)
  • Azure Stack (Private)
  • DigitalOcean
  • VirtualBox
  • VMware Fusion
  • VMWare ESXi
  • Nutanix
  • UCS
  • XenServer
  • Hyper-V
  • MacStadium
  • Oracle VM
  • HP
  • Supermicro
  • Dell
  • SCVMM
  • UpCloud
  • Kubernetes
  • Cloud Foundry

Whitelabel Settings

Overview

Morpheus Tenants can be WhiteLabeled with custom Logos, Colors, Copy, and custom CSS. Sub-Tenants can be individually white-labeled, or the Master Tenant Whitelabel can apply to all Sub-Tenants.

Enable Whitelabel
Turns on the configured Whitelabel settings. Disabling will return the Appliance to the default colors and logos, but the configured options will remain saved and will apply if Whitelabel is re-enabled.
Appliance Name
Replaces Morpheus in page titles.
Header Logo
Top left header logo. Preferred Image Size (500x76)
Disable Support Menu
Enable this flag to hide the support dropdown menu in the header.
Footer Logo
Footer Logo in bottom left. Preferred Image Size (264x54)
Login Logo
Logo shown on Login screen. Preferred Image Size (228x280)
Favicon
Must be a .ico file type.
Reset
When selected and Whitelabel settings are saved, associated logo is returned to blank default value.

Colors

Update Colors by entering HEX value or selecting the Color Selector pop-up next to each filed and selecting a color.

  • Header Background
  • Header Foreground
  • Nav Background
  • Nav Foreground
  • Nav Hover
  • Primary Button Bg
  • Primary Button Fg
  • Primary Button Hover Bg
  • Primary Button Hover Fg
  • Footer Background
  • Footer Foreground
  • Login Background

Override CSS

Override CSS settings by entering CSS in Override CSS field.

Example: (this will add one continues background image to the Header)

header #topHeader {
        background-image: url(http://image_url.png);
        }
header {
        background-image: url(http://image_url.png);
        }

Copy

Add custom Copyright String, Terms of Use, Privacy Policy contained in the Footer text and links in the App and on the login page and emails.

Available Copy fields

  • Copyright String
  • Terms of Use
  • Privacy Policy

Note

Terms of Use and Privacy Policy Footer links will load internal pages at https://applaince_url/privacy-policy and https://applaince_url/terms-of-use displaying the entered info as plain text.

​ UI Loading Page ^^^^^^^^^^^^^^^^^

When the Morpheus UI is restarted or loading, a default “Morpheus is Loading” page is displayed. This page can be changed by adding the following to /etc/morpheus/morpheus.rb and adjusting the values.

Note

morpheus-ctl reconfigure must be ran for any chnages to /etc/morpheus/morpheus.rb to take effect.

nginx['web_root_internal'] = “/opt/morpheus/embedded/nginx/html"
nginx['loading_pages']['max_loops'] = 6 * 10 # 10 secs per loop x 6 times to get 60 seconds * 10 to get to 10 minutes
nginx['loading_pages']['timeout_page'] = '/timeout.html'
nginx['loading_pages']['iteration_time'] = 10_000
nginx['loading_pages']['loading_page_title'] = 'Morpheus Loading'
nginx['loading_pages']['loading_page_h1'] = 'Morpheus is Loading...'
nginx['loading_pages']['loading_page_h2'] = 'please wait'
nginx['loading_pages']['timout_page_title'] = 'Morpheus timeout, please try again...'
nginx['loading_pages']['timout_page_h1'] = 'Timeout waiting for Morpheus to load, click below to try again.'
nginx['loading_pages']['failure_page_title'] = 'Morpheus Server Error'
nginx['loading_pages']['failure_page_h1'] = 'Morpheus Server Error'
nginx['loading_pages']['failure_page_h2'] = 'Please contact your system administrator for assistance.'

License

Overview

Morpheus requires a valid license for provisioning new Instances, Apps and Hosts, and converting existing Instances and Hosts to managed. Licenses can be applied and updated in this section, and the current license status can be checked.

Current License

If a License Key has already been applied, the License status is shown in the Current License section:

Tenant Name
Company name the License was generated for.
Start Date
Date and time the current License started.
End Date
Date and time the current License expires.
Space
Amount of used and unused Managed RAM under the current License.

EXAMPLE: On a 1 TB License with 182 GB of RAM under management, the Space section will show Used Space 182.9GB Unused Space 841.0GB

Note

Once a current License expires or has reached its Space limit, users will no longer be able to provision new Instances, Apps, Hosts, or Bare Metal, or convert existing Hosts, Virtual Machines, or Bare Metal to managed. Morpheus will otherwise continue to function.

Upgrade License Key

To add a new or update an existing License:

  1. Copy the License Key into the License Key field
  2. Click UPDATE

If valid, the new License will be applied.

Request new License

Licenses can be requested at https://morpheushub.com, or by contacting support@ or sales@ morpheusdata.com.

Advanced morpheus.rb Settings

Overview

Morpheus allows for additional advanced customizations to the morpheus.rb file. Below is a list of the supported items availible in the morpheus.rb file.

ui['vm_images_cdn_url'] = 'https://morpheus-images.morpheusdata.com'
ui['kerberos_config'] = nil
ui['kerberos_login_config'] = nil
ui['max_memory_mb'] = nil
ui['memory_map_threshold'] = 131072
ui['memory_trim_threshold'] = 131072
ui['memory_top_pad'] = 131072
ui['memory_map_max'] = 65536
ui['memory_alloc_arena_max'] = 2
ui['http_client_connect_timeout'] = 10000
ui['http_client_connect_timeout'] = 600000

mysql['enable'] = true
mysql['morpheus_db'] = 'morpheus'
mysql['morpheus_db_user'] = 'morpheus'
mysql['max_active'] = 100
mysql['host'] = '127.0.0.1'
mysql['port'] = 3306
mysql['tmp_dir'] = '/tmp/mysql'

logging['svlogd_size'] = 209715200 # 200 MB in bytes
logging['svlogd_num'] = 30 # keep 30 rotated log files
logging['svlogd_timeout'] = 86400 # rotate after 24 hours in seconds

rabbitmq['enable'] = true
rabbitmq['vhost'] = 'morpheus'
rabbitmq['queue_user'] = 'queue_user'
rabbitmq['host'] = '127.0.0.1'
rabbitmq['port'] = '5672'
rabbitmq['nodename'] = 'rabbit@localhost'
rabbitmq['stomp_port'] = 61613
rabbitmq['heartbeat'] = nil

elasticsearch['enable'] = true
elasticsearch['host'] = "127.0.0.1"
elasticsearch['es_hosts'] = {'127.0.0.1' => 9200}
elasticsearch['open_files'] = 204800
elasticsearch['memory_map_threshold'] = 131072
elasticsearch['memory_trim_threshold'] = 131072
elasticsearch['memory_top_pad'] = 131072
elasticsearch['memory_map_max'] = 65536
elasticsearch['memory_alloc_arena_max'] = 2
elasticsearch['replica_count'] = 1

nginx['enable'] = true
nginx['workers'] = integer calculated from number of cpus
nginx['worker_connections'] = 10240
nginx['cache_max_size'] = '5000m'
nginx['ssl_country_name'] = "US"
nginx['ssl_state_name'] = "CA"
nginx['ssl_locality_name'] = "San Mateo"
nginx['ssl_company_name'] = "Morpheus, LLC"
nginx['ssl_organizational_unit_name'] = "DevOps"
nginx['ssl_email_address'] = "personal@email.com"
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_protocols'] = "TLSv1 TLSv1.1 TLSv1.2"
nginx['ssl_session_cache'] = "builtin:1000  shared:SSL:10m"
nginx['ssl_session_timeout'] = "5m"
nginx['loading_pages']['max_loops'] = 60 # seconds
nginx['loading_pages']['timeout_page'] = '/timeout.html'
nginx['loading_pages']['iteration_time'] = 10000 # milliseconds
nginx['loading_pages']['loading_page_title'] = 'Morpheus Loading'
nginx['loading_pages']['loading_page_h1'] = 'Morpheus is Loading...'
nginx['loading_pages']['loading_page_h2'] = 'please wait'
nginx['loading_pages']['timout_page_title'] = 'Morpheus timeout, please try again...'
nginx['loading_pages']['timout_page_h1'] = 'Timeout waiting for Morpheus to load, click below to try again.'
nginx['loading_pages']['failure_page_title'] = 'Morpheus Server Error'
nginx['loading_pages']['failure_page_h1'] = 'Morpheus Server Error'
nginx['loading_pages']['failure_page_h2'] = 'Please contact your system administrator for assistance.'

repo['repo_host_url'] = 'https://downloads.morpheusdata.com'