Repository navigation
v0.4.1
Patch release, one day after v0.4.0: the job overview finished and hardened, and one house rule applied to every line of copy. Ten merged branches, no migration (head stays 0034), no breaking change for self-hosters.
What changed
- Overview numbers agree with each other. The Applications tile, the apply-rate denominator and the per-job 7-day count now use the same UTC calendar days as the views and the daily chart (today and the 29 days before it). The tiles say so in their tooltips.
- Empty states that tell the truth. A live job with no views yet says "No views yet. Share it:" with the share links right there. A closed job says views were not counted and offers nothing to share. A job whose applications predate the counter says views are counted from the 0.4.0 update on.
- Accessibility. The daily chart's accessible name carries the period's totals instead of thirty mouse-only tooltips. The custom share-link input has a real label, a polite live status line and aria-invalid. When the company summary cannot load, the share cards say so instead of showing a skeleton forever. An axe check guards the overview page.
- Share links. Built with the URL API (fragments stay last, an existing
srcis replaced). A custom name that is already a built-in source says so and keeps its link;directis refused, since it is the name of untracked traffic. - Counters under load. The per-day source budget is serialised per job and day, so a burst of new tracked-link names can no longer overshoot the 50-source cap.
- Bot detection. "bot" counts only where crawlers put it, so phones such as CUBOT count as people again. The user-agent table grew on both sides.
- Optional
GANEK_SSR_SECRET. Set the same long random string on the backend and the frontend and only the page render can count a view; anyone calling the API with the view headers but without the secret is served as usual and not counted. Unset, nothing changes. - No em or en dashes anywhere. Every line of copy, from page titles and email subjects to the question bank, uses a plain "-". A repo-wide guard keeps it that way.
Upgrade from v0.4.0
- No migration, no new required setting.
docker compose pull && docker compose up -dis the whole upgrade. GANEK_SSR_SECRETis optional; see.env.exampleand the configuration page. The compose file passes it to the frontend service.- The question bank text changed (dashes only). Instances that seeded the bank keep their stored copies; nothing to do.
Run it
git clone https://github.com/Ganek-dev/ganek && cd ganek
docker compose upContainer images: ghcr.io/ganek-dev/ganek-backend:0.4.1 and ghcr.io/ganek-dev/ganek-frontend:0.4.1 (linux/amd64 and linux/arm64).
Docs: the quickstart and the self-hosting guide on ganek.dev; the compliance pack is in docs/compliance/. Try it first at demo.ganek.dev. Hosted version: join the waitlist at ganek.io.
License: AGPL-3.0.