> ## Documentation Index
> Fetch the complete documentation index at: https://docs.instapods.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy a Lovable app

> Connect a Lovable project to GitHub, point a pod at the repo, and auto-deploy your full-stack app to a real Linux server on a flat monthly price.

Lovable builds the app; InstaPods runs it. The flow is three steps: connect your Lovable project to GitHub, point a pod at the repo, and let auto-deploy take over. Every change you make in Lovable pushes to GitHub, and InstaPods rebuilds and redeploys within a minute - on a real Linux server with HTTPS, SSH access, an optional managed database, and a flat monthly price instead of usage-metered hosting.

<Note>
  Lovable now meters both **building** and **running** your app out of one credit balance, including a "run credits" category that bills your deployed app's database, storage, and network usage continuously. If that is what pushed you here, you can also stop building inside Lovable and [build with a coding agent in your browser](/guides/ai-builder) on your own Claude or Codex subscription. The full breakdown is in [Lovable run credits explained (and the fix)](https://instapods.com/blog/lovable-run-credits/). This guide covers the simpler case: hosting a Lovable export.
</Note>

## What you need

* A Lovable project (any plan, including free).
* A GitHub account - Lovable pushes your source here, and InstaPods deploys from it.
* An InstaPods account with a payment method on file. Your first card add grants a one-time \$10 credit.

## Deploy in three steps

<Steps>
  <Step title="Connect Lovable to GitHub">
    In your Lovable project, click the **GitHub** icon in the top bar and connect your GitHub account, then transfer the project. Lovable creates a private repo with all your source and auto-commits to it on every change from now on.

    This is free and needs no paid Lovable or GitHub plan.
  </Step>

  <Step title="Create a Node.js pod">
    At [app.instapods.com](https://app.instapods.com), click **New Pod**:

    * **Preset:** **Node.js** - Lovable apps are Vite + React on Node under the hood.
    * **Plan:** **Launch ($3/mo)** handles most Lovable apps. Choose **Build ($7/mo)** if you want a database in the same pod or your build needs more memory.
    * **Region:** pick the closest (EU and US available).
    * **Name:** becomes the pod's subdomain.

    The pod launches in seconds - no provisioning wait.

    <Frame caption="Create wizard: Custom Code, Node.js preset (version selectable).">
      <img src="https://mintcdn.com/instapods/nOD-N6GZ1x2tPsvf/images/lovable-step2-create-pod.png?fit=max&auto=format&n=nOD-N6GZ1x2tPsvf&q=85&s=70b72ba05771ba62dc8ba92aaa1b81f3" alt="InstaPods create-pod wizard with Custom Code selected and the Node.js preset highlighted" width="1280" height="577" data-path="images/lovable-step2-create-pod.png" />
    </Frame>
  </Step>

  <Step title="Connect the repo and deploy">
    In the pod's **Git** tab, click **Connect GitHub Repository**, install the InstaPods GitHub App (one-time per account), select the repo Lovable created, and click **Deploy**.

    InstaPods pulls the code, runs the install and build it auto-detects for a Vite app, and starts the server. Your app goes live at `https://<pod-name>.<region>.instapods.app` with HTTPS auto-issued.

    <Frame caption="The pod's Git tab before connecting a repository.">
      <img src="https://mintcdn.com/instapods/nOD-N6GZ1x2tPsvf/images/lovable-step3-git-connect.png?fit=max&auto=format&n=nOD-N6GZ1x2tPsvf&q=85&s=d332299809e3dd32f0dfb89666325101" alt="InstaPods pod Git tab showing the Git Deployment card with a Sign in with GitHub button" width="1280" height="577" data-path="images/lovable-step3-git-connect.png" />
    </Frame>

    <Tip>
      Prefer the terminal? One command does the same thing: `instapods git connect my-app --repo https://github.com/you/your-lovable-repo --deploy`. See [Git deployment](/guides/git-deployment).
    </Tip>
  </Step>
</Steps>

## Auto-deploy on every change

After the one-time setup you never touch deployment again. InstaPods watches the repo through the GitHub App webhook, so the loop is:

1. You make changes in Lovable.
2. Lovable commits to GitHub.
3. InstaPods detects the push, pulls, rebuilds, and redeploys - your live site reflects the change in about 30-60 seconds.

If a deploy fails (a build error or a missing env var), InstaPods keeps the previous version running and surfaces the failure in the dashboard, so a bad commit never takes your site down. You can also [roll back](/guides/git-deployment#rollback) to any earlier deploy instantly.

## Environment variables

Lovable's preview environment injects keys for Supabase, OpenAI, and other services; production needs them set on the pod. Set them from the CLI and reload:

```bash theme={null}
instapods env set my-app VITE_SUPABASE_URL=https://xyz.supabase.co VITE_SUPABASE_ANON_KEY=ey...
instapods pods reload my-app
```

<Warning>
  Vite only exposes variables prefixed with `VITE_` to client-side code. If your Supabase calls work in Lovable's preview but fail in production, you are almost always missing a `VITE_`-prefixed variable. Copy the exact names from your Lovable project's environment, prefix and all.
</Warning>

See [Environment variables](/guides/environment-variables) for the full reference.

## Add a database

If your Lovable app already uses Supabase, keep it - just point the app at your Supabase URL and key via env vars (above).

To run everything in one pod instead, add a managed database from the pod's **Services** tab - **PostgreSQL**, **MySQL**, or **Redis**. Credentials are auto-generated and exposed to your app, with no per-database billing on top of the pod's flat price. See [Services](/services/overview).

## Custom domain

Map any domain you own to the pod with a single CNAME and SSL is auto-issued - no certbot, no DNS challenges. Multiple domains per pod are supported. See [Custom domains](/dashboard/custom-domains).

## Common issues

<AccordionGroup>
  <Accordion title="Build runs out of memory">
    Lovable apps with heavy dependencies (chart libraries, large icon sets, complex UI kits) can exhaust the Launch plan's build memory. Move the pod to the **Build plan (\$7/mo)** for more build RAM - the running app is usually fine on Launch afterward.
  </Accordion>

  <Accordion title="npm install fails on peer-dependency conflicts">
    Set a custom build command that relaxes peer-dep resolution, then redeploy:

    ```bash theme={null}
    instapods git connect my-app \
      --repo https://github.com/you/your-lovable-repo \
      --build-cmd "npm install --legacy-peer-deps && npm run build"
    ```
  </Accordion>

  <Accordion title="App is up but the URL shows a 502">
    InstaPods auto-detects the port your app listens on, but if your server hardcodes one (Lovable's local dev defaults to `8080`), read it from the environment instead so the orchestrator can route to it:

    ```javascript theme={null}
    const port = process.env.PORT || 8080;
    ```
  </Accordion>

  <Accordion title="Supabase calls fail only in production">
    This is an environment-variable problem, not a code one - see [Environment variables](#environment-variables) above. Check the pod's variables against what Lovable's preview had, including the `VITE_` prefix.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Build with AI in your browser" icon="robot" href="/guides/ai-builder">
    Skip Lovable's credits entirely and build on your own Claude or Codex subscription.
  </Card>

  <Card title="Git deployment" icon="code-branch" href="/guides/git-deployment">
    Branch settings, build commands, deploy history, and rollback.
  </Card>

  <Card title="Import from AI builders" icon="file-import" href="/guides/import-artifacts">
    Deploy a Bolt, v0, Claude, or ChatGPT export without a repo.
  </Card>

  <Card title="Environment variables" icon="key" href="/guides/environment-variables">
    Configure Supabase keys, API keys, and secrets per pod.
  </Card>
</CardGroup>
