- 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>
Adds a Dokploy template for Taiga (taigaio/taiga-back, taiga-front,
taiga-events, taiga-protected) wired through an nginx gateway, with
RabbitMQ and Postgres backing services.
Diverges from prior PR #547 in two ways:
- Strips trailing inline `# ...` comments from env values in
template.toml. Those comments were captured as part of the value when
Dokploy expanded them into docker-compose, polluting strings like
TAIGA_SCHEME, EMAIL_BACKEND, etc. and breaking Django URL/email
configuration at runtime.
- Adds explicit SUBPATH= and RABBITMQ_VHOST env entries that PR #547
referenced but never set, so variable expansion no longer falls back
to empty/undefined.
Validated locally with build-scripts/validate-template.ts,
build-scripts/validate-docker-compose.ts, and meta.json required-field
+ dedupe-and-sort checks. No runtime deploy was performed locally.
Co-authored-by: Richard Nevins <richjnevins@gmail.com>