From 781fce71d4b78c0edfc489e4093d082f271a234f Mon Sep 17 00:00:00 2001
From: Sebastien Douheret <sebastien.douheret@iot.bzh>
Date: Tue, 9 Oct 2018 10:45:08 +0200
Subject: Improves documentation

 * Describes better available source tree sharing method (between
xds-agent and xds-server), and which to prefer depending on the
deployment setup.
 * Gives indication about how to pass RSYNC_TARGET and RSYNC_PREFIX
 env vars to the helloworld-native-application build process.
 * Swap chapter order (build before config)

Bug: SPEC-1993

Change-Id: Ie4c22f277a59b0405744d71b0fadff67c5d5d025
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
---
 docs/part-1/4-1_build-first-app-setup.md     |  17 ++-
 docs/part-1/4-2_build-first-app-cmd.md       |   8 +-
 docs/part-1/4-3_build-first-app-dashboard.md |   6 +
 docs/part-2/1_xds-server/0_abstract.md       |   7 +-
 docs/part-2/1_xds-server/1_build.md          |  84 ++++++++++++
 docs/part-2/1_xds-server/1_config.md         |  89 ------------
 docs/part-2/1_xds-server/2_config.md         |  89 ++++++++++++
 docs/part-2/1_xds-server/2_how-to-run.md     | 198 ---------------------------
 docs/part-2/1_xds-server/3_build.md          |  84 ------------
 docs/part-2/1_xds-server/3_how-to-run.md     | 198 +++++++++++++++++++++++++++
 docs/part-2/2_xds-agent/0_abstract.md        |   6 +-
 docs/part-2/2_xds-agent/1_build.md           |  90 ++++++++++++
 docs/part-2/2_xds-agent/1_config.md          |  47 -------
 docs/part-2/2_xds-agent/2_config.md          |  47 +++++++
 docs/part-2/2_xds-agent/2_start.md           |  52 -------
 docs/part-2/2_xds-agent/3_build.md           |  90 ------------
 docs/part-2/2_xds-agent/3_start.md           |  52 +++++++
 docs/part-2/3_xds-cli/0_abstract.md          |   6 +-
 docs/part-2/3_xds-cli/1_build.md             |  39 ++++++
 docs/part-2/3_xds-cli/1_config.md            |  57 --------
 docs/part-2/3_xds-cli/2_commands.md          | 119 ----------------
 docs/part-2/3_xds-cli/2_config.md            |  57 ++++++++
 docs/part-2/3_xds-cli/3_build.md             |  39 ------
 docs/part-2/3_xds-cli/3_commands.md          | 119 ++++++++++++++++
 docs/part-2/4_xds-gdb/0_abstract.md          |   4 +-
 docs/part-2/4_xds-gdb/1_build.md             |  39 ++++++
 docs/part-2/4_xds-gdb/1_config.md            |  86 ------------
 docs/part-2/4_xds-gdb/2_build.md             |  39 ------
 docs/part-2/4_xds-gdb/2_config.md            |  86 ++++++++++++
 29 files changed, 938 insertions(+), 916 deletions(-)
 create mode 100644 docs/part-2/1_xds-server/1_build.md
 delete mode 100644 docs/part-2/1_xds-server/1_config.md
 create mode 100644 docs/part-2/1_xds-server/2_config.md
 delete mode 100644 docs/part-2/1_xds-server/2_how-to-run.md
 delete mode 100644 docs/part-2/1_xds-server/3_build.md
 create mode 100644 docs/part-2/1_xds-server/3_how-to-run.md
 create mode 100644 docs/part-2/2_xds-agent/1_build.md
 delete mode 100644 docs/part-2/2_xds-agent/1_config.md
 create mode 100644 docs/part-2/2_xds-agent/2_config.md
 delete mode 100644 docs/part-2/2_xds-agent/2_start.md
 delete mode 100644 docs/part-2/2_xds-agent/3_build.md
 create mode 100644 docs/part-2/2_xds-agent/3_start.md
 create mode 100644 docs/part-2/3_xds-cli/1_build.md
 delete mode 100644 docs/part-2/3_xds-cli/1_config.md
 delete mode 100644 docs/part-2/3_xds-cli/2_commands.md
 create mode 100644 docs/part-2/3_xds-cli/2_config.md
 delete mode 100644 docs/part-2/3_xds-cli/3_build.md
 create mode 100644 docs/part-2/3_xds-cli/3_commands.md
 create mode 100644 docs/part-2/4_xds-gdb/1_build.md
 delete mode 100644 docs/part-2/4_xds-gdb/1_config.md
 delete mode 100644 docs/part-2/4_xds-gdb/2_build.md
 create mode 100644 docs/part-2/4_xds-gdb/2_config.md

(limited to 'docs')

diff --git a/docs/part-1/4-1_build-first-app-setup.md b/docs/part-1/4-1_build-first-app-setup.md
index 1458e4e..7b8fff2 100644
--- a/docs/part-1/4-1_build-first-app-setup.md
+++ b/docs/part-1/4-1_build-first-app-setup.md
@@ -1,12 +1,23 @@
 # Setup
 
+## Sources Sharing Methods
+
+### What are possible ways to share source trees ?
+
 Let's use _helloworld-native-application_ project as example, so you need first to clone
 this project into a directory that will be accessible by `xds-server`.
 
-Depending of the project sharing method:
+There are two possible methods to share sources between your host and the XDS server:
+- Cloud sync: implies your local directory will be sent to and replicated on the server. This method lets you clone project anywhere on your local disk,
+- Path mapping: apply when the xds-server is running locally. This method uses a volume shared between your host and the server, typically `$HOME/xds-workspace` directory. It is much more efficient as there is no replication onto the server ; but you must clone project under the shared directory (`$HOME/xds-workspace` is a good choice because it is shared by default. To create more shared volumes, See --volume option of [container creation script](http://docs.automotivelinux.org/docs/devguides/en/dev/reference/xds/part-1/1-1_install-xds-server-docker.html#create-and-start-a-new-container) )
+
+### Which one should I choose ?
+
+It depends on your [deployment setup](http://docs.automotivelinux.org/docs/devguides/en/dev/reference/xds/part-1/0_Abstract.html) (Standalone, On-Premise or SaaS).
 
-- Cloud sync: you can clone project anywhere on your local disk,
-- Path mapping: you must clone project into `$HOME/xds-workspace` directory.
+* Standalone : use local path mapping. It makes no sense to use cloud sync as it would add pointless overhead.
+* On-Premise : use Clound Sync.
+* SaaS : use Cloud Sync. This is the only way to achieve source sharing in this deployment setup.
 
 <!-- section-note -->
 **Note:** : [helloworld-native-application](https://github.com/iotbzh/helloworld-native-application) project is an AGL
diff --git a/docs/part-1/4-2_build-first-app-cmd.md b/docs/part-1/4-2_build-first-app-cmd.md
index fbfdc41..c878d08 100644
--- a/docs/part-1/4-2_build-first-app-cmd.md
+++ b/docs/part-1/4-2_build-first-app-cmd.md
@@ -63,15 +63,19 @@ You are now ready to use XDS to for example cross build your project.
 Here is an example to build a project based on CMakefile:
 
 ```bash
+# First, grab your target IP address, or it's DNS name
+export TARGET_ADDRESS=<target_adress>
+
 # Go into your project directory and create a build directory
 cd $MY_PROJECT_DIR
 mkdir build
 
 # Generate build system using cmake
-xds-cli exec --id=4021617e --sdkid=c226821b -- "cd build && cmake .."
+# RSYNC_* variables must be set to allow deployment/populate widgets on target (see app-template doc for more info)
+xds-cli exec --id=4021617e --sdkid=c226821b -- "export RSYNC_TARGET=root@${TARGET_ADDRESS} ; export RSYNC_PREFIX=/opt ; cd build && cmake .."
 
 # Build the project
-xds-cli exec --id=4021617e --sdkid=c226821b -- "cd build && make all"
+xds-cli exec --id=4021617e --sdkid=c226821b -- "cd build && make widget"
 ```
 
 <!-- section-note -->
diff --git a/docs/part-1/4-3_build-first-app-dashboard.md b/docs/part-1/4-3_build-first-app-dashboard.md
index 1f43715..076be94 100644
--- a/docs/part-1/4-3_build-first-app-dashboard.md
+++ b/docs/part-1/4-3_build-first-app-dashboard.md
@@ -39,6 +39,12 @@ your local disk.
 
 ## Build from XDS dashboard
 
+<!-- section-note -->
+**Note:** _helloworld-native-application_ requires few configuration items to be able to walkthrough the whole process.
+To pass some environment variables, use the `Settings` window in the `Build` tab. The `Env variables` field allows to pass a list of environment variables (semi-colon separated) that will be set on the server prior to any build action.
+For the _helloworld-native-application_ you have to pass something like `RSYNC_TARGET=root@mytarget;RSYNC_PREFIX=/opt` (please replace `mytarget` by a valid target IP address or DNS name entry).
+<!-- end-section-note -->
+
 Open the build page build entry of left sidebar ![](./pictures/xds-dashboard-icon-3.png){:: style="display:inline; padding:0;"},
 
 then select your **Project** and the **Cross SDK** you want to use and click on
diff --git a/docs/part-2/1_xds-server/0_abstract.md b/docs/part-2/1_xds-server/0_abstract.md
index 07dd057..8e8d9a4 100644
--- a/docs/part-2/1_xds-server/0_abstract.md
+++ b/docs/part-2/1_xds-server/0_abstract.md
@@ -35,7 +35,8 @@ IDE (such as Netbeans or Visual Studio Code) through `xds-agent <=> xds-server`.
 
 Links to subchapters :
 
-- [Configuration](./1_config.html)
-- [How to run](./2_how-to-run.html)
-- [Build from scratch](./3_build.html)
+- [Build from scratch](./1_build.html)
+- [Configuration](./2_config.html)
+- [How to run](./3_how-to-run.html)
 - [Debugging](./4_debug.html)
+- [Tests](./5_test.html)
diff --git a/docs/part-2/1_xds-server/1_build.md b/docs/part-2/1_xds-server/1_build.md
new file mode 100644
index 0000000..5c5059f
--- /dev/null
+++ b/docs/part-2/1_xds-server/1_build.md
@@ -0,0 +1,84 @@
+# Build xds-server from scratch
+
+## Dependencies
+
+Install [Go](https://golang.org/doc/install), [npm](https://www.npmjs.com/),
+[nodejs](https://nodejs.org/en/) and some other tools.
+
+Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
+
+## Building
+
+### Native build
+
+Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-server`
+in order respect directory hierarchy that match Go package import logic (see
+[How to Write Go Code](https://golang.org/doc/code.html) for more details).
+
+Then use delivered Makefile :
+
+```bash
+# Declare ROOTDIR, can be any location (for example xds-build)
+ROOTDIR=$HOME/xds-build
+
+# Create directory hierarchy that match Go package import logic
+mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+
+# Clone sources
+git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-server
+# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-server
+
+# Build xds-server
+# (note that GOPATH will correctly be set by Makefile)
+cd xds-server
+make all
+```
+
+Generate xds-server package / tarball
+
+```bash
+make package-all
+```
+
+And to install `xds-server` (by default in `/opt/AGL/xds/server`):
+
+```bash
+make install
+```
+
+<!-- section-warning -->
+**Warning:**
+
+Makefile install rule and default values in configuration file are set
+to fit the docker setup.
+
+So you may need to adapt some settings when you want to install xds-server natively.
+<!-- end-section-warning -->
+
+<!-- section-note -->
+**Note:**
+
+Used `DESTDIR` to specify another install directory
+
+```bash
+make install DESTDIR=$HOME/opt/xds-server
+```
+
+<!-- end-section-note -->
+
+### XDS docker image
+
+As an alternative to a pre-build image, you can rebuild the container from scratch.
+
+`xds-server` has been integrated as a flavour of AGL SDK docker image.
+
+So to rebuild docker image just execute following commands:
+
+```bash
+# Clone docker-worker-generator git repo
+git clone https://git.automotivelinux.org/AGL/docker-worker-generator
+# Start build that will create a docker image
+cd docker-worker-generator
+make build FLAVOUR=xds
+```
diff --git a/docs/part-2/1_xds-server/1_config.md b/docs/part-2/1_xds-server/1_config.md
deleted file mode 100644
index ad86043..0000000
--- a/docs/part-2/1_xds-server/1_config.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# 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 -->
diff --git a/docs/part-2/1_xds-server/2_config.md b/docs/part-2/1_xds-server/2_config.md
new file mode 100644
index 0000000..ad86043
--- /dev/null
+++ b/docs/part-2/1_xds-server/2_config.md
@@ -0,0 +1,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 -->
diff --git a/docs/part-2/1_xds-server/2_how-to-run.md b/docs/part-2/1_xds-server/2_how-to-run.md
deleted file mode 100644
index a3ae22b..0000000
--- a/docs/part-2/1_xds-server/2_how-to-run.md
+++ /dev/null
@@ -1,198 +0,0 @@
-# How to run
-
-`xds-server` has been designed to easily compile and debug
-[AGL](https://www.automotivelinux.org/) applications. That's why `xds-server` has
-been integrated into 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)
-
-## Start xds-server
-
-There are several way to install xds-server and start-up depend of installation type:
-
-| Installation type | Supported<br> host OS   | Start-up                                          | Install instructions |
-|-------------------|-------------------------|---------------------------------------------------|----------------------|
-| Docker container  | Linux or MacOS          | Automatic based on systemd user service           | [see Installation based on Docker container](../../part-1/1-1_install-xds-server-docker.html) |
-| Virtual Machine   | Linux, MacOS or Windows | Automatic based on systemd user service           | [see Installation based on VirtualBox appliance](../../part-1/1-2_install-xds-server-vm.html) |
-| Native            | Linux                   | Automatic based on systemd user service or manual | [see Native installation](../../part-1/1-3_install-xds-server-native.html) |
-| Native            | MacOS or Windows        | Manually                                          | [see Native installation](../../part-1/1-3_install-xds-server-native.html) |
-
-### Automatic start-up based on systemd user service
-
-XDS server is started as a user service by Systemd.
-
-```bash
-/usr/lib/systemd/user/xds-server.service
-```
-
-Use well-known systemd commands to control `xds-server.service` service.
-
-```bash
-# Enter in docker container or VM
-# (optional, depending on installation type)
-ssh -p 2222 devel@localhost
-
-# Status XDS server:
-systemctl --user status xds-server
-
-# Restart XDS server
-systemctl --user restart xds-server
-```
-
-If needed you can change default setting by defining specific environment
-variables file
-
-```bash
-ssh -t -p 2222 devel@localhost vim /etc/default/xds-server
-```
-
-For example to control log level, just set LOG_LEVEL env variable.
-
-knowing that supported *level* are:
-
-- panic
-- fatal
-- error
-- warn
-- info
-- debug
-
-```bash
-docker exec ${CONTAINER_NAME} bash -c "echo 'LOG_LEVEL=debug' >> /etc/default/xds-server"
-ssh -p 2222 devel@localhost -- "systemctl --user restart xds-server"
-```
-
-### Manual start-up
-
-On **Linux or MacOS**, simply execute `xds-server` executable:
-
-```bash
-/opt/AGL/bin/xds-server
-```
-
-On **Windows**, simply execute `xds-server` executable:
-
-```batch
-C:\AGL\bin\xds-server.exe
-```
-
-<!-- section-note -->
-**Note:**
-
-Invoke `xds-server --help` to get more details about possible options that allow
-for example to change logging level or select another configuration file.
-
-<!-- end-section-note -->
-
-## XDS server REST API and Web application
-
-`xds-server` exposes a REST API and serves a basic web-application.
-
-REST API based url is `http://localhost:8000/api/v1/` when XDS server is
-running on your host (localhost) and basic web-application is available at
-[http://localhost:8000](http://localhost:8000).
-
-Just replace `localhost` by the host name or ip when `xds-server` is running
-on another host.
-
-```bash
-# Get version using REST API
-curl http://localhost:8000/api/v1/version
-
-# Open browser and local xds-server web-application
-xdg-open http://localhost:8000
-```
-
-Then follow instructions provided on this page to install and start `xds-agent`
-that must run locally on your machine.
-
-See also [xds-agent documentation](../2_xds-agent/0_abstract.html) for more details.
-
-## SDK cross-toolchain Management
-
-### Setup to add support of a new SDK family
-
-<!-- section-note -->
-**Optional step**: read this chapter only if you plan to add a new SDK family.
-<!-- end-section-note -->
-
-`xds-server` dynamically detects supported SDKs by scanning sub-directories of
-`sdkScriptsDir` directory (see [Configuration chapter](1_config.html)).
-
-Each sub-directory (usually name is the same as the SDK family) of `sdkScriptsDir`
-must contain a set of scripts that will be called by `xds-server` to managed SDKs
-of a specific family.
-
-These scripts are:
-
-- `add`: used to add/install a new SDK
-- `db-dump`: returned the list of available and installed SDKs (JSON format)
-- `db-update`: update SDKs database
-- `get-family-config`: returned SDK family configuration structure (JSON format)
-- `get-sdk-info`: extract SDK info (JSON format) from a SDK file/tarball
-- `remove`: used to remove an existing SDK
-
-For example, here 2 SDKs family (`agl` and `zephyr`) are defined:
-
-```bash
-# > tree ./sdks/
-./sdks/
-├── agl
-│   ├── add
-│   ├── db-dump
-│   ├── db-update
-│   ├── get-family-config
-│   ├── get-sdk-info
-│   └── remove
-├── README.md
-└── zephyr
-    ├── add
-│   ├── db-dump
-│   ├── db-update
-│   ├── get-family-config
-│   ├── get-sdk-info
-    └── remove
-```
-
-On startup `xds-server` will call in order:
-
-- `sdks/*/get-family-config` to get configuration of each SDK family.
-- `sdks/*/db-update` to update database (only when `SdkDbUpdate` is set to ̀`startup`,
-   see [Configuration chapter](1_config.html) for more details)
-- `sdks/*/db-dump` scripts to get the initial list of available and installed SDKs.
-
-Please refer to `sdks/README.md` for more information about scripts definition
-and to understand how to add support of a new SDK family.
-
-### Install a new SDK
-
-Please refer to [Installing AGL SDKs](../../part-1/3_install-sdks.html) chapter.
-
-### Un-install a SDK from command line
-
-Used `sdks` command of `xds-cli` tool to managed SDKs.
-
-```bash
-# List installed SDKs
-xds-cli sdks ls
-List of installed SDKs:
-  ID            NAME                                                            STATUS          VERSION         ARCH
-  c39e5998      poky-agl_aarch64_4.0.1                                          Installed       4.0.1           aarch64
-  d610bfbf      poky-agl-aarch64.current_on_iotbzh_download-3.99.1+snapshot     Installed       3.99.1+snapshot aarch64.current_on_iotbzh_download
-  a0ae663d      poky-agl-corei7-64-3.99.1+snapshot                              Installed       3.99.1+snapshot corei7-64
-  87f0400b      AGL-release-dab-3.99.3-m3ulcb-nogfx                             Installed       3.99.3          aarch64
-  352c0584      poky-agl-corei7-64-3.99.2+snapshot                              Installed       3.99.2+snapshot corei7-64
-  d65fe750      AGL-release-eel-latest-qemux86-64                               Installed       4.99.5          corei7-64
-
-# Un-install a SDK
-xds-cli sdks uninstall d65fe750
-SDK ID d65fe750-d3a7-38f5-83d8-3d3806054f8d successfully deleted.
-```
-
-### Un-install a SDK from XDS Dashboard
-
-Open XDS-Dashboard in web-browser and select `SDKs` entry in left side menu.
-
-If needed, switch to `BASIC SDKS VIEW` view and click on trash icon located
-in the top-right corner of SDK card.
diff --git a/docs/part-2/1_xds-server/3_build.md b/docs/part-2/1_xds-server/3_build.md
deleted file mode 100644
index 5c5059f..0000000
--- a/docs/part-2/1_xds-server/3_build.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# Build xds-server from scratch
-
-## Dependencies
-
-Install [Go](https://golang.org/doc/install), [npm](https://www.npmjs.com/),
-[nodejs](https://nodejs.org/en/) and some other tools.
-
-Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
-
-## Building
-
-### Native build
-
-Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-server`
-in order respect directory hierarchy that match Go package import logic (see
-[How to Write Go Code](https://golang.org/doc/code.html) for more details).
-
-Then use delivered Makefile :
-
-```bash
-# Declare ROOTDIR, can be any location (for example xds-build)
-ROOTDIR=$HOME/xds-build
-
-# Create directory hierarchy that match Go package import logic
-mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-
-# Clone sources
-git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-server
-# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-server
-
-# Build xds-server
-# (note that GOPATH will correctly be set by Makefile)
-cd xds-server
-make all
-```
-
-Generate xds-server package / tarball
-
-```bash
-make package-all
-```
-
-And to install `xds-server` (by default in `/opt/AGL/xds/server`):
-
-```bash
-make install
-```
-
-<!-- section-warning -->
-**Warning:**
-
-Makefile install rule and default values in configuration file are set
-to fit the docker setup.
-
-So you may need to adapt some settings when you want to install xds-server natively.
-<!-- end-section-warning -->
-
-<!-- section-note -->
-**Note:**
-
-Used `DESTDIR` to specify another install directory
-
-```bash
-make install DESTDIR=$HOME/opt/xds-server
-```
-
-<!-- end-section-note -->
-
-### XDS docker image
-
-As an alternative to a pre-build image, you can rebuild the container from scratch.
-
-`xds-server` has been integrated as a flavour of AGL SDK docker image.
-
-So to rebuild docker image just execute following commands:
-
-```bash
-# Clone docker-worker-generator git repo
-git clone https://git.automotivelinux.org/AGL/docker-worker-generator
-# Start build that will create a docker image
-cd docker-worker-generator
-make build FLAVOUR=xds
-```
diff --git a/docs/part-2/1_xds-server/3_how-to-run.md b/docs/part-2/1_xds-server/3_how-to-run.md
new file mode 100644
index 0000000..4e56f3f
--- /dev/null
+++ b/docs/part-2/1_xds-server/3_how-to-run.md
@@ -0,0 +1,198 @@
+# How to run
+
+`xds-server` has been designed to easily compile and debug
+[AGL](https://www.automotivelinux.org/) applications. That's why `xds-server` has
+been integrated into 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)
+
+## Start xds-server
+
+There are several way to install xds-server and start-up depend of installation type:
+
+| Installation type | Supported<br> host OS   | Start-up                                          | Install instructions |
+|-------------------|-------------------------|---------------------------------------------------|----------------------|
+| Docker container  | Linux or MacOS          | Automatic based on systemd user service           | [see Installation based on Docker container](../../part-1/1-1_install-xds-server-docker.html) |
+| Virtual Machine   | Linux, MacOS or Windows | Automatic based on systemd user service           | [see Installation based on VirtualBox appliance](../../part-1/1-2_install-xds-server-vm.html) |
+| Native            | Linux                   | Automatic based on systemd user service or manual | [see Native installation](../../part-1/1-3_install-xds-server-native.html) |
+| Native            | MacOS or Windows        | Manually                                          | [see Native installation](../../part-1/1-3_install-xds-server-native.html) |
+
+### Automatic start-up based on systemd user service
+
+XDS server is started as a user service by Systemd.
+
+```bash
+/usr/lib/systemd/user/xds-server.service
+```
+
+Use well-known systemd commands to control `xds-server.service` service.
+
+```bash
+# Enter in docker container or VM
+# (optional, depending on installation type)
+ssh -p 2222 devel@localhost
+
+# Status XDS server:
+systemctl --user status xds-server
+
+# Restart XDS server
+systemctl --user restart xds-server
+```
+
+If needed you can change default setting by defining specific environment
+variables file
+
+```bash
+ssh -t -p 2222 devel@localhost vim /etc/default/xds-server
+```
+
+For example to control log level, just set LOG_LEVEL env variable.
+
+knowing that supported *level* are:
+
+- panic
+- fatal
+- error
+- warn
+- info
+- debug
+
+```bash
+docker exec ${CONTAINER_NAME} bash -c "echo 'LOG_LEVEL=debug' >> /etc/default/xds-server"
+ssh -p 2222 devel@localhost -- "systemctl --user restart xds-server"
+```
+
+### Manual start-up
+
+On **Linux or MacOS**, simply execute `xds-server` executable:
+
+```bash
+/opt/AGL/bin/xds-server
+```
+
+On **Windows**, simply execute `xds-server` executable:
+
+```batch
+C:\AGL\bin\xds-server.exe
+```
+
+<!-- section-note -->
+**Note:**
+
+Invoke `xds-server --help` to get more details about possible options that allow
+for example to change logging level or select another configuration file.
+
+<!-- end-section-note -->
+
+## XDS server REST API and Web application
+
+`xds-server` exposes a REST API and serves a basic web-application.
+
+REST API based url is `http://localhost:8000/api/v1/` when XDS server is
+running on your host (localhost) and basic web-application is available at
+[http://localhost:8000](http://localhost:8000).
+
+Just replace `localhost` by the host name or ip when `xds-server` is running
+on another host.
+
+```bash
+# Get version using REST API
+curl http://localhost:8000/api/v1/version
+
+# Open browser and local xds-server web-application
+xdg-open http://localhost:8000
+```
+
+Then follow instructions provided on this page to install and start `xds-agent`
+that must run locally on your machine.
+
+See also [xds-agent documentation](../2_xds-agent/0_abstract.html) for more details.
+
+## SDK cross-toolchain Management
+
+### Setup to add support of a new SDK family
+
+<!-- section-note -->
+**Optional step**: read this chapter only if you plan to add a new SDK family.
+<!-- end-section-note -->
+
+`xds-server` dynamically detects supported SDKs by scanning sub-directories of
+`sdkScriptsDir` directory (see [Configuration chapter](2_config.html)).
+
+Each sub-directory (usually name is the same as the SDK family) of `sdkScriptsDir`
+must contain a set of scripts that will be called by `xds-server` to managed SDKs
+of a specific family.
+
+These scripts are:
+
+- `add`: used to add/install a new SDK
+- `db-dump`: returned the list of available and installed SDKs (JSON format)
+- `db-update`: update SDKs database
+- `get-family-config`: returned SDK family configuration structure (JSON format)
+- `get-sdk-info`: extract SDK info (JSON format) from a SDK file/tarball
+- `remove`: used to remove an existing SDK
+
+For example, here 2 SDKs family (`agl` and `zephyr`) are defined:
+
+```bash
+# > tree ./sdks/
+./sdks/
+├── agl
+│   ├── add
+│   ├── db-dump
+│   ├── db-update
+│   ├── get-family-config
+│   ├── get-sdk-info
+│   └── remove
+├── README.md
+└── zephyr
+    ├── add
+│   ├── db-dump
+│   ├── db-update
+│   ├── get-family-config
+│   ├── get-sdk-info
+    └── remove
+```
+
+On startup `xds-server` will call in order:
+
+- `sdks/*/get-family-config` to get configuration of each SDK family.
+- `sdks/*/db-update` to update database (only when `SdkDbUpdate` is set to ̀`startup`,
+   see [Configuration chapter](2_config.html) for more details)
+- `sdks/*/db-dump` scripts to get the initial list of available and installed SDKs.
+
+Please refer to `sdks/README.md` for more information about scripts definition
+and to understand how to add support of a new SDK family.
+
+### Install a new SDK
+
+Please refer to [Installing AGL SDKs](../../part-1/3_install-sdks.html) chapter.
+
+### Un-install a SDK from command line
+
+Used `sdks` command of `xds-cli` tool to managed SDKs.
+
+```bash
+# List installed SDKs
+xds-cli sdks ls
+List of installed SDKs:
+  ID            NAME                                                            STATUS          VERSION         ARCH
+  c39e5998      poky-agl_aarch64_4.0.1                                          Installed       4.0.1           aarch64
+  d610bfbf      poky-agl-aarch64.current_on_iotbzh_download-3.99.1+snapshot     Installed       3.99.1+snapshot aarch64.current_on_iotbzh_download
+  a0ae663d      poky-agl-corei7-64-3.99.1+snapshot                              Installed       3.99.1+snapshot corei7-64
+  87f0400b      AGL-release-dab-3.99.3-m3ulcb-nogfx                             Installed       3.99.3          aarch64
+  352c0584      poky-agl-corei7-64-3.99.2+snapshot                              Installed       3.99.2+snapshot corei7-64
+  d65fe750      AGL-release-eel-latest-qemux86-64                               Installed       4.99.5          corei7-64
+
+# Un-install a SDK
+xds-cli sdks uninstall d65fe750
+SDK ID d65fe750-d3a7-38f5-83d8-3d3806054f8d successfully deleted.
+```
+
+### Un-install a SDK from XDS Dashboard
+
+Open XDS-Dashboard in web-browser and select `SDKs` entry in left side menu.
+
+If needed, switch to `BASIC SDKS VIEW` view and click on trash icon located
+in the top-right corner of SDK card.
diff --git a/docs/part-2/2_xds-agent/0_abstract.md b/docs/part-2/2_xds-agent/0_abstract.md
index d73bdb9..b867d89 100644
--- a/docs/part-2/2_xds-agent/0_abstract.md
+++ b/docs/part-2/2_xds-agent/0_abstract.md
@@ -13,7 +13,7 @@ used to remotely cross build applications.
 
 Links to subchapters :
 
-- [Configuration](./1_config.html)
-- [Start-up](./2_start.html)
-- [Build from scratch](./3_build.html)
+- [Build from scratch](./1_build.html)
+- [Configuration](./2_config.html)
+- [Start-up](./3_start.html)
 - [Debugging](./4_debug.html)
diff --git a/docs/part-2/2_xds-agent/1_build.md b/docs/part-2/2_xds-agent/1_build.md
new file mode 100644
index 0000000..842f582
--- /dev/null
+++ b/docs/part-2/2_xds-agent/1_build.md
@@ -0,0 +1,90 @@
+# Build xds-agent from scratch
+
+## Dependencies
+
+Install [Go](https://golang.org/doc/install), [npm](https://www.npmjs.com/),
+[nodejs](https://nodejs.org/en/) and some other tools.
+
+Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
+
+## Building
+
+Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-agent`
+in order respect directory hierarchy that match Go package import logic (see
+[How to Write Go Code](https://golang.org/doc/code.html) for more details).
+
+Then use delivered Makefile :
+
+```bash
+# Declare ROOTDIR, can be any location (for example xds-build)
+ROOTDIR=$HOME/xds-build
+
+# Create directory hierarchy that match Go package import logic
+mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+
+# Clone sources
+git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-agent
+# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-agent
+
+# Build xds-agent
+# (note that GOPATH will correctly be set by Makefile)
+cd xds-agent
+make all
+```
+
+Generate xds-agent packages / tarballs for Linux, MacOS, Windows
+
+```bash
+make package-all
+```
+
+And to install `xds-agent` (by default in `/opt/AGL/xds/agent`):
+
+```bash
+make install
+```
+
+<!-- section-warning -->
+**Warning:**
+
+Makefile install rule and default values in configuration file are set
+to fit the docker setup.
+
+So you may need to adapt some settings when you want to install xds-agent natively.
+<!-- end-section-warning -->
+
+<!-- section-note -->
+**Note:**
+
+Used `DESTDIR` to specify another install directory
+
+```bash
+make install DESTDIR=$HOME/opt/xds-agent
+```
+
+<!-- end-section-note -->
+
+### Cross build
+
+For example on a Linux machine to cross-build for Windows, just follow these steps.
+
+The first time you need to install all the windows-amd64 standard packages on
+your system with
+
+```bash
+# List all supported OS / ARCH
+go tool dist list
+
+# Install all standard packages for another OS/ARCH (eg. windows amd64)
+GOOS=windows GOARCH=amd64 go install -v -a std
+```
+
+Then compile and package xds-agent using provided makefile
+
+```bash
+export GOOS=windows
+export GOARCH=amd64
+make all
+make package
+```
diff --git a/docs/part-2/2_xds-agent/1_config.md b/docs/part-2/2_xds-agent/1_config.md
deleted file mode 100644
index 9e912cb..0000000
--- a/docs/part-2/2_xds-agent/1_config.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Configuration
-
-xds-agent configuration is driven by a JSON config file.
-
-The tarball mentioned in previous section includes this file with default settings.
-
-Here is the logic to determine which conf file will be used:
-
-1. from command line option: `--config myConfig.json`
-1. `$HOME/.xds/agent/agent-config.json` file
-1. `/etc/xds/agent/agent-config.json` file
-
-Supported fields in configuration file are (all fields are optional and example
-below corresponds to the default values):
-
-- **httpPort** : http port of agent REST interface
-- **webAppDir** : location of client webapp / dashboard (default: webapp/dist)
-- **logsDir**  : directory to store logs (eg. syncthing output)
-- **xdsServers** : an array of xds-server object
-  - **xdsServers.url**: url of xds-server to connect to
-- **syncthing**: a object defining syncthing settings
-  - **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:8386>)
-  - **syncthing.gui-apikey** : syncthing api-key to use (default auto-generated)
-
-```json
-{
-    "httpPort": "8800",
-    "webAppDir": "./www",
-    "logsDir": "${HOME}/.xds/agent/logs",
-    "xdsServers": [
-        {
-          "url": "http://localhost:8000"
-        }
-    ],
-    "syncthing": {
-        "home": "${HOME}/.xds/agent/syncthing-config",
-        "gui-address": "http://localhost:8386",
-        "gui-apikey": "1234abcezam"
-    }
-}
-```
-
->**Note:**
->
->environment variables are supported by using `${MY_VAR}` syntax.
diff --git a/docs/part-2/2_xds-agent/2_config.md b/docs/part-2/2_xds-agent/2_config.md
new file mode 100644
index 0000000..9e912cb
--- /dev/null
+++ b/docs/part-2/2_xds-agent/2_config.md
@@ -0,0 +1,47 @@
+# Configuration
+
+xds-agent configuration is driven by a JSON config file.
+
+The tarball mentioned in previous section includes this file with default settings.
+
+Here is the logic to determine which conf file will be used:
+
+1. from command line option: `--config myConfig.json`
+1. `$HOME/.xds/agent/agent-config.json` file
+1. `/etc/xds/agent/agent-config.json` file
+
+Supported fields in configuration file are (all fields are optional and example
+below corresponds to the default values):
+
+- **httpPort** : http port of agent REST interface
+- **webAppDir** : location of client webapp / dashboard (default: webapp/dist)
+- **logsDir**  : directory to store logs (eg. syncthing output)
+- **xdsServers** : an array of xds-server object
+  - **xdsServers.url**: url of xds-server to connect to
+- **syncthing**: a object defining syncthing settings
+  - **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:8386>)
+  - **syncthing.gui-apikey** : syncthing api-key to use (default auto-generated)
+
+```json
+{
+    "httpPort": "8800",
+    "webAppDir": "./www",
+    "logsDir": "${HOME}/.xds/agent/logs",
+    "xdsServers": [
+        {
+          "url": "http://localhost:8000"
+        }
+    ],
+    "syncthing": {
+        "home": "${HOME}/.xds/agent/syncthing-config",
+        "gui-address": "http://localhost:8386",
+        "gui-apikey": "1234abcezam"
+    }
+}
+```
+
+>**Note:**
+>
+>environment variables are supported by using `${MY_VAR}` syntax.
diff --git a/docs/part-2/2_xds-agent/2_start.md b/docs/part-2/2_xds-agent/2_start.md
deleted file mode 100644
index c537c93..0000000
--- a/docs/part-2/2_xds-agent/2_start.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Start-up
-
-## Start-up based on systemd user service
-
-For **Linux** distro, XDS agent can be started as a user service by Systemd.
-
-```bash
-/usr/lib/systemd/user/xds-agent.service
-```
-
-Use well-known systemd commands to control `xds-agent.service` service.
-
-```bash
-# Status XDS agent:
-systemctl --user status xds-agent
-
-# Start XDS agent
-systemctl --user start xds-agent
-
-# Stop XDS agent
-systemctl --user stop xds-agent
-```
-
-Default settings are defined in  `/etc/default/xds-agent` file but these
-settings you can overwritten by `$HOME/.xds/agent/agent-config.json` file,
-see [Configuration chapter](./1_config.html) for more details.
-
-## Manual start-up
-
-On **Linux or MacOS**, simply execute `xds-agent` executable:
-
-```bash
-/opt/AGL/bin/xds-agent
-```
-
-On **Windows**, simply execute `xds-agent` executable (root path may change
-depending where you installed/unzipped xds-agent tarball):
-
-```batch
-C:\AGL\bin\xds-agent.exe
-```
-
-<!-- section-note -->
-**Note:**
-
-If need be, you can increase log level by setting option
-`--log <level>`, supported *level* are: panic, fatal, error, warn, info, debug.
-
-Invoke `xds-agent --help` to get more details about possible options that allow
-for example to change logging level or select a specific configuration file.
-
-<!-- end-section-note -->
diff --git a/docs/part-2/2_xds-agent/3_build.md b/docs/part-2/2_xds-agent/3_build.md
deleted file mode 100644
index 842f582..0000000
--- a/docs/part-2/2_xds-agent/3_build.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# Build xds-agent from scratch
-
-## Dependencies
-
-Install [Go](https://golang.org/doc/install), [npm](https://www.npmjs.com/),
-[nodejs](https://nodejs.org/en/) and some other tools.
-
-Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
-
-## Building
-
-Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-agent`
-in order respect directory hierarchy that match Go package import logic (see
-[How to Write Go Code](https://golang.org/doc/code.html) for more details).
-
-Then use delivered Makefile :
-
-```bash
-# Declare ROOTDIR, can be any location (for example xds-build)
-ROOTDIR=$HOME/xds-build
-
-# Create directory hierarchy that match Go package import logic
-mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-
-# Clone sources
-git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-agent
-# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-agent
-
-# Build xds-agent
-# (note that GOPATH will correctly be set by Makefile)
-cd xds-agent
-make all
-```
-
-Generate xds-agent packages / tarballs for Linux, MacOS, Windows
-
-```bash
-make package-all
-```
-
-And to install `xds-agent` (by default in `/opt/AGL/xds/agent`):
-
-```bash
-make install
-```
-
-<!-- section-warning -->
-**Warning:**
-
-Makefile install rule and default values in configuration file are set
-to fit the docker setup.
-
-So you may need to adapt some settings when you want to install xds-agent natively.
-<!-- end-section-warning -->
-
-<!-- section-note -->
-**Note:**
-
-Used `DESTDIR` to specify another install directory
-
-```bash
-make install DESTDIR=$HOME/opt/xds-agent
-```
-
-<!-- end-section-note -->
-
-### Cross build
-
-For example on a Linux machine to cross-build for Windows, just follow these steps.
-
-The first time you need to install all the windows-amd64 standard packages on
-your system with
-
-```bash
-# List all supported OS / ARCH
-go tool dist list
-
-# Install all standard packages for another OS/ARCH (eg. windows amd64)
-GOOS=windows GOARCH=amd64 go install -v -a std
-```
-
-Then compile and package xds-agent using provided makefile
-
-```bash
-export GOOS=windows
-export GOARCH=amd64
-make all
-make package
-```
diff --git a/docs/part-2/2_xds-agent/3_start.md b/docs/part-2/2_xds-agent/3_start.md
new file mode 100644
index 0000000..d750fac
--- /dev/null
+++ b/docs/part-2/2_xds-agent/3_start.md
@@ -0,0 +1,52 @@
+# Start-up
+
+## Start-up based on systemd user service
+
+For **Linux** distro, XDS agent can be started as a user service by Systemd.
+
+```bash
+/usr/lib/systemd/user/xds-agent.service
+```
+
+Use well-known systemd commands to control `xds-agent.service` service.
+
+```bash
+# Status XDS agent:
+systemctl --user status xds-agent
+
+# Start XDS agent
+systemctl --user start xds-agent
+
+# Stop XDS agent
+systemctl --user stop xds-agent
+```
+
+Default settings are defined in  `/etc/default/xds-agent` file but these
+settings you can overwritten by `$HOME/.xds/agent/agent-config.json` file,
+see [Configuration chapter](./2_config.html) for more details.
+
+## Manual start-up
+
+On **Linux or MacOS**, simply execute `xds-agent` executable:
+
+```bash
+/opt/AGL/bin/xds-agent
+```
+
+On **Windows**, simply execute `xds-agent` executable (root path may change
+depending where you installed/unzipped xds-agent tarball):
+
+```batch
+C:\AGL\bin\xds-agent.exe
+```
+
+<!-- section-note -->
+**Note:**
+
+If need be, you can increase log level by setting option
+`--log <level>`, supported *level* are: panic, fatal, error, warn, info, debug.
+
+Invoke `xds-agent --help` to get more details about possible options that allow
+for example to change logging level or select a specific configuration file.
+
+<!-- end-section-note -->
diff --git a/docs/part-2/3_xds-cli/0_abstract.md b/docs/part-2/3_xds-cli/0_abstract.md
index df7db6c..ef86c49 100644
--- a/docs/part-2/3_xds-cli/0_abstract.md
+++ b/docs/part-2/3_xds-cli/0_abstract.md
@@ -9,7 +9,7 @@ line.
 
 Links to subchapters :
 
-- [Configuration](./1_config.html)
-- [Start-up](./2_commands.html)
-- [Build from scratch](./3_build.html)
+- [Build from scratch](./1_build.html)
+- [Configuration](./2_config.html)
+- [Start-up](./3_commands.html)
 - [Debugging](./4_debug.html)
diff --git a/docs/part-2/3_xds-cli/1_build.md b/docs/part-2/3_xds-cli/1_build.md
new file mode 100644
index 0000000..b42b00c
--- /dev/null
+++ b/docs/part-2/3_xds-cli/1_build.md
@@ -0,0 +1,39 @@
+# How to build
+
+## Dependencies
+
+Install [Go](https://golang.org/doc/install) and some other tools.
+
+Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
+
+## Building
+
+Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-cli`
+in order respect directory hierarchy that match Go package import logic (see
+[How to Write Go Code](https://golang.org/doc/code.html) for more details).
+
+Then use delivered Makefile :
+
+```bash
+# Declare ROOTDIR, can be any location (for example xds-build)
+ROOTDIR=$HOME/xds-build
+
+# Create directory hierarchy that match Go package import logic
+mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+
+# Clone sources
+git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-cli
+# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-cli
+
+# Build xds-cli
+# (note that GOPATH will correctly be set by Makefile)
+cd xds-cli
+make all
+```
+
+Generate xds-cli package / tarball
+
+```bash
+make package-all
+```
diff --git a/docs/part-2/3_xds-cli/1_config.md b/docs/part-2/3_xds-cli/1_config.md
deleted file mode 100644
index 82506ee..0000000
--- a/docs/part-2/3_xds-cli/1_config.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Configuration
-
-`xds-cli` configuration is defined either by environment variables or by
-setting command line options.
-
-Configuration through environment variables may also be defined in a file that
-will be sourced by `xds-cli` on start-up.
-
-Use `--config|-c` option or set `XDS_CONFIG` environment variable to specify the config file to use.
-
-So configuration is driven either by environment variables or by command line
-options or using a config file knowing that the following priority order is used:
-
-1. use option value (for example use project ID set by `--id` option),
-1. else use variable `XDS_xxx` (for example `XDS_PROJECT_ID` variable) when a
-   config file is specified with `--config|-c` option,
-1. else use `XDS_xxx` (for example `XDS_PROJECT_ID`) environment variable
-
-<!-- section-note -->
-**Note:**
-
-All parameters after a double dash (--) are considered as the command
-to execute on xds-server.
-<!-- end-section-note -->
-
-## Global Options / Configuration variables
-
-Following is the list of global options across all sub-commands.
-
-__`--config|-c` option or `XDS_CONFIG` env variable__
-
-Env config file to source on startup
-
-__`--log|-l` option or `XDS_LOGLEVEL` env variable__
-
-Logging level, supported levels are:
-
-- panic
-- fatal
-- error
-- warn
-- info
-- debug
-
-Default level is "error".
-
-**`--rpath` option or `XDS_PATH` env variable**
-
-Relative path into project
-
-**`timestamp|-ts` option or `XDS_TIMESTAMP` env variable**
-
-Prefix output with timestamp
-
-**`url` option or `XDS_AGENT_URL` env variable**
-
-Local XDS agent url (default: "localhost:8800")
diff --git a/docs/part-2/3_xds-cli/2_commands.md b/docs/part-2/3_xds-cli/2_commands.md
deleted file mode 100644
index 599906c..0000000
--- a/docs/part-2/3_xds-cli/2_commands.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# Commands
-
-## projects
-
-`projects` (short `prj`) command should be used to managed XDS projects.
-
-This command supports following sub-commands:
-
-```bash
-add, a      Add a new project
-get         Get a property of a project
-list, ls    List existing projects
-remove, rm  Remove an existing project
-sync        Force synchronization of project sources
-```
-
-Here are some usage examples:
-
-```bash
-# Create/declare a new project
-xds-cli prj add --label "myProjectName" --type pm -p /home/seb/xds-workspace/myProject -sp /home/devel/xds-workspace/myProject
-
-# List projects
-xds-cli prj ls
-
-# Delete an existing project
-xds-cli prj rm 8e49
-```
-
-## sdks
-
-`sdks` (alias `sdk`) command should be used to managed cross SDKs.
-
-This command supports following sub-commands:
-
-```bash
-get            Get a property of a SDK
-list, ls       List installed SDKs
-install, i     Install a SDK
-uninstall, rm  UnInstall an existing SDK
-abort, a       Abort an install action
-```
-
-Here are some usage examples:
-
-```bash
-# List existing SDKs
-xds-cli sdks ls
-
-# Get SDK info
-xds-cli sdks get c64d
-```
-
-<!-- section-note -->
-**Note:**
-
-Please also refer to [Installing AGL SDKs](../../part-1/3_install-sdks.html) chapter for more details about sdks installation.
-
-<!-- end-section-note -->
-
-## exec
-
-`exec` command should be used to exec command through XDS system.
-
-For example you can use this command to build your project in XDS system.
-
-This command supports following sub-commands:
-
-`exec` command options are:
-
-**`--id` option or `XDS_PROJECT_ID` env variable (**mandatory option**)**
-
-project ID you want to build
-
-**`--rpath` (short `-p`) or `XDS_RPATH` env variable**
-
-relative path into project
-
-**`--sdkid` (alias `--sdk`) or `XDS_SDK_ID` env variable (**mandatory option**)**
-
-Cross Sdk ID to use to build project.
-
-Here are some usage examples:
-
-```bash
-cd $MY_PROJECT_DIR
-mkdir build
-
-# Generate build system using cmake
-xds-cli exec --id=4021 --sdkid=c226 -- "cd build && cmake .."
-
-# Build the project
-xds-cli exec --id=4021 --sdkid=c226 -- "cd build && make all"
-```
-
-In case of `xds-agent` is not running on default url:port (that is `localhost:8800`)
-
-You can specify the url using `--url` option :
-
-```bash
-xds-cli --url=http://localhost:8800 exec --id=4021 --sdkid=c226 -- "cd build && make all"
-```
-
-## misc
-
-`misc` command allows to execute miscellaneous sub-commands such as:
-
-```bash
-version, v   Get version of XDS agent and XDS server
-status, sts  Get XDS configuration status (including XDS server connection)
-```
-
-Here are some usage examples:
-
-```bash
-xds-cli misc version --verbose
-
-xds-cli misc sts
-```
diff --git a/docs/part-2/3_xds-cli/2_config.md b/docs/part-2/3_xds-cli/2_config.md
new file mode 100644
index 0000000..82506ee
--- /dev/null
+++ b/docs/part-2/3_xds-cli/2_config.md
@@ -0,0 +1,57 @@
+# Configuration
+
+`xds-cli` configuration is defined either by environment variables or by
+setting command line options.
+
+Configuration through environment variables may also be defined in a file that
+will be sourced by `xds-cli` on start-up.
+
+Use `--config|-c` option or set `XDS_CONFIG` environment variable to specify the config file to use.
+
+So configuration is driven either by environment variables or by command line
+options or using a config file knowing that the following priority order is used:
+
+1. use option value (for example use project ID set by `--id` option),
+1. else use variable `XDS_xxx` (for example `XDS_PROJECT_ID` variable) when a
+   config file is specified with `--config|-c` option,
+1. else use `XDS_xxx` (for example `XDS_PROJECT_ID`) environment variable
+
+<!-- section-note -->
+**Note:**
+
+All parameters after a double dash (--) are considered as the command
+to execute on xds-server.
+<!-- end-section-note -->
+
+## Global Options / Configuration variables
+
+Following is the list of global options across all sub-commands.
+
+__`--config|-c` option or `XDS_CONFIG` env variable__
+
+Env config file to source on startup
+
+__`--log|-l` option or `XDS_LOGLEVEL` env variable__
+
+Logging level, supported levels are:
+
+- panic
+- fatal
+- error
+- warn
+- info
+- debug
+
+Default level is "error".
+
+**`--rpath` option or `XDS_PATH` env variable**
+
+Relative path into project
+
+**`timestamp|-ts` option or `XDS_TIMESTAMP` env variable**
+
+Prefix output with timestamp
+
+**`url` option or `XDS_AGENT_URL` env variable**
+
+Local XDS agent url (default: "localhost:8800")
diff --git a/docs/part-2/3_xds-cli/3_build.md b/docs/part-2/3_xds-cli/3_build.md
deleted file mode 100644
index b42b00c..0000000
--- a/docs/part-2/3_xds-cli/3_build.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# How to build
-
-## Dependencies
-
-Install [Go](https://golang.org/doc/install) and some other tools.
-
-Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
-
-## Building
-
-Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-cli`
-in order respect directory hierarchy that match Go package import logic (see
-[How to Write Go Code](https://golang.org/doc/code.html) for more details).
-
-Then use delivered Makefile :
-
-```bash
-# Declare ROOTDIR, can be any location (for example xds-build)
-ROOTDIR=$HOME/xds-build
-
-# Create directory hierarchy that match Go package import logic
-mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-
-# Clone sources
-git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-cli
-# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-cli
-
-# Build xds-cli
-# (note that GOPATH will correctly be set by Makefile)
-cd xds-cli
-make all
-```
-
-Generate xds-cli package / tarball
-
-```bash
-make package-all
-```
diff --git a/docs/part-2/3_xds-cli/3_commands.md b/docs/part-2/3_xds-cli/3_commands.md
new file mode 100644
index 0000000..599906c
--- /dev/null
+++ b/docs/part-2/3_xds-cli/3_commands.md
@@ -0,0 +1,119 @@
+# Commands
+
+## projects
+
+`projects` (short `prj`) command should be used to managed XDS projects.
+
+This command supports following sub-commands:
+
+```bash
+add, a      Add a new project
+get         Get a property of a project
+list, ls    List existing projects
+remove, rm  Remove an existing project
+sync        Force synchronization of project sources
+```
+
+Here are some usage examples:
+
+```bash
+# Create/declare a new project
+xds-cli prj add --label "myProjectName" --type pm -p /home/seb/xds-workspace/myProject -sp /home/devel/xds-workspace/myProject
+
+# List projects
+xds-cli prj ls
+
+# Delete an existing project
+xds-cli prj rm 8e49
+```
+
+## sdks
+
+`sdks` (alias `sdk`) command should be used to managed cross SDKs.
+
+This command supports following sub-commands:
+
+```bash
+get            Get a property of a SDK
+list, ls       List installed SDKs
+install, i     Install a SDK
+uninstall, rm  UnInstall an existing SDK
+abort, a       Abort an install action
+```
+
+Here are some usage examples:
+
+```bash
+# List existing SDKs
+xds-cli sdks ls
+
+# Get SDK info
+xds-cli sdks get c64d
+```
+
+<!-- section-note -->
+**Note:**
+
+Please also refer to [Installing AGL SDKs](../../part-1/3_install-sdks.html) chapter for more details about sdks installation.
+
+<!-- end-section-note -->
+
+## exec
+
+`exec` command should be used to exec command through XDS system.
+
+For example you can use this command to build your project in XDS system.
+
+This command supports following sub-commands:
+
+`exec` command options are:
+
+**`--id` option or `XDS_PROJECT_ID` env variable (**mandatory option**)**
+
+project ID you want to build
+
+**`--rpath` (short `-p`) or `XDS_RPATH` env variable**
+
+relative path into project
+
+**`--sdkid` (alias `--sdk`) or `XDS_SDK_ID` env variable (**mandatory option**)**
+
+Cross Sdk ID to use to build project.
+
+Here are some usage examples:
+
+```bash
+cd $MY_PROJECT_DIR
+mkdir build
+
+# Generate build system using cmake
+xds-cli exec --id=4021 --sdkid=c226 -- "cd build && cmake .."
+
+# Build the project
+xds-cli exec --id=4021 --sdkid=c226 -- "cd build && make all"
+```
+
+In case of `xds-agent` is not running on default url:port (that is `localhost:8800`)
+
+You can specify the url using `--url` option :
+
+```bash
+xds-cli --url=http://localhost:8800 exec --id=4021 --sdkid=c226 -- "cd build && make all"
+```
+
+## misc
+
+`misc` command allows to execute miscellaneous sub-commands such as:
+
+```bash
+version, v   Get version of XDS agent and XDS server
+status, sts  Get XDS configuration status (including XDS server connection)
+```
+
+Here are some usage examples:
+
+```bash
+xds-cli misc version --verbose
+
+xds-cli misc sts
+```
diff --git a/docs/part-2/4_xds-gdb/0_abstract.md b/docs/part-2/4_xds-gdb/0_abstract.md
index d282efa..e5f0c25 100644
--- a/docs/part-2/4_xds-gdb/0_abstract.md
+++ b/docs/part-2/4_xds-gdb/0_abstract.md
@@ -19,6 +19,6 @@ variable to use native gdb debug mode instead.
 
 Links to subchapters :
 
-- [Configuration](./1_config.html)
-- [Build from scratch](./2_build.html)
+- [Build from scratch](./1_build.html)
+- [Configuration](./2_config.html)
 - [Debugging](./3_debug.html)
diff --git a/docs/part-2/4_xds-gdb/1_build.md b/docs/part-2/4_xds-gdb/1_build.md
new file mode 100644
index 0000000..9ec91b3
--- /dev/null
+++ b/docs/part-2/4_xds-gdb/1_build.md
@@ -0,0 +1,39 @@
+# How to build xds-gdb from scratch
+
+## Dependencies
+
+Install [Go](https://golang.org/doc/install) and some other tools.
+
+Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
+
+## Building
+
+Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-gdb`
+in order respect directory hierarchy that match Go package import logic (see
+[How to Write Go Code](https://golang.org/doc/code.html) for more details).
+
+Then use delivered Makefile :
+
+```bash
+# Declare ROOTDIR, can be any location (for example xds-build)
+ROOTDIR=$HOME/xds-build
+
+# Create directory hierarchy that match Go package import logic
+mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+
+# Clone sources
+git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-gdb
+# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-gdb
+
+# Build xds-gdb
+# (note that GOPATH will correctly be set by Makefile)
+cd xds-gdb
+make all
+```
+
+Generate xds-gdb package / tarball
+
+```bash
+make package-all
+```
diff --git a/docs/part-2/4_xds-gdb/1_config.md b/docs/part-2/4_xds-gdb/1_config.md
deleted file mode 100644
index 8568f18..0000000
--- a/docs/part-2/4_xds-gdb/1_config.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# Configuration
-
-`xds-gdb` configuration is defined by variables (see listed below).
-
-These variables may be set using:
-
-- environment variables (inherited),
-- or a config file set with `XDS_CONFIG` environment variable, for example:
-  `XDS_CONFIG=/tmp/my_xds_gdb_config.env xds-gdb`
-- or by setting variables within a gdb ini file (see details below),
-- or a "user" config file located in following directory (first found is taken):
-  1. $(CURRENT_DIRECTORY)/.xds-gdb.env
-  1. $(CURRENT_DIRECTORY)/../xds-gdb.env
-  1. $(CURRENT_DIRECTORY)/target/xds-gdb.env
-  1. $(HOME)/.config/xds/xds-gdb.env
-
-## Configuration Variables
-
-`XDS_CONFIG`
-
-Config file defining `XDS_xxx` configuration variables.
-
-Variables of this file will overwrite inherited environment variables.
-
-Variables definition may be prefixed or not by "export" keyword.
-
-Here is an example of config file:
-
-```bash
-cat $HOME/myProject/xds-gdb.env
-
-export XDS_AGENT_URL=http://localhost:8800
-export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b
-export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03
-```
-
-`XDS_LOGLEVEL`
-
-Set logging level
-
-Supported levels:
-
-- panic
-- fatal
-- error
-- warn
-- info
-- debug
-
-`XDS_LOGFILE`
-
-Set logging file, default `/tmp/xds-gdb.log`.
-
-`XDS_NATIVE_GDB`
-
-Use native gdb mode instead of XDS mode.
-
-`XDS_PROJECT_ID`  *(mandatory in XDS mode)*
-
-Project ID you want to build
-
-`XDS_RPATH`
-
-Relative path into project
-
-`XDS_SDK_ID`   *(mandatory in XDS mode)*
-
-Cross Sdk ID to use to build project
-
-`XDS_AGENT_URL`
-
-Local XDS agent url (default `http://localhost:8800`)
-
-## Configuration variables set within gdb init command file
-
-Above `XDS_xxx` variables may also be defined within gdb init command file
-(see --command or -x option of genuine Gdb).
-
-You must respect the following syntax: commented line including `:XDS-ENV:` tag
-
-Example of gdb init file where we define project and sdk ID:
-
-```bash
-     # :XDS-ENV: XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b
-     # :XDS-ENV: XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03
-```
diff --git a/docs/part-2/4_xds-gdb/2_build.md b/docs/part-2/4_xds-gdb/2_build.md
deleted file mode 100644
index 9ec91b3..0000000
--- a/docs/part-2/4_xds-gdb/2_build.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# How to build xds-gdb from scratch
-
-## Dependencies
-
-Install [Go](https://golang.org/doc/install) and some other tools.
-
-Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
-
-## Building
-
-Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-gdb`
-in order respect directory hierarchy that match Go package import logic (see
-[How to Write Go Code](https://golang.org/doc/code.html) for more details).
-
-Then use delivered Makefile :
-
-```bash
-# Declare ROOTDIR, can be any location (for example xds-build)
-ROOTDIR=$HOME/xds-build
-
-# Create directory hierarchy that match Go package import logic
-mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
-
-# Clone sources
-git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-gdb
-# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-gdb
-
-# Build xds-gdb
-# (note that GOPATH will correctly be set by Makefile)
-cd xds-gdb
-make all
-```
-
-Generate xds-gdb package / tarball
-
-```bash
-make package-all
-```
diff --git a/docs/part-2/4_xds-gdb/2_config.md b/docs/part-2/4_xds-gdb/2_config.md
new file mode 100644
index 0000000..8568f18
--- /dev/null
+++ b/docs/part-2/4_xds-gdb/2_config.md
@@ -0,0 +1,86 @@
+# Configuration
+
+`xds-gdb` configuration is defined by variables (see listed below).
+
+These variables may be set using:
+
+- environment variables (inherited),
+- or a config file set with `XDS_CONFIG` environment variable, for example:
+  `XDS_CONFIG=/tmp/my_xds_gdb_config.env xds-gdb`
+- or by setting variables within a gdb ini file (see details below),
+- or a "user" config file located in following directory (first found is taken):
+  1. $(CURRENT_DIRECTORY)/.xds-gdb.env
+  1. $(CURRENT_DIRECTORY)/../xds-gdb.env
+  1. $(CURRENT_DIRECTORY)/target/xds-gdb.env
+  1. $(HOME)/.config/xds/xds-gdb.env
+
+## Configuration Variables
+
+`XDS_CONFIG`
+
+Config file defining `XDS_xxx` configuration variables.
+
+Variables of this file will overwrite inherited environment variables.
+
+Variables definition may be prefixed or not by "export" keyword.
+
+Here is an example of config file:
+
+```bash
+cat $HOME/myProject/xds-gdb.env
+
+export XDS_AGENT_URL=http://localhost:8800
+export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b
+export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03
+```
+
+`XDS_LOGLEVEL`
+
+Set logging level
+
+Supported levels:
+
+- panic
+- fatal
+- error
+- warn
+- info
+- debug
+
+`XDS_LOGFILE`
+
+Set logging file, default `/tmp/xds-gdb.log`.
+
+`XDS_NATIVE_GDB`
+
+Use native gdb mode instead of XDS mode.
+
+`XDS_PROJECT_ID`  *(mandatory in XDS mode)*
+
+Project ID you want to build
+
+`XDS_RPATH`
+
+Relative path into project
+
+`XDS_SDK_ID`   *(mandatory in XDS mode)*
+
+Cross Sdk ID to use to build project
+
+`XDS_AGENT_URL`
+
+Local XDS agent url (default `http://localhost:8800`)
+
+## Configuration variables set within gdb init command file
+
+Above `XDS_xxx` variables may also be defined within gdb init command file
+(see --command or -x option of genuine Gdb).
+
+You must respect the following syntax: commented line including `:XDS-ENV:` tag
+
+Example of gdb init file where we define project and sdk ID:
+
+```bash
+     # :XDS-ENV: XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b
+     # :XDS-ENV: XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03
+```
-- 
cgit