Open Koyeb deploy
Deploy-button guide for Koyeb using the public Docker image, manual Postgres
URL, and runtime secrets.
Overview
Koyeb can deploy Manifest from the public Docker image with a Deploy to Koyeb button. The button pre-fills the image, HTTP port, and runtime settings, but you must create PostgreSQL separately and replace the placeholder secrets before deploying.Prerequisites
- A Koyeb account on a paid plan (Pro or higher) with a valid payment method. Since Koyeb joined Mistral AI, deploying requires a paid plan: on an account without one, the deploy link shows an announcement banner instead of the form.
- A Koyeb PostgreSQL Database Service.
- Two random 32+ character secrets for Manifest.
- A private S3-compatible bucket and an access key for it. Koyeb instances have no persistent disk, so request logs need external storage.
Create PostgreSQL
In Koyeb, create a PostgreSQL Database Service in the same region you plan to use for Manifest. After it is ready, open the database connection details and copy the connection string. Manifest uses TLS to connect to Koyeb Postgres, so includesslmode=require in the connection string. If the copied URL has no query string, append ?sslmode=require. If it already has query parameters, append &sslmode=require.
Generate secrets
Generate separate values for session signing and at-rest provider credential encryption:Deploy Manifest
- Open the Koyeb deploy link.
- Replace
DATABASE_URLwith your Koyeb Postgres connection string. - Replace
BETTER_AUTH_SECRETwith the first generated secret. - Replace
MANIFEST_ENCRYPTION_KEYwith the second generated secret. - Replace the
REQUEST_RECORDING_S3_*placeholder values with your bucket, region, endpoint, and access keys. Leave the endpoint blank only for AWS S3. - Leave
BETTER_AUTH_URLashttps://{{ KOYEB_PUBLIC_DOMAIN }}. - Leave
PORT,MANIFEST_MODE,BIND_ADDRESS,DB_POOL_MAX,AUTH_DB_POOL_MAX, andREQUEST_RECORDING_STORAGEunchanged for a single-instance deploy. SetREQUEST_RECORDING_S3_FORCE_PATH_STYLEtotrueonly if your object-storage provider requires path-style URLs. - Deploy the service.
docker.io/manifestdotbuild/manifest:6 and exposes port 2099 over HTTP.
Open Manifest
After the deployment is live, open the public Koyeb domain and create the first account. Fresh installs redirect to/setup; the first account you create becomes the admin.
Verify the deployment:
Notes
- Koyeb instances have an ephemeral filesystem, which is why the deploy link collects S3-compatible storage for request logs. Recordings live in your bucket, not on the instance.
Tearing it down
Delete both resources when you are done:- The Manifest Koyeb Web Service.
- The Koyeb PostgreSQL Database Service.