coral: Docker image with the Coral server. This includes the runtime, provider configuration, policies, authentication server and MCP server.coral-web: The UI you and your team can use to execute Coral management actions.
Before you start
- Make sure you have an OIDC compatible identity provider: Self-hosted Coral requires that you have your own IdP that Coral can use to authenticate users. Any OIDC compatible IdP will work, so if you use Okta, Google Workspace or WorkOS you’re already good to go. You will need to configure an application on your IdP for Coral.
- Choose your backing DB: Coral supports both SQLite and Postgres, with SQLite as the default. Choose what’s appropriate for your setup.
- TLS termination: Coral requires the usage of TLS for user-facing connections, but Coral itself does not provide TLS support. You can use your preferred reverse proxy (e.g. nginx, envoy) or use Caddy if you don’t have any.
- Public endpoints: Coral uses three endpoints that must be visible to the user’s system. We will use
<coral-host>as the placeholder for the root domain of your Coral deployment:
<coral-host>: URL for thecoral-webUI.auth.<coral-host>: Auth endpoint, used by bothcoral-weband the MCP server to authenticate users.mcp.<coral-host>: MCP server endpoint.
Upgrade from Coral 0.x
Coral 1.0 is a ground-up rewrite. Your agents now write TypeScript programs that call your providers, where 0.x ran SQL queries over sources. You manage Coral in the Coral UI instead of withcoral commands, and your agents connect to the MCP server over HTTP instead of stdio.
That makes 1.0 a breaking change. It starts from fresh state and doesn’t convert what 0.x stored, so your 0.x setup stays as it is until you’re ready to switch.
When the Coral 1.0 runtime starts on a configuration folder or a database that an earlier version wrote, it stops and reports an error such as:
config.toml there.
To start Coral 1.0:
- Stop the old Coral. Copy its configuration folder, or its volume, and keep the copy for as long as you need it.
- Give Coral 1.0 fresh state. Set
CORAL_CONFIG_DIRto an empty folder or, in containers, mount a new volume. With Postgres, point Coral at an empty database. - Write a new configuration from the configuration reference, or follow one of the guides below. Coral 1.0 rejects a 0.x configuration file.
- Start Coral, then add your providers and connect your accounts again.
- Point your agents’ MCP clients at the new MCP endpoint.