Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.





Remote CMS is available with smartServer 3.5


update 2 and higher.

You can perform the following steps to 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. 

    titleContact information for Remote CMS license models

    You can contact our Sales team at 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:

    Code Block
    cd ~
    mkdir docker
    cd docker

  4. Create a docker group using the following command:

    titledocker 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.

    Code Block
    sudo groupadd docker

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

    Code Block
    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:

    Code Block
    docker load -i <docker_image_file>

  8. Create a postgres Docker volume using the following command:

    Code Block
    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. 

      Code Block
      titleSmartServer 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

      Code Block
      titleSmartServer 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

      Code Block
      titleSmartServer 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>, then you should set SSIOT_SUFFIX_DOMAIN to (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:

      Code Block
      docker start cms