This PR adds a new Rustrak template (a self-hosted Sentry-compatible error tracking tool with a Rust backend and Next.js UI) to the Dokploy template library. The template.toml and SVG logo are well-formed and follow project conventions, but there are three issues that need to be addressed before merging:
ports instead of expose in docker-compose.yml: Both the rustrak and ui services declare ports mappings, which is explicitly prohibited by the project guidelines. Dokploy manages all routing via its reverse proxy, so expose must be used instead.
Unpinned Docker image tags: Both abians7/rustrak-server:latest and abians7/rustrak-ui:latest use :latest, violating the guideline to pin images to a specific version to prevent supply-chain attacks. The version field in meta.json should also reflect the pinned tag rather than "latest".
Accidental deletion of the Strapi meta.json entry: The existing Strapi template entry was removed from meta.json in this PR. The blueprint files still exist on disk but Strapi will be invisible to users until the entry is restored. This was likely an unintended side-effect of running dedupe-and-sort-meta.js or a manual merge conflict resolution.
Confidence Score: 1/5
Not safe to merge — accidental deletion of the Strapi registry entry and ports convention violation must be fixed first.
The accidental removal of the Strapi entry from meta.json is a regression that would break an existing, working template for all users. The ports directive is a clear guidelines violation that would cause incorrect networking behaviour in Dokploy deployments.
meta.json (Strapi deletion) and blueprints/rustrak/docker-compose.yml (ports → expose, unpinned images).
🔄 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/741
**Author:** [@AbianS](https://github.com/AbianS)
**Created:** 3/9/2026
**Status:** 🔄 Open
**Base:** `canary` ← **Head:** `add-rustrak-template`
---
### 📝 Commits (8)
- [`2d39d8c`](https://github.com/Dokploy/templates/commit/2d39d8c1e32ec18ddf394b540ffa1e5f038330ac) feat: add Rustrak template
- [`dd1e957`](https://github.com/Dokploy/templates/commit/dd1e957e520b81036a78447d6e3b3da3af8419a2) fix: update Rustrak docs link to official documentation site
- [`bc7879f`](https://github.com/Dokploy/templates/commit/bc7879fcbb8e124e56b68ef36bbc079fe303ef0a) fix: update Rustrak website link
- [`0787f5b`](https://github.com/Dokploy/templates/commit/0787f5b5ed9be9c8e189fe63081d451af11e862b) fix: use surgical insert to avoid unicode escaping other entries
- [`293f5bd`](https://github.com/Dokploy/templates/commit/293f5bd6e32035205514555a3dd706072592434b) fix: run dedupe-and-sort-meta to pass validate-meta CI check
- [`bcb4aa7`](https://github.com/Dokploy/templates/commit/bcb4aa712fac44c90398024b29fdc293b19648c4) fix: pin image versions and replace ports with expose
- [`75038df`](https://github.com/Dokploy/templates/commit/75038df122ea7b5f1b444709a2fd35270fb04abf) fix: restore canary meta.json state, only add rustrak entry
- [`fba1831`](https://github.com/Dokploy/templates/commit/fba18315ee71ed2fed7588aebc80a435889b5d61) fix: run dedupe-and-sort-meta to pass validate-meta CI check
### 📊 Changes
**4 files changed** (+75 additions, -18 deletions)
<details>
<summary>View changed files</summary>
➕ `blueprints/rustrak/docker-compose.yml` (+30 -0)
➕ `blueprints/rustrak/rustrak.svg` (+5 -0)
➕ `blueprints/rustrak/template.toml` (+23 -0)
📝 `meta.json` (+17 -18)
</details>
### 📄 Description
## Description
Adds a deployment template for **Rustrak**, an ultra-lightweight, self-hosted error tracking system compatible with Sentry SDKs.
- **Server**: Rust/Actix-web backend with **SQLite** (bundled, zero external DB dependency)
- **UI**: Next.js dashboard for browsing issues and events
- Docker images: `abians7/rustrak-server:latest` + `abians7/rustrak-ui:latest`
## Services
| Service | Image | Port |
|---------|-------|------|
| `rustrak` | `abians7/rustrak-server:latest` | 8080 |
| `ui` | `abians7/rustrak-ui:latest` | 3000 |
## What gets configured automatically
- Two domains: one for the UI (`ui`), one for the API (`rustrak`)
- A random 64-char session secret key (`SESSION_SECRET_KEY`)
- A bootstrap admin user with a random password via `CREATE_SUPERUSER`
- SQLite data persisted in a named volume (`rustrak-data:/data`)
- `SSL_PROXY=true` since Dokploy terminates SSL via its reverse proxy
## Files added
```
blueprints/rustrak/
├── docker-compose.yml
├── template.toml
└── rustrak.svg
```
## Testing notes
> ⚠️ I will test this using the auto-generated Cloudflare preview URL once CI builds it. Steps:
> 1. Find the Rustrak template in the preview
> 2. Copy the Base64 config
> 3. In Dokploy: Compose > Advanced > Import > Paste Base64 > Deploy
> 4. Verify both services start, UI loads, and login with the bootstrap credentials works
## Related
- GitHub repo: https://github.com/AbianS/rustrak
- Closes: N/A
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
This PR adds a new Rustrak template (a self-hosted Sentry-compatible error tracking tool with a Rust backend and Next.js UI) to the Dokploy template library. The `template.toml` and SVG logo are well-formed and follow project conventions, but there are three issues that need to be addressed before merging:
- **`ports` instead of `expose` in `docker-compose.yml`**: Both the `rustrak` and `ui` services declare `ports` mappings, which is explicitly prohibited by the project guidelines. Dokploy manages all routing via its reverse proxy, so `expose` must be used instead.
- **Unpinned Docker image tags**: Both `abians7/rustrak-server:latest` and `abians7/rustrak-ui:latest` use `:latest`, violating the guideline to pin images to a specific version to prevent supply-chain attacks. The `version` field in `meta.json` should also reflect the pinned tag rather than `"latest"`.
- **Accidental deletion of the Strapi `meta.json` entry**: The existing Strapi template entry was removed from `meta.json` in this PR. The blueprint files still exist on disk but Strapi will be invisible to users until the entry is restored. This was likely an unintended side-effect of running `dedupe-and-sort-meta.js` or a manual merge conflict resolution.
<h3>Confidence Score: 1/5</h3>
- Not safe to merge — accidental deletion of the Strapi registry entry and `ports` convention violation must be fixed first.
- The accidental removal of the Strapi entry from `meta.json` is a regression that would break an existing, working template for all users. The `ports` directive is a clear guidelines violation that would cause incorrect networking behaviour in Dokploy deployments.
- `meta.json` (Strapi deletion) and `blueprints/rustrak/docker-compose.yml` (`ports` → `expose`, unpinned images).
<sub>Last reviewed commit: bc7879f</sub>
> Greptile also left **3 inline comments** on this PR.
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
**Context used:**
- Rule 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/741
Author: @AbianS
Created: 3/9/2026
Status: 🔄 Open
Base:
canary← Head:add-rustrak-template📝 Commits (8)
2d39d8cfeat: add Rustrak templatedd1e957fix: update Rustrak docs link to official documentation sitebc7879ffix: update Rustrak website link0787f5bfix: use surgical insert to avoid unicode escaping other entries293f5bdfix: run dedupe-and-sort-meta to pass validate-meta CI checkbcb4aa7fix: pin image versions and replace ports with expose75038dffix: restore canary meta.json state, only add rustrak entryfba1831fix: run dedupe-and-sort-meta to pass validate-meta CI check📊 Changes
4 files changed (+75 additions, -18 deletions)
View changed files
➕
blueprints/rustrak/docker-compose.yml(+30 -0)➕
blueprints/rustrak/rustrak.svg(+5 -0)➕
blueprints/rustrak/template.toml(+23 -0)📝
meta.json(+17 -18)📄 Description
Description
Adds a deployment template for Rustrak, an ultra-lightweight, self-hosted error tracking system compatible with Sentry SDKs.
abians7/rustrak-server:latest+abians7/rustrak-ui:latestServices
rustrakabians7/rustrak-server:latestuiabians7/rustrak-ui:latestWhat gets configured automatically
ui), one for the API (rustrak)SESSION_SECRET_KEY)CREATE_SUPERUSERrustrak-data:/data)SSL_PROXY=truesince Dokploy terminates SSL via its reverse proxyFiles added
Testing notes
Related
Greptile Summary
This PR adds a new Rustrak template (a self-hosted Sentry-compatible error tracking tool with a Rust backend and Next.js UI) to the Dokploy template library. The
template.tomland SVG logo are well-formed and follow project conventions, but there are three issues that need to be addressed before merging:portsinstead ofexposeindocker-compose.yml: Both therustrakanduiservices declareportsmappings, which is explicitly prohibited by the project guidelines. Dokploy manages all routing via its reverse proxy, soexposemust be used instead.abians7/rustrak-server:latestandabians7/rustrak-ui:latestuse:latest, violating the guideline to pin images to a specific version to prevent supply-chain attacks. Theversionfield inmeta.jsonshould also reflect the pinned tag rather than"latest".meta.jsonentry: The existing Strapi template entry was removed frommeta.jsonin this PR. The blueprint files still exist on disk but Strapi will be invisible to users until the entry is restored. This was likely an unintended side-effect of runningdedupe-and-sort-meta.jsor a manual merge conflict resolution.Confidence Score: 1/5
portsconvention violation must be fixed first.meta.jsonis a regression that would break an existing, working template for all users. Theportsdirective is a clear guidelines violation that would cause incorrect networking behaviour in Dokploy deployments.meta.json(Strapi deletion) andblueprints/rustrak/docker-compose.yml(ports→expose, unpinned images).Last reviewed commit:
bc7879f(2/5) Greptile learns from your feedback when you react with thumbs up/down!
Context used:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.