Skip to content

omercelikdev/mockifyr

Repository files navigation

Mockifyr

CI Release Image License: Apache-2.0

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.

Quick start

Docker — one image (engine + admin API + dashboard)

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 restartsdocker 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 volume

Preload / 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 persistence

Local (.NET 10 SDK)

dotnet run --project src/Mockifyr.Server -- --port 8080 --root-dir .   # stubs load from ./mappings

Engine only (no dashboard)

The 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 /work

Or embed the engine directly in-process with the Mockifyr.Facade.Library package — no HTTP at all.

Configuration

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.

Documentation

Contributing

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.

License

Licensed under the Apache License, Version 2.0 — see LICENSE and NOTICE.

About

An independent, .NET-based API mock engine + platform.

Topics

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages