Skip to content

Deploy from an upload

Don’t want to use git? Upload your code directly. Helicarrier takes a folder (or a .zip/.tar.gz archive), uses it as the build context, and builds it through the same pipeline as a git repo — Railpack zero-config, or your own Dockerfile if the upload has one.

Click + New → Upload a folder or archive, then either:

  • Choose folder — pick a project folder. It’s packed up in your browser and uploaded. Heavy or machine-local directories (node_modules, .git, .next, dist, build, .venv, __pycache__, …) are skipped automatically — Helicarrier reinstalls dependencies at build time.
  • Choose archive (or drag one onto the box) — upload a .zip or .tar.gz you already have.

Then set the service type (web, static, worker, cron, …), an optional build/start command or root directory, add environment variables, env groups, and secret files if you need them, pick a plan, and Stage service. Like every other create, it’s staged as a change you review and apply — the build runs on apply.

  • Redeploy rebuilds from the last upload you stored — no need to re-upload just to redeploy.
  • To ship changed code, use Re-upload & deploy on the service and pick the new folder/archive; it replaces the build context and redeploys.
  • Rollback works exactly as it does for any service — it redeploys a previous build’s image within the rollback window.

Agents can deploy an upload without git using the deploy_upload tool — pipe your project folder as a base64-encoded .tar.gz. See Connect your agent (MCP). Keep the archive to source only (exclude node_modules/.git); very large contexts should use the dashboard.

  • The upload is stored on your Helicarrier host and reused for redeploys; it isn’t a git repo, so there’s no branch or auto-deploy-on-push.
  • Dashboard uploads can be up to 500 MB; the agent (base64) path is capped smaller — send source, not build output.