Skip to main content
Use Unkey when you want Docker-based deployment with automatic domains, preview environments, rollbacks, and Sentinel in front of your Redop app.

Before you start

This guide assumes:
  • your server uses the HTTP transport
  • the app binds 0.0.0.0
  • the app reads PORT from process.env.PORT
  • your repository includes a Dockerfile
If you scaffolded with create-redop-app --transport http --deploy unkey, the starter already generated:
  • a production Dockerfile (compiled Bun binary)
  • a listener on PORT (default 8080) with health: true
  • README deploy commands for GitHub and unkey deploy
If you still need a container setup from scratch, start with Deploy with Docker and come back once your Redop app builds cleanly in Docker. If your Redop app lives inside a monorepo, use the monorepo production image pattern from Deploy with Docker and point Unkey at that Dockerfile.

Unkey fit

Example listener shape

Use a listener like this so the same app works locally and on Unkey:
If you want Unkey to probe a dedicated health endpoint, enable one explicitly:

Example Dockerfile

Unkey Deploy expects a Dockerfile. Use a compiled production image so Unkey runs a single built executable:
If your Redop app lives inside a monorepo, replace the example copy steps and entry path with your real workspace layout by following the monorepo production image example in Deploy with Docker.

Deploy steps

  1. Push your Redop project to GitHub.
  2. In Unkey, create a new project and choose your repository.
  3. Review the build settings:
    • set the root directory if your Redop app is inside a monorepo
    • point Unkey at the correct Dockerfile
    • add watch paths if you only want specific folders to trigger deploys
  4. Review the runtime settings:
    • keep the port aligned with your app listener
    • leave the command empty if you want to use the Dockerfile CMD
    • configure a health check path only if you enabled one in Redop
  5. Add environment variables in the Environment Variables tab.
  6. Click Deploy.
After the first deployment:
  • the default branch maps to production
  • other branches map to preview
  • each environment gets its own generated domain
  • production and preview can use different variables, regions, and Sentinel settings

Variables and redeploys

Use Unkey environment variables for secrets and environment-specific configuration such as database URLs, API keys, and feature flags. Keep in mind:
  • variables are scoped per environment
  • keep preview and production values separate
  • after changing variables, trigger a new deployment if you want the new values applied immediately

Verify the deployment

Use the generated Unkey production or preview URL from the dashboard:
What success looks like:
  • the deployment URL answers over HTTPS
  • /mcp returns a valid JSON-RPC initialize response
  • the response includes serverInfo from your Redop app
If you enabled Sentinel API key enforcement in Unkey, include the headers required by that policy when you test.

Next