- HTML 76.5%
- TypeScript 17.2%
- Python 5.7%
- Dockerfile 0.3%
- CSS 0.3%
Landing page: - Fächerplaner + Analyse entfernt → sauberes 2×2-Raster - Noch: Lernkarten, Kalender, Noten & Abi, W-Seminar /noten: - Neuer Tab "Analyse": Zielschnitt-Rechner (+/−), Fach-Übersicht mit Balken (Abi-Fächer markiert), Block I Fortschrittsbalken - Bereit für Freitag: Zeugnisnoten direkt unter Noteneingabe eintragen Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .forgejo/workflows | ||
| app | ||
| lernmaterial | ||
| lib | ||
| mcp-server | ||
| public | ||
| .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.