A lightweight HTTP proxy for testing application resilience against unreliable backends.
Route your app's traffic through Faultend to inspect every request and response in real time, then inject failures — bad status codes, slow responses, custom bodies — with no code changes required.
- Point your app at Faultend instead of your real backend
- Create rules to proxy traffic to your real services
- Watch all traffic live in the UI
- Click any request to convert it into a mock or modify its behavior
- Simulate errors, latency, and edge cases to see how your app responds
- Rules-based routing — priority-ordered rules, each either proxying to a real backend or returning a mock response
- Failure injection — custom status codes, response bodies, fixed or random latency
- JS response transforms — run a JavaScript snippet against any response before it is sent; modify status, headers, or body
- Real-time traffic inspection — full request/response logging with filtering and search
- Conditional matching — match rules on headers, query params, body fields, or cookies
- Request header manipulation — add, set, or remove headers before proxying
- Template variables — dynamic values in mock bodies (
uuid(),timestamp(),random(), etc.) - Server sharing — invite collaborators via link; role-based access (owner, admin, collaborator)
- Export/Import — save and restore server configurations as JSON
- OAuth login — Google and GitHub, with email-based account linking
A hosted version is available at faultend.com — no setup required.
- Docker
- A domain with wildcard DNS (
*.yourdomain.com) pointing to your server - Traefik v3 running as a reverse proxy on the same Docker network
-
Clone the repository:
git clone https://github.com/dalogax/faultend.git cd faultend -
Copy and configure the environment file:
cp .env.example .env # Edit .env — at minimum set DATABASE_URL, SESSION_SECRET, ROOT_DOMAIN -
Update
docker-compose.yml— replacefaultend.comwith your domain in the Traefik labels. -
Start the container:
docker compose up -d
The app will be available at app.yourdomain.com. Each fault server gets its own subdomain (<server-id>.yourdomain.com).
See docs/installation.md for full networking and Traefik requirements, and docs/deployment.md for production deployment guidance.
Full documentation is in the docs/ directory:
- Overview — concept and architecture
- Features — complete feature reference
- Workflow — how to use Faultend in practice
- API Reference — REST API
- Development — local setup and contributing
- Installation — self-hosting requirements
See CONTRIBUTING.md for how to set up a local dev environment, run tests, and open a pull request.
MIT — see LICENSE.