Informatik-RPG https://ifrpg.de
  • TypeScript 70.5%
  • HTML 17.5%
  • JavaScript 4.4%
  • CSS 4.2%
  • PLpgSQL 3%
  • Other 0.4%
Find a file
Daniel Spittank df50b78db2
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
Report concurrent authoring transaction aborts as revision conflicts
2026-10-04 11:51:12 +02:00
.forgejo/workflows Provide isolated SQL credential secret for CI browser smoke 2026-10-04 11:42:59 +02:00
apps Report concurrent authoring transaction aborts as revision conflicts 2026-10-04 11:51:12 +02:00
config Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
deploy Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
docker Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
docs Report concurrent authoring transaction aborts as revision conflicts 2026-10-04 11:51:12 +02:00
external Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
fixtures Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
packages Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
prisma Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
public Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
schemas Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
scripts Provide isolated SQL credential secret for CI browser smoke 2026-10-04 11:42:59 +02:00
tests Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
vendor Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
.dockerignore Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
.env.example Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
.gitignore Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
.gitmodules Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
.node-version Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
.nvmrc Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
AGENT_TOOLS.md Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
AGENTS.md Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
compose.dev.yaml Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
compose.yaml Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
CONTRIBUTING.md Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
eslint.config.js Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
mkdocs.yml Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
package-lock.json Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
package.json Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
playwright.config.ts Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
prisma.config.ts Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
README.md Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
requirements-docs.txt Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00
tsconfig.json Prepare platform release with teaching permissions, SQL tasks and consistent documentation 2026-10-04 11:32:16 +02:00
tsconfig.strict.json Initial IfRPG platform baseline 2026-08-15 13:53:02 +02:00

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/api
  • ifrpg/migrate
  • ifrpg/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

Plattformbestandteile

  • apps/web: React/Vite-Player, Teaching-, Authoring- und Adminoberflächen
  • apps/api: NestJS/Fastify-Modularmonolith
  • packages/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 InstanceContent UI-/DB-verwaltet.
  • Das Repository startet als unveröffentlichte Plattformbaseline; es gibt noch kein automatisch erzeugtes v1.0.0.