seb@laptop ~$ wget https://raw.githubusercontent.com/iotbzh/xds-server/master/scripts/xds-docker-create-container.sh
# Create new XDS worker container
-seb@laptop ~$ bash ./xds-docker-create-container.sh docker.automotivelinux.org/agl/worker-xds:X.Y
+seb@laptop ~$ bash ./xds-docker-create-container.sh
# Check that new container is running
seb@laptop ~$ docker ps | grep worker-xds
- 69 : TFTP
- 2222 : ssh
+#### Manually setup docker user id
+
+If you plan to **use path-mapping sharing type for your projects**, you need to have the same user id and group id inside and outside docker. By default user and group name inside docker is set `devel` (id `1664`), use following commands to replace id `1664` with your user/group id:
+```bash
+# Set docker container name to use (usually agl-xds-xxx where xxx is USERNAME@MACHINENAME-IDX-NAME)
+seb@laptop ~$ export CONTAINER_NAME=agl-xds-seb@laptop-0-seb
+
+# First stop xds-server
+seb@laptop ~$ docker exec ${CONTAINER_NAME} bash -c "systemctl stop xds-server"
+
+# Change user and group id inside docker to match your ids
+seb@laptop ~$ docker exec ${CONTAINER_NAME} bash -c "usermod -u $(id -u) devel"
+seb@laptop ~$ docker exec ${CONTAINER_NAME} bash -c "groupmod -g $(id -g) devel"
+
+# Update some files ownership
+seb@laptop ~$ docker exec ${CONTAINER_NAME} bash -c "chown -R devel:devel /home/devel /tmp/xds*"
+
+# Restart xds-server
+seb@laptop ~$ docker exec ${CONTAINER_NAME} bash -c "systemctl start xds-server"
+```
+
+## Check if xds-server is running (open XDS Dashboard)
+
**`xds-server` is automatically started** as a service on container startup.
If the container is running on your localhost, you can access the web interface (what we call the "Dashboard"):
/lib/systemd/system/xds-server.service
```
-This Systemd service starts a bash script `/usr/local/bin/xds-server-start.sh`
+This Systemd service starts a bash script `/opt/AGL/xds/server/xds-server-start.sh`
If you needed you can change default setting by defining specific environment
variables in `/etc/default/xds-server`.
-For example to control log level, just set LOGLEVEL env variable knowing that
+For example to control log level, just set LOG_LEVEL env variable knowing that
supported *level* are: panic, fatal, error, warn, info, debug.
```bash
seb@laptop ~$ ssh -p 2222 devel@localhost
-devel@docker ~$ echo 'LOGLEVEL=debug' | sudo tee --append /etc/default/xds-server > /dev/null
+devel@docker ~$ echo 'LOG_LEVEL=debug' | sudo tee --append /etc/default/xds-server > /dev/null
devel@docker ~$ sudo systemctl restart xds-server.service
devel@docker ~$ tail -f /tmp/xds-server/logs/xds-server.log
```
seb@laptop ~$ ssh -p 2222 devel@localhost
# Install ARM64 SDK (automatic download)
-devel@docker ~$ sudo /usr/local/bin/xds-utils/install-agl-sdks.sh --arch aarch64
+devel@docker ~$ sudo /opt/AGL/xds/server/xds-utils/install-agl-sdks.sh --arch aarch64
# Install Intel corei7-64 SDK (using an SDK tarball that has been built or downloaded manually)
-devel@docker ~$ sudo /usr/local/bin/xds-utils/install-agl-sdks.sh --arch corei7-64 --file /tmp/poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-
+devel@docker ~$ sudo /opt/AGL/xds/server/xds-utils/install-agl-sdks.sh --arch corei7-64 --file /tmp/poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-
3.99.1+snapshot.sh
```
make all
```
-And to install `xds-server` (by default in `/usr/local/bin`):
+And to install `xds-server` (by default in `/opt/AGL/xds/server`):
```bash
make install
Here is the logic to determine which `config.json` file will be used:
1. from command line option: `--config myConfig.json`
-1. `$HOME/.xds/config.json` file
-1. `<current dir>/config.json` file
+1. `$HOME/.xds-server/config.json` file
+1. `/etc/xds-server/config.json` file
1. `<xds-server executable dir>/config.json` file
Supported fields in configuration file are (all fields are optional and example
{
"httpPort": 8000,
"webAppDir": "webapp/dist",
- "shareRootDir": "${HOME}/.xds/projects",
+ "shareRootDir": "${HOME}/.xds-server/projects",
"logsDir": "/tmp/logs",
"sdkRootDir": "/xdt/sdk",
"syncthing": {
"binDir": "./bin",
- "home": "${HOME}/.xds/syncthing-config",
+ "home": "${HOME}/.xds-server/syncthing-config",
"gui-address": "http://localhost:8384",
"gui-apikey": "123456789",
}