Frameworks
Deploxa auto-detects your framework from your repository and pre-configures the build pipeline. You can override any detected setting in project settings.
How detection works
Deploxa scans the root of your repository for config files and dependency names in package.json or requirements.txt. The first matching rule wins. If nothing matches and a Dockerfile exists, Docker mode is used. You can always manually select a framework in project settings.
| Framework | Detection signal | Build command | Output dir | Notes |
|---|---|---|---|---|
| Next.js | next.config.js / next.config.ts | next build | .next | Static export and server components supported. |
| React (Vite) | vite.config.ts + react plugin | vite build | dist | SPA mode. Configure base URL if deploying to a subpath. |
| Remix | remix.config.js | remix build | build | Remix v2 (Vite) and v1 (classic) both detected. |
| Gatsby | gatsby-config.js | gatsby build | public | Static site generation. Gatsby 4+ recommended. |
| Framework | Detection signal | Build command | Output dir | Notes |
|---|---|---|---|---|
| Nuxt | nuxt.config.ts | nuxt generate | .output/public | Static generation (nuxt generate). Server mode coming soon. |
| Framework | Detection signal | Build command | Output dir | Notes |
|---|---|---|---|---|
| SvelteKit | svelte.config.js | vite build | build | Use the static adapter for static output. |
| Solid (SolidStart) | app.config.ts (solid-start) | vinxi build | .output | Static preset required for Deploxa. |
| Qwik | qwik.config.ts | qwik build | dist | Qwik City static adapter. |
| Framework | Detection signal | Build command | Output dir | Notes |
|---|---|---|---|---|
| Angular | angular.json | ng build | dist/<project> | Set output directory to match your project name. |
| Astro | astro.config.mjs | astro build | dist | Static output mode. Server mode not yet supported. |
| Eleventy | .eleventy.js | eleventy | _site | Eleventy 2.0+ recommended. |
| Docusaurus | docusaurus.config.js | docusaurus build | build | Documentation sites. Works out of the box. |
| Framework | Detection signal | Build command | Output dir | Notes |
|---|---|---|---|---|
| FastAPI | requirements.txt + fastapi import | — | — | Deployed as a containerized ASGI app via Uvicorn. |
| Flask | requirements.txt + flask import | — | — | WSGI app wrapped with Gunicorn. |
| Django | manage.py + django import | python manage.py collectstatic | staticfiles | Static files served via WhiteNoise. |
| Starlette | requirements.txt + starlette import | — | — | Lightweight ASGI. Same deployment path as FastAPI. |
| Framework | Detection signal | Build command | Output dir | Notes |
|---|---|---|---|---|
| Hono | package.json + hono dependency | tsc / vite build | dist | Edge-first framework. Deployed as a Node.js server. |
| Adonis | .adonisrc.json | node ace build | build | Full-stack MVC. Set NODE_ENV=production. |
| Framework | Detection signal | Build command | Output dir | Notes |
|---|---|---|---|---|
| Docker | Dockerfile | docker build | — | Any language, any runtime. Full Docker support with multi-stage builds. |
Go to Project → Settings → Build & Output to manually configure:
If your project has a Dockerfile in the root, Deploxa builds and runs it as a container. This supports any language or runtime — Rust, Go, Ruby, PHP, Java, and more.
Example Dockerfile (Node.js)
FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build EXPOSE 3000 CMD ["node", "dist/server.js"]
Your container must listen on the port specified by the PORT environment variable (injected automatically at runtime). Expose any port in your Dockerfile — Deploxa routes traffic to it.