Files
LocalAI/website
Ettore Di Giacinto 4b3978dcba chore(website): derive the counters from data, refresh them weekly
The star, fork, contributor and release counts were typed into the templates
by hand, so they only moved when somebody remembered. They had already
drifted: stars read 48,042 against 48,067, forks 4,314 against 4,320, and
contributors 224 against 225.

They move to website/data/stats.yaml, which .github/ci/refresh-site-counters.sh
rewrites from the GitHub API, run weekly by a new workflow. The contributors
and releases endpoints never report a total, so the script asks for one item
per page and reads the count out of the Link header. It refuses to write a
zero or a non-number, which is what a rate-limited or failed call looks like,
and the workflow commits only when a number actually moved. The Discord count
has no API behind it, so the script reads the existing value back and carries
it through.

The engine count was wrong in a second way. The hero said 18, the section
heading said "Eighteen engines", the timeline said "Nineteen engines of our
own", and the /engines/ page derived 19 from the data file. All of them now
derive from that same file, so they cannot disagree again.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Assisted-by: Claude Code:claude-opus-5[1m]
2026-07-31 21:23:54 +00:00
..

localai.io

The Hugo site served at the root of localai.io. The documentation is a separate Hugo site in ../docs and is served under /docs/. CI builds both and uploads them as a single GitHub Pages artifact (see .github/workflows/gh-pages.yml).

Running locally

From the repository root:

make website    # this site only, http://localhost:1313/
make docs       # documentation only, http://localhost:1313/docs/
make site       # build both, merged into website/public, exactly as CI does
make site-serve # the same merged build, served on http://localhost:8000

make website and make docs run hugo serve, so they pick up edits live but only cover one site at a time. Use make site-serve when you need the cross links between the two sites, or the redirects from the pre-split URLs, to work.

make site also runs .github/ci/gen-redirects.sh, which leaves a meta-refresh page at every URL the documentation used to occupy before it moved under /docs/. GitHub Pages has no server-side redirects, so those files are the only thing keeping the old links alive.

Set SITE_BASE_URL to change the base URL the merged build is generated for (default http://localhost:8000).