halkyon/deploy
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 8d6785f5c6
feat(base): SimpleLogin's forwarding page and Learn's App Links statement (ADR 0020, step 1)
SimpleLogin takes only https redirect addresses, each registered exactly,
so the instance's SimpleLogin app registers one page on the register's
web server, /simplelogin-callback, which sends the browser on to the app
that began the sign-in: a 303 to the desktop's loopback (127.0.0.1, a port
per app) or the phone's scheme, chosen by the marker the state begins with
(`<app>-<platform>.<rest>`, the rest 1 to 512 characters of base64url),
from a fixed table, so it sends nobody anywhere else. It forwards the code
or SimpleLogin's error (`deny`) with the state and nothing else, refuses
anything malformed, repeated or not a GET with a page that repeats nothing
it was given, and keeps and logs nothing (no-store, no referrer). It is
built ahead of the sign-in itself so development can sign in through
learn.halkyon.eu's page, which the development app registers too.

Android's assetlinks.json for Halkyon Learn signed with the release key
is answered by the Caddyfile on learn.halkyon.eu alone: the one domain the
project's builds name, and the server knows no app's key. A root test
holds its fingerprint to tool/release/android-certificate.sha256. The
app's intent filter comes with the sign-in; iOS's association waits for
an Apple team ID.

The profile page's language choice and look move to common/web_page.dart,
shared by both pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-23 17:48:31 +02:00
..
backup chore: the servers are named by the domain they serve 2026-10-14 00:33:50 +02:00
dictionaries feat(deploy): instances keep their dictionaries current, weekly, by themselves 2026-10-09 18:09:37 +02:00
runner chore(deploy): IPv6 on Caddy's network, so IPv6 visitors keep their addresses 2026-10-23 14:12:45 +02:00
sidecars chore(deploy): IPv6 on Caddy's network, so IPv6 visitors keep their addresses 2026-10-23 14:12:45 +02:00
.env.example chore(deploy): password sign-in's keys and GitHub's end 2026-10-22 18:11:11 +02:00
allowed-signers chore: the servers are named by the domain they serve 2026-10-14 00:33:50 +02:00
backup.sh chore: the servers are named by the domain they serve 2026-10-14 00:33:50 +02:00
backups.md feat(accounts): one account across an instance's services (ADR 0016) 2026-10-22 18:11:07 +02:00
Caddyfile feat(base): SimpleLogin's forwarding page and Learn's App Links statement (ADR 0020, step 1) 2026-10-23 17:48:31 +02:00
compose.jellyfin.yaml feat(deploy): sidecars beside the instance, Jellyfin the first, behind an edge network 2026-10-14 00:33:51 +02:00
compose.yaml chore(deploy): IPv6 on Caddy's network, so IPv6 visitors keep their addresses 2026-10-23 14:12:45 +02:00
redeploy.sh build: Melos, a Dart check and every path for the single repository 2026-10-22 18:11:04 +02:00