Skip to content

Drone and frameworks

When you create an app, you choose how it’s built: with Drone or with a framework preset.

Drone reads your code, builds your app and deploys it, fixing problems along the way. No configuration.

Pick Deploy with Drone in the console, or use hivepod deploy (Drone is the default there). While it works, you’ll see its progress:

  • Reading your code
  • Building
  • Fixing a problem (attempt n), if something needs fixing
  • Live

On later deploys Drone reuses the setup from your last successful deploy, so redeploys are quick.

Each Drone deploy that needs the AI counts as one run, however many fixes it makes. Check my code previews also count as one run. Redeploys that reuse a saved setup, and code Drone refuses before building, don’t count. There is a daily limit per account (lower for brand-new accounts); if you reach it, the console says so. Try again later, or pick a framework preset instead.

When Drone sees that your app can’t start without certain variables, it stops and lists them: “Your app needs these environment variables: …”. Add them in the app’s settings and click Save and redeploy.

Drone deploys web apps, APIs, static sites and full-stack apps. It stops before building (so no build minutes are used) if your code looks like something else:

Drone says it looks like… What to do
a command-line tool Run it in a HivePod, or add a web interface or API.
a library Use it from an app you deploy, or run it in a HivePod.
a background worker Run it in a HivePod for now.
a mobile or desktop app Deploy its backend or its web build by setting the Root directory to that folder.
a notebook Turn it into a web app or API (for example with Streamlit, Gradio or FastAPI).
an empty repository Push your code, or set the Root directory to the folder that contains it.

In a monorepo, Drone often points you at the right folder: “The web folder looks like a web app or API: set the Root directory to web and deploy again.” The console has a Set root directory button for this.

If Drone tries and still can’t get your app live, you’ll see:

Drone couldn’t get this app live yet. Our team has been alerted and will look into it.

The full build log shows what happened. For help, email partners@dockhive.io with your app’s name. You can also try a framework preset.

Pick a preset if you want to control the install, build and start commands yourself. The wizard detects your framework and pre-selects it.

Preset Notes
Next.js Served by next start (or the standalone server).
Nuxt Nuxt 3.
SvelteKit With adapter-node; adapter-static is served as static files.
React Single-page app (Vite or Create React App).
Vue Single-page app.
Svelte Svelte (Vite) single-page app.
Angular
Vite Any Vite static build.
Express Also Fastify, Koa and Hapi.
NestJS
Node.js Any Node.js server started by npm start or its main file.
Django
Flask
FastAPI
Python Any Python web process.
Go A Go module.
Laravel Set APP_KEY in your environment variables.
PHP Plain PHP.
Ruby on Rails Set SECRET_KEY_BASE in your environment variables.
Static site Plain HTML, CSS and JavaScript.
Dockerfile Uses your repository’s own Dockerfile.

Runtime versions: Node.js 20, 22 (default) or 24, picked from engines.node in package.json; Python 3.9 to 3.13 (default 3.12), picked from .python-version or runtime.txt; Go 1.24; PHP 8.3; Ruby 3.3.

Under Advanced Settings (and later in Builds & Settings) you can set:

  • Install, build and start commands.
  • Port: the port your app listens on. Leave it empty to auto-detect. Your app should listen on 0.0.0.0 and the port in the PORT environment variable, which DockHive sets for you.
  • Health Check Path: a new version goes live only after this path answers.

You can switch an existing app between Drone and a preset in Builds & Settings, then redeploy.