Updating the Remote CMS

Remote CMS is available with SmartServer 4.4 and higher.

All data is located inside of the Remote CMS Docker container and will be lost during a Remote CMS update because the container will be replaced with new, empty container during the update process. However, the essential data can be configured to remain intact through the update process. For this purpose, directories are mapped to host filesystem as follows:

  • Database data directory is mounted to the postgres volume on the host filesystem.

  • SSL certificates directory is mapped to the host system certificates directory. Certificates management can be performed in the host system certificates directory mapped to the Remote CMS Docker container.

To update the Remote CMS, perform the following steps:

  1. Verify that the docker group exists on the Remote CMS in order to manage Docker as a non-root user using the following command:

    compgen -g

    If the docker group exists and your username is part of that group, then you can continue with the following step. If not, then follow the steps (steps #3-6) for creating a docker group in the Install and Start the Remote CMS section. Once your docker group membership changes are in effect, you can continue with the following step.

  2. Stop and remove the Remote CMS Docker container using the following commands:

    docker stop cms
    docker rm cms
  3. Download the new Remote CMS image to the host system.

  4. Load the new Remote CMS image into the Docker container using the following command:

    docker load -i <docker_image_file>
  5. Expose ports 80, 443, and 8883 as needed.
  6. Verify that the path /home/echelon/backups exists on the Remote CMS host system before running the Docker container.

  7. Run the Docker container using the following command:

    sudo 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
  8. Start the Remote CMS using the following command:

    docker start cms