- TypeScript 85.2%
- CSS 5.1%
- JavaScript 4.6%
- PLpgSQL 4.5%
- Shell 0.4%
- Other 0.2%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| apps | ||
| config | ||
| deploy | ||
| docker | ||
| docs | ||
| external | ||
| fixtures | ||
| packages | ||
| prisma | ||
| public | ||
| schemas | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .gitmodules | ||
| .node-version | ||
| .nvmrc | ||
| AGENTS.md | ||
| compose.dev.yaml | ||
| compose.yaml | ||
| 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, Java-/H5P-Aufgabenlaufzeit, 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.
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 und Redis; API, Vite und Hilfsdienste laufen auf dem Host.
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.