Install and Start the Remote CMS

Remote CMS is available with smartServer 3.5 update 2 and higher.

To install and start Remote CMS, perform the following steps:

  1. Set up a Remote CMS host computer.

  2. Purchase and then download the Remote CMS Docker image to the Remote CMS host. See SmartServer Release Notes for the Remote CMS download link. 

    Contact information for Remote CMS license models

    You can contact our Sales team at edge.info@enocean.com for more information about the Remote CMS license models that are available for purchase.

  3. Create a new directory for the Remote CMS Docker image using the following commands:

    cd ~
    mkdir docker
    cd docker
  4. Create a docker group using the following command:

    docker group grants root-user equivalent privileges

    Docker always runs as a root user and establishes a Unix socket that is accessible to members of the docker group on startup. If your username belongs to the docker group, then once the docker group is created and the group membership changes are effective, you will be able to manage Docker as a non-root user.

    sudo groupadd docker
  5. Add your username to the docker group using the following command:

    sudo usermod -aG docker $USER
  6. Log out of your session completely, and then log back in, in order for your group membership changes to take effect.

  7. Load the Remote CMS Docker image into Docker system using the following command:

    docker load -i <docker_image_file>
  8. Create a postgres Docker volume using the following command:

    docker volume create postgres
  9. Run the Docker container using the command shown below depending on which version of the SmartServer you are running:

    1. For SmartServer 3.5 Update 2 and 3.6, ports 80, 443, 8443, and 8883 need to be exposed.

    2. For SmartServer 4.0 and higher, ports 80, 443, and 8883 ports need to be exposed.

      Verify that the path /home/echelon/backups exists on the Remote CMS host system before running the Docker container. 

      SmartServer 4.1 (Beta) or higher
      docker run -dt -e IP_EXTERNAL='root.cms' -v postgres:/var/lib/postgresql/12/main -v /home/echelon/backups:/media/sdcard/backup -p8883:8883 -p443:443 -p80:80 -p1883:1883 -p8161:8161 --tmpfs /run/lock --tmpfs /run -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns=host --restart unless-stopped --name cms cms/remote:latest -v <host full path of the directory containing custom web pages>:/usr/lib/apollo/www/user/custom

      Use the following parameter to specify a custom web page for a user homepage:

      -v <host full path of the directory containing custom web pages>:/usr/lib/apollo/www/user/custom

      SmartServer 3.5 Update 2 through 4.0
      docker run -d -e IP_EXTERNAL='<host_name>' -v postgres:/var/lib/postgresql/12/main -v /home/echelon/backups:/media/sdcard/backups -p 8883:8883 -p 8443:8443 --restart unless-stopped --name cms cms/remote
      SmartServer 3.6 and higher and PKI certificate management
      docker run -d -e IP_EXTERNAL='<host_name>' -e ROOT_CA='<full path of the file containing the root certificate>' -e PKI_DIR_URL='<URL used by CM to obtain certificates>' -e SSIOT_SUFIX_DOMAIN='.smartserver.local' -v postgres:/var/lib/postgresql/12/main -v <host full path of the file containing the root certificate>:<destination full path of the file containing the root certificate> -v glp_data:/var/apollo/data -v /home/echelon/backups:/media/sdcard/backups -p 80:80 -p 443:443 -p 8181:8181 -p 1883:1883 -p 8883:8883 --restart unless-stopped --name rcms cms/remote

      If you are using PKI certificate management, then the following variables are configurable for your environment:

      • ROOT_CA specifies the full path of the file that is passed to the container and that is needed by the certificate manager in order to establish a trusted connection with the certificate authority (e.g., /etc/ssl/certs/ca/ca_root.pem).

        • PKI_DIR_URL is the API URL to which the certificate manager will connect in order to obtain the certificates.
        • SSIOT_SUFIX_DOMAIN specifies the domain used by the SmartServers. It is added to the SmartServers' SID to get the fully qualified domain name (FQDN) for the requested certificate. For example, if the domain is example.comand you want to access SmartServers by domain names using the format <SID>.example.com, then you should set SSIOT_SUFFIX_DOMAIN to .example.com (include the leading period).
        • /var/apollo/data is mounted as a persistent volume, which also stores status data for all certificates that are generated by certificate manager.

    3. Start the Remote CMS using the following command:

      docker start cms


To continue setting up the Remote CMS by enabling Remote CMS on each of the SmartServers in the system, go to Enable Remote CMS for Each SmartServer.

To update the Remote CMS, see Updating the Remote CMS.