An independent, .NET-based API mock engine + platform. A transport-agnostic request-matching and response engine with first-class multi-tenancy, pluggable persistence, and thin facades — in-process library · HTTP server · admin REST · gRPC · GraphQL · WebSocket. Clean-room codebase with its own IP and no third-party mock-engine dependencies.
Just run it — in-memory, zero config, the same one line on macOS, Linux and Windows:
docker run -p 8080:8080 ghcr.io/omercelikdev/mockifyr- Mock surface —
http://localhost:8080 - Admin API —
http://localhost:8080/__admin - Dashboard —
http://localhost:8080/__mockifyr
Create stubs in the dashboard, or import a WireMock bundle. Runs on linux/amd64 and linux/arm64
(Apple Silicon included).
Keep your stubs across restarts — docker compose up, or a named volume (both identical on every OS):
docker compose up # stubs live in ./mappings, next to you
docker run -p 8080:8080 -v mockifyr-data:/work/mappings ghcr.io/omercelikdev/mockifyr # named volumePreload / edit stub files on your host (advanced) — bind-mount a folder of WireMock *.json. Only
the path syntax differs per shell; nothing else changes:
docker run -p 8080:8080 -v "$PWD/mappings:/work/mappings" ghcr.io/omercelikdev/mockifyr # macOS / Linux
# PowerShell: -v "${PWD}/mappings:/work/mappings" CMD: -v "%cd%/mappings:/work/mappings"Files load into the default tenant; for a named tenant (e.g. maestro) use the dashboard Import,
or POST to /__admin/mappings/import with an X-Mockifyr-Tenant header. Durable datastores:
docker compose -f docker-compose.postgres.yml up # PostgreSQL persistence
docker compose -f docker-compose.redis.yml up # Redis persistencedotnet run --project src/Mockifyr.Server -- --port 8080 --root-dir . # stubs load from ./mappingsThe dashboard is opt-in via --dashboard; omit it to serve just the mock surface + admin API.
# Local
dotnet run --project src/Mockifyr.Server -- --port 8080 --root-dir . # stubs load from ./mappings
# From the image (override the entrypoint to drop the built-in --dashboard)
docker run -p 8080:8080 -v "$PWD/mappings:/work/mappings" --entrypoint dotnet \
ghcr.io/omercelikdev/mockifyr:latest Mockifyr.Server.dll --port 8080 --root-dir /workOr embed the engine directly in-process with the Mockifyr.Facade.Library package — no HTTP at all.
Everything is a CLI flag. The common ones:
| Flag | Effect |
|---|---|
--port <n> |
mock-serving HTTP port (default 8080) |
--https-port <n> |
enable HTTPS / HTTP2 |
--root-dir <dir> |
load and persist stubs as JSON files |
--dashboard <dir> |
serve the built dashboard under /__mockifyr |
--admin-user <u> · --admin-pass <p> |
require HTTP Basic auth on the admin API (/__admin/*); the dashboard shows a login screen |
--postgres <connstr> · --redis <connstr> · --litedb <path> |
durable persistence backend |
--change-feed |
keep multiple instances coherent |
The hot path is always in-memory; a durable backend is opt-in and writes through.
- Architecture & design — ARCHITECTURE.md
- Roadmap — docs/roadmap.md · decisions — docs/decisions/
- This is an AI-driven repository; how work is done here — CLAUDE.md
Contributions are welcome. Read CLAUDE.md for the development workflow and conventions,
then open a PR against main. Builds must stay green — dotnet build and dotnet test, plus the
dashboard's pnpm build.
Licensed under the Apache License, Version 2.0 — see LICENSE and NOTICE.