Repository navigation
v0.1.1
TaskTick 0.1.1
Fixes LAN sign-in and removes the setup steps around it.
A self-hosted instance is normally reached on several addresses at once —
localhost, a LAN IP, a NAS hostname, a Tailscale name — while APP_URL can only
hold one. The auth origin check accepted only that one, so registration failed
with "Invalid origin" on every other address. That was the first screen a user
saw, which made a LAN deployment effectively unusable.
A private-network origin is now accepted automatically. This is safe rather
than merely convenient: the browser sets the Origin header and page script
cannot forge it, so a hostile public page always presents a public origin and
is still refused. A public hostname behind a reverse proxy is named explicitly
through BETTER_AUTH_TRUSTED_ORIGINS.
Setup is now zero-config. There is no .env file to create and no secret to
generate: the container creates its own signing secret on first boot and
persists it to the data volume, reusing it on every later start. docker
compose up -d is the whole installation.
Also in this release:
- The healthcheck is declared once, by the image, rather than duplicated in
docker-compose.yml. - Subscription links use the address you actually browsed to when APP_URL was
left at its default, instead of pointing at localhost. - The entrypoint no longer uses
set -o pipefail, which POSIX sh lacks and
dash rejects — it worked on Alpine and would have failed elsewhere. - .env.example is entirely commented out. An uncommented placeholder secret
is worse than none: it looks configured, and that value is published here.
The server now warns loudly if it detects one.
Verified: 542 unit tests, plus 94 API, 14 page-render and 23 auth-origin checks
against a running server. The origin suite asserts both directions — that LAN
addresses are accepted AND that public ones, including 192.168.1.50.evil.com,
are still refused.
Still unverified, unchanged from 0.1.0: the published image has never been run
by a human, no live CalDAV provider has been exercised against it, and no real
iOS device pass has been done.
Full Changelog: https://github.com/ksmarty/tasktick/commits/v0.1.1