Install from an offline location#

Mirror EclecticIQ packages#

You can mirror packages from to provide EclecticIQ packages to hosts not connected to the internet.


This page describes how to mirror packages with wget. Other tools for mirroring repositories, like reposync, are out of scope for this guide.

Mirror with wget#

Mirror the contents of with wget to make EclecticIQ packages available on your network.

Requirements for mirror host:

  • wget to retrieve artifacts.

  • nginx or a similar web server, to serve artifacts on your network.

  • User running wget and nginx must have read and write access to DEST_DIR (default: /srv).

  • At least 25GB of free disk space at DEST_DIR.

To mirror required packages from, run the following script:

distro="centos"  # Only 'centos' available. For all RPM-based Linux distributions
cd "${DESTDIR}"

# Mirror packages
wget --user="${EIQ_REPO_USER}" --ask-password --mirror --convert-links -erobots=off \$distro/ \$distro-2.9/ \ \ \ \ \

# Clean up mirrored artifacts
find /srv/ -name index.html -delete

This saves artifacts required to install EclecticIQ Intelligence Center to DEST_DIR.

Serve mirrored packages over the network#

After mirroring the packages, you must serve them over HTTP/S on your network to allow package managers to access it.


For information on how to configure nginx, see nginx: Creating NGINX Plus and NGINX Configuration Files.

The following is an example nginx configuration that serves the contents of /srv/ over HTTP at http://eclecticiq-repo-mirror.example.local.

For a test deployment, replace the contents of the server block in /etc/nginx/sites-enabled/default with the following:

server {
    server_name eclecticiq-repo-mirror.example.local;
    listen 80;
    root /srv/;
    autoindex on;


The above nginx configuration snippet configures your nginx server to serve the contents of /srv/ through HTTP.

For production, you should update this to use HTTPS with trusted TLS certificates instead.

Use the mirror#

Make sure your package manager entries for EclecticIQ packages on the target installation host use the mirror you’ve set up instead of This section provides brief instructions on where to do this for EclecticIQ Installations.

EclecticIQ installation playbooks#

When using Installation playbooks 3.x, you must edit the group_vars/all/config.yml and replace or set the values of these keys:

eiq_ic_base__repos_protocol: "https" # Change to `http` for unsecured connections.
eiq_ic_base__repos_domain: "eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
extensions_repo_protocol: "https" # Change to `http` for unsecured connections.
extensions_repo_domain: "eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
eiq_ic__extensions_repo_protocol: "http"
eiq_ic__extensions_repo_domain: "eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
eiq_ic__extensions_repo_path: "/Extensions"

# Required for unsecured connections e.g. HTTP
eiq_ic__extensions_pip_extra_args: "--trusted-host=eclecticiq-repo-mirror.example.local"

Once done, running the EclecticIQ installation playbooks will install packages from your mirror instead.

Manual install (deprecated)#

When performing a manual install, you must set the baseurl key of the configured YUM repository files to use your mirror instead.

To do this, during Set up the repositories Rocky Linux, in the Repository paths and Extension repository paths sections, make sure that the environment variables are changed so that the resulting .repo files use the mirror instead.

Change these environment variables before following instructions in the Set up repository configuration files section:

repos_protocol="https" # Change to `http` for unsecured connections.
repos_root="eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.
extensions_repo_protocol="https" # Change to `http` for unsecured connections.
extensions_repo_domain="eclecticiq-repo-mirror.example.local" # Base URL of mirror. Depends on nginx configuration.


To install extensions over an unsecured HTTP connection, you must run pip with the additional option --trusted-host=<URL_of_your_mirror>.

Rundoc (deprecated)#

The following example uses the rundoc installation script to use your mirror:

wget http://eclecticiq-repo-mirror.example.local/platform-rundoc/
chmod +x
./ --offline http://eclecticiq-repo-mirror.example.local

You can point to your repository mirror also to retrieve the packages to install extensions.


To install extensions over an unsecured HTTP connection, you must run pip with the additional option --trusted-host=<URL_of_your_mirror>.

/opt/eclecticiq-platform-backend/bin/pip install -f http://eclecticiq-repo-mirror.example.local/Extensions eclecticiq-extension-crowdstrike