Skip to content

A product of ExpandIt · version 1.6 · actively developed

A Roman legionary carried his own stakes. Each evening, after the march, the camp's palisade went up from what the soldiers already had - no supply line, no waiting for anyone.

Vallus works the same way. Every instance runs on your own infrastructure and answers to nothing outside it. No telemetry, no licence server, no call home. Once it is installed it needs no route to the internet at all.

Schedule, run and analyze your Playwright tests from one dashboard

The Playwright CLI works for a single developer. vallus turns your existing Playwright projects into managed, repeatable workflows that anyone on the team can trigger - on demand, on a schedule, or from CI - with reports, traces and cross-run analytics in one place.

vallus in 30 seconds · voice-over, captions in the video · full 2-minute tour below

Self-hosted
Your server, your test data
Node · TS · Python
Playwright and pytest-playwright
Minutes
From unzip to first run

About the product

vallus /ˈva.lʊs/

noun, Latin

A sharpened stake driven into the crown of a rampart. In the plural, valli: a palisade.

Roman legionaries carried their stakes with them. The camp was not delivered - it was raised each evening from what every man had brought, and taken down again at dawn. The defence worked because it required nothing from outside the column.

That is the model Vallus is built on. Each deployment is a self-contained instance: the runner, the dashboard, reporting and access control, all on your own machine from the first minute. It runs inside networks with no route to the internet, and it does not phone home - the licence is verified locally, by signature, with nothing to check in with.

Every engineer on the team drives their own stake. The perimeter is what you build together.

The problem

Playwright is excellent. Running it across a team is the hard part.

Every organisation that adopts Playwright hits the same wall - and rebuilds the same scripts, spreadsheets and shared folders to work around it, once per project and per team.

Runs tied to one machine

Every execution means a terminal, the right config, browser, environment and filters - then collecting and sharing the HTML report by hand.

QA can't trigger anything

Testers and product people depend on a developer to start a suite, so verification queues up behind someone else's day.

No schedule, no CI trigger

There is no central place to run nightly suites or to fire a run from a pipeline when a build lands.

No history, no trends

Without run history, flaky tests and slow regressions stay invisible until they break a release.

Results scattered

Reports live in folders on laptops, traces are awkward to share, and nobody can answer "was this green last week?"

No access control

Nothing decides who may run what against which environment - a real problem once staging and production data are involved.

What vallus does

A dashboard that wraps the Playwright CLI in governance, history and access control

It works with your existing projects as they are - same configs, same projects, same environments. No code changes, no rewriting of tests.

Multi-project launcher

Register any number of Playwright projects behind one entry point. Several teams share a single instance, each with its own dashboard and its own access rules.

Multi-step workflows

Define a run once - config, browser, test filters, environment variables, steps in sequence - and let anyone repeat it exactly, without touching a terminal.

Scheduling and a run queue

Nightly regression, hourly smoke, or a one-off run at 3 a.m. Runs beyond the licensed limit wait in a queue instead of fighting over the same machine.

Every run in its own container

A run gets a container of its own, built from that project's code and its installed dependencies. Two runs cannot overwrite each other's generated sources or reports, so several can execute side by side on one server.

An image per version of your tests

Each version of a suite becomes its own image, named after the commit it was built from. Rolling back to a known-good suite means running an older tag - no git operation, nothing rebuilt.

A Playwright version per project

The image is chosen from the @playwright/test each project actually has installed, so a suite on 1.55 and one on 1.60 run on the same instance without either being upgraded to suit the other.

Add a project by cloning it

Point the runner at a repository and it clones the suite itself - including a subdirectory of a monorepo. An instance SSH key is generated for you to add as a deploy key, so nothing has to be arranged on the host first.

CI webhooks

Trigger workflows from Jenkins, GitHub Actions, Azure or any pipeline with a token-authenticated HTTP call, and pick up the result programmatically.

Reports, Allure and traces

Playwright HTML reports, Allure trends and the trace viewer are served straight from the dashboard - no zipping folders, no sharing files by hand.

Cross-run analytics

Run history in SQLite turns into trends: flaky tests, newly failing specs, duration drift, step-level summaries, and CSV export for reporting.

Role-based access control

Viewer, executor, admin and superAdmin roles, plus per-workflow permissions - so the people who may run against production are exactly the ones you chose.

SSO via OIDC

Connect Keycloak, Entra ID or any OIDC provider with just-in-time account provisioning, and keep a break-glass local admin for emergencies.

Secrets from a vault, not from disk

Every workflow variable says where it comes from: a value typed in, a secret encrypted with the instance key, or a reference resolved from OpenBao or HashiCorp Vault when the run starts. Nothing sensitive sits in a .env file between runs, and a rotated credential takes effect on the next run without anyone editing a file.

Python as well as TypeScript

Node/TypeScript Playwright projects and Python pytest-playwright suites run side by side under the same dashboard, roles and history. Node projects install with npm or bun, chosen per project.

HTTPS and key management

Built-in certificate generation, TLS serving, and signed license keys - required anyway once the trace viewer is used from outside localhost.

Jira and Xray integration

Push execution results to Xray test executions and link runs back to Jira issues, so manual and automated coverage live in one report.

Fully self-hosted

Runs, reports, traces and history stay on your infrastructure. Nothing is sent externally, no telemetry is collected, and once installed the product needs no internet connection.

How it works

If your team already has Playwright tests, you are running them through the dashboard in minutes

Product tour · 2 min · voice-over, captions in the video

01

Install

vallus ships as a package with its dependencies inside. Unzip it on any machine with Node.js, run npm install to add the database module for your platform, then npm start. It runs against the Playwright projects you already have.

unzip vallus-X.Y.Z.zip && cd vallus
npm install
npm start                       # dashboard on http://localhost:3000

# optional - HTTPS, needed for the trace viewer off localhost
npm run tls:cert
npm run start:tls

The rest is the same either way

02

Set up in the browser

A setup wizard creates the first admin account and registers your Playwright projects - by folder path, or by cloning them straight from Git, including a subdirectory of a monorepo. Your test code stays untouched.

03

Build workflows

Compose runs from config, browser, filters and environment, assign who may execute them, then trigger on demand, on a schedule or from CI.

04

Review and compare

Open the HTML report or the trace for any run, watch Allure trends, and use cross-run analytics to spot flakiness and regressions early.

Fits your stack

Integrations

vallus sits between the tools you already run. Everything below is configuration - nothing requires changes to your test code. The list is a snapshot: new integrations are added continuously, so if yours is missing, it is most likely a request away.

Test runtimes

  • Playwright Test

    Node.js / TypeScript, your existing configs

  • pytest-playwright

    Python suites in the same dashboard

Reporting

  • Playwright HTML report

    Served per run

  • Allure

    Trends and history across runs

  • Trace viewer

    Hosted, shareable over HTTPS

  • Grafana

    Run metrics for your own dashboards

  • ReportPortal

    Optional result forwarding

Delivery pipelines

  • Jenkins

    Webhook-triggered runs

  • GitHub Actions

    Token-authenticated triggers

  • Azure DevOps

    Any pipeline with an HTTP step

  • Git

    Pull the project before a run

Governance

  • Jira

    Link runs back to issues

  • Xray

    Push test executions

  • Keycloak / OIDC

    SSO with JIT provisioning

  • TLS certificates

    Generated or bring your own

Actively developed

A moving product, not a frozen one

You are buying something that is still being built - and the roadmap is open to the teams that use it.

Shipped continuously

vallus is under active development, not in maintenance mode. Releases land regularly, and every one of them is included in a running subscription at no extra cost.

New integrations keep arriving

The integration list grows constantly - reporting backends, issue trackers, identity providers, CI systems. What is listed on this page is the state today, not the ceiling.

Your request shapes the next release

Need a system that is not supported yet? Tell us. Integration requests from customers are how most of the current list came to exist, and Business and Enterprise tiers get theirs prioritized.

Upgrades stay boring

The product wraps your Playwright projects instead of owning them, so new versions do not ask you to rewrite tests. Your configs, your repository, your history stay as they are.

Missing an integration you depend on? Ask for it - most are a matter of configuration and a release, not a project.

Request an integration

Deployment and security

Built for regulated networks, not for someone else's cloud

Runs without the internet

Once installed, vallus needs no outbound connection: no telemetry, no licence server, no update check. The licence is verified locally by signature. Installation itself fetches one native database module for your platform, which can be staged in advance for a disconnected network.

Your data stays yours

Runs, reports, traces and history are written to your own server. Nothing about your application, your environments or your test data leaves the perimeter.

Portable deployment

Any machine with Node.js will do - a VM, a container, or a workstation. Optional extras such as Allure and HTTPS/TLS are configuration, not a separate install.

Docker where it earns its keep

Giving each run its own container needs a Docker daemon the runner can reach; a compose file ships with the product. Without one it still runs every suite as before, in-process - the isolation is an upgrade, not a prerequisite.

Hardened access

Signed license keys, TLS, OIDC single sign-on with a break-glass local admin, role-based permissions and per-workflow grants for executors.

Licensing

Subscribe, or buy the source outright

All prices are net, in EUR, excluding VAT. Every tier is self-hosted on your own infrastructure. Evaluation is free for 21 days with full functionality - no card, no auto-renewal.

Free

€0

6-month term, renewable

For small teams and evaluation - the core runner at no cost.

  • Included: 2 named users
  • Included: 1 project in the launcher
  • Included: 1 test run at a time
  • Included: Full core runner: workflows, scheduling, reports
  • Included: 6-month term - renewable, never perpetual
  • Not included: Gated integrations (vault, Xray, SSO, Grafana, ReportPortal)
  • Not included: E-mail / priority support
Get a free key

Team

€2,400

per year

A single QA team putting its first suites behind a dashboard.

  • Included: Up to 10 named users
  • Included: Up to 3 projects in the launcher
  • Included: 2 test runs in parallel per project*, more available as an add-on
  • Included: 1 production instance, unlimited dev/test
  • Included: Workflows, scheduling, run queue, RBAC
  • Included: Reports, Allure, trace viewer, analytics
  • Included: Vault-backed secrets: OpenBao or HashiCorp Vault
  • Included: All releases during the term included
  • Included: E-mail support, 3 business days
  • Not included: Jira, Xray & SSO integration (Business+)
Talk to us

Business

Most chosen

€6,000

per year

Several teams sharing one instance, with Jira/Xray in the loop.

  • Included: Up to 30 named users
  • Included: Unlimited projects
  • Included: 5 test runs in parallel per project*, more available as an add-on
  • Included: 2 production instances
  • Included: Everything in Team, plus Jira and Xray integration
  • Included: Prioritized integration and feature requests
  • Included: E-mail support, 1 business day
  • Included: 2 h remote onboarding session
  • Not included: SLA & guaranteed response times (Enterprise)
  • Not included: Offline installation package (Enterprise)
Talk to us

Enterprise

from €14,000

per year

Organisation-wide rollout with an SLA and an agreed backlog.

  • Included: Unlimited named users and projects
  • Included: Unlimited parallel test runs*, no licence ceiling
  • Included: 4+ production instances as agreed
  • Included: SLA 8×5, 4 h response
  • Included: Full deployment service included
  • Included: Agreed roadmap backlog
  • Included: Custom integrations scoped with your team
  • Included: Offline installation package included
Talk to us

* Running tests in parallel requires a Docker daemon the runner can reach - each run then gets a container of its own. Without one vallus still runs every suite, one at a time.

Commercial source license

from €18,000

A perpetual, non-exclusive license with full source access and the right to modify the code for internal use - for organisations that need independence from the vendor, a code audit, or source escrow. One-time fee, first 12 months of maintenance included, 20% per year thereafter. Subscription fees paid in the first 24 months are credited in full against it.

Request terms

Add-ons

Additional parallel test run (per project)
€600 / year
Pack of +10 named users
€900 / year
Additional production instance
€1,200 / year
Additional project (Team tier)
€300 / year
  • Parallel runs need a Docker daemon the runner can reach, so each run gets a container of its own. Without one vallus still runs every suite, one at a time.

Professional services

Remote deployment (2 days)
€1,800
On-site deployment
€1,200 / day + travel
Team training (up to 12 people)
€1,200 / day
Migration of existing Playwright projects
from €2,500
Offline installation package (one platform, one version)
€1,000
Rebuild of the offline package for a new version
€300
Custom development and integrations
€120 / h or €900 / day
  • Or included for the subscription term.

FAQ

Questions we get asked first

21 days. Full functionality for 21 days, no card and no auto-renewal. The evaluation key is issued with an expiry date and can be extended once by agreement.

The manufacturer

ExpandIt

A better quality starts now.

ExpandIt designs, builds and licenses vallus. The product is not a side project of a larger platform - it is the whole of what we do, and it grew out of years of hands-on work in software testing: functional UI tests first, but also unit, integration, performance and stress testing.

Much of that work was test automation - across Selenium WebDriver, Cypress, Appium, Protractor, Puppeteer, Cucumber and SpecFlow, with Jenkins, GitHub, Azure, Jira and Xray around them. vallus is the tool that kept being missing on those engagements: the layer that makes an automated suite something a whole team can run, govern and trust - not just the people who wrote it.

We build for the way testing teams actually work: self-hosted, inside your network, on top of the Playwright projects you already maintain. Nothing you run depends on us staying online.

EU
based, EU/EEA licensing
QA-built
made by testers, for testing teams
Single focus
vallus is the whole roadmap

Book a demo

See vallus running on a real project - in 30 minutes

Pick a slot that suits you and tell us a little about your setup. We walk through the launcher, a multi-step workflow, a live run, the trace viewer and cross-run analytics - then hand you a 21-day trial key if you want to try it yourself.

Your details

Selected slot: none yet - we will propose one

The site stores nothing and sends nothing on its own - the button opens your own e-mail client with the request filled in, so you decide what leaves your machine. How we handle them, and the rights you have over them, are set out in our privacy notice.

Pick a slot