AphrodyBun GitHub

Runtime docs · Runtime · Contributing

Auto-deploy et conteneur Bun

Image Docker du runtime Aphrody, sonde prod sur dbfr, file de build sur le VPS et service Windows bun-winsvc

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ôteServiceContenu
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-prodconteneur 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 actiffile 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 Windowsservice AphrodyBunbun 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.