Release
aphrody-v1.4.3-aphrody.4 (commit 41211b56872) fournit bun-linux-x64.zip (glibc 2.43 ou plus récent) et bun-linux-x64-musl.zip, construits sur le VPS dans aphrody/build-linux:26.04 et aphrody/build-alpine:3.24, bun-windows-x64.zip, aphrody-bun-windows-service.zip et SHA256SUMS.txt. GitHub Actions est désactivé sur le dépôt : la release est construite à la main puis envoyée avec gh release create. L'image Docker et la prod dbfr restent sur aphrody-v1.4.3-aphrody.3.
Image
scripts/aphrody/deploy/docker/Dockerfile (contexte scripts/aphrody/deploy) : Ubuntu 26.04, Bun de la release (somme vérifiée), git, ssh, gh, rsync et le pipeline queue.ts/activate.ts. Rôles de l'entrée : build, prod, health, ou toute commande bun.
Services
| Hôte | Service | Contenu |
|---|---|---|
| dbfr (prod) | service bun-prod de ~/apps/aphrody-bun/compose.yaml, inclus par ~/apps/compose.yaml (projet unique aphrody) : docker compose -f ~/apps/compose.yaml up -d bun-prod | conteneur aphrody-bun-prod-1 : bun-probe de la release courante de ~/apps/aphrody-bun sur 127.0.0.1:47660 (/healthz, /version) ; APP_BIN vide : probe.ts de l'image ; APP_SCRIPT pour une autre app |
| vps (build) | bun install-host.ts --role build, timer actif | file aphrody-deploy ; apps.bun-probe.json compile probe.ts dans un worktree éphémère de ~/src/bun, le transfère dans ~/apps/aphrody-bun/releases sur dbfr et l'active avec l'unité docker:aphrody-bun-prod-1 (docker restart, santé sur 47660) |
| PC Windows | service AphrodyBun | bun install-windows.ts en administrateur : bun-winsvc.exe (packages/bun-winsvc) lance bun.exe service.ts, relance en cas de sortie, tue l'arbre à l'arrêt |
Sur un autre PC Windows, son propriétaire lance lui-même bun install-windows.ts en administrateur : le service n'est jamais installé à distance.
Docker sur les trois hôtes
Le PC (Docker Desktop, VMM libkrun) ainsi que le vps et dbfr (Docker Engine) partagent le magasin d'images containerd ("containerd-snapshotter": true dans /etc/docker/daemon.json), compose, buildx, le réseau host, Model Runner (API OpenAI sur localhost:12434, modèle ai/smollm2) et Kubernetes. Sur le PC, c'est le Kubernetes de Docker Desktop ; sur le vps et dbfr, un cluster kind aphrody. La sonde y tourne via docker/k8s.yaml. Sur le PC, les contextes vps et dbfr (docker --context vps …) pilotent les moteurs distants par ssh.
bun scripts/aphrody/docker-sync.ts [--force] [--from pc|vps|dbfr]copie les images manquantes entre les hôtes (docker save | docker load).bun scripts/aphrody/docker-doctor.ts [hôte…]vérifie chaque fonction sur chaque hôte.