Objectif : démarrer une machine sans installer manuellement Docker ni DevForge, puis :
- Ouvrir http://IP:8000 (écran En attente), ou
- Depuis le leader : Cluster → Trouver des nœuds → Ajouter
Deux chemins, du plus simple au plus « image flashable ».
Fonctionne tout de suite, y compris hors-ligne si tu prépares le kit à l’avance.
Linux / WSL2 :
cd deploy/usb
chmod +x prepare-kit.sh bootstrap.sh scripts/*.sh
# Monte ta clé, ex. /mnt/usb
./prepare-kit.sh /mnt/usb --version 2.0.162La clé contient devforge-usb/ : scripts + devforge-image.tar + START-HERE.txt.
Installe aussi Ventoy sur la clé et copie une ISO Debian Live ou Ubuntu Desktop/Server.
- Boot sur la clé (USB first dans le BIOS/UEFI).
- Choisis l’ISO Live dans Ventoy, branche le câble réseau (DHCP).
- Monte la partition Ventoy / data, puis :
sudo bash /chemin/devforge-usb/bootstrap.sh- La console affiche
http://IP:8000. - Navigateur sur cette IP, ou leader → Trouver des nœuds.
Persistance : un live sans disque perd /var/lib/devforge au reboot. Pour un nœud durable, installe Debian sur le disque interne puis relance bootstrap.sh.
curl -fsSL https://raw.githubusercontent.com/bobdivx/devforge/main/deploy/usb/bootstrap.sh | sudo bashOption hors-ligne :
sudo bash bootstrap.sh --version 2.0.162 --offline-tar ./devforge-image.tarAdmin → Cluster → bandeau Worker via clé USB → Télécharger (DevForge-Node-*.img.xz). Flashe avec Etcher / Rufus, boote, puis Trouver des nœuds.
Télécharge DevForge-Node-<version>-amd64.img.xz sur la release, décompresse, flashe avec balenaEtcher ou Rufus (mode DD).
- Boot USB / SSD (UEFI).
- Premier démarrage : DHCP + install Docker/DevForge (Internet requis pour le pull d’image).
- Console :
http://IP:8000— ou leader → Trouver des nœuds.
Sur Linux / WSL2 avec qemu-utils + libguestfs-tools :
cd deploy/usb
chmod +x build-img.sh
./build-img.sh --version 2.0.162 --size 8G
# → dist/devforge-node-amd64.img[.xz]
# Option hors-ligne (embarque Docker) : ajoute --offlineFlasher :
- Windows : balenaEtcher / Rufus (mode DD)
- Linux :
sudo dd if=dist/devforge-node-amd64.img of=/dev/sdX bs=4M status=progress conv=fsync
| Action | Résultat |
|---|---|
Navigateur → http://IP:8000 |
Écran En attente (hostname + IPs LAN) |
| Créer une instance | Cette machine devient le leader |
| Laisser en attente + leader Trouver des nœuds | Adoption worker en 1 clic |
| Rejoindre avec un jeton | Secours manuel |
Hostname type : devforge-a1b2 (dérivé de la MAC), visible dans le scan du leader.
Données : /var/lib/devforge.
Ports : 8000 (UI), 5433 (réplication Postgres entre nœuds).
Réseau conteneur : network_mode: host pour que l’IP LAN soit correcte (scan + navigateur).
| Fichier | Rôle |
|---|---|
bootstrap.sh |
Install one-shot Docker + DevForge + systemd |
prepare-kit.sh |
Remplit une clé avec kit + image Docker exportée |
build-img.sh |
Produit dist/devforge-node-amd64.img |
compose.yml |
Stack appliance |
scripts/firstboot.sh |
Démarre le compose, hostname, load offline |
scripts/show-ip.sh |
Affiche les URL sur la console (TTY1) |
systemd/*.service |
Auto-start au boot |
- Image flashable : amd64 (cloud Debian) ; ARM64 plus tard.
- Premier boot du
.img: Internet utile (paquets + éventuellement pull si pas d’image seed). - Pas de mDNS : le leader scanne le LAN HTTP (ports 8000 / 8080 / 80).