The number of CLI arguments, the poor documentation, and the difficult use of these arguments pledge for a change in the way the client and server applications are configured at startup.
A way better way to deal with configuration is to use configuration files, and to pass the configuration file as the only argument to the executables.
This would require to add code to parse this configuration file, but, as we already use rapidjson to parse JSON datasets, if we decide to use JSON as the format of the configuration file, we would not have to add an additional dependency to the code base. On the other hand, YAML or TOML might be better choices than JSON to write configuration files, but it would require to use a new library.