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 daemonDisplay name
: the name that will be displayed in the UIDeployment method
: by default you will need to choosedocker_install
,manual_install
is for development or custom use case of manual ExApp installationDaemon Host
: hostname/IP address + port of the Deploy daemonNextcloud URL
: autofilled with current domain, you might need to change the protocol to http/https depending on your setupSet as default daemon
: check if you want set new Deploy daemon as defaultEnable 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 checkedHaProxy password
: password for Docker Socket Proxy, if it is configured with TLSCompute Device
: CPU, CUDA or ROCm, depending on your hardware config on Deploy daemon host machineAdd 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-install
ormanual-install
)
host
- path to docker-socket or the Docker Socket Proxy:address:port
protocol
- protocol used to communicate with the Daemon/ExApps (http
orhttps
)
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)