Developing the Voting Portal
Dedicated kiosk URLs
An environment can expose kiosk voting through separate voting portal and Keycloak hostnames. Configure these optional settings:
| Setting | Used by | Example |
|---|---|---|
KIOSK_VOTING_PORTAL_URL | Voting Portal, Admin Portal, Windmill | https://voting-example-kiosk.sequent.vote |
KIOSK_KEYCLOAK_URL | Voting Portal | https://login-example-kiosk.sequent.vote/auth/ |
When KIOSK_VOTING_PORTAL_URL is configured, kiosk links generated by the
Admin Portal use it. A kiosk request made through the normal voting portal is
redirected to the configured kiosk origin while retaining its path, query and
fragment. The voting-portal-kiosk Keycloak client also receives this URL as
its root URL and login base URL.
When KIOSK_KEYCLOAK_URL is configured, the Voting Portal uses it for kiosk
authentication. Normal voting continues to use KEYCLOAK_URL. If either
kiosk setting is absent or empty, the corresponding normal URL is used for
backwards compatibility.
Keycloak must generate frontend URLs from the requested, proxy-controlled hostname when normal and kiosk login hostnames serve the same realms. Use dynamic hostname resolution with trusted proxy headers, and restrict the proxy routes to the declared normal and kiosk hostnames. Client certificate enforcement, if required, is configured separately at the edge.