Install and Start the Remote CMS
Remote CMS is available with SmartServer 4.4 and higher.
To install and start Remote CMS, perform the following steps:
- Set up a Remote CMS host computer.
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.
Create a new directory for the Remote CMS Docker image using the following commands:
cd ~ mkdir docker cd docker
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
Add your username to the docker group using the following command:
sudo usermod -aG docker $USER
Log out of your session completely, and then log back in, in order for your group membership changes to take effect.
Load the Remote CMS Docker image into Docker system using the following command:
docker load -i <docker_image_file>
Create a postgres Docker volume using the following command:
docker volume create postgres
- Expose ports 80, 443, and 8883 as needed.
- Verify that the path
/home/echelon/backups
exists on the Remote CMS host system before running the Docker container. Run the Docker container using the following command:
Run the Docker containersudo docker run -dt -e IP_EXTERNAL='root.cms' -v postgres:/var/lib/postgresql/12/main -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
Use the following parameter to specify a custom web page for a user homepage:
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
Use the following command for PKI certificate management:
Manage PKI certificatessudo 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:latest
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.
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.