- HTML 64.6%
- TypeScript 29.6%
- Python 3.7%
- JavaScript 1.5%
- CSS 0.4%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Arbeitsstand aus einer parallelen Sitzung, hier nur festgeschrieben, damit das Aufraeumen der HTML-Datei auf einem sauberen Stand aufsetzen kann. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
| .claude | ||
| .forgejo/workflows | ||
| app | ||
| docs | ||
| lib | ||
| mcp-server | ||
| public | ||
| types | ||
| .dockerignore | ||
| .eslintrc.json | ||
| .gitignore | ||
| .mcp.json | ||
| bun.lock | ||
| CLAUDE.md | ||
| Dockerfile | ||
| GOAL.md | ||
| middleware.ts | ||
| next.config.ts | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
lernen
Next.js app deployed at https://lernen.tu-po.com.
This repo currently holds a minimal placeholder scaffold so CI and the container
build are green end-to-end — replace app/ with the real frontend.
Stack
- Runtime: Next.js (App Router) on Bun (
oven/bun:1.3.12) - Build: Next.js
output: "standalone"→ small self-contained server image - Container port:
3000(health probe at/api/health)
Local development
bun install
bun run dev # http://localhost:3000
bun run lint
bun run typecheck
bun run build
CI/CD (Forgejo, code.podesta.ai)
CI lives in .forgejo/workflows/ and runs on the tupo-runner:
-
ci.yml— install, lint, typecheck, build on every push/PR tomain(andv*tags). -
docker-publish.yml— builds the image and pushes tocode.podesta.ai/xemmerling/lernen, tagged:main-<sha>on pushes tomain<version>(semver) onv*tagspr-<n>build-only (not pushed) on pull requests
Pushing requires a repo secret
REGISTRY_TOKEN(a Forgejo token withwrite:packagesoncode.podesta.ai/xemmerling/lernen).
Deployment (ArgoCD)
Kubernetes manifests live in the infra repo under apps/lernen/ (base) and
clusters/prod/apps/lernen/ (prod overlay), wired into the prod
ApplicationSet. After CI pushes a new image, bump the main-<sha> tag in
apps/lernen/deployment.yaml and let ArgoCD sync. See that overlay's README.md
for the one-time forgejo-pull-secret setup.