Files
verdande/docs/index.md
T
Kristian WindandClaude Opus 5 20b8c12b4a build: imaget hentes fra vores egen Gitea, og runen peger derind
GitHub er utilgængeligt i ti dage. Koden ligger allerede begge steder; det, der
manglede, var imaget og et sted at bygge det.

**Imaget ligger i Gitea nu**, begge arkitekturer. Kopieret med
`docker buildx imagetools create`, som flytter hele manifest-indekset mellem to
registre uden at hente lagene ned — en `docker pull` på denne maskine ville have
hentet arm64 og efterladt serveren uden en amd64 at køre.

**Og det kan hentes uden legitimation, mens repoet bliver ved med at være
privat.** Det var ikke givet: panelets `PullImage` sætter aldrig `RegistryAuth`,
så et privat register er udelukket, og Gitea gør normalt en container-pakke privat
sammen med det repo, den hører til. Men en pakke bindes kun til et repo, når den
skubbes med et repo-link — og denne er ikke, så dens synlighed følger brugeren
`kw`, som er offentlig.

Bevist frem for antaget: `docker --config /tmp/tom pull` hentede den med samme
digest som GHCR havde. En bar `curl` mod `/v2/…/manifests/…` svarer 401 også for
et læsbart image, fordi registret uddeler et anonymt token først — så den er ikke
prøven, og den kostede en runde at gennemskue.

**Runen er bumpet til version 5.** Ikke fordi felterne ændrede sig, men fordi en
rune ikke opdaterer sig selv: panelet skriver rune-rækken fra en UI-handling, så
ændringen kræver **Runes → verdande → Update**, og katalog-listen caches ti
minutter.

**Et Actions-workflow til Gitea** ligger i `.gitea/workflows/`. Sin egen fil frem
for en delt: `secrets.GITHUB_TOKEN` findes ikke der, registret er et andet, og der
er ingen Releases-side at skrive til. En delt fil ville være fire betingede led,
der hver kun gælder ét af de to steder. Den laver ingen release, fordi
opdateringsnotitsen i appen læser GitHubs — skal den flyttes med, er det
`internal/update`, der skal have en ny adresse.

**Det virker ikke endnu:** der er ingen runner registreret på Gitea. Indtil der er,
bygges og skubbes imaget i hånden herfra.

Dokumentationen og landingssiden siger den nye adresse. Rune-siden er skrevet om,
hvor den fortalte om GHCR-pakkeindstillinger, og siger nu, hvordan man prøver
efter på den måde, der faktisk svarer på spørgsmålet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 16:53:18 +02:00

3.4 KiB

verdande

Self-hosted tasks and projects, shared with the people you share the work with. One binary with SQLite inside it — no database to provision, no second process.

Verdande is one of the three Norns: the one who spins that which is becoming. Not what has been, and not what is fated to be — the thing you are in the middle of. Which is what a to-do list is.

The Today view

What it is for

Todoist Pro, on your own hardware, with your own data. And with the integrations a hosted product will not build for you: a real CalDAV server, an address you can forward mail to, and an MCP endpoint so Claude can work your task list directly.

What it does

  • Quick add that reads what you type. betal moms i morgen kl 10 p1 #Firma @regnskab becomes a task due tomorrow at 10:00, priority 1, in Firma, labelled regnskab. Danish and English, mixed freely in one line.
  • Projects, sections, sub-tasks, labels, saved filters. List, board and calendar views, and foldable groups over the projects in the sidebar.
  • Notes, beside the work. Rich text to write in, Markdown on disk. A note is shared by filing it in a project; #project and [[another note]] are links, and a task shows what has been written about it.
  • Drag where it means something — reorder a list or a board, file a project under a group, drop a task on another project, or drop it on another day.
  • Sharing with owner, editor and viewer roles. Anyone outside your instance joins through an invite link.
  • Live sync — a change made by somebody else appears without a refresh.
  • Repeating tasks as RRULE, reminders, comments and attachments.
  • Calendar, mail and Claude connected over open standards rather than private formats.

What it looks like

Upcoming as a month

Upcoming, as a month. A week and a plain list are the other two, and a task can be dragged from one day onto another.

A project as a list

The same project as a list, where sections read as bands. As a board they are columns.

Waiting on others

What you have handed to somebody else, grouped by whoever has it.

Settings, integrations

Where Gmail, the calendar feed and the mail-to-task address are connected.

Settings, people

Inviting somebody to the instance. There is no open registration — everybody arrives through a link, and picks their own password. See signing in.

Getting it running

verdande is built to be deployed as a Rune in Yggdrasil Panel — that is its home, and the manifest ships with it. It runs anywhere Docker does as well.

docker run -d --name verdande \
  -p 8080:8080 \
  -v verdande-data:/data \
  -e VERDANDE_BASE_URL=https://todo.example.dk \
  gitea.nolimit.dk/kw/verdande:latest

Open the address, create the first account — that account is the administrator.

Running Yggdrasil Panel? Install it as a Rune instead.

What it will not do

No karma or points. No team workspaces. No native apps. No mail integration beyond Gmail and the forwarding address. No languages beyond Danish and English. And no sync protocol of its own — CalDAV and the API are the sync.