Skip to content

Commit 7e77dc5

Browse files
authored
Configure SSL (#172)
1 parent 26152fc commit 7e77dc5

File tree

2 files changed

+105
-0
lines changed

2 files changed

+105
-0
lines changed

mint.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
"self-hosting/govern/configure-dns-email-service",
116116
"self-hosting/govern/database-and-storage",
117117
"self-hosting/govern/custom-domain",
118+
"self-hosting/govern/configure-ssl",
118119
"self-hosting/govern/private-bucket",
119120
{
120121
"group": "Integrations",
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
title: Set up SSL • Commercial Edition
3+
sidebarTitle: Configure SSL
4+
---
5+
6+
This guide shows you how to configure SSL/TLS certificates for your self-hosted Plane instance. Plane handles certificate provisioning and renewal automatically using Let's Encrypt.
7+
8+
<Note>
9+
**Applies to:** Docker deployments of Plane Commercial Edition without an external reverse proxy.
10+
11+
If you're using an external reverse proxy (nginx, Caddy, Traefik) or a load balancer, configure SSL there instead and skip this guide.
12+
</Note>
13+
14+
## Before you begin
15+
16+
Ensure you have:
17+
- A registered domain name pointing to your Plane server
18+
- DNS records configured (A or CNAME record pointing to your server's IP)
19+
- Ports 80 and 443 open on your server's firewall
20+
- Prime CLI installed (included with Plane Commercial Edition)
21+
22+
<Warning>
23+
**DNS must be configured first.** Let's Encrypt validates domain ownership by making HTTP requests to your domain. Ensure your domain resolves to your server's IP address before proceeding.
24+
</Warning>
25+
26+
## Configure SSL settings
27+
28+
### Open the configuration file
29+
30+
Edit your Plane environment configuration:
31+
```bash
32+
vim /opt/plane/plane.env
33+
```
34+
35+
### Set required variables
36+
37+
Add or update these environment variables:
38+
```bash
39+
# SSL Configuration
40+
41+
SITE_ADDRESS=plane.yourcompany.com
42+
WEB_URL=https://plane.yourcompany.com
43+
```
44+
45+
**Variable explanations:**
46+
47+
**CERT_EMAIL**
48+
A valid email address for Let's Encrypt certificate registration. Let's Encrypt uses this to send renewal reminders and important notices about your certificates.
49+
50+
**SITE_ADDRESS**
51+
Your domain name **without** protocol. Use only the domain (e.g., `plane.company.com`), not `https://plane.company.com`. Plane's built-in proxy uses this to request certificates from Let's Encrypt.
52+
53+
**WEB_URL**
54+
Your full Plane URL **with** the `https://` protocol. This tells Plane services how to construct URLs for redirects, emails, and API responses.
55+
56+
### DNS provider configuration (optional)
57+
58+
If you're using Cloudflare or another DNS provider with API access, you can use DNS validation instead of HTTP validation. This is useful if:
59+
- Your server is behind a firewall that blocks port 80
60+
- You need wildcard certificates
61+
- HTTP validation isn't working due to network restrictions
62+
63+
**For Cloudflare:**
64+
```bash
65+
CERT_ACME_DNS=acme_dns cloudflare <cloudflare-api-token>
66+
```
67+
68+
Replace `<cloudflare-api-token>` with your Cloudflare API token. Create one at **Cloudflare Dashboard****My Profile****API Tokens** with **Zone:DNS:Edit** permissions.
69+
70+
**For other DNS providers:**
71+
72+
Check the [acme.sh DNS API documentation](https://github.com/acmesh-official/acme.sh/wiki/dnsapi) for provider-specific configuration.
73+
74+
## Apply SSL configuration
75+
76+
Restart Plane to apply the SSL settings:
77+
```bash
78+
sudo prime-cli restart
79+
```
80+
81+
Prime CLI will:
82+
1. Stop all Plane services
83+
2. Request a new SSL certificate from Let's Encrypt
84+
3. Configure the built-in proxy to use HTTPS
85+
4. Restart all services with SSL enabled
86+
87+
This process typically takes 30-60 seconds.
88+
89+
## Verify SSL is working
90+
91+
Check that your Plane instance is accessible via HTTPS:
92+
```bash
93+
curl -I https://plane.yourcompany.com
94+
```
95+
96+
You should see a response with `HTTP/2 200` or `HTTP/1.1 200` and SSL-related headers.
97+
98+
Visit your Plane instance in a browser at `https://plane.yourcompany.com`. You should see a secure connection (padlock icon) without certificate warnings.
99+
100+
101+
## Using custom SSL certificates
102+
103+
Custom SSL certificates (from a corporate CA or purchased certificates) are not currently supported in Plane's deployment.
104+

0 commit comments

Comments
 (0)