[โ โ โ โ โ โ โ โ โ โ ] Run the same app on several machines? This script finds every copy by itself, updates them one by one, and undoes any update that fails โ built for FreeLLMAPI gateways on Proxmox, works for anything installed from Git
BCBC-FreeLLMAPI-Rolling-Updater-20260912.zip (7.1 KB) โ the script, the README, the ticket from the verified run, the SHA-256.
Install one app on eight machines and updating means a list of eight. Add a ninth, forget the list, and that one quietly stays old. This script keeps no list.
Each copy was installed from Git, so it carries its source address. The script opens every running container on the Proxmox host, reads that address, and updates only the ones that say FreeLLMAPI. No container numbers typed anywhere.
every running container โโโถ source address says FreeLLMAPI? โโโถ has local edits? leave it alone.
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ
save a snapshot to return to โโโถ update the code โโโถ install โโโถ build โโโถ start the app
โ
โผ
service up? ยท port answers? ยท "I'm alive" page answers? โโโถ โ
next container
โโโถ โ stop, return this one to its snapshot
One container at a time, so the other copies keep working while one updates.
The verified run found eight gateways on its own and finished all eight. Each prints its old and new version, for example:
PASS: CT 132 - bcbc-gateway-alt-132
OLD: b235b7e8โฆ NEW: 65c7d2f9โฆ HTTP health: PASS /livez
For your own app: change two lines, the source address it matches and the โIโm aliveโ page it checks. Everything else stays.
Two rules built in: a container with hand-made changes is skipped, never overwritten. Dependencies update through the normal install, never through a forced audit fix.
The router this maintains, and how people here chain free providers through it: Free Token Limits.
Let the updater find its own copies. A list is the copy you forget.
Credits: Mikey_LikesIT + ChatGPT
!