Skip to main content

Deploying Coral Server

The first step to running Coral Server in production is having a proper deployment of it. Exactly how you manage & deploy it depends on your application, but we offer a docker image for Coral Server, and support orchestrating agents via Docker. Coral Server reads its main configuration from a TOML file specified by the CONFIG_FILE_PATH environment variable. When running from our provided Docker image, set CONFIG_FILE_PATH to /config/config.toml and mount a directory there. Agent discovery (the “registry”) is configured inside config.toml via registry.localAgents glob patterns that point to directories containing coral-agent.toml files. There is no separate REGISTRY_FILE_PATH or registry.toml file. For that reason - the easiest way to configure Coral Server, is by creating a config folder & mounting that to /config when running:
Example config.toml snippet to scan your mounted agents directory:
Our provided docker image is very minimal! This means you should not (and usually can’t) run agents through the executable runtime - and should use Docker orchestration instead.This is intended, as Docker orchestration is more stable, reproducible & portable - well suited for production.
See Docker in Docker for steps to support Docker orchestration from inside Docker

Java

Clone the repo and build the jar file:
During development, a default config.toml may be bundled as a resource. There is no separate registry.toml; instead, agent discovery is configured via registry.localAgents inside config.toml. Coral Server reads its main configuration from the path in CONFIG_FILE_PATH. For local development, a default config.toml may be bundled as a resource, but there is no separate registry.toml. Configure agent discovery via registry.localAgents inside config.toml. In production, we recommend you set CONFIG_FILE_PATH to somewhere more easily accessible (and not in the cloned repo folder):
You should also consider writing a systemd service (or something similar) that runs your jar file for more reliable deployments.