dashboard
Front page of git.bytestone.uk for visitors who are not signed in (Caddy serves the deployed files there; signed-in users see Forgejo). Lists all public repositories across Forgejo (git.bytestone.uk, hum3) and GitHub (drummonds) that have been updated this year.
Latest: v0.1.14Diagram rendered with d2.
Build
task docs:build # render diagram, assemble docs/
tp pages # preview locally
task refresh # rescan forges, update repos.json, regenerate d2 + HTML
task dia # refresh + build + commit + push (origin and github) + deploy
task edit # local editor for ecosystem groups (http://localhost:1350)
repos.json is the single source of truth: groups (ecosystems, with their
colours) and repos. Public repos are discovered by the refresh; private
repos are listed by hand (private: true, via the editor's Add a repo
form) and get a badge, no forge links and no API checks. A repo that
deliberately has no GitHub mirror sets no_mirror: true so flag 1 reads
n/a. This repo is one of those: it lives on Forgejo only. cmd/refresh regenerates the group containers in
dashboard.d2 (between the AUTO-GROUPS markers; the relationship arrows
below them are hand-written and use group ids) and index.html.
Detail pages
The first column of the table links to repos/<name>.html, one page per
repo with its links (docs, website, origin, mirror, Codeberg, home
Forgejo), stars by forge, issues, the five migration checks written out in
full with a link to where each is fixed, and what was read from the repo
(task-plus.yml, pages_deploy, old statichost site). Generated with the
other pages; repos/ and docs/repos/ are not committed.
Stars
The master page shows total stars across all forges with a link to
stars.html, the detail page: a column per forge (Forgejo, GitHub,
Codeberg) by ecosystem and by repo. The refresh records
stars_forgejo, stars_github and stars_codeberg per repo; stars is
their sum. Codeberg stars fall away as repos are deleted there.
Editing ecosystems
task edit runs a small lofigui
app that edits repos.json in place: create, recolour, reorder and delete
groups, move repos between groups with a drop-down per row, and set a
repo's public website (the www column, e.g. the site a static-site repo
builds). Every save
regenerates dashboard.d2 and index.html; the Run task docs:build
button renders the diagram for a preview at /docs/. Commit repos.json,
dashboard.d2 and index.html when done. Nothing is pushed or deployed by
the editor.
Migration flags
The Status column shows four dots per repo (green = desired state, red = needs fixing, yellow = partial, grey = n/a or unknown). Dots link to the place where the fix is made. The migration panel above the table counts what is left.
- GitHub mirror in sync — the GitHub copy is at the same commit as the
Forgejo original. Red if the mirror is missing or stale; n/a when the
repo sets
no_mirror: true. - No Codeberg repo — yellow if archived, red if still active.
- Docs in the right place — if the repo should have a docs site, it
answers at its
docs_urlondocs.bytestone.uk, and the oldh3-<name>.statichost.pagesite is gone. A docs site is expected when the repo'stask-plus.ymlhas apages_deploytarget or whendocs_urlis set by hand. An rsync target'ssite:fills an emptydocs_urlashttps://<site>.docs.bytestone.uk/; atype: statichosttarget means the deploy config has not been migrated yet and is red. Setstatichost_siteinrepos.jsonwhen the old name was irregular. - Local mirror — a pull mirror of the repo exists on the home Forgejo.
Yellow if there is a copy that is not a mirror. Only checked when the
home network is reachable and
HOMELAB_FORGEJO_TOKENis set (tp secrets task refresh); otherwise the previous value is kept.
Flag 2 is worked through with tp secrets task codeberg: it lists every
repo still on Codeberg and checks that each Codeberg branch head exists in
a local checkout under ~/git/*/<name> and in the repo on
git.bytestone.uk (the home mirror is reported too). Only repos passing
both checks, or empty on Codeberg, are deleted, and only with
-- -delete. A repo renamed elsewhere is checked with
-- -only old -as new.
Flag 4 is fixed with tp secrets task mirror (-- -dry-run to preview):
it creates a private pull mirror on the home Forgejo for every public repo
that lacks one, cloning from Forgejo or, for GitHub-only repos, GitHub.
Existing plain copies are reported and left alone.
Flags 1–3 are temporary: they track the move to Forgejo + docs.bytestone.uk
and will be removed once every repo is green (a GitHub Pages flag was
retired on 2026-09-22 once every Pages site had been deleted). The
refresh command also records whether each repo has a task-plus.yml
(tp_config), which drives the ⚠️ marker in the diagram.
Links
| Documentation | https://dashboard.docs.bytestone.uk/ |
| Source | https://git.bytestone.uk/hum3/dashboard |