In this document, we are planning to bring up xconfadmin, xconfui, xconfwebconfig, cassandra in four different containers and checking the connectivity in them. This is documented based on the docker bringup in Ubuntu 24.04 machine

Pre-requisite

$ docker --version
Docker version 27.5.1, build 27.5.1-0
$ docker compose version
Docker Compose version v2.36.2


Steps to bring up

Tree structure of the code details https://github.com/rdkcentral/rdk-cloud-container-config is as follows.

├── cassandra
│   └── db
│       ├── db_create_tables.cql
│       └── db_init.cql
├── docker-compose.yaml
├── init-cassandra.sh
├── xconfadmin
│   ├── Dockerfile
│   └── config
│       └── sample_xconfadmin.conf
├── xconfui
│   ├── Dockerfile
│   └── config
│       └── sample_xconfui.conf
└── xconfwebconfig
    ├── Dockerfile
    └── config
        └── sample_xconfwebconfig.conf

Configuration files

xconfadmin, xconfui, xconfwebconfig holds the configuration which is same as  whatever available in their respective github repo.

Eg: For xconfadmin, https://github.com/rdkcentral/xconfadmin/commit/d740d4190db6c9f285ab68fd7d3e4ffaf94e8e2b#diff-840011df7d93f21a964cb8112e896a59d8cdc5368b890f0fe32d2c6b2634498b.

The difference is in
  database {
        hosts = [
            "127.0.0.1"
        ]
For standalone, it will be localhost as cassandra is running in different container this needs to address with Container name instead of localhost.

https://github.com/rdkcentral/rdk-cloud-container-config/blob/main/xconf/xconfadmin/config/sample_xconfadmin.conf#L76. For easeness, modified file is kept in the container config github repo.


Steps for running Container

$ docker ps

CONTAINER ID   IMAGE            COMMAND                   CREATED          STATUS                    PORTS
                NAMES
e9ca26d40704   xconfwebconfig   "/bin/sh -c 'sh -c \"…"   22 minutes ago   Up 21 minutes             0.0.0.0:9000->9000/tcp, :::9000->9000/tcp
                xconfwebconfig
803f61de1b89   xconfadmin       "/bin/sh -c 'sh -c \"…"   22 minutes ago   Up 21 minutes             0.0.0.0:9001->9001/tcp, :::9001->9001/tcp
                xconfadmin
7c6357f76099   xconfui          "./xconfui-linux-amd…"    22 minutes ago   Up 21 minutes             0.0.0.0:8081->8081/tcp, :::8081->8081/tcp, 9090/tcp
                xconfui
0611c634c4f3   cassandra:3.11   "docker-entrypoint.s…"    22 minutes ago   Up 22 minutes (healthy)   7000-7001/tcp, 7199/tcp, 9160/tcp, 0.0.0.0:9042->9042/tcp, :::9042->9042/tcp
                cassandra



$ docker images
REPOSITORY       TAG       IMAGE ID       CREATED          SIZE
xconfui          latest    64887efb14ac   22 minutes ago   808MB
xconfwebconfig   latest    04ff76ce94ec   43 minutes ago   48.5MB
xconfadmin       latest    d301fe78f627   58 minutes ago   54.3MB
cassandra        3.11      8c9391a40c86   3 months ago     303MB



Note :  For this bringup, xconf port is modified to 8081, rest of the ports used are same as in the repo.

For errors, can be checked by $ docker logs <containerid>

Testing

Verify xconfadmin is running properly

$ curl http://<IP>:9001/version
{"status":200,"message":"OK","data":{"code_git_commit":"xconfadmin-22.2.14-461.879f957","build_time":"Thu Feb 14 02:14:00 2022 UTC","binary_version":"","binary_branch":"","binary_build_time":""}}



Verify xconfwebconfig is runing properly

$  curl http://<IP>:9000/version
{"status":200,"message":"OK","data":{"code_git_commit":"xconfwebconfig-22.2.14-461.879f957","build_time":"Thu Feb 14 02:14:00 2022 UTC","binary_version":"a17cc4b","binary_branch":"main","binary_build_time":"2025-07-02_08:29:35_UTC"}}

Verify UI is working properly

$ http://<ip>:8081


Rest of the testing, refer the wiki page Xconf Golang Server - User guide for configuration and feature validation