Remote CMS is available with smartServer 3.5 Update 2 and higher.
...
- 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.
Info title 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:
Code Block cd ~ mkdir docker cd docker
Create a docker group using the following command:
Warning title 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.
Code Block sudo groupadd docker
Add your username to the docker group using the following command:
Code Block 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:
Code Block docker load -i <docker_image_file>
Create a postgres Docker volume using the following command:
Code Block docker volume create postgres
Run the Docker container using the command shown below depending on which version of the SmartServer you are running:
For SmartServer 3.5 Update 2 and 3.6, ports 80, 443, 8443, and 8883 need to be exposed.
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 title 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
Note 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 title 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
Code Block title 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.
Start the Remote CMS using the following command:
Code Block docker start cms
...