Commit Graph

53 Commits

Author SHA1 Message Date
Mauricio Siu
ce4e15741a fix(plane): clear network false positive and restore canary metadata
- Reword two docker-compose comments so the literal string
  "dokploy-network" no longer appears. The compose never declared the
  network manually (Dokploy attaches it automatically); the automated
  template check was tripping on the comment text alone.
- meta.json: keep canary's richer description and tags
  (kanban, project-management), bumping only the version to v1.3.1.

Deploy-verified on a test Dokploy instance: full stack booted in 465s
and proxy:80 answered HTTP 200 with the Plane landing page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 01:26:27 -06:00
Mauricio Siu
f1709c321c fix: resolve conflict markers accidentally committed during meta migration
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 01:12:41 -06:00
Mauricio Siu
13c95c3045 Merge remote-tracking branch 'origin/canary' into update-plane-v1.3.1
# Conflicts:
#	blueprints/plane/docker-compose.yml
#	blueprints/plane/template.toml
#	meta.json
2026-07-08 00:04:43 -06:00
Mauricio Siu
c3de62fb83 feat: per-template metadata — eliminate meta.json merge conflicts
- move each template's metadata to blueprints/<id>/meta.json (442 files, byte-identical roundtrip with the old root meta.json)
- generate the served meta.json at build time into app/public/meta.json (gitignored); pnpm dev/build run the generator first
- CI validates every blueprints/<id>/meta.json via generate-meta.js --check (required fields, id/folder match, logo exists, folder<->meta bidirectionality) and rejects any committed root meta.json
- remove root meta.json, dedupe-and-sort-meta.js and build-scripts/process-meta.js (obsolete)
- update CONTRIBUTING.md, AGENTS.md and README.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 23:58:10 -06:00
Rayane
16693e6f74 fix(plane): update to v1.2.3 and replace MinIO with RustFS (#760)
* fix(plane): update template to Plane v1.x (stable)
The existing template targeted v0.27.1 which is heavily outdated.
This updates it to match Plane's current official deployment config.
Changes:
- Images: v0.27.1 → stable (currently v1.2.3) from Docker Hub
- Remove explicit commands from frontend services (built into images)
- Postgres: 17-alpine → 15.7-alpine (matches Plane's supported version)
- Valkey: 7.2.5 → 7.2.11
- Proxy: add admin + live dependencies, proxy_config/proxy_data volumes
- Add LIVE_SERVER_SECRET_KEY, APP_DOMAIN, SITE_ADDRESS env vars
- Add RABBITMQ_USER/PASSWORD/VHOST (new v1.x env var names)
- Fix RABBITMQ_DEFAULT_USER bug (was hardcoded string, not variable)
- Fix DATABASE_URL to use template variables directly
- Fix AWS_ACCESS_KEY_ID to match MINIO_ROOT_USER literal
- Remove deprecated: version key, SENTRY_*, NGINX_PORT
- Remove unused env_file from plane-redis
- Add restart policies to all services

* fix(plane): replace MinIO with RustFS (Apache 2.0)
MinIO's open-source edition is effectively dead:
- Admin UI stripped (March 2025)
- Docker images discontinued (October 2025)
- GitHub repo in maintenance mode (December 2025)
- Marked as "NO LONGER MAINTAINED" (February 2026)
RustFS is an S3-compatible drop-in replacement:
- Apache 2.0 license (no AGPL restrictions)
- Same S3 API on port 9000
- Written in Rust, 2.3x faster than MinIO for small objects
- Active development with built-in web console

* fix(plane): address CI and convention issues

- Add back version: "3.8" (required by Dokploy conventions)
- Update meta.json: version v0.27.1 → v1.2.3
- Run process-meta to fix pre-existing strapi duplicate
- Migrator restart: "no" → on-failure

* fix(plane): address review feedback

- Pin RustFS to 1.0.0-alpha.90 (no latest tag)
- WEB_URL and CORS_ALLOWED_ORIGINS use http (Dokploy handles TLS)
2026-07-07 17:36:19 -06:00
LeoGomide
d651d2d400 docs(plane): document each env var as inline comments in template env
Add a "# ..." comment string before every entry in config.env, grouped
into labelled sections (Application, PostgreSQL, Redis, RabbitMQ,
storage, proxy, runtime) with blank-line separators. Because Dokploy
renders config.env entries verbatim into the generated .env, these
comment strings carry the documentation into the deployed .env file
(TOML # comments would be stripped at parse time and never reach it).

Same pattern already used by discord-tickets, garage-with-ui, tooljet
and rustfs. No variable values changed; all 39 vars preserved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 13:29:46 -03:00
LeoGomide
2248627c98 fix(plane): move env/mounts under [config] so template env exports correctly
The v1.3.1 rewrite (669ad4a) reordered template.toml so that
[[config.domains]] preceded the bare `env = [...]` and `mounts = []`
keys. In TOML those keys then attach to the first config.domains table
element instead of [config], leaving config.env undefined. Dokploy reads
env from config.env, so the base64 export / deploy shipped with no
environment variables at all.

Move env/mounts back above [[config.domains]] (matching the original
template and other blueprints like documenso). config.env now resolves
to all 39 entries; the domain table keeps only serviceName/port/host.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 10:43:51 -03:00
LeoGomide
b24dbc7611 fix(plane): tighten proxy TRUSTED_PROXIES to private_ranges (no IP spoofing)
Defaulting TRUSTED_PROXIES to 0.0.0.0/0 makes Caddy trust X-Forwarded-For /
X-Real-IP from any peer, allowing client-IP spoofing (CWE-348 / CWE-290) that
poisons rate-limiting and audit logs. In Dokploy the only upstream is Traefik on
the private dokploy-network, so trust Caddy's built-in `private_ranges` token
instead. Legitimate forwarded client IPs (Traefik is a private peer) still
resolve correctly; XFF from public-IP peers is rejected if the proxy is ever
exposed directly. Overridable via env for custom topologies.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 10:17:09 -03:00
LeoGomide
34501dd8b5 fix(plane): set proxy SITE_ADDRESS and TRUSTED_PROXIES to fix Caddyfile crash
The plane-proxy Caddyfile.ce ends with a `{$SITE_ADDRESS} { import plane_proxy }`
block. SITE_ADDRESS has no inline default upstream, so when it is unset the block
becomes keyless and Caddy aborts with:

  adapting config using caddyfile: server block without any key is global
  configuration, and if used, it must be first

Expose SITE_ADDRESS (:80, matching the proxy `expose: ["80"]` + domain port 80,
since Dokploy terminates TLS upstream) and TRUSTED_PROXIES (0.0.0.0/0, matching
the Caddyfile inline default) on the proxy env, and document both in template.toml
so they render into the generated env. Reported and verified by @RDeluxe in #912.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 10:13:39 -03:00
LeoGomide
11bc16ea36 docs(plane): translate top-of-file comment to English 2026-05-28 12:27:07 -03:00
LeoGomide
9c29df415c fix(plane): rename services + add proxy links to avoid DNS collision
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).
2026-05-28 12:22:37 -03:00
LeoGomide
669ad4a257 chore(plane): update template to v1.3.1 with healthchecks and bug fixes
- 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)
2026-05-28 11:14:59 -03:00
Ragil Burhanudin Pamungkas
fbd6e78bf5 chore(blueprint): update plane services to v0.27.1 (#250)
* chore(blueprint): update plane services to v0.27.1

- Bumped all makeplane service images from v0.25.3 to v0.27.1
- Updated web, space, admin, live, api, worker, beat-worker, migrator and proxy services
- Version alignment for all plane components in docker-compose blueprint

* chore(blueprint): update plane version to v0.27.1
2025-07-27 22:58:32 -06:00
naterfute
7e1a136c34 fix: CORS_ALLOWED_ORIGINS not being https 2025-04-08 10:36:25 -07:00
naterfute
d6015f77f0 fix: I kinda hate the templating system 2025-04-07 01:34:13 -07:00
naterfute
b3bb43d4ac fix: it's $ not %% 2025-04-07 01:22:37 -07:00
naterfute
a66149baaa fix: cors error 2025-04-07 00:56:08 -07:00
naterfute
8e79d29319 fix: actual random values 2025-04-07 00:52:51 -07:00
scanash00
3ab1c39b1a fix: plane template 2025-04-07 00:51:13 -07:00
Scan
55cc6ca8d7 Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:44:47 -08:00
Scan
5abff0c8f6 Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:44:34 -08:00
Scan
467d0b81b8 Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:44:10 -08:00
Scan
dd2041ee66 Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:44:01 -08:00
Scan
03248f37a1 Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:41:42 -08:00
Scan
4be40767ad Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:41:16 -08:00
Scan
75d77725be Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:41:03 -08:00
Scan
b41e7518c7 Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:40:50 -08:00
Scan
837087c29a Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:31:53 -08:00
Scan
bac178d39b Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:31:43 -08:00
Scan
7b017a1b26 Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:31:29 -08:00
Scan
b38494571c Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:31:14 -08:00
Scan
65f905a20e Update blueprints/plane/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-04-05 22:31:04 -08:00
naterfute
1c74db3b93 fix: plane nginx binding to port 80 on host 2025-04-05 19:58:31 -07:00
naterfute
d8ff8b7d33 fix: complete rework of plane template 2025-04-04 23:08:15 -07:00
naterfute
9403d32703 fix(plane): entrypoint commands 2025-04-02 23:48:54 -07:00
naterfute
436db2ee24 fix(plane): default version 2025-04-02 23:35:55 -07:00
naterfute
431785eb86 fix: changed to pre-built proxy image 2025-04-02 22:56:07 -07:00
naterfute
d19aa4cd2f fix(plane): entrypoint path 2025-04-02 20:20:49 -07:00
naterfute
8efd3531e1 fix(plane): point entrypoints to the correct spot 2025-04-02 20:13:26 -07:00
naterfute
6857464f11 add entrypoints for plane 2025-04-02 20:12:34 -07:00
naterfute
3c0006d7de fix: renambed nginx container to proxy 2025-04-02 19:56:36 -07:00
naterfute
2277a1c0ac feat: added proxy to plane and fixed minor issues 2025-04-02 19:54:06 -07:00
naterfute
4d37936413 fix: postgres data \ndifferencen 2025-04-02 18:45:55 -07:00
naterfute
52a4934c8a fix: psotgres environment variables 2025-04-02 18:34:13 -07:00
naterfute
3e2d974ef7 fix: env file in plane docker 2025-04-02 18:00:46 -07:00
naterfute
49f172f843 added environment files to all containers 2025-04-02 17:53:23 -07:00
naterfute
32bd26c430 added environment files to all containers 2025-04-02 17:47:32 -07:00
naterfute
030132e0f0 fix: postgresql variables 2025-04-02 17:41:51 -07:00
naterfute
73e056ae2e fix: entrypoint paths 2025-04-02 16:41:48 -07:00
naterfute
9a6c0310f5 fix: plane service name 2025-04-02 16:26:34 -07:00