Offline Installation

Energy Logserver supports installation on servers that do not have access to the internet (security zones, air-gapped networks). The installer ships with helper scripts that build a local RPM repository on a staging server with internet access, package it into a single archive, and consume it on the offline target host.

This procedure applies both to fresh installations (./install.sh -i --offline) and upgrades (./install.sh -u --offline).

When to Use Offline Installation

Use this mode when the target host cannot reach public RPM repositories — typically:

  • Production servers in a security zone with restricted outbound traffic

  • Isolated laboratory environments

  • Hosts behind a proxy that is not configured for the installer

In all other cases prefer the standard online installation described in Installation.

Prerequisites

  • Staging server with internet access, running the same OS and version as the offline target. Supported: CentOS Stream 9, Oracle Linux, Red Hat Enterprise Linux, Rocky Linux, AlmaLinux — version 8 or 9. CentOS Stream 8 is not supported. A mismatch in OS version will cause the offline installation to fail because the prepared dependencies will not match the target’s dnf module streams.

  • Free disk space on the staging server for the dependency archive (typically several gigabytes).

  • The same Energy Logserver installation package on both servers (staging and target).

Step 1: Prepare the Local Repository on the Staging Server

On the staging server (with internet access):

  1. Extract the Energy Logserver installation package and enter the install/ directory:

    tar xzf energy-logserver-*.tar.gz
    cd energy-logserver-*/install
    
  2. Run the repository preparation script as root:

    ./scripts/prepare_local_repository.sh
    

    The script:

    • Installs the tools required to build the repository: createrepo, python3-dnf-plugin-modulesync, tar.

    • Downloads every dependency (Energy Logserver uses Java, Python, mail, archive, reports, blacklist tooling and optional components like Suricata, Zeek, pmacct, GraphicsMagick) along with all transitive dependencies into install/offline-dependencies/.

    • Synchronises dnf module metadata into the same directory.

    • Packages the result into a single tarball: install/local-logserver-repo.tar.

  3. When the script finishes, copy install/local-logserver-repo.tar to the offline target server — place it in the install/ directory of the installation package on the target.

Step 2: Install on the Offline Target

On the offline target server, from the install/ directory of the installation package:

./install.sh -i --offline

The --offline flag (short form -o) tells the installer to:

  1. Create a local dnf repository configuration at /etc/yum.repos.d/offline-logserver-dependencies.repo pointing at file://<install_dir>/offline-dependencies.

  2. Extract local-logserver-repo.tar into install/offline-dependencies/.

  3. Rebuild the dnf cache against this local repository only (--disablerepo=* --enablerepo=offline-logserver-dependencies).

  4. Install all Energy Logserver packages and their dependencies from the local repository — no network traffic is required.

All other installation options (--data, --client, --siem, --network-probe, --automation, --noninteractive) work with --offline exactly as in an online installation.

Upgrading an Offline Installation

Use the same --offline flag with the -u command and a matching local-logserver-repo.tar rebuilt from the installation package of the new version:

./install.sh -u --offline

Troubleshooting

“To configure local repository first copy and run following script…”

The installer prints this message when it cannot find a usable local-logserver-repo.tar or the archive is missing valid repodata (no repodata/repomd.xml inside). Re-run prepare_local_repository.sh on the staging server, then copy the refreshed local-logserver-repo.tar to install/ on the target.

Unsupported OS detected

prepare_local_repository.sh aborts with this message when run on an OS other than CentOS Stream 9, Oracle/Red Hat/Rocky/AlmaLinux 8 or 9. Use a supported staging OS that matches the offline target.

OS mismatch between staging and target

If the staging and target servers run different minor versions or different distributions, the prepared RPMs and module metadata will not satisfy dependencies during installation. dnf will report unresolved packages. Rebuild the repository on a staging server whose OS version exactly matches the target.