questions (redoal.com)
The content behind redoal.com — a second face of
the same portal question engine
that serves uhhm.no. Every page is a YAML file under questions/;
pushing to main lints and then tells every running portal instance
to hot-reload.
The full schema reference lives in uhhm/questions' README — this repo only notes what's distinctive here:
site.yamlrebrands the instance: titleredoal, its own wordmark, and agesturehero — the landing page opens on a drawing canvas wired towss://relay.redoal.com(theredoal-relaycrate in redoal/redoal), so visitors' similar strokes echo to each other live. The wordmark is white-stroked like uhhm's, because portal's light theme lands wordmarks as ink via an invert filter.type: gestureonindex.yaml's "Our Understanding" — the pseudo edition of the network: draw a path, it becomes a real 20-byte gesture key (computed by the relay with the canonical Rust pipeline), and the submitted answer stores{points, key}in theredoal_gesturesbucket. Markedoptional: truedeliberately: the widget's hidden input is invisible to HTML required-validation.gitea_releaseson "Our Composition" — advertises redoal/redoal's releases. The jq filter pinsurl: nullwhile that repo is private (a private release's html_url 404s for anonymous visitors); flip it to.html_urlif the repo ever goes public.- Bucket names are
redoal_-prefixed (redoal_gestures,redoal_subscribers): both portal instances share one NATS JetStream, and bare names would collide with uhhm's buckets.
This repo also runs the redoal.com instance itself:
.gitea/workflows/deploy.yml pins PORTAL_RELEASE to a release tag
on uhhm/portal — bump the pin and push to upgrade (or revert to roll
back), and the workflow ships the artifact, rewrites the env from
this repo's Actions variables/secrets, restarts app@redoal-portal,
and refreshes the Caddy route. Content edits never need a deploy;
they hot-reload live.
Lint locally before pushing:
/srv/app/redoal-portal/current/question_lint --path questions
(or from a portal checkout:
cargo run --features ssr --bin question_lint -- --path <this repo>/questions)