Deploy Plane with Docker Swarm • Commercial Edition
This guide shows you how to deploy a self-hosted instance of Plane Commercial Edition using Docker Swarm.
Install Plane
Prerequisites
- Before you get started, make sure you have a Docker Swarm environment set up and ready to go.
- Your setup should support either amd64 or arm64 architectures.
Procedure
-
Download the required deployment files
swarm-compose.yml
— Defines Plane's services and dependencies.curl -fsSL https://prime.plane.so/releases/<plane-version>/swarm-compose.yml -o swarm-compose.yml
variables.env
— Stores environment variables for your deployment.curl -fsSL https://prime.plane.so/releases/<plane-version>/variables.env -o plane.env
warningReplace
<plane-version>
with the latest version. (e.g., v1.13.0). -
Configure environment variables Before deploying, edit the
variables.env
file in your preferred text editor and update the following values:DOMAIN_NAME
— (required) Your application's domain nameSITE_ADDRESS
— (required) The full domain name (FQDN) of your instanceMACHINE_SIGNATURE
– (required) A unique identifier for your machine. You can generate this by running below code in terminal:sed -i 's/MACHINE_SIGNATURE=.*/MACHINE_SIGNATURE='$(openssl rand -hex 16)'/' plane.env
CERT_EMAIL
– (required if you're setting up HTTPS) Email address for SSL certificate generation
-
Configure external DB, Redis, and RabbitMQ
warningWhen 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.
DATABASE_URL
— Connection string for your external databaseREDIS_URL
— Connection string for your external Redis instanceAMQP_URL
— Connection string for your external RabbitMQ server
-
Load the environment variables
set -o allexport; source <path-to variables.env>; set +o allexport;
-
Deploy the stack
docker stack deploy -c <path-to swarm-compose.yml> plane
That's it! This will deploy Plane as a Swarm stack, and your instance should be accessible on your configured domain.