Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -701,6 +701,11 @@ export default withMermaid(
{ text: "Get Current User", link: "/api-reference/user/get-current-user" },
],
},
{
text: "Setup",
collapsed: true,
items: [{ text: "Download Version Config", link: "/api-reference/setup/download-config" }],
},
],
},
],
Expand Down
195 changes: 195 additions & 0 deletions docs/api-reference/setup/download-config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
---
title: Download version config
description: Download docker-compose.yml and variables.env files for a given Plane release as a zip archive.
keywords: plane, plane api, setup, docker compose, self-hosting, config download, version config, airgapped
---

# Download version config

<div class="api-endpoint-badge">
<span class="method get">GET</span>
<span class="path">/api/v2/setup/</span>
</div>

<div class="api-two-column">
<div class="api-left">

Download `docker-compose.yml` and `variables.env` files for a given Plane release as a zip archive.

**Authentication:** None required (public endpoint)

**Base URL:** `https://prime.plane.so`

<div class="params-section">

### Query Parameters

<div class="params-list">

<ApiParam name="version" type="string" :required="true">

Release tag name (e.g. `v0.23.0`).

</ApiParam>

<ApiParam name="airgapped" type="boolean">

Set to `true` to get airgapped compose files. Defaults to `false`.

</ApiParam>

<ApiParam name="platform" type="string">

Target architecture: `amd64` or `arm64`. Defaults to `amd64`. Only relevant when `airgapped` is `true`.

</ApiParam>

</div>
</div>

<div class="params-section">

### Response

**Success (200):** Returns a zip file download containing the config files for the requested release.

- Content-Type: `application/zip`
- Content-Disposition: `attachment; filename="plane-{version}.zip"`

**Standard** (`airgapped=false` or omitted):

- `docker-compose.yml`
- `variables.env`

**Airgapped** (`airgapped=true`):

- `airgapped-docker-compose-{platform}.yml`
- `variables.env`

</div>

<div class="params-section">

### Error Responses

| Status | Condition | Body |
| ------ | --------------------------------------------- | ------------------------------------------------------- |
| 400 | `version` query param missing | `{"error": "version query parameter is required"}` |
| 400 | `platform` is not `amd64` or `arm64` | `{"error": "platform must be amd64 or arm64"}` |
| 400 | Server missing GitHub configuration | `{"error": "missing required settings"}` |
| 404 | Release tag not found on GitHub | `{"error": "release not found"}` |
| 404 | Required asset files missing from the release | `{"error": "assets not found in release: <filenames>"}` |
| 500 | GitHub API failure | `{"error": "Failed to fetch release information"}` |

</div>

</div>
<div class="api-right">

<CodePanel title="Download version config" :languages="['cURL', 'Python', 'JavaScript']">
<template #curl>

```bash
# Download standard config files
curl "https://prime.plane.so/api/v2/setup/?version=v0.23.0" \
-o plane.zip

# Download airgapped config (AMD64)
curl "https://prime.plane.so/api/v2/setup/?version=v0.23.0&airgapped=true" \
-o plane.zip

# Download airgapped config (ARM64)
curl "https://prime.plane.so/api/v2/setup/?version=v0.23.0&airgapped=true&platform=arm64" \
-o plane.zip

# Verify zip contents without extracting
curl "https://prime.plane.so/api/v2/setup/?version=v0.23.0" \
-o plane.zip && unzip -l plane.zip
```

</template>
<template #python>

```python
import requests

# Download standard config files
response = requests.get(
"https://prime.plane.so/api/v2/setup/",
params={"version": "v0.23.0"},
)

with open("plane.zip", "wb") as f:
f.write(response.content)

# Download airgapped config (ARM64)
response = requests.get(
"https://prime.plane.so/api/v2/setup/",
params={
"version": "v0.23.0",
"airgapped": "true",
"platform": "arm64",
},
)

with open("plane.zip", "wb") as f:
f.write(response.content)
```

</template>
<template #javascript>

```javascript
// Download standard config files
const response = await fetch("https://prime.plane.so/api/v2/setup/?version=v0.23.0");
const blob = await response.blob();

// Download airgapped config (ARM64)
const airgappedResponse = await fetch(
"https://prime.plane.so/api/v2/setup/?version=v0.23.0&airgapped=true&platform=arm64"
);
const airgappedBlob = await airgappedResponse.blob();
```

</template>
</CodePanel>

<ResponsePanel status="200">

```
Content-Type: application/zip
Content-Disposition: attachment; filename="plane-v0.23.0.zip"

Archive contents (standard):
- docker-compose.yml
- variables.env

Archive contents (airgapped, amd64):
- airgapped-docker-compose-amd64.yml
- variables.env
```

</ResponsePanel>

<ResponsePanel status="400">

```json
{
"error": "version query parameter is required"
}
```

</ResponsePanel>

<ResponsePanel status="404">

```json
{
"error": "release not found"
}
```

</ResponsePanel>

</div>
</div>
10 changes: 5 additions & 5 deletions docs/self-hosting/manage/backup-restore.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ keywords: plane backup, plane restore, database backup, postgresql backup, data
Backing up your data regularly helps prevent data loss and allows you to restore your system quickly if necessary. Follow these instructions to back up and restore your data using Plane’s command-line interface.

## For Docker Compose

### Backup data

::: warning
Expand Down Expand Up @@ -152,15 +153,14 @@ That’s it! You’re back up and running with your restored data.

:::


## Other deployment methods

For Kubernetes, or other deployment methods, use your platform's native backup tools. Plane stores data in two places that need to be backed up:

| Component | What it contains |
|-----------|------------------|
| Component | What it contains |
| ----------------------- | ---------------------------------------------------------------------------- |
| **PostgreSQL database** | All Plane data — workspaces, projects, work items, users, comments, settings |
| **Object storage** | Attachments, uploaded images, files (MinIO, S3, or S3-compatible storage) |
| **Object storage** | Attachments, uploaded images, files (MinIO, S3, or S3-compatible storage) |

### Configuration files

Expand All @@ -171,4 +171,4 @@ Also back up your environment configuration — this includes database connectio

:::tip
Store backups in a separate location from your Plane installation — ideally offsite or in a different cloud region.
:::
:::
1 change: 0 additions & 1 deletion docs/self-hosting/upgrade-from-community.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,6 @@ prime-cli restart

:::


## What's next

- [Activate a paid plan license](/self-hosting/manage/manage-licenses/activate-pro-and-business).