Before you start
You need:- A PostgreSQL database reachable by the service, with permission to apply the repository’s migrations.
- A stable public HTTPS URL for the dashboard and connector webhooks, with TLS handled by your hosting platform or reverse proxy.
- A securely stored
MESH_AGENT_MASTER_KEYbefore saving credentials. Preserve the same value across restarts and restores, outside the database. - Access to the public Formation container image, or access to the source repository to build it yourself.
ghcr.io/texturehq/formation:latest. For repeatable deployments,
pin an image digest or a commit tag produced by the repository’s image workflow.
The current workflow builds Linux AMD64 images.
Start the service
Supply your database URL and master key through your hosting platform’s secret settings or shell environment. The following assumesDATABASE_URL and
MESH_AGENT_MASTER_KEY are already set:
https://mesh.example.com with your installation’s actual URL and route
it to the container. Formation listens on HTTP_ADDR; it does not read a platform’s
PORT variable. Migrations run at startup by default. Agent state and encrypted
credentials live in PostgreSQL, so preserve the database when replacing a container.
Check GET /health for process liveness, then open the dashboard. Liveness does
not verify that every connector, model provider, or execution backend is working.
Essential configuration
Agent names, model selections, and connector credentials are configured in the
dashboard, not as per-agent environment variables. The process-level
OPENROUTER_API_KEY is a legacy fallback, not the normal setup path: it is used
only with local authentication, only for agents inheriting instance defaults, and
only until instance model defaults are saved in the dashboard.
For advanced deployment options, consult the repository’s
environment example (repository)
and configuration loader (repository).