FAQ

Common questions.

Everything you need to know before buying. Can't find the answer? Drop us a line.

What's the difference between the five kits?

The MongoDB kit is the clean foundation — persistence, pagination, error handling, Docker. The MongoDB + Redis kit adds the full cache-aside layer with tag-based invalidation. The MongoDB + Keycloak kit adds JWT auth, role policies, and OAuth2 PKCE in Swagger. The MongoDB + Keycloak + Redis kit is the full stack — auth and cache, fully integrated. The MongoDB + Keycloak + Redis + Garage kit adds a complete S3 file storage layer on top: three access modes (Public, PresignedUrl, Proxy), per-bucket configuration, and compatibility with AWS S3, Garage or any S3-compatible backend.

Which .NET version is included?

Every kit ships for both .NET 8 (C# 12) and .NET 10 (C# 14) at the same price. At checkout you choose which version you want and receive that ZIP. Both variants are kept in sync with every update.

What do I receive after purchase?

A .zip file with the complete source code, delivered instantly to your email. Unzip, copy .env.example to .env, run docker compose up --build and you're running in under a minute. Detailed private documentation is also included.

Do I need Docker to run it?

For the base MongoDB kit — no. Docker is included for convenience but it runs fine with a local MongoDB instance. For the Redis, Keycloak, and Garage editions, Docker is strongly recommended for local development since those services run as containers. The Compose file handles everything automatically — one command starts the full stack.

Can I run the Redis kits without Redis?

Yes. Set Cache:Enabled = false in your environment and a NullCacheService no-op is injected instead of the real Redis client. Redis is never connected, the health check is automatically omitted, and no code changes are required. This lets you defer the Redis dependency for local development or simpler deployments.

Is it compatible with Valkey?

Yes. Valkey is wire-protocol compatible with Redis — StackExchange.Redis connects to it transparently, no code changes required. A docker-compose.valkey.yml is included in the kit using Valkey 7.2. To use it: docker compose -f docker-compose.valkey.yml up --build.

What is tag-based cache invalidation?

Every cached entry is tagged at three levels: entity type, entity ID, and custom tags you define. When you update or delete a document, the repository automatically invalidates all cache entries that share any of those tags. No manual cache management needed.

What is FailOpen / FailClosed?

FailOpen (default) — if Redis is unavailable, the request falls through to MongoDB transparently. The application keeps working. FailClosed — if Redis is unavailable, an error is returned. You choose the behaviour per-environment via config.

What is Garage and do I need it?

Garage is a self-hosted S3-compatible object store that runs as a Docker container alongside the rest of the stack. It's included in the Compose file so everything starts with one command. You don't need Garage specifically — the kit works identically with AWS S3 or any S3-compatible backend. Only the endpoint and credentials change.

What are the three access modes?

Public serves files via a direct URL, suitable for CDN-backed assets. PresignedUrl generates time-limited signed links — the expiry is configured per bucket. Proxy streams the file through the API: the bucket is never exposed to the client. Each bucket gets its own access mode independently.

Can I use AWS S3 instead of Garage?

Yes. The kit uses the standard AWS SDK for .NET (AWSSDK.S3), which works with any S3-compatible backend. To switch to AWS S3, update the endpoint, region, and credentials in appsettings.json. No code changes required.

How many buckets can I configure?

As many as you need. Each bucket is a named entry in appsettings.json with its own access mode, allowed content types, max file size, and optionally its own credentials. The kit ships with three pre-configured buckets (public-assets, product-images, private-files) as a starting point.

How many projects can I use this on?

Unlimited. One purchase covers you for as many projects as you want, for your entire team, forever. No per-seat pricing, no annual renewal.

Can I use it in commercial projects?

Yes. The license covers unlimited personal and commercial projects. The only restriction is that you cannot resell or redistribute the kit itself as a standalone template or boilerplate with little to no added work of your own.

Is there a refund policy?

Due to the digital nature of the product, refunds are handled case by case. If the product does not work as described, contact fenixkitdev@gmail.com within 14 days of purchase and we will resolve the issue or issue a refund.

How is payment processed?

All payments are processed securely by Lemon Squeezy. FenixKit does not store any payment or card information. Prices are listed in EUR and include applicable taxes where required.

Ready to skip the boilerplate?

Compare all five kits and pick the one that fits.

See pricing