Creation of Deploy Daemon
The Deploy Daemon (DaemonConfig) is used to orchestrate the deployment of ExApps.
Note
Currently only docker-install and manual-install deployment methods are supported.
The recommended daemon configuration is using AppAPI Docker Socket Proxy.
 
You can choose one of the basic configuration templates and adjust to your needs.
Note
We highly recommend to use UI to create Deploy Daemons.
Register Deploy daemon form
- Name: unique name of the Deploy daemon
- Display name: the name that will be displayed in the UI
- Deployment method: by default you will need to choose- docker_install,- manual_installis for development or custom use case of manual ExApp installation
- Daemon Host: hostname/IP address + port of the Deploy daemon
- Nextcloud URL: autofilled with current domain, you might need to change the protocol to http/https depending on your setup
- Set as default daemon: check if you want set new Deploy daemon as default
- Enable https: check if your Deploy daemon (Docker Socket Proxy) is configured with TLS
- Deploy Config:
- Network: Docker network name, depends on your networking setup, enforces to “host” if “Enable https” is checked
- HaProxy password: password for Docker Socket Proxy, if it is configured with TLS
- Compute Device: CPU, CUDA or ROCm, depending on your hardware config on Deploy daemon host machine
- Add additional option(see Additional options): setup additional KEY + VALUE deploy config options
 
 
Note
For remote DSP setup, it should expose the ports on the host.
OCC CLI
There are a few commands to manage Deploy Daemons:
- Register - occ app_api:daemon:register
- Unregister - occ app_api:daemon:unregister
- List registered daemons - occ app_api:daemon:list
Register
Register Deploy Daemon (DaemonConfig).
Command: app_api:daemon:register [--net NET] [--haproxy_password HAPROXY_PASSWORD] [--compute_device COMPUTE_DEVICE] [--set-default] [--] <name> <display-name> <accepts-deploy-id> <protocol> <host> <nextcloud_url>
Arguments
name- unique name of the daemon (e.g.docker_local_sock)
display-name- name of the daemon (e.g.My Local Docker, will be displayed in the UI)
accepts-deploy-id- type of deployment (docker-installormanual-install)
host- path to docker-socket or the Docker Socket Proxy:address:port
protocol- protocol used to communicate with the Daemon/ExApps (httporhttps)
nextcloud_url- Nextcloud URL, Daemon config required option (e.g.https://nextcloud.local)
Options
--net [network-name]-[required]network name to bind docker container to (default:host)
--haproxy_password HAPROXY_PASSWORD-[optional]password for AppAPI Docker Socket Proxy
--compute_device GPU-[optional]GPU device to expose to the daemon (e.g.cpu|cuda|rocm, default:cpu)
--set-default-[optional]set created daemon as default for ExApps installation
DeployConfig
DeployConfig is a set of additional options in Daemon config, which are used in deployment algorithms to configure ExApp container.
{
        "net": "host",
        "nextcloud_url": "https://nextcloud.local",
        "haproxy_password": "some_secure_password",
        "computeDevice": {
                "id": "cuda",
                "name": "CUDA (NVIDIA)",
        },
}
DeployConfig options
net[required] - network name to bind docker container to (default:host)
nextcloud_url[required] - Nextcloud URL (e.g.https://nextcloud.local)
haproxy_password[optional] - password for AppAPI Docker Socket Proxy
computeDevice[optional] - Compute device to attach to the daemon (e.g.{ "id": "cuda", "label": "CUDA (NVIDIA)" })
Unregister
Unregister Deploy Daemon (DaemonConfig).
Command: app_api:daemon:unregister <daemon-config-name>
List registered daemons
List registered Deploy Daemons (DaemonConfigs).
Command: app_api:daemon:list
Nextcloud AIO
In case of AppAPI installed in AIO, default Deploy Daemon is registered automatically. It is possible to register additional Deploy Daemons with the same ways as described above.
Additional options
There is a possibility to add additional options to the Deploy Daemon configuration, which are key-value pairs.
Currently, the following options are available:
OVERRIDE_APP_HOST- can be used to override the host that will be used for ExApp binding (not passed to ExApp container envs)