# Plane recipe

URL: https://briq.cloud/cookbook/plane

> A self-hosted Linear/Jira-like board the agent can update, with a link to share.

Tags: app, stack

## Run it

MCP:

```ts
briq_run({
  recipe: "plane",
  params: {
    "size": "small",
    "diskGb": 5
  },
  wait: true
})
```

REST:

```bash
curl -X POST https://api.briq.cloud/v1/briqs \
  -H "Authorization: Bearer $BRIQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipe": "plane",
    "params": {
      "size": "small",
      "diskGb": 5
    },
    "wait": true
  }'
# → { "briqs": [{ "id": "bq_…", … }], "outputs": { "PLANE_URL": "…" }, … }

# ... when done, for each briq id
curl -X DELETE https://api.briq.cloud/v1/briqs/<id> \
  -H "Authorization: Bearer $BRIQ_API_KEY"
```

## Parameters

| Name | Type | Options | Default | What it does |
| --- | --- | --- | --- | --- |
| `domain` | string | — | — | — |
| `size` | enum | small, medium | "small" | — |
| `diskGb` | number | — | 5 | Upload storage (minio) volume size, in GB |

## Outputs

Returned by `briq_run` once the stack is healthy. Hosts resolve inside your team network; secrets are generated per run.

| Output | Value |
| --- | --- |
| `PLANE_URL` | `http://plane.<stack>.internal` |

## What it runs

| Briq | Image | Ports | Size | Volume |
| --- | --- | --- | --- | --- |
| postgres | `postgres:16` | 5432 | nano | 2 GB at /var/lib/postgresql/data |
| redis | `redis:7-alpine` | 6379 | nano | — |
| rabbitmq | `rabbitmq:4-alpine` | 5672 | nano | — |
| minio | `pgsty/minio:RELEASE.2026-08-04T00-00-00Z` | 9000 | nano | 5 GB at /data |
| plane | `makeplane/plane-aio-community:stable` | 80 | small | — |

## When to use it

* The agent works off a PLAN.md only it reads, and you want a board you can watch.
* The agent should file an issue per step, move it as it finishes and comment on what it found.
* You want to send someone a link to where things stand.

Five briqs in one call: Plane, plus the Postgres, Redis, RabbitMQ and MinIO it needs.

## Tips

* **Publish it as you run it**: `briq_run({ recipe: "plane", expose: "private" })`. Plane bakes
  its domain into its links at boot, and briq gives it the URL's host. Set `domain` only for
  another host.
* **First boot takes about a minute** while Plane migrates its database.
* **Expose only `plane`.** Its Postgres, Redis and RabbitMQ have no password.
* **The agent uses Plane's REST API** with an API key, once someone has signed in and created the
  first workspace.
* **Uploads**: `diskGb` sizes the file storage, which starts small; the database keeps its own
  small volume. Set it when the stack is created; it counts toward your
  [plan's disk](https://briq.cloud/docs/cost#plans).
