github amayer1983/docksentry v2.18.0
v2.18.0 — the core comes out of the Telegram bot

3 hours ago

Thirty-five betas and five weeks. This is the same commit as v2.18.0-beta.35, not one line more — @NotRetarded ran it for five days and signed it off in #63.

What this release is really about

The logic moved out of the Telegram bot. For two years everything lived in telegram_bot.py and Discord reached into that instance to be heard at all. That is why the same thing kept happening in three different disguises: a release link the bot channel never got (#57), scheduler lines Discord never saw (#61), twelve of thirteen self-update reports going to Telegram alone. There is one seam now — broadcast.py — and both front ends hand it the same findings and render them their own way.

The ones that were hurting

Docksentry could strand itself while updating itself. An image that changes its ENTRYPOINT broke the swap, and for a while containers on 2.17.10 were left behind entirely. The update now compares against the image it was built from, keeps the command tail, and carries a compatibility shim.

An ssh process leak on multi-host installs. ControlPersist backgrounds the master, PID 1 inherits it, and nobody reaped it — 12,074 on one host. There is a reaper now, and it collects them quietly.

Crash-loop alerts arrived every ten minutes, forever. The backoff was written for exactly that and had landed in the branch that excludes deaths. @famewolf had it for weeks.

Every finished update was reported twice. Since v2.6.0.

Nine of ten tables were blank on a phone. The rule that shows cards instead of a table hid every table on the site, while exactly one has cards behind it. @NotRetarded reported it twice; the first time I told him his screenshot was cropped. It was not.

The Discord gateway never once resumed a session. Every reconnect burned a fresh IDENTIFY and five log lines. Discord hands out a separate URL to resume on and it arrives without the API version; we used it verbatim. Three lines per reconnect now, measured on two machines.

A gateway answering 503 was met with one attempt per second, because the mark that says "the last connection was healthy" was cleared after the handshake rather than before it.

Compose files, which took three weeks

The container page used to tell people to move their DATA_DIR when all that was wrong was the folder their mount pointed at — and it knew the right one, from the daemon, and said nothing about it. It now tells the three situations apart, names the container that actually holds the file, and says so plainly when nothing on this machine does.

/audit with no container name is new: Docksentry reports what it can see of itself. Every Compose mount question until now ended with somebody pasting docker exec … ls back at me.

Also

A unified update queue, a background host refresher, per-host state that is genuinely per host, mass-stop digests, /audit for containers, and a great many smaller things. The details are in the beta notes — beta.20 through beta.35 — and in CHANGELOG.md.

Thanks to @NotRetarded, @famewolf and @LeeNX, who between them run Podman, multi-host and Discord setups I do not have, and who found most of the above.

Don't miss a new docksentry release

NewReleases is sending notifications on new releases.