docs: the retired registry path freezes, it does not stop serving (#995)

Closes #985.

README and migration-to-org.md both claimed the old path 'is no longer served'.
It is served — ghcr.io/the-luap/picpeak/backend:latest returns a complete image,
created 2026-05-27, label version: main. The registry responds normally; it just
never receives anything new.

That inaccuracy is what generates reports like #982. Told the path is not
served, an operator runs docker compose pull, watches it succeed, runs docker
rmi and pulls again, watches that succeed too, and concludes the problem lies
somewhere other than their image path. Nothing reports an error anywhere; the
only symptom is an update notice that never resolves.

Say what actually happens — the path freezes rather than failing — and add a
self-diagnosis via docker image inspect on both paths, with the 2026-05-27 date
and the 'main' version label as the tells. MigrationBanner's wording is left
alone: 'no longer being updated' was accurate.

This is the delivery mechanism for #985. There is no in-app channel:
MigrationBanner shipped a month after the freeze, the #993 update-check notice
cannot fire on installs running their own frozen backend, and the changelog
modal that renders release notes shipped two days after the freeze. What reaches
these operators is GitHub, and the GHCR page for the retired package — which
renders this README through the images' own org.opencontainers.image.source
label, so the fix propagates to the dead path's own page automatically.
This commit is contained in:
Paul Nothaft
2026-08-04 17:30:18 +02:00
committed by GitHub
parent 9dc2b2166e
commit b9e42591f5
2 changed files with 33 additions and 3 deletions
+2 -1
View File
@@ -3,7 +3,8 @@
> [!IMPORTANT]
> **PicPeak has moved to its own GitHub organization.**
>
> - **Docker images** are now published at `ghcr.io/picpeak/picpeak/{backend,frontend}`. The old path (`ghcr.io/the-luap/picpeak/...`) is no longer served — update your `docker-compose.yml`.
> - **Docker images** are now published at `ghcr.io/picpeak/picpeak/{backend,frontend}`. Update your `docker-compose.yml`.
> - ⚠️ The old path (`ghcr.io/the-luap/picpeak/...`) **still responds, but its tags are frozen** at 2026-05-27. `docker compose pull` succeeds and hands back the same build every time, so an out-of-date install looks like a broken download rather than a dead path. If PicPeak keeps reporting an update that never arrives, check your image path first.
> - **Branches**: active development is now on `main` (was `beta`); the curated stable channel is now `stable` (was `main`). Existing PRs and clones auto-redirect via GitHub.
>
> See **[`docs/migration-to-org.md`](docs/migration-to-org.md)** for the one-line `docker-compose.yml` edit and full details.
+31 -2
View File
@@ -14,8 +14,37 @@ itself is unchanged; only the URLs you pull images from have moved.
| **Branches (stable channel)** | `main` | `stable` |
**Action required**: update your `docker-compose.yml` to pull from
`ghcr.io/picpeak/picpeak/{backend,frontend}`. The old path no longer serves
images.
`ghcr.io/picpeak/picpeak/{backend,frontend}`.
## The old path does not fail — it freezes
This is the part that catches people out. `ghcr.io/the-luap/picpeak/*` **still
serves**; it simply stopped receiving new images on 2026-05-27. So:
- `docker compose pull` succeeds.
- `docker rmi <image>` followed by a fresh pull succeeds.
- You get byte-identical layers every time, because the tag never moves again.
Nothing anywhere reports an error. The only visible symptom is that PicPeak keeps
telling you an update is available and the update never arrives — which reads
like a broken download rather than a retired registry path.
### Am I affected?
```bash
docker image inspect ghcr.io/the-luap/picpeak/backend:latest \
--format '{{.Created}} {{index .Config.Labels "org.opencontainers.image.version"}}'
```
A `Created` date of `2026-05-27` (or a `version` of `main` rather than a `v3.x.y`
tag) means you are on the retired path. Compare against the current image:
```bash
docker image inspect ghcr.io/picpeak/picpeak/backend:latest --format '{{.Created}}'
```
If your compose file still references `the-luap`, the fix below is all you need —
there is nothing wrong with your install.
## Why this changed