# 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 dependencies - `docker-compose/` — Docker Compose files - `install.sh` — Installation script ## Prerequisites ### For Kubernetes (Helm) deployment: - Kubernetes cluster (v1.21+) - `helm` CLI (v3.x) - `kubectl` configured for your cluster - `docker` or `ctr` (containerd) on nodes for image loading ### For Docker Compose deployment: - Docker Engine (v20+) - Docker Compose (v2+) ## Quick Start ### Option A: Kubernetes (Helm) ```bash # 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 ```bash ./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: ```bash # 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: 1. Receive a new bundle from your provider 2. Extract and run `./install.sh` again (uses `helm upgrade --install`)