# Introduction

Ceryx is an HTTP/S gateway programmable via a JSON API. It has a simple, robust architecture and can handle millions of routes.


## What Ceryx does

Ceryx sits in between your services and your end users (people or agents), routing routes every request by its hostname.

- **Dynamic routing.** A route maps a source hostname (e.g. `logic.fakos.cloud`), to a target (e.g. `http://fakos-cells-00-logic:8000`). Ceryx proxies or redirects requests to the target.
- **Programmable with an API.** Routes are configured with a JSON API over HTTP. Changes apply to the next request. No config files or reloads needed.
- **Automatic HTTPS.** Ceryx gets a Let's Encrypt certificate the first time a domain is visited over HTTPS, and renews it before it expires. You can bring your own certificates too.

Ceryx also supports HTTP/2, WebSockets and mTLS client authentication

## Where to go next

- [Quick start](/docs/quick-start): run Ceryx on your machine and route your first hostname in a few seconds.
- [Deploy to production](/docs/deploy): run Ceryx on a server and serve your own domains over HTTPS.
- [Use cases](/docs/use-cases): step-by-step guides for preview deployments, agent environments, local development and more.
- [Architecture](/docs/concepts/architecture): what runs inside the container, and how the parts fit together.
- [How routing works](/docs/concepts/routing): what happens to a request on its way through Ceryx.
- [API reference](/docs/api): every endpoint, with examples.

## Docs for agents

Every page is also available as Markdown: add `.md` to its URL, or use **Copy page** or **View as Markdown** at the top of the page. The [OpenAPI spec](/docs/api/openapi.yaml) describes the API.
