Running yoda-scan has three external dependencies, which must be configured after yoda-scan docker is installed via rpm.
* yoda connectivity
* mundi connectivity
* mail storage access
By default, dockerized yoda-scan tries to find yoda at http://yoda:25793. When yoda is installed via rpm, it runs its container named yoda and thus, Yoda-scan connects to it out of the box.
When yoda runs on a different machine than Yoda-scan, <fulltext_api> element must be set in the configuration file /etc/yoda-scan/config/yoda-scan.xml, and then the Yoda-scan container must be restarted
docker restart yoda-scan
Similar to yoda connectivity, Mundi's default address is set to http://mundi:25797. Thus when Mundi was installed via rpm on the same machine, it would again connect without further work. Otherwise, user must set <document_api> in /etc/yoda-scan/config/yoda-scan.xml to Mundi address and restart the container
docker restart yoda-scan
Please note that Mundi usage is optional. If you don't want to use it, set <document_api> to an empty string. Yoda-scan will wait for Mundi at the start, thus leaving <document_api> set to address, where Mundi doesn't run results to inoperable Yoda-scan.
Mail storage access
IceWarp server sends Yoda-scan absolute file paths to the mail (and archive) storage directory. The storage directory must be mounted on the system, where yoda-scan is installed at /mnt/data mount point (i.e. /mnt/data/mail and /mnt/data/archive, respectively). Read-only access is sufficient.
When the IceWarp Server itself also uses /mnt/data as a storage mount point, there's no need for extra manual configuration.
When the IceWarp Server uses a different path (for example, because it runs on Windows) or you don't want to use /mnt/data, manual configuration is required.
Be aware that there are three filesystems involved:
- IceWarp file system - this is how the IceWarp Server sees the mail storage. IceWarp Server sends paths from this filesystem via API to Yoda-scan.
- VMWare image file system - this is the file system on the image. Mail storage must be mounted here via NFS or Samba. By default, it should be mounted to /mnt/data.
- Docker file system - this is the container filesystem used by running the Yoda-scan service. Yoda-scan is configured to use /var/data/server_storage/mail for the mail directory and /var/data/server_storage/archive for the archive directory.
Here are the setup steps:
Install yoda-scan to have needed configuration files in place - yum install yoda-scan
If the mail storage is not mounted on /mnt/data (VMWare image filesystem), copy /etc/yoda-scan/docker.args.default to /etc/yoda-scan/docker.args and edit it to bind mount your mount point to container's /var/data/server_storage.
If the mail storage path on the IceWarp file system differs from the mount point at the VMWare image filesystem, configure the path rewrite in /etc/yoda-scan/config/yoda-scan.xml. The rewrite should have the source set to the IceWarp Server storage mount directory (IceWarp file system) and the dest to /var/data/server_storage (Docker file system).
Finally, reinstall Yoda-scan and see the logs, and docker inspect if everything operates as expected.
yum reinstall yoda-scan