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

# FAQ

> Frequently asked questions about InstaPods.

## General

<AccordionGroup>
  <Accordion title="What is a pod?">
    A pod is a persistent Linux container running on InstaPods infrastructure. Think of it as a lightweight virtual server with its own filesystem, SSH access, and public URL. Unlike Docker containers, pods are persistent — all data survives restarts.
  </Accordion>

  <Accordion title="How long does it take to create a pod?">
    Pods are created in 1–2 seconds using pre-built images. If the warm pool is enabled in your region, creation can be nearly instant.
  </Accordion>

  <Accordion title="Can I run multiple apps in one pod?">
    Technically yes — a pod is a full Linux container, so you can run multiple processes. However, each pod is designed around a single preset (Static, PHP, Node.js, or Python). For multiple apps, we recommend separate pods.
  </Accordion>

  <Accordion title="Are pods ephemeral like Docker containers?">
    No. Pods are persistent containers — all files, installed packages, and configurations survive stop/start cycles. Your data is preserved unless you explicitly delete the pod.
  </Accordion>

  <Accordion title="What Linux distribution do pods use?">
    All pods run Ubuntu 24.04 LTS (Noble Numbat).
  </Accordion>
</AccordionGroup>

## SSH & Access

<AccordionGroup>
  <Accordion title="How do I connect to my pod via SSH?">
    Each pod has a dedicated SSH port. Find it on the pod detail page or run `instapods pods get my-app`. Then connect:

    ```bash theme={null}
    ssh instapod@nbg1-1.instapods.app -p YOUR_PORT
    ```

    Or use the CLI shortcut: `instapods ssh my-app`
  </Accordion>

  <Accordion title="Can I use my own SSH key?">
    Yes. Add your public key at pod creation (`--ssh-key` flag), via the dashboard SSH tab, or with the CLI:

    ```bash theme={null}
    instapods ssh-keys add my-app
    ```
  </Accordion>

  <Accordion title="What user do I connect as?">
    Always connect as the `instapod` user. This is the non-root user that owns your application files.
  </Accordion>
</AccordionGroup>

## Services & Databases

<AccordionGroup>
  <Accordion title="Why can't I install services on the Launch plan?">
    Database services (MySQL, PostgreSQL, Redis) require additional memory and CPU. The Launch plan's resources (512 MB RAM, 1 vCPU) are too limited for reliable database operation. Upgrade to the Build plan or higher.
  </Accordion>

  <Accordion title="Can I access my database from outside the pod?">
    No. Database services listen on `localhost` only and are not accessible from the internet. This is a security measure. To access your database remotely, use SSH port forwarding:

    ```bash theme={null}
    ssh -L 3306:localhost:3306 instapod@host -p PORT
    ```
  </Accordion>

  <Accordion title="How do I back up my database?">
    SSH into your pod and use the database's native dump tool:

    ```bash theme={null}
    # MySQL
    mysqldump -u instapod -p instapod > backup.sql

    # PostgreSQL
    pg_dump -U instapod instapod > backup.sql
    ```

    Then download the dump file using SCP or the CLI.
  </Accordion>
</AccordionGroup>

## Billing

<AccordionGroup>
  <Accordion title="What happens if my payment fails?">
    Your subscription enters a "past due" state with a 7-day grace period. During this time, existing pods keep running but you can't create new ones. After 7 days, pods are suspended. Pay the invoice to reactivate.
  </Accordion>

  <Accordion title="Can I change plans?">
    Yes, upgrade or downgrade anytime. Resource changes (CPU, memory, disk) take effect immediately. Billing is prorated — you're charged for the time spent on each plan.
  </Accordion>

  <Accordion title="Do stopped pods cost money?">
    Currently, billing is per-plan (flat monthly rate), not per-usage. A stopped pod still counts toward your subscription. Delete the pod if you no longer need it.
  </Accordion>
</AccordionGroup>

## Custom Domains

<AccordionGroup>
  <Accordion title="How many custom domains can I add?">
    Up to 5 custom domains per pod.
  </Accordion>

  <Accordion title="Do I get SSL for custom domains?">
    Yes. After DNS verification, an SSL certificate is automatically provisioned via Let's Encrypt.
  </Accordion>

  <Accordion title="Can I use a root domain (not a subdomain)?">
    Yes, if your DNS provider supports CNAME flattening (most modern providers do, including Cloudflare). Otherwise, use a subdomain like `app.example.com`.
  </Accordion>
</AccordionGroup>
