docs: the registry has to be public, and docker login was the wrong advice

Installing the Rune still failed after v0.2.0 was published, with the same
message as before:

    create container: Error response from daemon:
    No such image: ghcr.io/kristianwind/verdande:latest

The advice in these pages — log the host's Docker daemon in — cannot
work, and Yggdrasil's source says why. Its PullImage calls the Docker
SDK's ImagePull with an empty image.PullOptions{}; RegistryAuth is never
set, and there are no registry credentials anywhere in the panel. A
private image answers 401. pullImageRetry discards that error on purpose
("second failure surfaces at create"), and ContainerCreate — which only
ever looks locally — then reports the image as missing. The message is a
liar: the tag is in the registry the whole time.

docker login does not change this. It is client-side: the daemon stores
no credentials, the CLI sends them itself with each request, and
Yggdrasil is a different client that sends none.

So the package has to be public, and the pages now say that rather than
offering a login that does nothing. Keeping it private is still possible
but is now described as what it is: putting the image on the host by hand
before creating the server and again after every release.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kristian Wind
2026-08-17 11:55:56 +02:00
committed by Kristian Wind
co-authored by Claude Opus 5
parent 25f1e2ff82
commit a8a29a963d
3 changed files with 31 additions and 33 deletions
+6 -9
View File
@@ -5,15 +5,12 @@ cache, no queue and no second process.
## Docker
!!! warning "Log in to the registry first"
The package is private, and an anonymous pull fails with `No such image`
rather than with a permission error. Once per host:
```bash
echo "$GHCR_TOKEN" | docker login ghcr.io -u kristianwind --password-stdin
```
`GHCR_TOKEN` is a GitHub token with the `read:packages` scope.
!!! note "If the pull is refused"
The GHCR package is public, so this needs no credentials. If it is ever set
back to private, `docker login ghcr.io` with a token carrying the
`read:packages` scope before pulling — and see
[the Rune page](rune.md#if-the-image-will-not-pull), because a private image
fails differently and much more confusingly under Yggdrasil.
```bash
docker run -d --name verdande \