This documentation is written for system administrators.
We'll use different terms for the components of our product:
You'll need to setup multiple companion services that support Arkindex. All these services are open source and freely available.
Teklia will provide you with several docker images (to load using docker load):
registry.gitlab.com/teklia/arkindex/backend:X.Y.Z, must be present on your application server,
registry.gitlab.com/teklia/arkindex/tasks:X.Y.Z, will be used to by the remote workers (file imports, thumbnails generation, ...).
registry.gitlab.com/teklia/arkindex/ponos:X.Y.Zwill be used to actually run the asynchronous tasks across all your remote workers.
The backend image mentioned above will run in two containers on your application server:
We recommend you to use our own CDN for the frontend files. Simply use the
assets.teklia.com as source for static files in the backend configuration (you can look into our own example).
We documented a working example of docker-compose setup in a dedicated public repository. You can clone this repository and use it as a starting point for your own deployment.
Of course your setup may differ, you could use external services (databases, search engine, file storage, ...). You just need to run our own software through Docker, the other parts can be externalized.
All the configuration options for the backend are detailed on this page.
A minimal configuration file is also available in the public repository.
If your setup requires Machine Learning process, you'll need at least one Ponos Agent on a dedicated server.
The setup of this kind of server is easier, as it only requires to run the agent (from Docker image
registry.gitlab.com/teklia/arkindex/ponos) and configure it. The tasks will then be triggered by the agent automatically.
To begin the setup, you'll need 2 private keys: one for the backend, another for the agent. Each agent needs a dedicated key to authenticate itself.
To generate a valid private key:
openssl ecparam -name secp384r1 -genkey -noout > agent.key
A YAML configuration file is also required:
--- # Save as agent.yml url: https://ark.localhost/ farm_id: XXXXX seed: YYYYY data_dir: /data private_key: /etc/ponos/agent.key
seed information can be found in the Arkindex administration interface under the section Ponos > Farms.
You can then run the agent as:
docker run \ --name=ponos \ -v /var/run/docker.sock:/var/run/docker.sock \ -v ./agent.yml:/etc/ponos/agent.yml:ro \ -v ./agent.key:/etc/ponos/agent.key:ro \ -v ponos_data:/data registry.gitlab.com/teklia/arkindex/ponos:X.Y.Z
Please note that the agent requires a write access on the local Docker socket in order to create new containers that will run the tasks.
ponos_data docker volume is not required, but will allow to retrieve debug logs outside of the agent container.