- Astro 59%
- TypeScript 20.3%
- CSS 11.5%
- Python 4.7%
- Shell 2.7%
- Other 1.8%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| public | ||
| scripts | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| astro.config.mjs | ||
| bun.lock | ||
| Caddyfile | ||
| CHANGELOG.md | ||
| Dockerfile | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
codigosh-web
Official website for CodigoSH — a free-software collective building self-hosted, private tools. The site showcases the organization's projects hosted on Forgejo and their documentation, with a strong focus on SEO and performance.
Stack
- Astro (static output) — content-first, zero JS by default.
- Tailwind CSS v4 + the CodigoSH design system (
src/styles/theme.css). - Starlight for documentation (in progress).
- i18n — Spanish at the root, English under
/en/, withhreflangalternates. - Forgejo API integration at build time (
src/lib/forgejo.ts). - Self-hosted as a static site served by Caddy.
Development
Requires Bun (≥ 1.3).
bun install
bun run dev # local dev server
bun run build # production build -> dist/
bun run preview # preview the build
bun run check # astro type/content check
bun run i18n:sync # audit translation key parity
The CodigoSH Forgejo instance allows anonymous API reads, so no token is required. If the API is unreachable the build falls back to bundled mock projects, so it always builds offline.
Configuration
Copy .env.example to .env and fill in as needed. See that file for the full
list. The most relevant variables:
| Variable | Purpose |
|---|---|
SITE_URL |
Canonical URL (canonical tags, sitemap, OG). |
FORGEJO_URL |
Forgejo instance base URL. |
FORGEJO_ORG |
Organization whose repos are listed. |
FORGEJO_TOPIC |
Curated topic; only repos with it are shown. |
FORGEJO_TOKEN |
Read-only API token (public repos). |
FORGEJO_MOCK |
Force mock data (1/true). |
Projects on the site
Projects are pulled at build time from Forgejo. Only repositories tagged with
the showcase topic appear. To refresh the live site after changing a repo,
trigger the deploy webhook (e.g. from a Forgejo push webhook).
Deployment
The included Dockerfile builds the static site with Bun and serves dist/
with Caddy on port 80. Set the build variables above and point the
application's domain at the container.
License
See LICENSE.