[PR #912] chore(plane): update template to v1.3.1 with healthchecks and bug fixes #12500

Open
opened 2026-06-13 14:16:21 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Dokploy/templates/pull/912
Author: @leogomide
Created: 5/28/2026
Status: 🔄 Open

Base: canaryHead: update-plane-v1.3.1


📝 Commits (7)

  • 669ad4a chore(plane): update template to v1.3.1 with healthchecks and bug fixes
  • 9c29df4 fix(plane): rename services + add proxy links to avoid DNS collision
  • 11bc16e docs(plane): translate top-of-file comment to English
  • 34501dd fix(plane): set proxy SITE_ADDRESS and TRUSTED_PROXIES to fix Caddyfile crash
  • b24dbc7 fix(plane): tighten proxy TRUSTED_PROXIES to private_ranges (no IP spoofing)
  • 2248627 fix(plane): move env/mounts under [config] so template env exports correctly
  • d651d2d docs(plane): document each env var as inline comments in template env

📊 Changes

4 files changed (+317 additions, -125 deletions)

View changed files

📝 blueprints/plane/docker-compose.yml (+217 -81)
📝 blueprints/plane/plane.png (+0 -0)
📝 blueprints/plane/template.toml (+99 -43)
📝 meta.json (+1 -1)

📄 Description

What is this PR about?

Update the Plane template from v0.27.1 to v1.3.1 (latest stable), refactor the compose file for reliability, and fix several bugs in the current template.toml.

Image bumps

  • makeplane/plane-frontend, plane-space, plane-admin, plane-live, plane-backend, plane-proxy: v0.27.1v1.3.1
  • valkey/valkey: 7.2.5-alpine7.2.11-alpine
  • minio/minio: latestRELEASE.2025-04-22T22-12-26Z (pinned to the last release before MinIO removed the admin console from the community edition)
  • postgres, rabbitmq: kept (17-alpine, 3.13.6-management-alpine) to avoid breaking existing deployments

docker-compose.yml improvements

  • Add YAML anchors (x-db-env, x-redis-env, x-app-env, ...) and <<: [*anchor] merges to eliminate duplicated env across api/worker/beat-worker/migrator/live
  • Migrate from env_file: [.env] to inline environment: (matches the repo convention; Dokploy injects env via template.toml)
  • Add restart: unless-stopped to every long-running service; restart: on-failure on migrator
  • Add healthcheck to plane-db, plane-redis, plane-mq
  • api/worker/beat-worker now wait for migrator via condition: service_completed_successfully — fixes a race where the backend booted before the Django schema was migrated
  • proxy uses expose: ["80"] (no host port mapping, per the validator rule)

template.toml improvements (bug fixes)

  • RABBITMQ_DEFAULT_USER was the literal string "rabbitmq_user" instead of a variable reference, so the broker user ended up as rabbitmq_user while AMQP_URL expected something else. Now fixed to plane consistently.
  • WEB_URL=${Domain} was missing the https:// scheme, which broke OAuth callback URLs and email links emitted by the backend. Now WEB_URL=https://${main_domain}.
  • DATABASE_URL/AMQP_URL referenced inline vars (${POSTGRES_USER}, ${MINIO_ROOT_USER}) that Dokploy does not resolve inside [config.env] — only [variables] references and helpers work. Now built directly from [variables].
  • Remove dead vars: NGINX_PORT (Plane uses Caddy in v1.x), SENTRY_DSN, SENTRY_ENVIRONMENT.
  • Add WEBHOOK_ALLOWED_IPS="" and WEBHOOK_ALLOWED_HOSTS="" — Plane v1.x ships an SSRF guard for webhooks that blocks private IPs by default; exposing these as empty strings makes the intended posture explicit and discoverable.
  • Add APP_RELEASE to [variables] so users can pick the image tag via the Dokploy UI without editing env directly.
  • blueprints/plane/plane.png updated to the current Plane brand logo.

Checklist

  • I have read the suggestions in the README.md / CONTRIBUTING.md
  • I have validated the template locally (docker compose config, validate-docker-compose.ts, validate-template.ts all pass with zero errors)
  • meta.json processed with node build-scripts/process-meta.js (only the version bump appears in the diff)

N/A — proactive maintenance update.

Testing notes

Validated locally with the repo's own scripts:

  • docker compose -f blueprints/plane/docker-compose.yml config → exit 0
  • tsx build-scripts/validate-docker-compose.ts → 13 services detected, structure valid
  • tsx build-scripts/validate-template.ts → 7 variables processed, structure valid

A full end-to-end smoke test (admin signup, project + issue + MinIO upload, live WebSocket "users online") can be run from the auto-generated PR preview.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Dokploy/templates/pull/912 **Author:** [@leogomide](https://github.com/leogomide) **Created:** 5/28/2026 **Status:** 🔄 Open **Base:** `canary` ← **Head:** `update-plane-v1.3.1` --- ### 📝 Commits (7) - [`669ad4a`](https://github.com/Dokploy/templates/commit/669ad4a2577d1b4cb8ccbcbc39bd5aa0b11c1116) chore(plane): update template to v1.3.1 with healthchecks and bug fixes - [`9c29df4`](https://github.com/Dokploy/templates/commit/9c29df415cbba65d8b3b08220cc4cb43ad3fcb83) fix(plane): rename services + add proxy links to avoid DNS collision - [`11bc16e`](https://github.com/Dokploy/templates/commit/11bc16ea367baf4394510667913fbc8a74c9670f) docs(plane): translate top-of-file comment to English - [`34501dd`](https://github.com/Dokploy/templates/commit/34501dd8b51b176027454127b90edbce4a32dd50) fix(plane): set proxy SITE_ADDRESS and TRUSTED_PROXIES to fix Caddyfile crash - [`b24dbc7`](https://github.com/Dokploy/templates/commit/b24dbc761196126b9564e366ba82c8615c33bada) fix(plane): tighten proxy TRUSTED_PROXIES to private_ranges (no IP spoofing) - [`2248627`](https://github.com/Dokploy/templates/commit/2248627c986d2b7eeb0796cdb3fad2d8b2bff23f) fix(plane): move env/mounts under [config] so template env exports correctly - [`d651d2d`](https://github.com/Dokploy/templates/commit/d651d2d400a6796c7ae71d678657a26340827fa9) docs(plane): document each env var as inline comments in template env ### 📊 Changes **4 files changed** (+317 additions, -125 deletions) <details> <summary>View changed files</summary> 📝 `blueprints/plane/docker-compose.yml` (+217 -81) 📝 `blueprints/plane/plane.png` (+0 -0) 📝 `blueprints/plane/template.toml` (+99 -43) 📝 `meta.json` (+1 -1) </details> ### 📄 Description ## What is this PR about? Update the Plane template from **v0.27.1** to **v1.3.1** (latest stable), refactor the compose file for reliability, and fix several bugs in the current `template.toml`. ### Image bumps - `makeplane/plane-frontend`, `plane-space`, `plane-admin`, `plane-live`, `plane-backend`, `plane-proxy`: `v0.27.1` → `v1.3.1` - `valkey/valkey`: `7.2.5-alpine` → `7.2.11-alpine` - `minio/minio`: `latest` → `RELEASE.2025-04-22T22-12-26Z` (pinned to the last release before MinIO removed the admin console from the community edition) - `postgres`, `rabbitmq`: kept (`17-alpine`, `3.13.6-management-alpine`) to avoid breaking existing deployments ### `docker-compose.yml` improvements - Add YAML anchors (`x-db-env`, `x-redis-env`, `x-app-env`, ...) and `<<: [*anchor]` merges to eliminate duplicated env across `api`/`worker`/`beat-worker`/`migrator`/`live` - Migrate from `env_file: [.env]` to inline `environment:` (matches the repo convention; Dokploy injects env via `template.toml`) - Add `restart: unless-stopped` to every long-running service; `restart: on-failure` on `migrator` - Add `healthcheck` to `plane-db`, `plane-redis`, `plane-mq` - `api`/`worker`/`beat-worker` now wait for `migrator` via `condition: service_completed_successfully` — fixes a race where the backend booted before the Django schema was migrated - `proxy` uses `expose: ["80"]` (no host port mapping, per the validator rule) ### `template.toml` improvements (bug fixes) - **`RABBITMQ_DEFAULT_USER` was the literal string `"rabbitmq_user"`** instead of a variable reference, so the broker user ended up as `rabbitmq_user` while `AMQP_URL` expected something else. Now fixed to `plane` consistently. - **`WEB_URL=${Domain}` was missing the `https://` scheme**, which broke OAuth callback URLs and email links emitted by the backend. Now `WEB_URL=https://${main_domain}`. - **`DATABASE_URL`/`AMQP_URL` referenced inline vars (`${POSTGRES_USER}`, `${MINIO_ROOT_USER}`)** that Dokploy does not resolve inside `[config.env]` — only `[variables]` references and helpers work. Now built directly from `[variables]`. - Remove dead vars: `NGINX_PORT` (Plane uses Caddy in v1.x), `SENTRY_DSN`, `SENTRY_ENVIRONMENT`. - Add `WEBHOOK_ALLOWED_IPS=""` and `WEBHOOK_ALLOWED_HOSTS=""` — Plane v1.x ships an SSRF guard for webhooks that blocks private IPs by default; exposing these as empty strings makes the intended posture explicit and discoverable. - Add `APP_RELEASE` to `[variables]` so users can pick the image tag via the Dokploy UI without editing env directly. ### Logo - `blueprints/plane/plane.png` updated to the current Plane brand logo. ## Checklist - [x] I have read the suggestions in the README.md / CONTRIBUTING.md - [x] I have validated the template locally (`docker compose config`, `validate-docker-compose.ts`, `validate-template.ts` all pass with zero errors) - [x] `meta.json` processed with `node build-scripts/process-meta.js` (only the version bump appears in the diff) ## Issues related N/A — proactive maintenance update. ## Testing notes Validated locally with the repo's own scripts: - `docker compose -f blueprints/plane/docker-compose.yml config` → exit 0 - `tsx build-scripts/validate-docker-compose.ts` → 13 services detected, structure valid - `tsx build-scripts/validate-template.ts` → 7 variables processed, structure valid A full end-to-end smoke test (admin signup, project + issue + MinIO upload, live WebSocket "users online") can be run from the auto-generated PR preview. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-06-13 14:16:21 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/templates#12500