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

# Self-host Presenton in five minutes

> Start a persistent Presenton instance with the minimum Docker configuration.

This path gets one self-hosted instance running locally. You need Docker and credentials for a supported text provider, or a reachable local model.

## 1. Start Presenton

<Tabs>
  <Tab title="Linux and macOS">
    ```bash theme={null}
    mkdir -p app_data

    docker run --detach --name presenton \
      --publish 5001:80 \
      --volume "./app_data:/app_data" \
      ghcr.io/presenton/presenton:v0.9.1-beta
    ```
  </Tab>

  <Tab title="Windows PowerShell">
    ```powershell theme={null}
    New-Item -ItemType Directory -Force app_data

    docker run --detach --name presenton `
      --publish 5001:80 `
      --volume "${PWD}\app_data:/app_data" `
      ghcr.io/presenton/presenton:v0.9.1-beta
    ```
  </Tab>
</Tabs>

The host folder is mounted at `/app_data` so presentations and settings survive container replacement.

## 2. Open the application

Visit [http://localhost:5001](http://localhost:5001). If the page does not load, check:

```bash theme={null}
docker ps --filter name=presenton
docker logs --tail 100 presenton
```

## 3. Connect a text provider

Follow the first-run Settings flow and choose a provider. For the shortest hosted-provider setup, enter an API key and supported model in the application.

To keep administrator-supplied credentials out of the UI, restart with environment variables instead:

```bash theme={null}
docker stop presenton
docker rm presenton

docker run --detach --name presenton \
  --publish 5001:80 \
  --env LLM=openai \
  --env OPENAI_API_KEY="YOUR_API_KEY" \
  --env OPENAI_MODEL=gpt-4.1 \
  --env CAN_CHANGE_KEYS=false \
  --volume "./app_data:/app_data" \
  ghcr.io/presenton/presenton:v0.9.1-beta
```

<Warning>
  Do not paste real keys into source files or commit a `.env` file. Use your deployment platform's secret manager for a remote instance.
</Warning>

## 4. Generate and persist a test deck

Create a short two- or three-slide presentation. Restart the container with `docker restart presenton`, reopen the dashboard, and confirm the deck remains available.

<Check>
  The application loads, a text provider generates a deck, export completes, and the deck remains after restart.
</Check>

## 5. Choose the next path

<CardGroup cols={2}>
  <Card title="Complete Docker setup" icon="docker" href="/archive/v0.9.1-beta/hosting/docker">
    Add Compose, authentication, GPU access, and repeatable operations.
  </Card>

  <Card title="Deploy to a cloud platform" icon="cloud-arrow-up" href="/archive/v0.9.1-beta/hosting/one-click-deployments">
    Use Railway or DigitalOcean and configure persistence and secrets.
  </Card>

  <Card title="Review environment variables" icon="rectangle-terminal" href="/archive/v0.9.1-beta/hosting/environment-variables">
    Configure providers, storage, memory, processing, and access.
  </Card>

  <Card title="Secure a shared instance" icon="shield-keyhole" href="/archive/v0.9.1-beta/self-hosted/configuration/authentication">
    Enable the administrator account before exposing the service remotely.
  </Card>
</CardGroup>
