Versions Compared

Key

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

...

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

Code Block
├── README.md
├── cassandra
│   └── db
│       ├── db_create_tables.cql
│       └──├── db_init.cql
│       └── schema_ready
├── configs
│   └── xconfui.conf
├── docker-compose.yaml
├── init-cassandra.sh
├── xconfadmin
│   ├── CONTRIBUTING.mdDockerfile
│   ├── COPYING -> LICENSE
│   ├── DockerfileDockerfile_org
│   ├── LICENSEconfig
│   └── config
│       └── sample_xconfadmin.conf
│   ├── xconfuicredentials.txt
│   ├──└── CONTRIBUTINGversion.mdtxt
│   ├── COPYING -> LICENSExconfui
│   ├── Dockerfile
│   ├── LICENSEconfig
│   └── config
│       └── sample_xconfui.conf
│   └── xconfwebconfig
    ├── CONTRIBUTING.md
    ├── COPYING -> LICENSE
   version.txt
├── xconfwebconfig
│   ├── Dockerfile
   │   ├── LICENSEconfig
│   │     └── configsample_xconfwebconfig.conf
│          └── sample_xconfwebconfig.conf

...

├── data_service_start.sh
│   └── version.txt



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.

...

This modification is handled inside the Dockerfile

https://github.com/rdkcentral/rdk-cloud-container-config/blob/main/xconf/xconfadmin/Dockerfile#L48



Steps for running Container

Code Block
./tr1d1um/tr1d1um.yaml:12:server: "<public IP>"
./tr1d1um/tr1d1um.yaml:305:targetURL: http://<public IP>:6300/api/v2
./talaria/talaria.yaml:9:server: "public IP"
./scytale/scytale.yaml:9:server: "public IP"
./scytale/scytale.yaml:214:  endpoints: ["http://<public IP>:8080/api/v3/device/send"]
./scytale/scytale.yaml:370:    - http://<public IP>:6300

  • Run docker compose 
  • credentials.txt, this will be the credentials for your xconfui
  • From the xconf folder. run 
    Code Block
    $ docker compose up --build -

...

  • d
  •  check created containers  are running successfully
Code Block
$ docker ps

CONTAINER ID   IMAGE            COMMAND                   CREATED      STATUS    STATUS  PORTS                  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 NAMES
57dd3ec297cbminutes ago  tr1d1um Up  "/etc/tr1d1um/tr1d1um"21 minutes   3 days ago   Up 3 days   0.0.0.0:6100-6103->6100-61039001->9001/tcp, :::6100-6103->6100-61039001->9001/tcp
                xconfadmin
7c6357f76099   xconfui          "./xconfui-linux-amd…"    22 minutes ago   Up        tr1d1um
b8a3dc0d915b   scytale   "/etc/scytale/scytale"21 minutes   3 days ago   Up 3 days   0.0.0.0:6300-6303->6300-63038081->8081/tcp, :::6300-6303->6300-63038081->8081/tcp, 9090/tcp
                                             scytale
54082f1f8526   talaria   "/etc/talaria/talariaxconfui
0611c634c4f3   cassandra:3.11   "docker-entrypoint.s…"   3 22 daysminutes ago   Up 22 3minutes days(healthy)   0.0.0.0:6200-6204->6200-62047000-7001/tcp, 7199/tcp, :::6200-6204->6200-62049160/tcp, 0.0.0.0:80809042->8080>9042/tcp, :::80809042->8080>9042/tcp
    talaria            cassandra



  • Verify docker images are created successfully
Code Block
$ docker images
REPOSITORY       TAG       IMAGE ID       CREATED       SIZE
tr1d1um     SIZE
xconfui          latest    64887efb14ac   22 minutes ago   808MB
xconfwebconfig   latest    aa9d55a69a6c04ff76ce94ec   343 daysminutes ago   7148.2MB5MB
scytalexconfadmin       latest    137bad8f272cd301fe78f627   358 daysminutes ago   8254.9MB3MB
talariacassandra        latest3.11      884a6d1782228c9391a40c86   3 daysmonths ago     74.9MB303MB



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

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

Testing

GET Parameter

Verify xconfadmin is running properly

$ curl $ curl -H ''Authorization:Basic <AUTH_TOKEN>' -i http://<WEBPA-URL>/api/v2/device/mac:<DEVICE_MAC>/config?names=<PARAMETER>
e.g.
$ curl -H 'Authorization:Basic d2VicGFAMTIzNDU2Nzg5MA==' -i http://<WEBPA_SERVER_IP:6100>/api/v2/device/mac:aabbccddeeff/config?names=Device.DeviceInfo.ModelName

...

<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 $ curl -X PATCH https://<IP>:9003/api/v2/device/mac:<MAC>/config -d '{"parameters": [ {"dataType": 0, "name": "<TR181_PARAM>", "value": "<Value-to-Set>"}]}' -H 'Authorization:Basic <TOKEN>' e.g.
$ curl -X PATCH http://<IP>:6100/api/v2/device/mac:aabbccddeeff/config -d '{"parameters": [ {"dataType": 0, "name": "Device.WiFi.SSID.10001.SSID", "value": "Testing"}]}' -H 'Authorization:Basic d2VicGFAMTIzNDU2Nzg5MAo='

List of connected Devices

$ curl -H "<AUTH_TOKEN>" http://<IP>:8080/api/v2/devices
e.g. curl -H "Authorization: Basic d2VicGFAMTIzNDU2Nzg5MA==" http://<webpa_serverIP>:8080/api/v2/devices

AUTH_TOKEN       : Basic base64 encoded auth token or SAT (if enabled).

WEBPA-URL          : URL of Tr1d1um service in IP:PORT format.

DEVICE_MAC        :  MAC address of the CPE device.

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 by giving this URL in the UI

$ http://<ip>:8081


This page covers the http based configuration, for https we can configure using nginx. 

Rest of the testing, refer the wiki page Xconf Golang Server - User guide for configuration and feature validationPARAMETER         : GET/SET Parameter that need to be requested.