Methods
Kubernetes
Setup
Follow below steps to setup Plane
Add Helm Repo
Add Helm Repo
helm repo add makeplane https://helm.plane.so/
You must refer the configuration variables before proceeding. This can be done by running the below command or visiting Configuration tab.
helm show values plane-ce --repo https://helm.plane.so/
Basic Install
Basic Install
helm install \
--create-namespace \
--namespace plane-ns \
--set ingress.host="plane.example.com" \
my-plane makeplane/plane-ce
Customise Remote Postgress URL
Customise Remote Postgress URL
--set postgres.local_setup=false \
--set env.pgdb_remote_url="postgress://[username]:[password]@[pg-host]/[db-name]" \
Customise Remote Redis URL
Customise Remote Redis URL
--set redis.local_setup=false \
--set env.remote_redis_url="redis://[redis-host]:[6379]" \
Customise SMTP Using
Customise SMTP Using
--set smtp.host="smtp.example.com" \
--set smtp.user="my-email-address@example.com" \
--set smtp.password="my-password" \
--set smtp.from="Plane Mailer <mailer@example.com>" \
--set smtp.port=587 \
--set smtp.use_tls=1 \
Customise with SSL
Before proceeding with SSL configuration, make sure you have Cert Manager installed on your cluster
Customise with SSL
--set ssl.createIssuer=true \
--set ssl.issuer=cloudflare \
--set ssl.token=xxxxxxxx \
--set ssl.server="https://acme-v02.api.letsencrypt.org/directory" \
--set ssl.email="plane-admin@example.com" \
--set ssl.generateCerts=true \
--set ssl.domains="{plane.example.com,plane-minio.example.com}" \
Configuration
Setting | Default | Required | Description |
---|---|---|---|
planeVersion | latest | Yes | |
Ingress Setup | |||
ingress.appHost | ‘plane.example.com’ | Yes | |
ingress.minioHost | ‘plane-minio.example.com’ | (Optional) Required to open minio console interface | |
ingress.ingressClass | ‘nginx’ | Yes | can be any of the supported ingress controller class (eg. nginx, traefik, etc) |
ingress.clientMaxBodySize | 5m | Yes | This is set at the ingress controller level to support max data from client. |
SSL Settings | |||
ssl.createIssuer | false | Set it to true to create Let’s Encrypt Service based issuer | |
ssl.issuer | http | (Yes, if createIssuer = true) Allowed - cloudflare, digitalocean, http | |
ssl.token | (Yes, if createIssuer = true) api token of dns provider, not required for http | ||
ssl.server | https://acme-staging-v02.api.letsencrypt.org/directory | (Yes, if createIssuer = true)Lets Encrypt SSL Generation API. Production: https://acme-v02.api.letsencrypt.org/directory | |
ssl.email | plane-admin@example.com | (Yes, if createIssuer = true) Required by Let’s Encrypt. Change to a valid email id | |
ssl.generateCerts | false | ||
ssl.domains | [] | (Yes, if generateCerts = true) Array List of domains | |
Redis Setup | |||
redis.local_setup | true | ||
redis.image | redis:6.2.7-alpine | ||
redis.servicePort | 6379 | Yes, if redis.local_setup=true | |
redis.storageClass | longhorn | Yes, if redis.local_setup=true | |
redis.volumeSize | 1Gi | Yes, if redis.local_setup=true | |
Postgress DB Setup | |||
postgres.local_setup | true | ||
postgres.image | postgres:15.2-alpine | Yes, if postgres.local_setup=true | |
postgres.servicePort | 5432 | Yes, if postgres.local_setup=true | |
postgres.storageClass | longhorn | Yes, if postgres.local_setup=true | |
postgres.volumeSize | 5Gi | Yes, if postgres.local_setup=true | |
Doc Store (Minio) Setup | |||
minio.local_setup | true | In case this is false, AWS-S3 will settings will be required | |
minio.image | minio/minio:RELEASE.2023-10-25T06-33-25Z | Yes, if minio.local_setup=true | |
minio.servicePort | 9000 | Yes, if minio.local_setup=true | |
minio.consolePort | 9090 | Yes, if minio.local_setup=true | |
minio.storageClass | longhorn | Yes, if minio.local_setup=true | |
minio.volumeSize | 5Gi | Yes, if minio.local_setup=true | |
minio.root_user | admin | Yes, if minio.local_setup=true | |
minio.root_password | password | Yes, if minio.local_setup=true | |
Web Deployment | |||
web.replicas | 3 | Yes | must be >=1 |
web.memoryLimit | 100Mi | ||
web.cpuLimit | 200m | ||
web.hscale.minReplicas | 1 | ||
web.hscale.maxReplicas | 10 | ||
web.hscale.percentMemoryUtilization | 80 | ||
web.hscale.percentCpuUtilization | 60 | ||
Space Deployment | |||
space.replicas | 3 | Yes | must be >=1 |
space.memoryLimit | 100Mi | ||
space.cpuLimit | 200m | ||
space.hscale.minReplicas | 1 | ||
space.hscale.maxReplicas | 10 | ||
space.hscale.percentMemoryUtilization | |||
space.hscale.percentCpuUtilization | 60 | ||
API Deployment | |||
api.replicas | 3 | Yes | must be >=1 |
api.servicePort | 8000 | ||
SMTP Settings | |||
smtp.host | ” | For Email Delivery | |
smtp.user | ” | For Email Delivery | |
smtp.password | ” | For Email Delivery | |
smtp.port | 587 | For Email Delivery | |
smtp.from | ‘Plane Mailer mailer@example.com’ | ||
smtp.use_tls | 1 | ||
smtp.use_ssl | 0 | ||
OAUTH Settings | |||
oauth.enabled | 0 | ||
oauth.google_client_id | ” | ||
oauth.github_client_id | ” | ||
oauth.github_client_secret | ” | ||
Common Environment Settings | |||
env.pgdb_username | plane | ||
env.pgdb_password | plane | ||
env.pgdb_name | plane | ||
env.pgdb_remote_host | ” | Required, in case of Remote Host provider | |
env.pgdb_remote_url | ” | Required, in case of Remote Postgress DB Url | |
env.remote_redis_url | ” | Required, in case of Remote Redis Instance | |
env.docstore_bucket | ‘uploads’ | YES | Minio / AWS-S3 Bucket Name |
env.doc_upload_size_limit | 5242880 | YES | Document Upload Size Limit (default to 5Mb) |
env.aws_access_key | ” | Required, in case minio.local_setup = false | |
env.aws_secret_access_key | ” | Required, in case minio.local_setup = false | |
env.aws_region | ” | Required, in case minio.local_setup = false | |
env.enable_signup | 1 | Valid values are 0 & 1 | |
env.enable_email_password | 1 | Valid values are 0 & 1 | |
env.enable_magic_link_login | 0 | Valid values are 0 & 1. In case this is set to 1, SMTP settings would be required | |
env.secret_key | ‘60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5’ | Random secret key for data encoding during transit. | |
env.sentry_dsn | ” | Sentry DSN for error logging |