1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# 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`
1. `$HOME/.xds/server/server-config.json` file
1. `/etc/xds/server/server-config.json` file
1. `<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.
```json
{
"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`.
<!-- section-note -->
**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`
<!-- end-section-note -->
## 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:
```json
{
"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.
<!-- section-note -->
**Note:**
- `CloudSync` (AKA syncthing) synchronization type can also be disabled when `"syncthing"` key is not defined in JSON configuration file.
<!-- end-section-note -->
|