DEPLOY · GITHUB

Paste a repo URL. Get a running app.

The AI Assistant inspects your repo, picks the right runtime version, builds, runs, and wires nginx + Cloudflare DNS + SSL. Push to main lands a zero-downtime redeploy.

cloudnan.com / dashboard / deploy / github

Deploy from GitHub

AI-assisted, auto-detected runtime, one-click ship.

Connected

Detected framework

Next.js 15.0

Runtime

Node 22 (mise)

Deployment progress

  • Cloning ericsson/landing-app#main✓
  • Installing Node 22 via mise✓
  • Running npm ci✓
  • Building (next build)✓
  • Configuring nginx + SSL via Cloudflare✓
  • Starting under systemd

Webhook registered — push to main triggers auto-redeploy.

How it works

What happens under the hood.

  1. 01

    Paste a GitHub URL

    AI Assistant clones (or uses your installed GitHub App for private repos) and reads package.json, requirements.txt, go.mod, etc.

  2. 02

    Detect framework + runtime

    Next.js, Astro, Express, Laravel, Django, Go binary, static site — auto-detected. Asks you the runtime version when ambiguous.

  3. 03

    Install runtime if needed

    Mise installs the requested Node / PHP / Python / Go version per project — no global state, no version conflicts between deployments.

  4. 04

    Build + start

    Runs your build command, starts the app under systemd, captures logs into the panel's deployment view.

  5. 05

    nginx + DNS + SSL

    Reverse proxy block generated, Cloudflare DNS record created (when connected), SSL provisioned via Let's Encrypt — all in the same chat turn.

  6. 06

    Webhook auto-redeploy

    Cloudnan registers a GitHub webhook. Push to main triggers a fresh build + zero-downtime swap. Logs stream live into the conversation.

What you get

The capabilities that ship.

Public + private repos

GitHub OAuth or per-deployment fine-grained PATs. Cloudnan never stores your full GitHub token longer than needed for the install.

Per-app isolation

Each deployment gets its own systemd service, log directory, env file, and port. Multiple apps coexist on one box without colliding.

Build cache

node_modules / pip packages / go module cache survive between deploys. First deploy is slow; subsequent ones land in seconds.

Custom build / start commands

Override the auto-detected commands when your monorepo or build pipeline needs them.

Rollback on failure

Failed builds keep the previous version running. The deployment view shows what broke; one click rolls back the systemd unit.

Audit log

Every deploy invocation is logged to the AI conversation + the activity timeline. See who deployed what, when, and from which commit.

FAQ

Common questions.

Which frameworks are supported?
Next.js, Astro, Nuxt, SvelteKit, Express, Fastify, Laravel, Django, Flask, FastAPI, Go binaries, static sites, and anything that builds-then-runs. The runtime detector reads your package.json / requirements.txt / go.mod and picks the right Mise version.
Does it work with monorepos?
Yes — when ambiguous, the AI asks which package.json / module to deploy. Custom build + start commands let you target a specific subdirectory.
Where does it deploy to?
Any server you have an agent on. The AI can deploy to a managed VM you bought through Cloudnan, or your own bring-your-own-server box.
How does the webhook work?
Cloudnan registers a GitHub webhook on your repo with a per-deployment HMAC secret. Pushes to main hit our control plane, which dispatches a redeploy job to the agent. Failed deploys keep the previous version running.
Can I deploy without the AI?
Yes. The same flow exists in the dashboard as a click-driven form. AI is the shortcut, not the only path.

Your fleet deserves better.

Get started in minutes.

Deploy agents on your servers, connect securely, and take full control. Start free, upgrade when ready.

  • 7-day free trial
  • No credit card
  • Cancel anytime