Air-gapped install
In regulated or isolated environments, the Warewulf server typically cannot reach depot.ciq.com directly. You can still install and update Warewulf Pro by mirroring the Depot repository to a host that has internet access, then pointing the air-gapped server at that local mirror.
Step 1 - Mirror the repository
On an internet-connected host that has Depot client installed:
# depot login
# depot enable warewulf-pro
# dnf -y install dnf-plugins-core
# reposync --repo=warewulf-pro --download-path=/srv/repos --download-metadata
This produces a complete offline copy of the warewulf-pro repository under /srv/repos/warewulf-pro/.
Mirror the warewulf-pro-rlc repository the same way if your entitlement includes RLC. See Pro node images: RLC variants.
Step 2 - Serve the mirror
Serve the mirror over HTTP from any web server reachable by the air-gapped Warewulf server. For a quick test:
# cd /srv/repos
# python3 -m http.server 8080
In production, use nginx, Apache, or another long-running HTTP server.
Step 3 - Point dnf at the local mirror
On the air-gapped Warewulf server, create a new repo file:
# /etc/yum.repos.d/warewulf-pro-local.repo
[warewulf-pro-local]
name=Warewulf Pro (local mirror)
baseurl=http://mirror.local:8080/warewulf-pro/
enabled=1
gpgcheck=1
gpgkey=http://mirror.local:8080/rpm-gpg-key-ciq
Keep gpgcheck=1 so packages are verified against CIQ's signing key. Mirror CIQ's signing key (https://ciq.com/keys/rpm-gpg-key-ciq) to the connected host, serve it from your local HTTP root, and point gpgkey at that copy. Disabling signature verification (gpgcheck=0) is not recommended.
Then install as normal:
# dnf -y install warewulf warewulf-cockpit apptainer cockpit "warewulf-overlays-*"
# systemctl enable --now warewulfd cockpit.socket
Mirroring node images
The Pro node images live in a separate OCI registry namespace (docker://depot.ciq.com/warewulf-pro/warewulf-node-images/). Use skopeo on the connected host to mirror them:
# skopeo copy --all \
docker://depot.ciq.com/warewulf-pro/warewulf-node-images/rockylinux-slurm:24 \
docker://registry.local:5000/warewulf-node-images/rockylinux-slurm:24
Then import on the Warewulf server using the local registry URL:
# wwctl image import docker://registry.local:5000/warewulf-node-images/rockylinux-slurm:24 slurm-24
Updating
When new Pro releases ship, re-run reposync on the connected host. The air-gapped server will pick up the updates on its next dnf update.