The launch options for binder **afb-daemon** are:
- --help
+```
+ -v, --verbose Verbose Mode, repeat to increase verbosity
+ -c, --color Colorize the ouput
+ -q, --quiet Quiet Mode, repeat to decrease verbosity
+ -l, --log=xxxx Tune log level
+ --foreground Get all in foreground mode
+ --background Get all in background mode
+ --daemon Get all in background mode
+ -n, --name=xxxx Set the visible name
+ -p, --port=xxxx HTTP listening TCP port [default 1234]
+ --roothttp=xxxx HTTP Root Directory [default no root http (files not served but apis still available)]
+ --rootbase=xxxx Angular Base Root URL [default /opa]
+ --rootapi=xxxx HTML Root API URL [default /api]
+ --alias=xxxx Multiple url map outside of rootdir [eg: --alias=/icons:/usr/share/icons]
+ --apitimeout=xxxx Binding API timeout in seconds [default 20]
+ --cntxtimeout=xxxx Client Session Context Timeout [default 32000000]
+ --cache-eol=xxxx Client cache end of live [default 100000]
+ -w, --workdir=xxxx Set the working directory [default: $PWD or current working directory]
+ -u, --uploaddir=xxxx Directory for uploading files [default: workdir]
+ --rootdir=xxxx Root Directory of the application [default: workdir]
+ --ldpaths=xxxx Load bindings from dir1:dir2:... [default = /opt/jobol/lib64/afb]
+ -b, --binding=xxxx Load the binding of path
+ --weak-ldpaths=xxxx Same as --ldpaths but ignore errors
+ --no-ldpaths Discard default ldpaths loading
+ -t, --token=xxxx Initial Secret [default=random, use --token= to allow any token]
+ -r, --random-token Enforce a random token
+ -V, --version Display version and copyright
+ -h, --help Display this help
+ --ws-client=xxxx Bind to an afb service through websocket
+ --ws-server=xxxx Provide an afb service through websockets
+ -A, --auto-api=xxxx Automatic load of api of the given directory
+ --session-max=xxxx Max count of session simultaneously [default 200]
+ --tracereq=xxxx Log the requests: no, common, extra, all
+ --traceevt=xxxx Log the events: no, common, extra, all
+ --traceses=xxxx Log the sessions: no, all
+ --traceapi=xxxx Log the apis: no, common, api, event, all
+ --traceglob=xxxx Log the globals: none, all
+ --traceditf=xxxx Log the daemons: no, common, all
+ --tracesvc=xxxx Log the services: no, all
+ --call=xxxx call at start format of val: API/VERB:json-args
+ --no-httpd Forbid HTTP service
+ -e, --exec Execute the remaining arguments
+ -M, --monitoring Enable HTTP monitoring at <ROOT>/monitoring/
+ -C, --config=xxxx Load options from the given config file
+ -Z, --dump-config Dump the config to stdout and exit
+ -s, --set=xxxx Set parameters ([API]/[KEY]:JSON or {"API":{"KEY":JSON}}
+ -o, --output=xxxx Redirect stdout and stderr to output file
+```
- Prints help with available options
+## help
- --version
+Prints help with available options
- Display version and copyright
+## version
- --verbose
+Display version and copyright
- Increases the verbosity, can be repeated
+## verbose
- --quiet
+Increases the verbosity, can be repeated
- Decreases the verbosity, can be repeated
+## color
- --port=xxxx
+Add basic colorization to the ouput.
- HTTP listening TCP port [default 1234]
+## quiet
- --workdir=xxxx
+Decreases the verbosity, can be repeated
- Directory where the daemon must run [default: $PWD if defined
- or the current working directory]
+## log=xxxx
- --uploaddir=xxxx
+Tune the log level mask. The levels are:
- Directory where uploaded files are temporarily stored [default: workdir]
+ - error
+ - warning
+ - notice
+ - info
+ - debug
- --rootdir=xxxx
+The level can be set using + or -.
- Root directory of the application to serve [default: workdir]
+| Examples | descritpion
+|-----------------|-------------------
+| error,warning | selects only the levels error and warning
+| +debug | adds level debug to the current verbosity
+| -warning | remove the level warning from the current verbosity
+| +warning-debug,info | Adds error and remove errors and warnings
- --roothttp=xxxx
+## port=xxxx
- Directory of HTTP served files. If not set, files are not served
- but apis are still accessible.
+HTTP listening TCP port [default 1234]
- --rootbase=xxxx
+## workdir=xxxx
- Angular Base Root URL [default /opa]
+Directory where the daemon must run [default: $PWD if defined
+or the current working directory]
- This is used for any application of kind OPA (one page application).
- When set, any missing document whose url has the form /opa/zzz
- is translated to /opa/#!zzz
+## uploaddir=xxxx
- --rootapi=xxxx
+Directory where uploaded files are temporarily stored [default: workdir]
- HTML Root API URL [default /api]
+## rootdir=xxxx
- The bindings are available within that url.
+Root directory of the application to serve [default: workdir]
- --alias=xxxx
+## roothttp=xxxx
- Maps a path located anywhere in the file system to the
- a subdirectory. The syntax for mapping a PATH to the
- subdirectory NAME is: --alias=/NAME:PATH.
+Directory of HTTP served files. If not set, files are not served
+but apis are still accessible.
- Example: --alias=/icons:/usr/share/icons maps the
- content of /usr/share/icons within the subpath /icons.
+## rootbase=xxxx
- This option can be repeated.
+Angular Base Root URL [default /opa]
- --apitimeout=xxxx
+This is used for any application of kind OPA (one page application).
+When set, any missing document whose url has the form /opa/zzz
+is translated to /opa/#!zzz
- binding API timeout in seconds [default 20]
+## rootapi=xxxx
- Defines how many seconds maximum a method is allowed to run.
- 0 means no limit.
+HTML Root API URL [default /api]
- --cntxtimeout=xxxx
+The bindings are available within that url.
- Client Session Timeout in seconds [default 3600]
+## alias=xxxx
- --cache-eol=xxxx
+Maps a path located anywhere in the file system to the
+a subdirectory. The syntax for mapping a PATH to the
+subdirectory NAME is: --alias=/NAME:PATH.
- Client cache end of live [default 100000 that is 27,7 hours]
+Example: --alias=/icons:/usr/share/icons maps the
+content of /usr/share/icons within the subpath /icons.
- --session-max=xxxx
+This option can be repeated.
- Maximum count of simultaneous sessions [default 10]
+## apitimeout=xxxx
- --ldpaths=xxxx
+binding API timeout in seconds [default 20]
- Load bindings from given paths separated by colons
- as for dir1:dir2:binding1.so:... [default = $libdir/afb]
+Defines how many seconds maximum a method is allowed to run.
+0 means no limit.
- You can mix path to directories and to bindings.
- The sub-directories of the given directories are searched
- recursively.
+## cntxtimeout=xxxx
- The bindings are the files terminated by '.so' (the extension
- so denotes shared object) that contain the public entry symbol.
+Client Session Timeout in seconds [default 32000000 that is 1 year]
- --binding=xxxx
+## cache-eol=xxxx
- Load the binding of given path.
+Client cache end of live [default 100000 that is 27,7 hours]
- --token=xxxx
+## session-max=xxxx
- Initial Secret token to authenticate.
+Maximum count of simultaneous sessions [default 200]
- If not set, no client can authenticate.
+## ldpaths=xxxx
- If set to the empty string, then any initial token is accepted.
+Load bindings from given paths separated by colons
+as for dir1:dir2:binding1.so:... [default = $libdir/afb]
- --random-token
+You can mix path to directories and to bindings.
+The sub-directories of the given directories are searched
+recursively.
- Generate a random starting token. See option --exec.
+The bindings are the files terminated by '.so' (the extension
+so denotes shared object) that contain the public entry symbol.
- --mode=xxxx
+## weak-ldpaths=xxxx
- Set the mode: either local, remote or global.
+Same as --ldpaths but instead of stopping on error, ignore errors and continue.
- The mode indicate if the application is run locally on the host
- or remotely through network.
+## binding=xxxx
- --dbus-client=xxxx
+Load the binding of given path.
- Transparent binding to a binder afb-daemon service through dbus.
+## token=xxxx
- It creates an API of name xxxx that is implemented remotely
- and queried via DBUS.
+Initial Secret token to authenticate.
- --dbus-server=xxxx
+If not set, no client can authenticate.
- Provides a binder afb-daemon service through dbus.
+If set to the empty string, then any initial token is accepted.
- The name xxxx must be the name of an API defined by a binding.
- This API is exported through DBUS.
+## random-token
- --ws-client=xxxx
+Generate a random starting token. See option --exec.
- Transparent binding to a binder afb-daemon service through a WebSocket.
+## ws-client=xxxx
- The value of xxxx is either a unix naming socket, of the form "unix:path/api",
- or an internet socket, of the form "host:port/api".
+Transparent binding to a binder afb-daemon service through a WebSocket.
- --ws-server=xxxx
+The value of xxxx is either a unix naming socket, of the form "unix:path/api",
+or an internet socket, of the form "host:port/api".
- Provides a binder afb-daemon service through WebSocket.
+## ws-server=xxxx
- The value of xxxx is either a unix naming socket, of the form "unix:path/api",
- or an internet socket, of the form "host:port/api".
+Provides a binder afb-daemon service through WebSocket.
- --foreground
+The value of xxxx is either a unix naming socket, of the form "unix:path/api",
+or an internet socket, of the form "host:port/api".
- Get all in foreground mode (default)
+## foreground
- --daemon
+Get all in foreground mode (default)
- Get all in background mode
+## daemon
- --no-httpd
+Get all in background mode
- Forbids HTTP serve
+## no-httpd
- --exec
+Forbids HTTP serve
- Must be the last option for afb-daemon. The remaining
- arguments define a command that afb-daemon will launch.
- The sequences @p, @t and @@ of the arguments are replaced
- with the port, the token and @.
+## exec
- --tracereq=xxxx
+Must be the last option for afb-daemon. The remaining
+arguments define a command that afb-daemon will launch.
+The sequences @p, @t and @@ of the arguments are replaced
+with the port, the token and @.
- Trace the processing of requests in the log file.
+## tracereq=xxxx
- Valid values are 'no' (default), 'common', 'extra' or 'all'.
+Trace the processing of requests in the log file.
- --traceditf=xxxx
+Valid values are 'no' (default), 'common', 'extra' or 'all'.
- Trace the accesses to functions of class daemon.
+## traceapi=xxxx
- Valid values are 'no' (default), 'common', 'extra' or 'all'.
+Trace the accesses to functions of class api.
- --tracesvc=xxxx
+Valid values are 'no' (default), 'common', 'api', 'event' or 'all'.
- Trace the accesses to functions of class service.
+## traceevt=xxxx
- Valid values are 'no' (default) or 'all'.
+Trace the accesses to functions of class event.
- --traceevt=xxxx
+Valid values are 'no' (default), 'common', 'extra' or 'all'.
- Trace the accesses to functions of class event.
+## call=xxx
- Valid values are 'no' (default), 'common', 'extra' or 'all'.
+Call a binding at start (can be be repeated).
+The values are given in the form API/VERB:json-args.
- --call=xxx
+Example: --call 'monitor/set:{"verbosity":{"api":"debug"}}'
- Call a binding at start (can be be repeated).
- The values are given in the form API/VERB:json-args.
+## monitoring
+
+Enable HTTP monitoring at <ROOT>/monitoring/
+
+## name=xxxx
+
+Set the visible name
+
+## auto-api=xxxx
+
+Automatic activation of api of the given directory when the api is missing.
+
+## config=xxxx
+
+Load options from the given config file
+
+This can be used instead of arguments on the command line.
+
+Example:
+
+ afb-daemon \
+ --no-ldpaths \
+ --binding /home/15646/bindings/binding45.so \
+ --binding /home/15646/bindings/binding3.so \
+ --tracereq common \
+ --port 5555 \
+ --token SPYER \
+ --set api45/key:54027a5e3c6cb2ca5ddb97679ce32f185b067b0a557d16a8333758910bc25a72 \
+ --exec /home/15646/bin/test654 @p @t
+
+is equivalent to:
+
+ afb-daemon --config /home/15646/config1
+
+when the file **/home/15646/config1** is:
+
+ {
+ "no-ldpaths": true,
+ "binding": [
+ "\/home\/15646\/bindings\/binding45.so",
+ "\/home\/15646\/bindings\/binding3.so"
+ ],
+ "tracereq": "common",
+ "port": 5555,
+ "token": "SPYER",
+ "set" : {
+ "api45": {
+ "key": "54027a5e3c6cb2ca5ddb97679ce32f185b067b0a557d16a8333758910bc25a72"
+ }
+ },
+ "exec": [
+ "\/home\/15646\/bin\/test654",
+ "@p",
+ "@t"
+ ]
+ }
+
+The options are the keys of the config object.
+
+See option --dump-config
+
+## dump-config
+
+Output a JSON representation of the configuration resulting from
+environment and options.
+
+## output=xxxx
+
+Redirect stdout and stderr to output file
+
+## set=xxxx
+
+Set values that can be retrieved by bindings.
+
+The set value can have different formats.
+
+The most generic format is **{"API1":{"KEY1":VALUE,"KEY2":VALUE2,...},"API2":...}**
+
+This example set 2 keys for the api *chook*:
+
+ afb-daemon -Z --set '{"chook":{"account":"urn:chook:b2ca5ddb97679","delay":500}}'
+ {
+ "set": {
+ "chook": {
+ "account": "urn:chook:b2ca5ddb97679",
+ "delay": 500
+ }
+ }
+ }
+
+An other format is: **[API]/[KEY]:VALUE**.
+When API is omitted, it take the value "*".
+When KEY is ommitted, it take the value of "*".
+
+The settings for the API \* are globals and apply to all bindings.
+
+The settings for the KEY \* are mixing the value for the API.
+
+The following examples are all setting the same values:
+
+ afb-daemon --set '{"chook":{"account":"urn:chook:b2ca5ddb97679","delay":500}}'
+ afb-daemon --set 'chook/*:{"account":"urn:chook:b2ca5ddb97679","delay":500}'
+ afb-daemon --set 'chook/:{"account":"urn:chook:b2ca5ddb97679","delay":500}'
+ afb-daemon --set 'chook/account:"urn:chook:b2ca5ddb97679"' --set chook/delay:500
- Example: --call 'monitor/set:{"verbosity":{"api":"debug"}}'