Installing integrations on Polarity v5 has become much easier and more streamlined, as installation can be done though the UI.
Install Integration through Store
Polarity users and admins can now see all of our officially supported integrations right from the Integration Store as well as install update or view more information about those integrations on what they do.
Admins can just navigate to the integration you want to install and hit the Install Button.
To browse available Integrations without accessing the Polarity Integration Store:
Navigate to this URL:
Upload Integration through UI
If there is a custom integration that someone has developed it can easily be added to Polarity by uploading the .tgz or .zip package.
Ensure you have the integration fully installed (ie. the Node packages are preinstalled and included) then you can click on the "Add Custom Integration" button at the top right of the Integrations view and install the integration through the UI.
NOTE
The custom integration will need to be complete with Node packages and packed in a .tgz or .zip file.
Manual Integration Installation
Manual installation of integrations requires SSH access to the server.
NOTE
The GitHub repositories for our integrations are in the process of switching from “Public” to “Private”, meaning the public will not be able to browse to them.
In light of this, the documentation for the download portion of the “Manual Integration Installation” section will be deprecated in the near future, though the manual installation procedure remains the same.
Download the Release from GitHub
Navigate to the releases page for the integration you are installing.
The URL should look like https://github.com/polarityio/{integration_name}/releases.
For example, the releases page for the Virustotal integration is https://github.com/polarityio/virustotal/releases.
You can find a link to the releases page on the right-hand side navigation of the integration’s GitHub repository.
Download the
.tgzfile for the version of the integration you want to install (we typically recommend installing the latest version of the integration).For v5 servers before sure to download the
.tgzfile marked as being compatible with Polarity Server 5.x.
Once downloaded, upload the
.tgzfile to the Polarity Server’s integrations directory/app/integrations).
Direct Download with wget or curl
If you have wget or curl installed on your Polarity Server and your server has access to GitHub, you can download the release directly onto your server.
Right click on the release link and copy the download link to your clipboard.
Save a copy of this link as you will need it to download the release onto your server.
With the link from above, you can download the link using either curl or wget.
wget
wget --directory-prefix=/app/integrations {{release-link}}curl
cd /app/integrations
curl -O {{release-link}}This will place the download into the /app/integrations directory on your server.
Extract Integration Package
Once you have downloaded then uploaded the integration to your Polarity Server you will need to untar it.
Navigate to the integrations directory and extract the .tgz file:
cd /app/integrations
tar -xzvf {{filename}}The extracted directory will not include the version number.
For example, after untar’ing the file virustotal-3.7.4+node-18.tgz, the directory will just be called " virustotal". This is deliberate and makes it easier to manage integration updates.
Rename Integration Directory
WARNING!
Integrations with a dash ( -) in the directory name will not be loaded and maintained properly by the v5 server!
When manually installing integrations, you will need to ensure that you rename directories to use underscores ( _) instead.
As an example, if you were to manually install Cisco Umbrella the untar'd directory would be named cisco-umbrella. You need to rename the directory so the dash is an underscore:
mv cisco-umbrella cisco_umbrellaRestart Server
Once the integration directory is in place you must ensure the permissions are set properly so the Polarity Server can access it, then restart the Polarity containers using the provided down and up scripts to load the new integration.
An example session demonstrating this follows:
[admin@polarity-server ~]$ cd /app
[admin@polarity-server app]$ sudo bin/polarity docker-set-permissions
[sudo] password for admin:
Sourcing .env [ INFO ]
Setting share directory permissions for rootless containers... [ INFO ]
/app/certs /app/license /app/integrations /app/redis /app/redis-confs /app/caddy
Setting user to 31337 and group to 31337 [ INFO ]
Do you want to continue? (y/n) [y]: y
[admin@polarity-server app]$ sudo ./down.sh && sudo ./up.sh
Sourcing .env [ INFO ]
/usr/local/bin/docker-compose
Taking down the server... [ INFO ]
Sourcing .env [ INFO ]
/usr/local/bin/docker-compose
Bringing up the server... [ INFO ]
WARN[0000] No services to build
[+] up 0/1
[+] up 1/4 polarity_platform_net Creating 0.1s
[+] up 6/6 polarity_platform_net Created 0.2s
✔ Network polarity_platform_net Created 0.2s
✔ Container polarity_platform_local_postgres Created 0.0s
✔ Container polarity_integration_cache Created 0.1s
✔ Container polarity_metrics_cache Created 0.1s
✔ Container polarity_platform Created 0.0s
✔ Container polarity_web Created 0.0s
[admin@polarity-server app]$ Manually Updating Integrations
To update an integration follow the same steps as you did when initially installing. When untar’ing the integration, the new integration files will replace the existing files.
Restarting the Polarity containers is only required when installing a new integration.
If you are updating an existing integration, you can restart the integration from the Polarity Web Interface.