Configuration

xds-server configuration is driven by a JSON config file (server-config.json).

Here is the logic to determine which server-config.json file will be used:

  1. from command line option: --config myConfig.json
  2. $HOME/.xds/server/server-config.json file
  3. /etc/xds/server/server-config.json file
  4. <xds-server executable dir>/server-config.json file

Supported fields in configuration file are:

  • httpPort : HTTP port of client webapp/REST API
  • webAppDir : location of client web application (default: webapp/dist)
  • shareRootDir : root directory where projects will be copied
  • logsDir : directory to store logs (eg. syncthing output)
  • sdkScriptsDir : directory where scripts, used to managed SDKs, are installed
  • sdkDbUpdate : define how SDK database(s) is(are) updated, supported values are: disable, startup (default: startup)
  • syncthing.binDir : syncthing binaries directory (default: executable directory)
  • syncthing.home” : syncthing home directory (usually …/syncthing-config)
  • syncthing.gui-address : syncthing gui url (default http://localhost:8385)
  • syncthing.gui-apikey : syncthing api-key to use (default auto-generated)

All fields are optional and example below corresponds to the default values.

{
    "httpPort": 8000,
    "webAppDir": "webapp/dist",
    "shareRootDir": "${HOME}/.xds/server/projects",
    "logsDir": "/tmp/logs",
    "sdkScriptsDir": "${EXEPATH}/scripts/sdks",
    "sdkDbUpdate": "startup",
    "syncthing": {
        "binDir": "./bin",
        "home": "${HOME}/.xds/server/syncthing-config",
        "gui-address": "http://localhost:8385",
        "gui-apikey": "123456789",
    }
}

Notes:

Environment variables are supported by using ${MY_VAR} syntax.

When xds-server is started as a systemd service, default environment variables are set into /etc/default/xds-server file.

xds-server configuration is also driven by a JSON config file (server-config.json), and default JSON config is /etc/xds/server/server-config.json.

Note: You can use your own JSON config by settings APP_CONFIG variable of /etc/default/xds-server file to your file, for example /home/MYUSER/.xds/server/server-config.json

Disable syncthing

CloudSync synchronization type based on syncthing tool can be disabled by simply removing (or renaming) "syncthing" key in configuration file. Here is a JSON configuration file example where syncthing key as been renamed:

{
    "httpPort": 8000,
    "webAppDir": "webapp/dist",
    "shareRootDir": "${HOME}/.xds/server/projects",
    "logsDir": "/tmp/logs",
    "sdkScriptsDir": "${EXEPATH}/scripts/sdks",
    "syncthing_DISABLE": {
        "binDir": "./bin",
        "home": "${HOME}/.xds/server/syncthing-config",
    }
}

On benefit to do that is to increase XDS-Server startup time.

Note:

  • CloudSync (AKA syncthing) synchronization type can also be disabled when "syncthing" key is not defined in JSON configuration file.