Offline installation¶
For servers without outbound internet. You need a second machine with internet to fetch the offline package.
Package contents¶
vesana-vX.Y.Z-offline.tar.gz contains:
- All Docker image tarballs
docker-compose.prod.ymlsetup.sh.env.example- Agent and collector binaries (Linux + Windows)
- Compose-file manifest and migrations directory
Step 1 — Get the package¶
On a machine with internet:
- Variant A: licence portal → Downloads → Offline package
- Variant B: Existing online instance: Admin → Updates → „Download offline package"
Step 2 — Transfer to server¶
# e.g. via USB stick
mount /dev/sdb1 /mnt/usb
cp /mnt/usb/vesana-vX.Y.Z-offline.tar.gz /opt/
umount /mnt/usb
Or via scp from a network segment that can reach the server.
Step 3 — Extract¶
Step 4 — Load Docker images¶
Images are now available locally. docker compose pull would fail — but isn't called in the offline workflow.
Step 5 — Configure¶
Offline variant skips network steps and expects images already loaded.
Or manually:
sudo cp .env.example .env
# edit .env — passwords, SECRET_KEY, FIELD_ENCRYPTION_KEY, BASE_URL, REGISTRY_URL
sudo docker compose -f docker-compose.prod.yml up -d
Step 6 — Run wizard¶
Open browser on a machine on the same network:
If using a self-signed cert, accept the browser warning. For clean TLS: mount your own cert into the nginx container — see TLS / reverse proxy.
Offline license activation¶
Online licenses need a phone-home to license.vesana.org, which isn't reachable in air-gapped networks. Instead:
- In the licence portal: Licenses → Create offline license
- Provide customer UUID and tier
- Download the generated
<customer>-license.json - Transfer via USB to the server
- In Vesana: Admin → License → Upload offline license
Offline licenses have a duration (typically 1 year) and must be renewed before expiry — the server warns 30 days ahead via banner.
Offline updates¶
Updates also come as offline packages. Workflow is identical to first install:
# On internet machine:
license.vesana.org → Releases → Download update package
# On server:
scp vesana-update-vX.Y.Z.tar.gz root@server:/opt/vesana/
# In admin UI:
Admin → Updates → Upload offline package → Start update
Details: Updates → Offline update.
What doesn't work offline¶
| Feature | Impact |
|---|---|
| Update check | No automatic notification of new versions — check at vendor manually |
| Mobile push (shared FCM) | Doesn't work — you need your own Firebase project with a reachable endpoint |
| Cloud AI | Anthropic / external APIs unreachable — only local Ollama works |
| Wiki web search | No DuckDuckGo queries — only RAG from the wiki |