Le mode submarine permet d'installer et de mettre à jour Caleope sans aucun accès internet.
Il est conçu pour les réseaux isolés (air-gap), les environnements tactiques ou militaires, les activistes et les personnes fonctionnant en autonomie totale.
Le principe : sur une machine connectée, tu crées un bundle (un répertoire autonome contenant les binaires, le store et les images Docker). Tu copies ce bundle sur une clé USB ou un disque externe, puis tu l'utilises pour installer ou mettre à jour n'importe quel serveur hors-ligne.
Machine connectée Serveur hors-ligne
───────────────── ──────────────────
caleope offline-pack /media/usb/ → bash install.sh --offline /media/usb/caleope-bundle-YYYY-MM-DD
→ caleope offline-update /media/usb/caleope-bundle-YYYY-MM-DD
# Bundle complet (binaires + store + images Docker)
caleope offline-pack /media/usb/
# Bundle sans images Docker (binaires + store uniquement, ~30 Mo)
caleope offline-pack /media/usb/ --no-images
Crée automatiquement un répertoire caleope-bundle-YYYY-MM-DD/ à l'emplacement spécifié.
L'espace nécessaire dépend du nombre d'applications installées sur la machine source. Caleope affiche une estimation avant de commencer :
ℹ 39 image(s) — taille estimée : 8.2 GiB
Si l'espace disponible est insuffisant, Caleope avertit et suggère --no-images.
Important — évite de pointer vers
/tmpsi c'est un tmpfs (taille limitée à 2 GiB sur la plupart des systèmes). Utilise un répertoire sur la partition principale, une clé USB ou un disque externe.
caleope-bundle-2026-06-22/
├── binaries/
│ ├── caleoped # daemon
│ ├── caleope # CLI
│ └── caleope-ui # interface web
├── store.tar.gz # catalogue complet des apps (~100 Ko)
├── images/
│ ├── traefik_v2.11.tar
│ ├── jellyfin_jellyfin_latest.tar
│ └── ... # une image par app installée
├── caleope-completion.bash # autocomplétion bash (si présent)
└── pack-info.json # métadonnées (version, date, architecture)
pack-info.json{
"caleope_version": "v0.4.19",
"packed_at": "2026-06-22 14:30:00",
"arch": "x86_64",
"hostname": "serveur-principal",
"bundle_dir": "/media/usb/caleope-bundle-2026-06-22",
"includes": "binaries,store,images"
}
Le champ includes vaut binaries,store,images ou binaries,store si --no-images a été utilisé.
Le bundle contient toutes les images Docker actuellement présentes sur la machine source. Assure-toi que les apps que tu veux déployer hors-ligne sont bien installées sur la machine source avant de créer le bundle.
/media/usb/, /mnt/bundle/, etc.)sudo bash install.sh --offline /media/usb/caleope-bundle-2026-06-22
L'installateur détecte le mode submarine et :
images/*.tarbinaries/store.tar.gzapt-get update et tout accès réseauL'installation interactive (domaine, mode proxy) fonctionne normalement en mode offline.
Pour une installation 100% non-interactive :
CALEOPE_DOMAIN=caleope.home.local \
CALEOPE_PROXY_MODE=standalone \
CALEOPE_CHANNEL=stable \
sudo bash install.sh --offline /media/usb/caleope-bundle-2026-06-22
| Mode | Usage |
|---|---|
standalone |
Réseau local, HTTP uniquement — recommandé pour le hors-ligne |
npm |
Derrière un reverse proxy existant sur le réseau local |
traefik |
HTTPS avec Let's Encrypt — nécessite une résolution DNS, déconseillé hors-ligne |
caleope offline-update /media/usb/caleope-bundle-2026-06-22
Met à jour :
caleoped, caleope, caleope-ui)Puis redémarre les services :
sudo systemctl restart caleoped caleope-ui
# 1. Sur la machine connectée — créer le bundle
caleope offline-pack /media/usb/
# 2. Transférer la clé USB sur le serveur hors-ligne
# 3. Sur le serveur hors-ligne — installer Docker si nécessaire
# (via dépôt local, dpkg, ou réseau temporaire)
# 4. Lancer l'installation
sudo bash /media/usb/caleope-bundle-2026-06-22/install.sh \
--offline /media/usb/caleope-bundle-2026-06-22
# (optionnel) copier install.sh depuis le bundle directement
sudo bash install.sh --offline /media/usb/caleope-bundle-2026-06-22
L'
install.shn'est pas inclus automatiquement dans le bundle — utilise le script local ou copie-le manuellement dans le répertoire bundle.
# 1. Sur la machine connectée — mettre à jour Caleope
caleope upgrade
# 2. Re-créer un bundle à jour
caleope offline-pack /media/usb/
# 3. Sur le serveur hors-ligne — appliquer
caleope offline-update /media/usb/caleope-bundle-2026-06-22-nouveau
# 4. Redémarrer
sudo systemctl restart caleoped caleope-ui
Une fois Caleope installé, les apps dont les images sont dans le bundle sont directement installables :
caleope list # voir ce qui est disponible
caleope install jellyfin --domain media.local
Si une image n'est pas dans le bundle, caleope install essaiera de la télécharger — ce qui échouera sans réseau.
Solution : ajouter l'app sur la machine connectée avant de créer le bundle :
# Sur la machine connectée :
docker pull jellyfin/jellyfin:latest
caleope offline-pack /media/usb/
| Commande | Description |
|---|---|
caleope offline-pack <dest> |
Créer un bundle dans <dest>/caleope-bundle-YYYY-MM-DD/ |
caleope offline-pack <dest> --no-images |
Bundle sans images Docker (binaires + store uniquement) |
caleope offline-update <bundle> |
Appliquer un bundle sur une installation existante |
bash install.sh --offline <bundle> |
Installer Caleope depuis un bundle (sans internet) |
bash install.sh --offline <bundle> --debug |
Même chose avec logs détaillés |