title, description, category, tags, resources
| title | description | category | tags | resources | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Air-Gapped Install | Deploy Spinifex in environments without internet connectivity. Covers offline package caching, USB deployment, and package verification. | Getting Started |
|
|
Air-Gapped Installation
Deploy Spinifex in environments without internet connectivity.
Table of Contents
Overview
In air-gapped or disconnected environments, Spinifex can be deployed without internet access. This guide covers preparing offline packages on a connected machine, creating USB deployment media, and installing on the target server with package verification.
Deployment methods:
- apt-cacher-ng — Local APT cache for Debian/Ubuntu packages
- Go module cache — Pre-downloaded Go dependencies
- USB deployment — Portable installation media with all dependencies
- GPG verification — Cryptographic package integrity checks
Instructions
Step 1. Prepare Packages (on a connected machine)
Set up a local APT cache to collect all required packages:
sudo apt install apt-cacher-ng
sudo systemctl enable --now apt-cacher-ng
Pre-download all Spinifex dependencies:
sudo apt install --download-only nbdkit nbdkit-plugin-dev pkg-config \
qemu-system qemu-utils qemu-kvm libvirt-daemon-system \
libvirt-clients libvirt-dev make gcc unzip xz-utils file \
ovn-central ovn-host openvswitch-switch
Step 2. Create USB Deployment Media
mkdir -p /media/spinifex-deploy/{apt-packages,go-cache,spinifex-source}
cp /var/cache/apt/archives/*.deb /media/spinifex-deploy/apt-packages/
cp -r ~/go/pkg/mod/cache/ /media/spinifex-deploy/go-cache/
cp -r ~/Development/mulga/spinifex /media/spinifex-deploy/spinifex-source/
Step 3. Verify Package Integrity
Sign and verify packages before transferring to the target:
gpg --import /media/spinifex-deploy/mulga-signing-key.asc
gpg --verify spinifex-v1.0.tar.gz.sig spinifex-v1.0.tar.gz
sha256sum -c /media/spinifex-deploy/checksums.sha256
Step 4. Install on the Target Server
Mount the USB and install:
sudo mount /dev/sdb1 /mnt/usb
sudo dpkg -i /mnt/usb/apt-packages/*.deb
cp -r /mnt/usb/spinifex-source ~/Development/mulga/spinifex
cd ~/Development/mulga/spinifex && make build
Then follow the Source Install guide from Step 3 (Setup OVN) onwards.
Troubleshooting
Missing Dependencies After dpkg Install
Some packages may have unresolved dependencies. Fix with:
sudo dpkg -i /mnt/usb/apt-packages/*.deb
sudo apt-get install -f
The -f flag tells apt to fix broken dependencies using what's available locally.
GPG Verification Fails
The signing key may not match or the download was corrupted. Re-import the key and verify:
gpg --import /media/spinifex-deploy/mulga-signing-key.asc
gpg --verify spinifex-v1.0.tar.gz.sig spinifex-v1.0.tar.gz
If verification still fails, re-download the package on the connected machine and compare checksums:
sha256sum spinifex-v1.0.tar.gz
Go Module Cache Errors
The Go module cache may have been incompletely copied. On the connected machine, re-export the full cache:
cp -r ~/go/pkg/mod/cache/ /media/spinifex-deploy/go-cache/
On the target, restore it:
mkdir -p ~/go/pkg/mod/
cp -r /mnt/usb/go-cache ~/go/pkg/mod/cache