87 lines
2.1 KiB
Markdown
87 lines
2.1 KiB
Markdown
# 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`)
|