> ## 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.

# 1-Click Apps

> Deploy ready-to-run self-hosted apps like n8n, AutoMem, and Vaultwarden in seconds, then configure them with environment variables.

1-Click Apps are popular open-source applications pre-packaged for InstaPods. Instead of writing code, you pick an app from the catalog and deploy it - the app is baked into a ready-to-run image, so it boots in seconds with sensible defaults and per-pod credentials already generated.

<Note>
  1-Click Apps run as a managed service inside your pod (their own systemd units), not from `/home/instapod/app`. You still get a Web Terminal, SSH, custom domains, and backups like any other pod.
</Note>

## Deploying an app

<Tabs>
  <Tab title="Dashboard">
    1. Click **Create Pod** and choose the **1-Click App** tab.
    2. Pick an app (n8n, AutoMem, Vaultwarden, Uptime Kuma, and more).
    3. Choose a plan. Each app has a minimum plan based on the resources it needs - the wizard preselects it for you.
    4. Fill in any optional setup fields the app exposes (for example, an API key), then click **Deploy**.

    When the pod is ready, the dashboard shows a **setup card** with the app URL and any generated credentials.
  </Tab>

  <Tab title="API">
    Pass `app_type` (and optional `app_config` for the app's setup variables) when creating a pod:

    ```bash theme={null}
    curl -X POST https://app.instapods.com/api/pods \
      -H "Authorization: Bearer YOUR_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "my-memory",
        "plan_slug": "grow",
        "app_type": "automem",
        "app_config": {
          "EMBEDDING_PROVIDER": "openai",
          "OPENAI_API_KEY": "sk-your-key"
        }
      }'
    ```

    The keys allowed in `app_config` are the app's setup variables (see the app's deploy form for the list).
  </Tab>
</Tabs>

<Warning>
  Each app declares a **minimum plan**. If you pick a plan below it, the deploy is rejected - choose at least the app's minimum (for example, AutoMem requires **Grow**).
</Warning>

## Configuring an app with environment variables

1-Click Apps read their configuration from their own env file (not the preset's `/home/instapod/app/.env`). The CLI handles this for you - `instapods env set` writes to the right file **and restarts the app** so the change takes effect immediately. No separate `reload` is needed.

```bash theme={null}
# Set one or more variables (the app restarts automatically)
instapods env set my-memory EMBEDDING_PROVIDER=openai OPENAI_API_KEY=sk-your-key

# List current variables (values masked by default)
instapods env list my-memory
instapods env list my-memory --show-values

# Remove variables
instapods env unset my-memory OLD_KEY
```

<Note>
  For custom-code pods (Static, PHP, Node.js, Python), `instapods env set` writes to your app directory and you restart with `instapods pods reload`. See [Environment Variables](/guides/environment-variables) for the full custom-code workflow.
</Note>

## Example: AutoMem embeddings and MCP

[AutoMem](https://github.com/verygoodplugins/automem) gives your AI assistant persistent memory over MCP, backed by a knowledge graph and a vector database.

### Choosing an embedding provider

By default AutoMem uses **local embeddings** (384-dimensional) - no API key required, fully self-contained. For higher-quality semantic search, point it at a remote provider:

| Provider        | `EMBEDDING_PROVIDER` | Key variable     | Dimensions |
| --------------- | -------------------- | ---------------- | ---------- |
| Local (default) | *(blank)*            | none             | 384        |
| OpenAI          | `openai`             | `OPENAI_API_KEY` | 1024       |
| Voyage AI       | `voyage`             | `VOYAGE_API_KEY` | 1024       |

Set these at deploy time (in the app's setup fields or `app_config`) and AutoMem provisions its vector store at the matching dimension automatically.

<Tip>
  To switch providers **after** deploy, run `instapods env set my-memory EMBEDDING_PROVIDER=openai OPENAI_API_KEY=sk-your-key`. Because the vector dimension changes, also reset the existing vector store so it is recreated at the new size:

  ```bash theme={null}
  instapods exec my-memory -- bash -c \
    "curl -fsS -X DELETE http://127.0.0.1:6333/collections/memories && systemctl restart automem.target"
  ```
</Tip>

### Connecting an MCP client

After deploy, AutoMem's setup card shows an MCP config snippet with your pod URL and API key pre-filled. Add it to your MCP client (for example, Claude Desktop under **Settings → Developer → Edit Config**):

```json theme={null}
{
  "mcpServers": {
    "automem": {
      "command": "npx",
      "args": ["-y", "@verygoodplugins/mcp-automem"],
      "env": {
        "AUTOMEM_API_URL": "https://your-pod.instapods.app",
        "AUTOMEM_API_KEY": "your-api-key"
      }
    }
  }
}
```

<Warning>
  Use `AUTOMEM_API_URL` and `AUTOMEM_API_KEY` exactly. Older variable names (`AUTOMEM_URL`, `AUTOMEM_API_TOKEN`) are not read by the bridge and will leave it connecting to nothing.
</Warning>
