---
title: Docker Deployment
description: Deploy Infinite Canvas with Docker Compose
---

# Docker Deployment

## Use the published image

```bash
git clone git@github.com:basketikun/infinite-canvas.git
cd infinite-canvas
docker compose up -d
```

Open `http://localhost:3000`.

## Build locally

```bash
docker compose -f docker-compose.local.yml up -d --build
```

## Documentation image

The documentation in `docs/` is a separate Next.js standalone application with server capabilities.

```bash
cd docs
docker compose up -d
```

To build it from the current source:

```bash
cd docs
docker compose -f docker-compose.local.yml up -d --build
```

The main application container only runs Next.js. Canvases, My Assets, generation history, and API keys are stored in the browser by default, while prompt repositories are fetched directly by the frontend. No persistent data volume is required for this data.

## Optional analytics

No analytics are enabled by default. A deployment can enable GA4, Baidu Analytics, or both at runtime:

| Variable | Description |
| --- | --- |
| `ANALYTICS_GA4_ID` | Google Analytics 4 measurement ID (`G-XXXX`) |
| `ANALYTICS_BAIDU_ID` | Baidu site ID, the hash after `hm.js?` |

```yaml
services:
  app:
    image: ghcr.io/basketikun/infinite-canvas:latest
    ports:
      - "3000:3000"
    environment:
      ANALYTICS_GA4_ID: G-XXXXXXXXXX
      ANALYTICS_BAIDU_ID: e8263761cc5c32f5f7a855b8203b965a
```

SPA route changes automatically report page views to enabled providers. Only configure analytics IDs on sites you control, and do not commit them to the repository.
