Official CodigoSH website — showcase and documentation of our self-hosted open-source projects. Built with Astro.
  • Astro 42.7%
  • TypeScript 31%
  • CSS 13.9%
  • Shell 7%
  • Python 2.1%
  • Other 3.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
k4wit0 501bf11a6a
All checks were successful
CI / build (push) Successful in 17s
content(lastboard-agent): running without root needs a user and the group, not the group alone
The FAQ said granting the docker group with group_add was enough. The
image defines no user, so group_add alone leaves it root; both are
needed, as the agent's documentation now says.
2026-10-15 07:22:58 +02:00
.forgejo/workflows build: update the toolchain and dependencies 2026-10-11 15:23:10 +02:00
assets docs(readme): the README in the shape of the other projects, with the logo and a mockup of several pages 2026-10-01 18:13:30 +02:00
brand/forgejo chore(brand): version the one setting that is not a file 2026-09-14 19:42:57 +02:00
public feat(brand): the new CodigoSH isotype, and a source big enough for it 2026-09-14 17:06:43 +02:00
scripts docs(readme): the README in the shape of the other projects, with the logo and a mockup of several pages 2026-10-01 18:13:30 +02:00
src content(lastboard-agent): running without root needs a user and the group, not the group alone 2026-10-15 07:22:58 +02:00
.dockerignore Initial scaffold: Astro + Tailwind + Starlight site 2026-06-10 03:00:08 +02:00
.env.example docs(readme): only what a website needs, with the build failing rather than falling back to mock data 2026-10-01 18:27:58 +02:00
.gitignore docs(readme): the README in the shape of the other projects, with the logo and a mockup of several pages 2026-10-01 18:13:30 +02:00
astro.config.mjs feat(docs): render the documentation with the site's own pages, not Starlight 2026-10-01 15:58:32 +02:00
bun.lock build: update the toolchain and dependencies 2026-10-11 15:23:10 +02:00
Caddyfile perf(server): cache assets in tiers instead of five minutes for everything 2026-07-30 22:52:37 +02:00
CHANGELOG.md chore(release): bump to v2.0.2 2026-10-05 16:37:28 +02:00
CONTRIBUTING.md docs: a security policy and a contributing note, as the other projects have 2026-10-02 07:52:20 +02:00
Dockerfile build: update the toolchain and dependencies 2026-10-11 15:23:10 +02:00
LICENSE docs: add Apache-2.0 license to align with the other CodigoSH repos 2026-07-02 00:11:15 +02:00
NOTICE feat(design): Bricolage Grotesque, Geist and a calmer palette for the whole site 2026-10-01 09:50:20 +02:00
package.json build: update the toolchain and dependencies 2026-10-11 15:23:10 +02:00
README.md docs(readme): only what a website needs, with the build failing rather than falling back to mock data 2026-10-01 18:27:58 +02:00
SECURITY.md docs(security): no promised reply time 2026-10-02 07:58:39 +02:00
THIRD-PARTY-LICENSES.md feat(design): Bricolage Grotesque, Geist and a calmer palette for the whole site 2026-10-01 09:50:20 +02:00
tsconfig.json tsconfig: exclude node_modules explicitly 2026-06-10 07:56:08 +02:00


CodigoSH

codigosh-web

The CodigoSH site: every project, its documentation and each release, in one place.

codigosh.com   Latest release   Apache 2.0


codigosh.com — the changelog, a page of the documentation, the home page and the home page on a phone





📖 Visit codigosh.com — the site is its own documentation: the projects, their guides and every release.


Why codigosh-web

The place that presents CodigoSH's tools should follow the same rules as the tools: nothing ships unless it is fast, readable and honest about what it does. It is a static site with no cookies, no analytics and no request to any other host, and every number on it comes from the forge at build time, so it cannot drift from the code it describes.

Shape Static site built with Astro, served by Caddy from a container
Data Projects, releases and documentation read from the Forgejo API at build time
Documentation Written in each project's own repository, published here on every build, with search
Language English, a single locale with no URL prefix
Licence Apache-2.0
Telemetry None. Ever

Features

  • A page for each project: what it is, how to install it, a picture you can enlarge, the latest release and when it last shipped.
  • A release history graph where every release of every project is a knob on its line, and a changelog of all of them, a page at a time.
  • The documentation of every project, rendered by the site itself from the Markdown that lives in each project's repository: a menu that keeps one project open, "On this page" that follows your reading, and search with Ctrl K.
  • Light and dark, with text size, font and layout width chosen by the reader and kept in their browser.
  • For machines too: a sitemap, robots.txt, a web manifest, social cards and an llms.txt.

Security & Privacy

Security

  • A strict Content-Security-Policy: everything the site loads is from its own origin. The two exceptions, inline scripts and styles and WebAssembly for the search, are written next to the policy in the Caddyfile with their reasons.
  • The usual headers — HSTS, nosniff, a referrer policy and a framing policy — and a real 404 for a page that does not exist.

Privacy

  • No cookies, no analytics, no third parties. Preferences stay in your browser's local storage and are never sent anywhere.
  • No access log: the Caddyfile has none.

Run your own copy

The repository builds into a container you can run. No image is published: you build it.

docker build -t codigosh-web .
docker run -d --name codigosh-web -p 8080:80 --restart unless-stopped codigosh-web

The image builds the site with Bun and serves dist/ with Caddy on port 80. Pass --build-arg for SITE_URL (the canonical URL), FORGEJO_URL and FORGEJO_ORG (where the projects are read from); all are optional. The CodigoSH Forgejo allows anonymous API reads, so no token is needed. If the API is unreachable the build fails rather than publish invented data; set FORGEJO_MOCK=1 to build with bundled mock data instead.


Updates

A visitor has nothing to update: the site is rebuilt and replaced as a whole. A push to main here triggers the deploy webhook, and every release of a project rebuilds the site, so its page, its documentation and the history are always the current ones. To follow it with your own copy, pull and rebuild the image.


Build

Requires Bun (≥ 1.3).

bun install
bun run dev        # local dev server
bun run check      # astro type/content check
bun run build      # sync-docs + production build, indexed with Pagefind
bun run preview    # preview the build

Copy .env.example to .env to configure it; every variable is explained there.

Docs are not written here. bun run sync-docs (which bun run build runs first) downloads the docs/ folder of every project tagged showcase into src/content/docs/docs/<project>/. It is generated and git-ignored: edit the docs in the project's own repository. Search exists only in a built site, because the index is made from the built pages.

The image at the top of this file is composed from the built site: after bun run build, run bun scripts/docs-shots.ts and then bun scripts/docs-mockup.ts.


Support & Recognition

We are an open-source initiative managed through Open Collective Europe.

Financial Support

If you find our tools useful, consider supporting our infrastructure through an unconditional donation.

Acknowledgments

Special thanks to everyone supporting our mission.

Organizations

We appreciate the organizations that support us as a gesture of goodwill to help maintain our infrastructure.


Credits

Full attribution, including the fonts and the licence texts, lives in NOTICE and THIRD-PARTY-LICENSES.md.


A project by CodigoSH — built to last.