Skip to content

fix: normalize template.toml mounts across all 502 blueprints - #1063

Merged
Siumauricio merged 3 commits into
canaryfrom
fix/normalize-empty-mounts
Aug 6, 2026
Merged

fix: normalize template.toml mounts across all 502 blueprints#1063
Siumauricio merged 3 commits into
canaryfrom
fix/normalize-empty-mounts

Conversation

@Siumauricio

Copy link
Copy Markdown
Contributor

Closes #1047 — great report by @DPS0340.

What this fixes (full accounting of the 80 toml + 30 compose failures from the issue):

  • 79 tomls with a bare [[config.mounts]] header (which TOML parses as one empty array element) → normalized to the majority idiom mounts = [].
  • 38 tomls with doc-style mount blocks (name/mountPath/description) that don't match the mounts schema (filePath/content) and are inert in Dokploy's template processor → removed (their named volumes already live in each compose).
  • penpot: duplicate expose map key made its docker-compose.yml invalid YAML → merged.
  • The compose-side failures were already addressed by fix: bring scrutiny, stack-auth and vault in line with the compose conventions #1048 and fix: change "ports" -> "expose" for multiple services #1053; the ~24 remaining flags are the intentional host-port templates (poste.io, mailu, oryx, fivem, lodestone…) — a future validator allowlist could model those as exceptions.

Verification: validate-template.ts --dir passes for all 502 blueprints (was 80 failing); generate-meta.js --check → 502 validated. The scheduled audit proposed in #1049 will keep this from regressing.

🤖 Generated with Claude Code

- 79 blueprints declared a bare [[config.mounts]] header (one empty array
  element in TOML) -> replaced with the repo idiom 'mounts = []'
- 38 blueprints carried doc-style mount blocks (name/mountPath/description)
  that don't match the schema (filePath/content) and are inert in Dokploy's
  template processor -> removed; their named volumes already live in each
  docker-compose.yml
- penpot: duplicate 'expose' map key made its docker-compose.yml invalid
  YAML -> merged into one expose list

After this, validate-template.ts passes for all 502 blueprints. The
remaining validate-docker-compose.ts flags are the intentional host-port
templates (mail/game/streaming protocols: poste.io, mailu, oryx, fivem,
lodestone, etc.) which the validator does not yet model as exceptions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. bug Something isn't working labels Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview 21c1fec

Siumauricio and others added 2 commits August 6, 2026 01:21
…rustdesk

The validate-docker-compose CI on this PR was failing on rustdesk's
hbbs/hbbr port mappings (21115-21119) — intentional host-published ports
for the RustDesk relay/rendezvous protocol, which Traefik cannot route.

Adds a '# dokploy: allow-host-ports' top-of-file marker that downgrades
the port-mapping errors to warnings for such protocol templates
(mail/game/streaming/VPN/remote-desktop), and annotates rustdesk.
Other exception templates (poste.io, mailu, oryx, fivem...) can be
annotated case-by-case as the weekly audit (#1049) surfaces them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Siumauricio
Siumauricio merged commit 1d47fa1 into canary Aug 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

80 blueprints fail validate-template.ts on an empty [[config.mounts]] block

1 participant