Docs · Boot detection

How Omea decides to boot your app.

Before anything runs, Omea inspects your repo and picks a boot recipe. Detection checks a fixed, ordered list of signals — the first match wins.

Detection order

  1. docker-compose.yml or docker-compose.yaml — boots with docker compose up --build then docker compose up. This is a presence check only: Omea does not parse the compose file's own services or ports, it hands the file to Docker Compose and lets Compose interpret it.
  2. .devcontainer/devcontainer.json — boots with devcontainer up. Same presence-only check; your devcontainer's own build and postCreate commands run as written.
  3. package.json — runs Node inference (below).
  4. omea.yaml — a manual, explicit recipe, read only if none of the above matched. It does not merge with inference; it fully replaces it.
  5. None of the above — detection fails rather than guessing.

Node inference

When package.json exists, Omea infers a recipe from it directly:

Databases: the Prisma/Postgres heuristic

If prisma/schema.prisma exists and its text contains provider = "postgresql", Omea adds a Postgres service, injects a DATABASE_URL, and runs your db:setup script if you have one (otherwise npx prisma db push). This is a narrow, literal string match on that one provider line — not general database detection, and not a guarantee for other ORMs or databases.

What's not detected yet

Read next