This PR adds a new Construct blueprint (Rust-based autonomous AI assistant) and registers it in meta.json. The blueprint structure and Compose conventions are followed correctly, but there are two blocking issues:
The existing Strapi entry is deleted from meta.json with no explanation — this appears unintentional and will silently remove the template from the registry.
api_key is populated with ${password:64} (a random generated string), but the value is passed as a real third-party API key (API_KEY for OpenRouter). A randomly generated value will always fail to authenticate, making the template non-functional on first deploy.
Confidence Score: 3/5
Not safe to merge as-is: the Strapi deletion would break an existing template, and the API key generation approach will produce non-functional deployments.
Two P1 findings: accidental removal of an established template (Strapi) and a generated random value used as an external provider API key that will never authenticate. Both need to be resolved before merging.
meta.json (Strapi deletion) and blueprints/construct/template.toml (api_key generation)
The existing Strapi entry (id: "strapi", v5.33.0) is deleted from meta.json with no stated reason. This appears to be an unintentional side effect — perhaps of a manual edit without running node dedupe-and-sort-meta.js afterward, or a merge/rebase artefact. Removing it will make Strapi disappear from the template registry for all users once this PR merges.
🔄 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/826
**Author:** [@kaveone](https://github.com/kaveone)
**Created:** 4/28/2026
**Status:** ❌ Closed
**Base:** `main` ← **Head:** `construct/update-v2026.4.29-beta.64`
---
### 📝 Commits (1)
- [`6c57b93`](https://github.com/Dokploy/templates/commit/6c57b93c362ad8881c4b9f4e07992e4ff43096c4) feat: add/update Construct template (v2026.4.29-beta.64)
### 📊 Changes
**4 files changed** (+49 additions, -18 deletions)
<details>
<summary>View changed files</summary>
➕ `blueprints/construct/construct.png` (+0 -0)
➕ `blueprints/construct/docker-compose.yml` (+16 -0)
➕ `blueprints/construct/template.toml` (+17 -0)
📝 `meta.json` (+16 -18)
</details>
### 📄 Description
## Summary
- Adds/updates Construct template to v${VERSION}
- Image: `ghcr.io/kumihoio/construct-os:${VERSION}`
- Construct is a fast, small, fully autonomous AI personal assistant (100% Rust)
- Multi-arch: linux/amd64 + linux/arm64
## Checklist
- [x] Read README.md suggestions
- [x] Tested template in personal Dokploy instance
- [x] Confirmed all requirements met
## Testing
- Deployed via Compose service import
- Service starts and gateway is accessible on port 42617
- Health check passes
## Links
- https://github.com/KumihoIO/construct-os
- https://github.com/orgs/KumihoIO/packages/container/package/construct
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
This PR adds a new Construct blueprint (Rust-based autonomous AI assistant) and registers it in `meta.json`. The blueprint structure and Compose conventions are followed correctly, but there are two blocking issues:
- The existing **Strapi** entry is deleted from `meta.json` with no explanation — this appears unintentional and will silently remove the template from the registry.
- `api_key` is populated with `${password:64}` (a random generated string), but the value is passed as a real third-party API key (`API_KEY` for OpenRouter). A randomly generated value will always fail to authenticate, making the template non-functional on first deploy.
<h3>Confidence Score: 3/5</h3>
Not safe to merge as-is: the Strapi deletion would break an existing template, and the API key generation approach will produce non-functional deployments.
Two P1 findings: accidental removal of an established template (Strapi) and a generated random value used as an external provider API key that will never authenticate. Both need to be resolved before merging.
`meta.json` (Strapi deletion) and `blueprints/construct/template.toml` (api_key generation)
<!-- greptile_failed_comments -->
<details><summary><h3>Comments Outside Diff (1)</h3></summary>
1. `meta.json`, line 5968-5985 ([link](https://github.com/dokploy/templates/blob/6c57b93c362ad8881c4b9f4e07992e4ff43096c4/meta.json#L5968-L5985))
<a href="#"><img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=7" align="top"></a> **Strapi template accidentally removed**
The existing Strapi entry (`id: "strapi"`, `v5.33.0`) is deleted from `meta.json` with no stated reason. This appears to be an unintentional side effect — perhaps of a manual edit without running `node dedupe-and-sort-meta.js` afterward, or a merge/rebase artefact. Removing it will make Strapi disappear from the template registry for all users once this PR merges.
</details>
<!-- /greptile_failed_comments -->
<sub>Reviews (1): Last reviewed commit: ["feat: add/update Construct template (v20..."](https://github.com/dokploy/templates/commit/6c57b93c362ad8881c4b9f4e07992e4ff43096c4) | [Re-trigger Greptile](https://app.greptile.com/api/retrigger?id=30020776)</sub>
> Greptile also left **1 inline comment** on this PR.
**Context used:**
- Context used - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=09330bde-2058-497c-9c64-ceae637fb5b2))
<!-- /greptile_comment -->
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/826
Author: @kaveone
Created: 4/28/2026
Status: ❌ Closed
Base:
main← Head:construct/update-v2026.4.29-beta.64📝 Commits (1)
6c57b93feat: add/update Construct template (v2026.4.29-beta.64)📊 Changes
4 files changed (+49 additions, -18 deletions)
View changed files
➕
blueprints/construct/construct.png(+0 -0)➕
blueprints/construct/docker-compose.yml(+16 -0)➕
blueprints/construct/template.toml(+17 -0)📝
meta.json(+16 -18)📄 Description
Summary
ghcr.io/kumihoio/construct-os:${VERSION}Checklist
Testing
Links
Greptile Summary
This PR adds a new Construct blueprint (Rust-based autonomous AI assistant) and registers it in
meta.json. The blueprint structure and Compose conventions are followed correctly, but there are two blocking issues:meta.jsonwith no explanation — this appears unintentional and will silently remove the template from the registry.api_keyis populated with${password:64}(a random generated string), but the value is passed as a real third-party API key (API_KEYfor OpenRouter). A randomly generated value will always fail to authenticate, making the template non-functional on first deploy.Confidence Score: 3/5
Not safe to merge as-is: the Strapi deletion would break an existing template, and the API key generation approach will produce non-functional deployments.
Two P1 findings: accidental removal of an established template (Strapi) and a generated random value used as an external provider API key that will never authenticate. Both need to be resolved before merging.
meta.json(Strapi deletion) andblueprints/construct/template.toml(api_key generation)Comments Outside Diff (1)
meta.json, line 5968-5985 (link)The existing Strapi entry (
id: "strapi",v5.33.0) is deleted frommeta.jsonwith no stated reason. This appears to be an unintentional side effect — perhaps of a manual edit without runningnode dedupe-and-sort-meta.jsafterward, or a merge/rebase artefact. Removing it will make Strapi disappear from the template registry for all users once this PR merges.Reviews (1): Last reviewed commit: "feat: add/update Construct template (v20..." | Re-trigger Greptile
Context used:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.