-# 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.
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)",
+ "sdkRootDir": "root directory where cross SDKs are installed",
"syncthing": {
+ "binDir": "syncthing binaries directory (default: executable directory)",
"home": "syncthing home directory (usually .../syncthing-config)",
- "gui-address": "syncthing gui url (default http://localhost:8384)"
+ "gui-address": "syncthing gui url (default http://localhost:8384)",
+ "gui-apikey": "syncthing api-key to use (default auto-generated)"
}
}
```
## Start-up
+Use `xds-server-start.sh` script to start all requested tools
+```bash
+/usr/local/bin/xds-server-start.sh
+```
+
+>**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-server-start.sh` file to see all configurable variables.
+
+## Install XDS-server in AGL SDK docker container
+
+XDS-server has been designed to easily cross compile
+[AGL](https://www.automotivelinux.org/) applications. That's why XDS-server is
+integrated in AGL SDK docker container.
+
+>**NOTE** For more info about AGL SDK docker container, please refer to
+[AGL SDK Quick Setup](http://docs.automotivelinux.org/docs/getting_started/en/dev/reference/setup-sdk-environment.html)
+
+### Create XDS AGL docker worker container
+
+You can either load a pre-build docker image or rebuild this image with latest
+source code.
+
+* load pre-build docker image:
+```bash
+wget http://iot.bzh/download/public/2017/XDS/docker/docker_agl_worker-xds-3.2.tar.xz | docker load
+```
+
+* OR execute following commands to rebuild docker image:
+```bash
+git clone https://git.automotivelinux.org/AGL/docker-worker-generator
+cd docker-worker-generator
+make build FLAVOUR=xds
+```
+
+You should get `docker.automotivelinux.org/agl/worker-xds:X.Y` image
+
```bash
-./bin/xds-server -c config.json
+docker images
+REPOSITORY TAG IMAGE ID CREATED SIZE
+docker.automotivelinux.org/agl/worker-xds 3.2 786d65b2792c 6 days ago 602MB
```
-**TODO**: add notes about Syncthing setup and startup
+### Start XDS AGL docker worker container
+
+Use provided script to create a new docker image and start a new container:
+```bash
+> ./docker-worker-generator/contrib/create_container 0 docker.automotivelinux.org/agl/worker-xds:3.2
+
+> docker ps
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+b985d81af40c docker.automotivelinux.org/agl/worker-xds:3.2 "/usr/bin/wait_for..." 6 days ago Up 4 hours 0.0.0.0:8000->8000/tcp, 0.0.0.0:69->69/udp, 0.0.0.0:10809->10809/tcp, 0.0.0.0:2222->22/tcp agl-worker-seb-laptop-0-seb
+```
+
+This container exposes following ports:
+ - 8000 : XDS-server to serve XDS Dashboard
+ - 69 : TFTP
+ - 2222 : ssh
+
+Now start xds-server inside this container:
+```bash
+> ssh -p 2222 devel@localhost
+[15:59:58] devel@agl-worker-seb-laptop-0-seb:~$ /usr/local/bin/xds-server-start.sh
+### Configuration in config.json:
+{
+ "webAppDir": "/usr/local/bin/www-xds-server",
+ "shareRootDir": "/home/devel/.xds/share",
+ "logsDir": "/tmp/xds-server/logs",
+ "sdkRootDir": "/xdt/sdk",
+ "syncthing": {
+ "binDir": "/usr/local/bin",
+ "home": "/home/devel/.xds/syncthing-config",
+ "gui-address": "http://localhost:8384",
+ "gui-apikey": "1234abcezam"
+ }
+}
+
+### Start XDS server
+nohup /usr/local/bin/xds-server --config /home/devel/.xds/config.json -log warn > /tmp/xds-server/logs/xds-server.log 2>&1
+pid=22379
+```
+
+You can now connect your browser to XDS-server (running by default on port 8000):
+[http://localhost:8000](http://localhost:8000)
## 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
- replace makefile by build.go to make Windows build support easier
- add more tests
- add more documentation
+- add authentication / login (oauth) + HTTPS
+- enable syncthing user/password + HTTPS