Repository navigation
Home
jann edited this page Sep 14, 2026
·
8 revisions
Self-hosted QA platform for teams doing manual and automated testing. A full test-case repository sits alongside a ready-to-use Playwright or Cucumber automation environment.
Each project picks Playwright or Cucumber when it is created, and that choice is permanent. Run tests from the CLI, the web UI, or an AI agent over MCP; track manual test runs; view session replays and export reports; schedule jobs; get Discord / Slack notifications; or have an AI Agent investigate a failing report and open a pull request with the fix.
-
Package:
plum-e2eon npm - Source: https://github.com/silverlunah/plum
- License: MIT
| Guide | What it covers |
|---|---|
| Installation | Node/Docker requirements, npm i -g plum-e2e, the CLI-only path vs. the server |
| Setting Up the Server |
plum server start, ports, local vs. production, reverse proxy, first-user setup |
| Setting Up Nodes | Runner nodes, the registration secret, start-on-boot, managing nodes |
| Guide | What it covers |
|---|---|
| Writing Tests | The scaffold, test.step, page objects (optional), plum create-test / create-step
|
| Running Tests Locally |
npx playwright test / npx cucumber-js, tags, workers, browsers, debugging |
| Migrating an Existing Repo | Adopting a Playwright or Cucumber repo you already have, plum migrate
|
| Projects | One organisation, many projects, the framework choice, on-disk layout, tests folder |
| Guide | What it covers |
|---|---|
| Roles and Access | Owner / admin / user, per-project membership, what each role can reach |
| Google Sign-In | Turning on Google sign-in, the OAuth client, the redirect URI, disabling password login |
| Test Repository | Suites and cases, structured steps, collaborative test runs, linking automation by tag |
| Reports and Session Replay | The report page, DOM session replay, the step rail, the element inspector, export |
| Retrying Flaky Tests | The max-retries setting, how retries work per framework, the flaky badge |
| Integrations | Discord & Slack webhooks, the REST trigger endpoint for CI |
| AI Agent | Connecting Claude/OpenAI + GitHub, analyzing a failing report, the fix-and-PR flow, the sandbox |
| API & MCP | Minting a key, using it for CI or an MCP client, the tools, (MCP) attribution |
| Activity Logs | The audit feed, MCP attribution, retention |
| Backup | Instance-level database backup, the schedule, an S3-compatible target |
-
Server stack (Docker Compose): PostgreSQL, an Express + Socket.io backend on 3001, and the SvelteKit UI served by
adapter-nodeon 3002. One machine runs this for the team. -
Runner nodes: bare
nodeprocesses (not containers) that register with the server and run dispatched jobs. Optional; the server has a built-in runner. -
Projects: each has its own
projects/<slug>/tests/folder with its ownpackage.json, runner config, and example tests, in the exact layout a standaloneplum initproduces.
You never need Docker or the server to write tests or run a node. See Installation.
Getting started
Tests
Platform
- Roles and Access
- Google Sign-In
- Test Repository
- Reports and Session Replay
- Retrying Flaky Tests
- Integrations
- AI Agent
- API & MCP
- Activity Logs
- Backup