Skip to content

v1.62.0 — Multi-host

Latest

Choose a tag to compare

@amayer1983 amayer1983 released this 01 Aug 08:50

One Docksentry, several hosts

Point it at your other machines and it checks, updates, recreates and reports across all of them:

DOCKER_HOSTS=pve1:tcp://pve1:2375, nas:ssh://root@nas

The endpoint is whatever the container CLI takes for its global endpoint flag, so a TCP socket / socket proxy works as well as SSH — and it's the simpler route if you'd rather not maintain keys.

Aim a command at one box with @host, or at everything with @all:

/check @pve1          check just that host
/update sonarr @nas   update sonarr over there
/update * @all        update everywhere, deliberately

Looking around (/check, /status, /updates) covers every host by default. Anything that changes something stays on the local host unless you say otherwise — and says so in its reply, so the rule is visible without reading the docs. The Web UI gains a Host column.

Marked experimental: it hasn't run on real multi-host hardware yet, only against a second endpoint here. Leave DOCKER_HOSTS unset and nothing changes — no host column, no @ anywhere, same state files, same messages.

Self-update stays local-only, and compose-managed containers on a remote host are recreated from their inspect data rather than through docker compose (the compose file lives on that host, not here).

Podman is now actually tested

There's a Podman test bed in the suite — a real podman, plus a remote Podman service over TCP. It paid for itself immediately: Podman documents --url for remote endpoints and not -H, which is what Docksentry was about to send. It accepts -H as an undocumented alias today, so this would have worked right up until some future Podman quietly dropped it.

Fixed

  • Container groups worked only on Docker. The restart-dependents cascade called docker by name instead of the CLI you configured, so with CONTAINER_CLI=podman it invoked a binary that may not exist. Bites anyone on Podman using a group with restart_dependents.
  • Every container CLI call is now time-bounded. Calls without an explicit timeout inherited "wait forever", which a dead-but-established connection can trigger — and since Telegram commands are dispatched inline, one such call could stop the bot answering anything at all.
  • The Podman docs still claimed there was no Podman-specific code, which stopped being true in v1.61.0.
  • Refreshed the Web UI screenshots; they were several versions out of date.