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
dnfmodule 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):
Extract the Energy Logserver installation package and enter the
install/directory:tar xzf energy-logserver-*.tar.gz cd energy-logserver-*/install
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
dnfmodule metadata into the same directory.Packages the result into a single tarball:
install/local-logserver-repo.tar.
When the script finishes, copy
install/local-logserver-repo.tarto the offline target server — place it in theinstall/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:
Create a local
dnfrepository configuration at/etc/yum.repos.d/offline-logserver-dependencies.repopointing atfile://<install_dir>/offline-dependencies.Extract
local-logserver-repo.tarintoinstall/offline-dependencies/.Rebuild the
dnfcache against this local repository only (--disablerepo=* --enablerepo=offline-logserver-dependencies).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.