2.1 KiB
2.1 KiB
Loop Air-Gapped Installation
This bundle contains everything needed to deploy Loop without internet access.
Contents
images/— Docker images (pre-pulled, saved as tar archives)helm/— Helm charts with vendored dependenciesdocker-compose/— Docker Compose filesinstall.sh— Installation script
Prerequisites
For Kubernetes (Helm) deployment:
- Kubernetes cluster (v1.21+)
helmCLI (v3.x)kubectlconfigured for your clusterdockerorctr(containerd) on nodes for image loading
For Docker Compose deployment:
- Docker Engine (v20+)
- Docker Compose (v2+)
Quick Start
Option A: Kubernetes (Helm)
# 1. Load images on the current machine
# (repeat on ALL cluster nodes, or use --nodes flag)
./install.sh helm --namespace loop
# With SSH to cluster nodes (loads images on all nodes automatically):
./install.sh helm --namespace loop --nodes node1,node2,node3
# With LiveKit:
./install.sh helm --namespace loop --with-livekit
# With custom values:
./install.sh helm --namespace loop --values my-values.yaml
Option B: Docker Compose
./install.sh compose
# With LiveKit:
./install.sh compose --with-livekit
Manual Image Loading (Kubernetes)
If you cannot use --nodes, load images manually on EACH cluster node:
# For containerd (most K8s distributions):
for f in images/*.tar; do
sudo ctr -n k8s.io images import "$f"
done
# For Docker:
for f in images/*.tar; do
docker load -i "$f"
done
Configuration
Edit helm/loop-enterprise-stack/values.yaml before installation to customize:
global.siteUrl— your Loop URL (REQUIRED)global.loopLicense— your license key (REQUIRED)- PostgreSQL credentials
- MinIO credentials
- Ingress settings
The values-airgap.yaml file is applied automatically and sets:
imagePullPolicy: IfNotPresent(prevents pull attempts)- Push notifications disabled (external server unreachable)
Updating
To update Loop in an air-gapped environment:
- Receive a new bundle from your provider
- Extract and run
./install.shagain (useshelm upgrade --install)