chore(plane): update template to v1.3.1 with healthchecks and bug fixes#912
Open
leogomide wants to merge 3 commits into
Open
chore(plane): update template to v1.3.1 with healthchecks and bug fixes#912leogomide wants to merge 3 commits into
leogomide wants to merge 3 commits into
Conversation
- Bump makeplane/* images v0.27.1 -> v1.3.1 - Pin minio to RELEASE.2025-04-22T22-12-26Z (last release with full admin console before community-edition feature removal) - Add YAML anchors (x-*-env) for env reuse across backend services - Add healthchecks for postgres, valkey, rabbitmq - api/worker/beat-worker wait for migrator via service_completed_successfully (fixes race where backend booted before schema was migrated) - Add restart policies (unless-stopped for long-running, on-failure for migrator) - Migrate env_file -> inline environment (matches repo convention) - Expose APP_RELEASE in template.toml [variables] for UI override Bug fixes in template.toml: - RABBITMQ_DEFAULT_USER was the literal string "rabbitmq_user" instead of a variable reference; AMQP_URL was inconsistent with the broker user - WEB_URL was missing the https:// scheme (broke OAuth/email links) - DATABASE_URL/AMQP_URL referenced inline vars that Dokploy does not resolve inside [config.env]; now use [variables] directly - Remove dead vars: NGINX_PORT (Plane v1.x uses Caddy), SENTRY_DSN, SENTRY_ENVIRONMENT - Add WEBHOOK_ALLOWED_IPS/WEBHOOK_ALLOWED_HOSTS (SSRF guard default introduced in Plane v1.x)
built with Refined Cloudflare Pages Action⚡ Cloudflare Pages Deployment
|
The plane-proxy image has hardcoded `reverse_proxy web:3000`/`api:8000`
in its Caddyfile with generic service names. In multi-stack Dokploy
deployments, those names collide with other stacks' containers (Next.js
apps frequently have a `web` service) on the shared dokploy-network —
the Plane domain ends up serving content from unrelated stacks.
Two-step fix:
1. Rename internal services with `plane-*` prefix (unique cluster-wide):
web/space/admin/live/api/worker/beat-worker/migrator → plane-*
2. Add `links:` block to the `proxy` service mapping the new names back
to the generic ones the Caddyfile expects (`plane-web:web` etc.).
Docker injects these into /etc/hosts, which has absolute priority
over DNS — Caddy resolves `web`/`api`/etc. directly to our renamed
containers, ignoring any collision on dokploy-network.
Also updates `API_BASE_URL` in template.toml and the `x-live-env` anchor
from `http://api:8000` → `http://plane-api:8000`.
No `networks:` declarations added (repo validator rejects them; Dokploy
manages networking automatically).
Author
|
Pushed a fix for a DNS collision bug in the internal proxy (commits Problem: the Fix (two layers):
No Local validation (all 0 errors):
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.1valkey/valkey:7.2.5-alpine→7.2.11-alpineminio/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 deploymentsdocker-compose.ymlimprovementsx-db-env,x-redis-env,x-app-env, ...) and<<: [*anchor]merges to eliminate duplicated env acrossapi/worker/beat-worker/migrator/liveenv_file: [.env]to inlineenvironment:(matches the repo convention; Dokploy injects env viatemplate.toml)restart: unless-stoppedto every long-running service;restart: on-failureonmigratorhealthchecktoplane-db,plane-redis,plane-mqapi/worker/beat-workernow wait formigratorviacondition: service_completed_successfully— fixes a race where the backend booted before the Django schema was migratedproxyusesexpose: ["80"](no host port mapping, per the validator rule)template.tomlimprovements (bug fixes)RABBITMQ_DEFAULT_USERwas the literal string"rabbitmq_user"instead of a variable reference, so the broker user ended up asrabbitmq_userwhileAMQP_URLexpected something else. Now fixed toplaneconsistently.WEB_URL=${Domain}was missing thehttps://scheme, which broke OAuth callback URLs and email links emitted by the backend. NowWEB_URL=https://${main_domain}.DATABASE_URL/AMQP_URLreferenced 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].NGINX_PORT(Plane uses Caddy in v1.x),SENTRY_DSN,SENTRY_ENVIRONMENT.WEBHOOK_ALLOWED_IPS=""andWEBHOOK_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.APP_RELEASEto[variables]so users can pick the image tag via the Dokploy UI without editing env directly.Logo
blueprints/plane/plane.pngupdated to the current Plane brand logo.Checklist
docker compose config,validate-docker-compose.ts,validate-template.tsall pass with zero errors)meta.jsonprocessed withnode 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 0tsx build-scripts/validate-docker-compose.ts→ 13 services detected, structure validtsx build-scripts/validate-template.ts→ 7 variables processed, structure validA 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.