From 9ab06eb219640cba80796e1cd29fa36b7c06bd7a Mon Sep 17 00:00:00 2001 From: Rasaboun Date: Wed, 24 Dec 2025 20:27:03 +0100 Subject: [PATCH 1/3] feat(plane): update to v1.2.1 - Update image registry from makeplane/ to artifacts.plane.so/makeplane/ - Update default version from v0.27.1 to v1.2.1 - Update PostgreSQL from 17-alpine to 15.7-alpine - Update Valkey from 7.2.5-alpine to 7.2.11-alpine - Add LIVE_SERVER_SECRET_KEY environment variable (required for live service) - Add proxy volumes (proxy_config, proxy_data) - Add LISTEN_HTTP_PORT and LISTEN_HTTPS_PORT variables - Fix RabbitMQ user variable (was using literal string instead of variable) - Add restart policies for all services --- blueprints/plane/docker-compose.yml | 46 +++++++++++----- blueprints/plane/template.toml | 85 +++++++++++++++-------------- meta.json | 2 +- 3 files changed, 77 insertions(+), 56 deletions(-) diff --git a/blueprints/plane/docker-compose.yml b/blueprints/plane/docker-compose.yml index 9502c0108..486f5593f 100644 --- a/blueprints/plane/docker-compose.yml +++ b/blueprints/plane/docker-compose.yml @@ -2,8 +2,8 @@ version: "3.8" services: web: - image: makeplane/plane-frontend:${APP_RELEASE:-v0.27.1} - command: node web/server.js web + image: artifacts.plane.so/makeplane/plane-frontend:${APP_RELEASE:-v1.2.1} + restart: unless-stopped depends_on: - api - worker @@ -11,8 +11,8 @@ services: - .env space: - image: makeplane/plane-space:${APP_RELEASE:-v0.27.1} - command: node space/server.js space + image: artifacts.plane.so/makeplane/plane-space:${APP_RELEASE:-v1.2.1} + restart: unless-stopped depends_on: - api - worker @@ -21,8 +21,8 @@ services: - .env admin: - image: makeplane/plane-admin:${APP_RELEASE:-v0.27.1} - command: node admin/server.js admin + image: artifacts.plane.so/makeplane/plane-admin:${APP_RELEASE:-v1.2.1} + restart: unless-stopped depends_on: - api - web @@ -30,8 +30,8 @@ services: - .env live: - image: makeplane/plane-live:${APP_RELEASE:-v0.27.1} - command: node live/dist/server.js live + image: artifacts.plane.so/makeplane/plane-live:${APP_RELEASE:-v1.2.1} + restart: unless-stopped depends_on: - api - web @@ -39,8 +39,9 @@ services: - .env api: - image: makeplane/plane-backend:${APP_RELEASE:-v0.27.1} + image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.2.1} command: ./bin/docker-entrypoint-api.sh + restart: unless-stopped volumes: - logs_api:/code/plane/logs depends_on: @@ -51,8 +52,9 @@ services: - .env worker: - image: makeplane/plane-backend:${APP_RELEASE:-v0.27.1} + image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.2.1} command: ./bin/docker-entrypoint-worker.sh + restart: unless-stopped volumes: - logs_worker:/code/plane/logs depends_on: @@ -64,8 +66,9 @@ services: - .env beat-worker: - image: makeplane/plane-backend:${APP_RELEASE:-v0.27.1} + image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.2.1} command: ./bin/docker-entrypoint-beat.sh + restart: unless-stopped volumes: - logs_beat-worker:/code/plane/logs depends_on: @@ -77,8 +80,9 @@ services: - .env migrator: - image: makeplane/plane-backend:${APP_RELEASE:-v0.27.1} + image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.2.1} command: ./bin/docker-entrypoint-migrator.sh + restart: on-failure volumes: - logs_migrator:/code/plane/logs depends_on: @@ -88,15 +92,17 @@ services: - .env plane-db: - image: postgres:17-alpine + image: postgres:15.7-alpine command: postgres -c 'max_connections=1000' + restart: unless-stopped volumes: - pgdata:/var/lib/postgresql/data env_file: - .env plane-redis: - image: valkey/valkey:7.2.5-alpine + image: valkey/valkey:7.2.11-alpine + restart: unless-stopped volumes: - redisdata:/data env_file: @@ -104,6 +110,7 @@ services: plane-mq: image: rabbitmq:3.13.6-management-alpine + restart: unless-stopped volumes: - rabbitmq_data:/var/lib/rabbitmq env_file: @@ -112,17 +119,24 @@ services: plane-minio: image: minio/minio:latest command: server /export --console-address ":9090" + restart: unless-stopped volumes: - uploads:/export env_file: - .env proxy: - image: makeplane/plane-proxy:${APP_RELEASE:-v0.27.1} + image: artifacts.plane.so/makeplane/plane-proxy:${APP_RELEASE:-v1.2.1} + restart: unless-stopped + volumes: + - proxy_config:/config + - proxy_data:/data depends_on: - web - api - space + - admin + - live env_file: - .env @@ -135,3 +149,5 @@ volumes: logs_beat-worker: logs_migrator: rabbitmq_data: + proxy_config: + proxy_data: diff --git a/blueprints/plane/template.toml b/blueprints/plane/template.toml index a12f45649..ecb42b761 100644 --- a/blueprints/plane/template.toml +++ b/blueprints/plane/template.toml @@ -5,49 +5,54 @@ minio_password = "${password:32}" rabbitmq_user = "${username}" rabbitmq_pass = "${password:32}" secret_key = "${base64:48}" +live_server_secret_key = "${base64:32}" [config] env = [ -"Domain=${domain}", -"WEB_URL=${Domain}", -"PGHOST=plane-db", -"PGDATABASE=plane", -"POSTGRES_USER=${username}", -"POSTGRES_PASSWORD=${db_password}", -"POSTGRES_DB=plane", -"POSTGRES_PORT=5432", -"PGDATA=/var/lib/postgresql/data", -"REDIS_HOST=plane-redis", -"REDIS_PORT=6379", -"REDIS_URL=redis://plane-redis:6379/", -"MINIO_ROOT_USER=access-key", -"MINIO_ROOT_PASSWORD=${minio_password}", -"AWS_REGION=", -"AWS_ACCESS_KEY_ID=${MINIO_ROOT_USER}", -"AWS_SECRET_ACCESS_KEY=${minio_password}", -"AWS_S3_ENDPOINT_URL=http://plane-minio:9000", -"AWS_S3_BUCKET_NAME=uploads", -"NGINX_PORT=80", -"BUCKET_NAME=uploads", -"FILE_SIZE_LIMIT=5242880", -"RABBITMQ_HOST=plane-mq", -"RABBITMQ_PORT=5672", -"RABBITMQ_DEFAULT_USER=rabbitmq_user", -"RABBITMQ_DEFAULT_PASS=${rabbitmq_pass}", -"RABBITMQ_DEFAULT_VHOST=plane", -"RABBITMQ_VHOST=plane", -"API_BASE_URL=http://api:8000", -"DEBUG=0", -"SENTRY_DSN=", -"SENTRY_ENVIRONMENT=production", -"CORS_ALLOWED_ORIGINS=https://${Domain}", -"GUNICORN_WORKERS=1", -"USE_MINIO=1", -"DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@plane-db/plane", -"SECRET_KEY=${secret_key}", -"AMQP_URL=amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@plane-mq:5672/plane", -"API_KEY_RATE_LIMIT=60/minute", -"MINIO_ENDPOINT_SSL=0" + "APP_DOMAIN=${main_domain}", + "APP_RELEASE=v1.2.1", + "WEB_URL=https://${main_domain}", + "PGHOST=plane-db", + "PGDATABASE=plane", + "POSTGRES_USER=plane", + "POSTGRES_PASSWORD=${db_password}", + "POSTGRES_DB=plane", + "POSTGRES_PORT=5432", + "PGDATA=/var/lib/postgresql/data", + "REDIS_HOST=plane-redis", + "REDIS_PORT=6379", + "REDIS_URL=redis://plane-redis:6379/", + "MINIO_ROOT_USER=access-key", + "MINIO_ROOT_PASSWORD=${minio_password}", + "AWS_REGION=", + "AWS_ACCESS_KEY_ID=access-key", + "AWS_SECRET_ACCESS_KEY=${minio_password}", + "AWS_S3_ENDPOINT_URL=http://plane-minio:9000", + "AWS_S3_BUCKET_NAME=uploads", + "BUCKET_NAME=uploads", + "FILE_SIZE_LIMIT=5242880", + "RABBITMQ_HOST=plane-mq", + "RABBITMQ_PORT=5672", + "RABBITMQ_USER=${rabbitmq_user}", + "RABBITMQ_PASSWORD=${rabbitmq_pass}", + "RABBITMQ_DEFAULT_USER=${rabbitmq_user}", + "RABBITMQ_DEFAULT_PASS=${rabbitmq_pass}", + "RABBITMQ_DEFAULT_VHOST=plane", + "RABBITMQ_VHOST=plane", + "API_BASE_URL=http://api:8000", + "DEBUG=0", + "CORS_ALLOWED_ORIGINS=https://${main_domain}", + "GUNICORN_WORKERS=1", + "USE_MINIO=1", + "DATABASE_URL=postgresql://plane:${db_password}@plane-db/plane", + "SECRET_KEY=${secret_key}", + "LIVE_SERVER_SECRET_KEY=${live_server_secret_key}", + "AMQP_URL=amqp://${rabbitmq_user}:${rabbitmq_pass}@plane-mq:5672/plane", + "API_KEY_RATE_LIMIT=60/minute", + "MINIO_ENDPOINT_SSL=0", + "SITE_ADDRESS=:80", + "LISTEN_HTTP_PORT=80", + "LISTEN_HTTPS_PORT=443" ] mounts = [] diff --git a/meta.json b/meta.json index 7fc8b6b70..24dfe9736 100644 --- a/meta.json +++ b/meta.json @@ -4757,7 +4757,7 @@ { "id": "plane", "name": "Plane", - "version": "v0.27.1", + "version": "v1.2.1", "description": "Easy, flexible, open source project management software", "logo": "plane.png", "links": { From 7ad8913ea3aa9fa69f44107ae63313bb55787953 Mon Sep 17 00:00:00 2001 From: Rasaboun Date: Wed, 24 Dec 2025 20:27:12 +0100 Subject: [PATCH 2/3] chore: trigger CI From bdf1f04b0151a187724c60ace6953fa254d427f3 Mon Sep 17 00:00:00 2001 From: Rasaboun Date: Wed, 24 Dec 2025 20:31:02 +0100 Subject: [PATCH 3/3] fix: address PR review comments - Change WEB_URL from https to http (per project guidelines) - Change CORS_ALLOWED_ORIGINS from https to http (per project guidelines) - Pin MinIO to specific version RELEASE.2025-09-07T16-13-09Z (avoid latest tag) --- blueprints/plane/docker-compose.yml | 2 +- blueprints/plane/template.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blueprints/plane/docker-compose.yml b/blueprints/plane/docker-compose.yml index 486f5593f..406dcbbc0 100644 --- a/blueprints/plane/docker-compose.yml +++ b/blueprints/plane/docker-compose.yml @@ -117,7 +117,7 @@ services: - .env plane-minio: - image: minio/minio:latest + image: minio/minio:RELEASE.2025-09-07T16-13-09Z command: server /export --console-address ":9090" restart: unless-stopped volumes: diff --git a/blueprints/plane/template.toml b/blueprints/plane/template.toml index ecb42b761..652f25c25 100644 --- a/blueprints/plane/template.toml +++ b/blueprints/plane/template.toml @@ -11,7 +11,7 @@ live_server_secret_key = "${base64:32}" env = [ "APP_DOMAIN=${main_domain}", "APP_RELEASE=v1.2.1", - "WEB_URL=https://${main_domain}", + "WEB_URL=http://${main_domain}", "PGHOST=plane-db", "PGDATABASE=plane", "POSTGRES_USER=plane", @@ -41,7 +41,7 @@ env = [ "RABBITMQ_VHOST=plane", "API_BASE_URL=http://api:8000", "DEBUG=0", - "CORS_ALLOWED_ORIGINS=https://${main_domain}", + "CORS_ALLOWED_ORIGINS=http://${main_domain}", "GUNICORN_WORKERS=1", "USE_MINIO=1", "DATABASE_URL=postgresql://plane:${db_password}@plane-db/plane",