Enabling under Traefik example? #3432
Replies: 6 comments 10 replies
-
I am not too sure if anyone has looked at this, but i think you need to enable However I think I have run into problems now due to Anyway I am stuck here now, but I think i have pushed the problem up the hill a little bit. |
Beta Was this translation helpful? Give feedback.
-
@mguptahub That is interesting, there were more things to set than I realised. However it does not work for me, one is that I want it to be working for a domain name, not localhost (not much point putting it behind traefik). I think I made the required changes, but it still hangs, and i think it is CORS related: |
Beta Was this translation helpful? Give feedback.
-
You can try the following setup to make it work with an external domain (
services:
traefik:
image: traefik:v3.0
restart: unless-stopped
container_name: traefik
ports:
- 80:80
- 443:443
volumes:
- letsencrypt:/letsencrypt
- ./traefik/:/etc/traefik/
networks:
- web
postgresql:
image: postgres:16-alpine
restart: unless-stopped
container_name: postgresql
env_file:
- postgresql.env
volumes:
- postgresql:/var/lib/postgresql/data
networks:
- local
redis:
image: redis:7-alpine
restart: unless-stopped
container_name: redis
volumes:
- redis:/data
networks:
- local
minio:
image: quay.io/minio/minio
restart: unless-stopped
command: server /data --console-address ":9090"
env_file:
- minio.env
container_name: minio
volumes:
- minio:/data
networks:
- web
- local
plane-frontend:
image: makeplane/plane-frontend:stable
container_name: plane-frontend
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: node web/server.js web
depends_on:
- plane-backend
- plane-worker
networks:
- web
plane-space:
image: makeplane/plane-space:stable
container_name: plane-space
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: node space/server.js space
depends_on:
- plane-backend
- plane-worker
- plane-frontend
networks:
- web
- local
plane-admin:
image: makeplane/plane-admin:stable
container_name: plane-admin
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: node admin/server.js admin
depends_on:
- plane-backend
- plane-frontend
networks:
- web
plane-backend:
image: makeplane/plane-backend:stable
container_name: plane-backend
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: ./bin/docker-entrypoint-api.sh
depends_on:
- postgresql
- redis
networks:
- web
- local
plane-worker:
image: makeplane/plane-backend:stable
container_name: plane-worker
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: ./bin/docker-entrypoint-worker.sh
depends_on:
- plane-backend
- postgresql
- redis
networks:
- local
plane-beat-worker:
image: makeplane/plane-backend:stable
container_name: plane-beat-worker
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: ./bin/docker-entrypoint-beat.sh
depends_on:
- plane-backend
- postgresql
- redis
networks:
- local
plane-migrator:
image: makeplane/plane-backend:stable
container_name: plane-migrator
pull_policy: always
restart: no
env_file:
- plane.env
command: ./bin/docker-entrypoint-migrator.sh
depends_on:
- postgresql
- redis
networks:
- local
networks:
web:
local:
volumes:
letsencrypt:
postgresql:
redis:
minio:
# Gunicorn Workers
GUNICORN_WORKERS=2
# Secret Key
SECRET_KEY=<SUPER_SECRET_KEY>
# Don't use in production
DEBUG=0
# CORS
CORS_ALLOWED_ORIGINS=https://plane.example.com
# Database
DATABASE_URL=postgresql://<USERNAME>:<PASSWORD>@postgresql/plane
# Redis
REDIS_URL=redis://redis:6379/
# AWS S3
AWS_ACCESS_KEY_ID=<MINIO_USER>
AWS_SECRET_ACCESS_KEY=<MINIO_PASSWORD>
AWS_S3_BUCKET_NAME=plane
AWS_REGION=us-east-1
AWS_S3_ENDPOINT_URL=http://minio:9000
# URLs
WEB_URL=https://plane.example.com
#SPACE_BASE_URL=https://plane.example.com/spaces/
#ADMIN_BASE_URL=https://plane.example.com/god-mode/
# EMAIL SETTINGS
EMAIL_HOST=smtp.gmail.com
EMAIL_HOST_USER=<EMAIL>
EMAIL_HOST_PASSWORD=<PASSWORD>
EMAIL_PORT=587
EMAIL_FROM=no-reply
EMAIL_USE_TLS=1
EMAIL_USE_SSL=0
# LOGIN/SIGNUP SETTINGS
ENABLE_SIGNUP=1
ENABLE_EMAIL_PASSWORD=1
ENABLE_MAGIC_LINK_LOGIN=0
# GitHub
#GITHUB_CLIENT_ID=
#GITHUB_CLIENT_SECRET=
#GITHUB_APP_NAME=plane
# Google
#GOOGLE_CLIENT_ID=
POSTGRES_USER=<USERNAME>
POSTGRES_PASSWORD=<PASSWORD>
POSTGRES_DB=plane
PGDATA=/var/lib/postgresql/data
MINIO_ROOT_USER=<MINIO_USER>
MINIO_ROOT_PASSWORD=<MINIO_PASSWORD>
entryPoints:
web:
address: :80
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: :443
certificatesresolvers:
http_resolver:
acme:
httpchallenge:
entrypoint: web
email: <YOUR_EMAIL>
storage: /letsencrypt/acme.json
providers:
file:
directory: /etc/traefik/dynamic
watch: true
http:
routers:
plane-space:
rule: Host(`plane.example.com`) && PathPrefix(`/spaces/`)
entrypoints:
- websecure
service: plane-space
tls:
certresolver: http_resolver
plane-admin:
rule: Host(`plane.example.com`) && PathPrefix(`/god-mode/`)
entrypoints:
- websecure
service: plane-admin
tls:
certresolver: http_resolver
plane-backend:
rule: Host(`plane.example.com`) && PathPrefix(`/api/`)
entrypoints:
- websecure
service: plane-backend
tls:
certresolver: http_resolver
plane-auth:
rule: Host(`plane.example.com`) && PathPrefix(`/auth/`)
entrypoints:
- websecure
service: plane-auth
tls:
certresolver: http_resolver
plane-uploads:
rule: Host(`plane.example.com`) && PathPrefix(`/plane/`)
entrypoints:
- websecure
service: plane-uploads
tls:
certresolver: http_resolver
plane-frontend:
rule: Host(`plane.example.com`)
entrypoints:
- websecure
service: plane-frontend
tls:
certresolver: http_resolver
services:
plane-frontend:
loadbalancer:
servers:
- url: http://plane-frontend:3000
plane-backend:
loadbalancer:
servers:
- url: http://plane-backend:8000
plane-auth:
loadbalancer:
servers:
- url: http://plane-backend:8000
plane-space:
loadbalancer:
servers:
- url: http://plane-space:3000
plane-admin:
loadbalancer:
servers:
- url: http://plane-admin:3000
plane-uploads:
loadbalancer:
servers:
- url: http://minio:9000 |
Beta Was this translation helpful? Give feedback.
-
Thank you for the example; it did work for us. However, after the latest update from yesterday (v0.20), something has changed. Here is the updated configuration for the external domain (https://plane.example.com).
services:
traefik:
image: traefik:v3.0
restart: unless-stopped
container_name: traefik
ports:
- 80:80
- 443:443
volumes:
- letsencrypt:/letsencrypt
- ./traefik/:/etc/traefik/
networks:
- web
plane-frontend:
image: makeplane/plane-frontend:stable
container_name: plane-frontend
platform: linux/amd64
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: node web/server.js web
depends_on:
- plane-backend
- plane-worker
networks:
- web
plane-space:
image: makeplane/plane-space:stable
container_name: plane-space
platform: linux/amd64
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: node space/server.js space
depends_on:
- plane-backend
- plane-worker
- plane-frontend
networks:
- web
- local
plane-admin:
image: makeplane/plane-admin:stable
container_name: plane-admin
platform: linux/amd64
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: node admin/server.js admin
depends_on:
- plane-backend
- plane-frontend
networks:
- web
plane-backend:
image: makeplane/plane-backend:stable
container_name: plane-backend
platform: linux/amd64
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: ./bin/docker-entrypoint-api.sh
volumes:
- logs_api:/code/plane/logs
depends_on:
- postgresql
- redis
networks:
- web
- local
plane-worker:
image: makeplane/plane-backend:stable
container_name: plane-worker
platform: linux/amd64
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: ./bin/docker-entrypoint-worker.sh
depends_on:
- plane-backend
- postgresql
- redis
networks:
- local
plane-beat-worker:
image: makeplane/plane-backend:stable
container_name: plane-beat-worker
platform: linux/amd64
pull_policy: always
restart: unless-stopped
env_file:
- plane.env
command: ./bin/docker-entrypoint-beat.sh
volumes:
- logs_beat-worker:/code/plane/logs
depends_on:
- plane-backend
- postgresql
- redis
networks:
- local
plane-migrator:
image: makeplane/plane-backend:stable
platform: linux/amd64
container_name: plane-migrator
pull_policy: always
restart: no
env_file:
- plane.env
command: ./bin/docker-entrypoint-migrator.sh
volumes:
- logs_migrator:/code/plane/logs
depends_on:
- postgresql
- redis
networks:
- local
postgresql:
image: postgres:16-alpine
restart: unless-stopped
container_name: postgresql
command: postgres -c 'max_connections=1000'
env_file:
- plane.env
volumes:
- postgresql:/var/lib/postgresql/data
networks:
- local
redis:
image: redis:7-alpine
restart: unless-stopped
container_name: redis
volumes:
- redis:/data
networks:
- local
minio:
image: quay.io/minio/minio
restart: unless-stopped
command: server /data --console-address ":9090"
env_file:
- plane.env
container_name: minio
volumes:
- minio:/data
networks:
- web
- local
networks:
web:
local:
volumes:
letsencrypt:
postgresql:
redis:
minio:
logs_api:
logs_worker:
logs_beat-worker:
logs_migrator:
entryPoints:
web:
address: :80
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: :443
certificatesresolvers:
http_resolver:
acme:
httpchallenge:
entrypoint: web
email: <YOUR_EMAIL>
storage: /letsencrypt/acme.json
providers:
file:
directory: /etc/traefik/dynamic
watch: true
http:
routers:
plane-space:
rule: Host(`plane.example.com`) && PathPrefix(`/spaces/`)
entrypoints:
- websecure
service: plane-space
tls:
certresolver: http_resolver
plane-backend:
rule: Host(`plane.example.com`) && PathPrefix(`/api/`)
entrypoints:
- websecure
service: plane-backend
tls:
certresolver: http_resolver
plane-admin:
rule: Host(`plane.example.com`) && PathPrefix(`/god-mode/`)
entrypoints:
- websecure
service: plane-admin
tls:
certresolver: http_resolver
plane-auth:
rule: Host(`plane.example.com`) && PathPrefix(`/auth/`)
entrypoints:
- websecure
service: plane-auth
tls:
certresolver: http_resolver
plane-uploads:
rule: Host(`plane.example.com`) && PathPrefix(`/plane/`)
entrypoints:
- websecure
service: plane-uploads
tls:
certresolver: http_resolver
plane-frontend:
rule: Host(`plane.example.com`)
entrypoints:
- websecure
service: plane-frontend
tls:
certresolver: http_resolver
services:
plane-frontend:
loadbalancer:
servers:
- url: http://plane-frontend:3000
plane-admin:
loadbalancer:
servers:
- url: http://plane-admin:3000
plane-backend:
loadbalancer:
servers:
- url: http://plane-backend:8000
plane-auth:
loadbalancer:
servers:
- url: http://plane-backend:8000
plane-space:
loadbalancer:
servers:
- url: http://plane-space:3000
plane-uploads:
loadbalancer:
servers:
- url: http://minio:9000/ |
Beta Was this translation helpful? Give feedback.
-
I can't seem to get the API to work correctly. Here's a breakdown of my stack configuration and environment details. I'm using docker swarm.
|
Beta Was this translation helpful? Give feedback.
-
I finally managed to set up everything with Traefik thanks to this post (in its latest version). Thank you very much (3 days of hassle before understanding that you also need to redirect /god-mode/ ... :p) |
Beta Was this translation helpful? Give feedback.
-
Is there an example of plane running under traefik.
I have a cloud server up and running with a wordpress instance and a few other small services already working. I want to add plane to this list.
I can start plane from docker compose (outside the
setup.sh
script) and it works is I ssh in and port forward tolocalhost
.However when I try and get plane to run under a subdomain i have if doesn't work. I do get some landing page, but it is just a spinning wheel. So far I have commented out the proxy part of the
docker-compose.yml
file and added these lines:And, which
${PLANE_DOMAIN}
is an environment variable:This works in other micro services, but not here, what am I missing?
Have have also set
WEB_URL
,CORS_ALLOWED_ORIGINS
,NEXT_PUBLIC_DEPLOY_URL
in the.env
script to reflect my subdomain pathBeta Was this translation helpful? Give feedback.
All reactions