- TypeScript 70.5%
- HTML 17.5%
- JavaScript 4.4%
- CSS 4.2%
- PLpgSQL 3%
- Other 0.4%
|
All checks were successful
IfRPG CI / validate (push) Successful in 3m28s
IfRPG CI / integration (push) Successful in 3m0s
IfRPG CI / docs (push) Successful in 1m9s
IfRPG CI / browser-smoke (push) Successful in 6m23s
IfRPG CI / build-dev-images (push) Successful in 51m17s
IfRPG Platform Release / validate (push) Successful in 4m10s
IfRPG Platform Release / integration (push) Successful in 3m6s
IfRPG Platform Release / docs (push) Successful in 1m53s
IfRPG Platform Release / publish-images (push) Successful in 49m26s
IfRPG Platform Release / deployment-bundle (push) Successful in 1m23s
|
||
|---|---|---|
| .forgejo/workflows | ||
| apps | ||
| config | ||
| deploy | ||
| docker | ||
| docs | ||
| external | ||
| fixtures | ||
| packages | ||
| prisma | ||
| public | ||
| schemas | ||
| scripts | ||
| tests | ||
| vendor | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .gitmodules | ||
| .node-version | ||
| .nvmrc | ||
| AGENT_TOOLS.md | ||
| AGENTS.md | ||
| compose.dev.yaml | ||
| compose.yaml | ||
| CONTRIBUTING.md | ||
| eslint.config.js | ||
| mkdocs.yml | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| prisma.config.ts | ||
| README.md | ||
| requirements-docs.txt | ||
| tsconfig.json | ||
| tsconfig.strict.json | ||
IfRPG – Informatik-Rollenspiel
IfRPG ist eine servergestützte Plattform für browserbasierte Informatik- Rollenspiele. Die Plattform liefert Engine, Player, Aufgabenlaufzeiten einschließlich Java, H5P und SQL, serverautoritativen Fortschritt, Teaching, Authoring, Administration und eine Registry für unveränderliche Releases.
Ein Plattformrelease enthält ausschließlich:
ifrpg/apiifrpg/migrateifrpg/web- das versionierte Deployment-Bundle
GamePacks, AssetPacks und PackSets werden unabhängig von ihren Autoren veröffentlicht. Sie können öffentlich oder token-geschützt über die Registry freigegeben werden. Eine neue Instanz startet absichtlich mit null Packs und null PackSets.
Die Dokumentation beschreibt den zugehörigen Quellstand, nicht automatisch einen bereits veröffentlichten Release. Für installierte Instanzen gilt die Anleitung zum eingesetzten Release.
Einstieg
- Neue Instanz installieren
- Neuen Kurs starten
- Spieler-Dokumentation
- Lehrkräfte-Dokumentation
- Autoren-Dokumentation
- Admin-Dokumentation
Plattformbestandteile
apps/web: React/Vite-Player, Teaching-, Authoring- und Adminoberflächenapps/api: NestJS/Fastify-Modularmonolithpackages/core: Contracts, Content-, Rule-, Progress- und PackSet-Domänen- PostgreSQL: dauerhafte Identitäts-, Contentmetadaten- und Progressautorität
- Redis: Sessions und Rate-Limits, keine dauerhafte Progressautorität
- externe Content-/Authoring-/Git-Work-Pfade: niemals Bestandteil der Images
external/java-ide: klar begrenztes Upstream-Submodul für die Java-IDE
Lokale Entwicklung
Der ressourcenschonende Standard nutzt Docker nur für PostgreSQL, Redis und MySQL für SQL-Aufgaben. API, Vite und Hilfsdienste laufen auf dem Host.
Entwicklungsablauf und aufgabenbezogene Dokumentation stehen in CONTRIBUTING.md, verbindliche Agentenregeln in AGENTS.md und die Werkzeugauswahl in AGENT_TOOLS.md.
npm ci --include=dev --ignore-scripts
npm rebuild esbuild --foreground-scripts
npm run dev
Das DB-freie Standardgate:
env -u DATABASE_URL npm run db:generate
env -u DATABASE_URL npm run verify
Integrationstests benötigen eine explizite isolierte DATABASE_URL und
REDIS_URL:
npm run verify:integration
Produktionsbundles und Multi-Arch-Images werden in Forgejo CI gebaut. Normale lokale Entwicklung baut keine Produktimages.
Deployment
Das pack-neutrale Bundle unter deploy/ wird mit ifrpgctl betrieben:
cd deploy
./ifrpgctl init --origin https://ifrpg.example.org
./ifrpgctl doctor
./ifrpgctl up
./ifrpgctl bootstrap-admin
Contentpublikation ist kein Deploymentschritt. Details stehen in der Admin-Dokumentation.
Release- und Sicherheitsgrenzen
- Plattformtags veröffentlichen keine Inhalte.
- Jede Releaseabhängigkeit bleibt exakt gepinnt und hashgeprüft.
- Git-/Registry-Credentials erreichen weder Browser noch Export oder Logs.
- Datenschutz, Impressum und Über-uns-Texte bleiben als
InstanceContentUI-/DB-verwaltet. - Das Repository startet als unveröffentlichte Plattformbaseline; es gibt noch
kein automatisch erzeugtes
v1.0.0.