-# XDS - X(cross) Development System
+# XDS - X(cross) Development System Server
XDS-server is a web server that allows user to remotely cross build applications.
interface over HTTP and also provides a Web dashboard to configure projects and execute only _(for now)_ basics commands.
XDS-server also uses [Syncthing](https://syncthing.net/) tool to synchronize
-projects files from user machine to build server machine.
+projects files from user machine to build server machine or container.
> **NOTE**: For now, only Syncthing sharing method is supported to synchronize
projects files.
- Install and setup [Go](https://golang.org/doc/install) version 1.7 or
higher to compile this tool.
- Install [npm](https://www.npmjs.com/) : `sudo apt install npm`
-- Install [gulp](http://gulpjs.com/) : `sudo npm install -g gulp`
+- Install [gulp](http://gulpjs.com/) : `sudo npm install -g gulp-cli`
### Building
make all
```
+And to install xds-server in /usr/local/bin:
+```bash
+make install
+```
+
## How to run
## Configuration
Here is the logic to determine which `config.json` file will be used:
1. from command line option: `--config myConfig.json`
2. `$HOME/.xds/config.json` file
-3. `<xds-server executable dir>/config.json` file
+3. `<current dir>/config.json` file
+4. `<xds-server executable dir>/config.json` file
Supported fields in configuration file are:
```json
{
"webAppDir": "location of client dashboard (default: webapp/dist)",
"shareRootDir": "root directory where projects will be copied",
+ "logsDir": "directory to store logs (eg. syncthing output)",
"syncthing": {
+ "binDir": "syncthing binaries directory (default: executable directory)",
"home": "syncthing home directory (usually .../syncthing-config)",
"gui-address": "syncthing gui url (default http://localhost:8384)"
}
## Start-up
+Use `xds-start-server.sh` script to start all requested tools
```bash
-./bin/xds-server -c config.json
+/usr/local/bin/xds-start-server.sh
```
-**TODO**: add notes about Syncthing setup and startup
+>**NOTE** you can define some environment variables to setup for example
+config file `XDS_CONFFILE` or change logs directory `LOGDIR`.
+See head section of `xds-start-server.sh` file to see all configurable variables.
## Debugging
|
+-- README.md this readme
|
++-- scripts/ hold various scripts used for installation or startup
+|
+-- tools/ temporary directory to hold development tools (like glide)
|
+-- vendor/ temporary directory to hold Go dependencies packages
+-- webapp/ source client dashboard (Angular2 app)
```
-VSCode launcher settings can be found into `.vscode/launch.json`.
+Visual Studio Code launcher settings can be found into `.vscode/launch.json`.
## TODO: