Skip to content

Commit 39efa50

Browse files
authored
Merge pull request #75 from makeplane/docker-swarm
Deploy Plane on Docker Swarm
2 parents f0eab35 + ca433d8 commit 39efa50

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

mint.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@
6868
"group": "Install",
6969
"pages": [
7070
"self-hosting/methods/docker-compose",
71-
"self-hosting/methods/kubernetes"
71+
"self-hosting/methods/kubernetes",
72+
"self-hosting/methods/docker-swarm"
7273
]
7374
},
7475
{
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: Docker Swarm
3+
---
4+
5+
This guide shows you the steps to deploy a self-hosted instance of the Plane Commercial Edition using Docker Swarm.
6+
7+
## Install Plane
8+
9+
### Prerequisites
10+
- Before you get started, make sure you have a Docker Swarm environment set up and ready to go.
11+
- Your setup should support either amd64 or arm64 architectures.
12+
13+
### Procedure
14+
15+
1. **Download the required depoyment files**
16+
- `docker-compose.yml` – Defines Plane's services and dependencies.
17+
```bash
18+
curl -fsSL https://prime.plane.so/releases/<plane-version>/docker-compose.yml -o docker-compose.yml
19+
```
20+
- `variables.env` – Stores environment variables for your deployment.
21+
```bash
22+
curl -fsSL https://prime.plane.so/releases/<plane-version>/variables.env -o plane.env
23+
```
24+
<Warning>
25+
The `<plane-version>` value should be v1.8.2 or higher.
26+
</Warning>
27+
28+
2. **Configure environment variables**
29+
Before deploying, edit the `variables.env` file in your preferred text editor and update the following values:
30+
31+
- `DOMAIN_NAME` – (required) Your application's domain name.
32+
- `SITE_ADDRESS` – (required) The full domain name (FQDN) of your instance.
33+
- `MACHINE_SIGNATURE` – (required) A unique identifier for your machine. You can generate this by running below code in terminal:
34+
```sh
35+
sed -i 's/MACHINE_SIGNATURE=.*/MACHINE_SIGNATURE='$(openssl rand -hex 16)'/' plane.env
36+
```
37+
- `CERT_EMAIL` – (optional) Email address for SSL certificate generation (only needed if you're setting up HTTPS).
38+
39+
3. **Configure external DB, Redis, and RabbitMQ**
40+
<Warning>
41+
When self-hosting Plane for production use, it is strongly recommended to configure external database and storage. This ensures that your data remains secure and accessible even if the local machine crashes or encounters hardware issues. Relying solely on local storage for these components increases the risk of data loss and service disruption.
42+
</Warning>
43+
- `DATABASE_URL` – Connection string for your external database.
44+
- `REDIS_URL` – Connection string for your external Redis instance.
45+
- `AMQP_URL` – Connection string for your external RabbitMQ server.
46+
47+
48+
3. **Load the environment variables**
49+
```bash
50+
set -o allexport; source <path-to variables.env>; set +o allexport;
51+
```
52+
53+
4. **Deploy the stack**
54+
```bash
55+
docker stack deploy -c <path-to docker-compose.yml> plane
56+
```
57+
58+
That's it! This will deploy Plane as a Swarm stack, and your instance should be accessible on your configured domain.

0 commit comments

Comments
 (0)