Files
spinifex/docs/install-airgapped
2026-03-31 13:25:23 +10:00
..
2026-03-31 13:25:23 +10:00

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
install
air-gapped
offline
title url
Spinifex Repository https://github.com/mulgadc/spinifex
title url
apt-cacher-ng https://wiki.debian.org/AptCacherNg

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