Skip to main content

Auto-Detection

Makofy automatically detects your project type, framework, package manager, and environment variable requirements.

Project type detection

Detection happens during the build phase. The init container inspects your source code in this order:

  1. Dockerfile — if present, used as-is
  2. package.json — Node.js (further inspected for framework)
  3. go.mod — Go
  4. requirements.txt / pyproject.toml / Pipfile — Python
  5. Gemfile — Ruby
  6. index.html — Static HTML
  7. frontend/ + backend/ — Monorepo

Node.js framework detection

Detected dependencyFrameworkBuild strategy
nextNext.jsStandalone build, node server.js
vite, @vitejs/*ViteStatic build → nginx
react-scriptsCreate React AppStatic build → nginx
svelteSvelteKitStatic build → nginx
astroAstroStatic build → nginx
express, fastifyNode.js servernpm start

Package manager detection

Lock filePackage managerInstall command
bun.lockbBunbun install --frozen-lockfile
pnpm-lock.yamlpnpmpnpm install --frozen-lockfile
yarn.lockYarnyarn install --frozen-lockfile
(none)npmnpm ci

Environment variable scanning

During the build, Makofy scans all source files (excluding node_modules/, vendor/, .git/, __pycache__/) for references to environment variables. The scan runs after cloning and before Dockerfile generation.

Results are stored on the app record and displayed in the dashboard's Env tab.

Overriding detection

To override auto-detection, add a Dockerfile to your project root. If a Dockerfile exists, Makofy always uses it instead of generating one.