Skip to content

fix: resolve dependabot security alerts and fix templates for toml 4 - #1191

Closed
narcisonunez wants to merge 37 commits into
mainfrom
fix/dependabot-alerts
Closed

narcisonunez wants to merge 37 commits into
mainfrom
fix/dependabot-alerts

Conversation

@narcisonunez

@narcisonunez narcisonunez commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Resolves the open Dependabot alerts in this repo and fixes 4 templates that don't parse under toml 4.x.

Dokploy is upgrading to toml 4.2.0 in Dokploy/dokploy#5517. Dokploy fetches template.toml from this repo at runtime (fetchTemplateFiles → templates.dokploy.com). This PR should be merged and deployed before #5517 ships. Otherwise those 4 templates will fail to parse in Dokploy.

app/: dependency bumps only

Package Before After Alerts
react-router-dom / react-router 7.9.6 7.18.4 #19-21, #34-39, #47-50
vite 6.4.1 6.4.3 #30, #33, #44, #45
yaml 2.7.1 2.8.3 #25, #26
postcss (transitive) 8.5.3 8.5.28 #46, #51-53
nanoid (transitive) 3.3.9 3.3.19 #55, #56, #63
picomatch (transitive) 2.3.1 / 4.0.3 2.3.2 / 4.0.7 #23, #24, #31, #32
browserslist (transitive) 4.24.4 4.29.2 #64, #65
rollup (transitive) 4.35.0 4.63.5 #22
@babel/core (transitive) 7.28.5 7.29.7 #43
@babel/runtime (transitive) 7.26.9 7.29.7 #2

The transitive packages were bumped inside their existing semver ranges, and no overrides were added. @codemirror/* stays exactly as before, so there is still a single @codemirror/state copy. A plain pnpm update would have added a second copy and broken the editor.

build-scripts/

Package Before After Alerts
toml 3.0.0 4.2.0 (pinned to match Dokploy) #57-62
yaml 2.7.1 2.8.3 #28, #29

Template fixes (required by toml 4.x)

toml 4 follows the TOML spec strictly and rejected these 4 templates, which toml 3 accepted leniently:

  • signoz, supabase: invalid escape sequences in basic strings (\{, \$, \(, \s, \w, \1, …).
    • toml 3 kept these backslashes literally, so they are now written as \\. The parsed value is identical.
  • timescaledb, valkey: mounts = [] followed by [[config.mounts]], which redefines a static array. Removed the empty mounts = [].

Validation

  • Every template.toml was parsed with toml 3.0.0 before and after the changes and compared with a deep-equal check: 0 differences in 532 templates. Dokploy currently on toml 3 receives exactly the same config.
  • The same comparison between toml 3.0.0 and toml 4.2.0 after the fix: 0 differences across all 532 templates.
  • validate-template.ts and validate-docker-compose.ts pass on all 532 blueprints, with the same results as on canary.
  • Every docker-compose.yml parses identically with yaml 2.8.3.
  • generate-meta.js --check passes.
  • app: pnpm build passes (tsc -b + vite 6.4.3).
  • Smoke test of vite preview in the browser:
    • The template list renders.
    • The template modal shows the compose file in CodeMirror.
    • ?q= search works in both directions with react-router 7.18 useSearchParams.
    • No console errors.

Note

CI uses pnpm 8, which ignores the lockfile v9 (WARN Ignoring not compatible lockfile) and resolves fresh. The new minimum versions in package.json ensure that path also gets patched versions. This PR does not change that setup.

zaaakher and others added 30 commits August 15, 2026 17:04
fix: search input icons and scrollbar shift from mode-toggle dropdown
* fix: update 20+ broken links in templates

* fix: evolution-api links
- ghcr.io/trixtylab/kotonoba:latest -> 1.0.19 (same digest as latest today); meta.json version 1.0.19.
- ADMIN_DOMAIN is documented upstream as a bare hostname, pass ${main_domain} without scheme.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat: add postgres-pgadmin template

* feat: expose postgres via second domain

Add postgres_domain variable and second [[config.domains]] for
postgres:5432 alongside pgadmin:80, so both the DB and the web UI
are reachable via Dokploy domains.

* fix(postgres-pgadmin): drop HTTP domain on postgres:5432, pre-register server in pgAdmin, bump pgAdmin to 9.17

- Remove the second [[config.domains]] pointing an HTTP host at postgres:5432 (Traefik returned 502).
- Mount servers.json + pgpass via config.mounts so pgAdmin comes with the bundled PostgreSQL pre-registered and connects without a password prompt (pgpass is copied to the data volume with 0600 for uid 5050).
- Bump dpage/pgadmin4 8.13 -> 9.17.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <mauricio@dokploy.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…data (#1102)

Both Rustrak blueprints shipped abians7/* images pinned to v0.2.1, twelve
minor versions behind the current release, and linked to the old personal
repo. Updated to the official rustrak/* images on latest, refreshed the
metadata, and replaced the logo with the current mark.

The memory figure in the description is now measured rather than estimated:
32 MB resident at idle with SQLite, from docker stats on these images.
…o 0.40.0 (#1105)

- rustrak-full: the Next.js standalone UI bound to $HOSTNAME (container id),
  so Traefik got connection refused and the UI domain returned 502 (pre-existing
  on canary, confirmed by deploying both #1102 and canary). HOSTNAME=0.0.0.0
  was deploy-verified: UI 200 "Rustrak - Error Tracking System".
- trmnl-larapaper: #1101 bumped to 0.33.0 (Apr 2026); upstream is at 0.40.0.
  0.40.0 was deploy-verified on the same template: healthy, /, /login,
  /register, /up all 200.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* feat: add freellmapi template

* fix: align meta.json version with pinned image tag

* fix: use hex helper for ENCRYPTION_KEY
* feat(Kan): add and test kan template

* chore(Rename): change from kan to kanbn
* init

* fix(goatcounter): error on deployment
* feat: add MyLinks template

* fix: correct postgres volume mount path

* fix: add compose version key required by Dokploy

* fix(my-links): healthcheck via 127.0.0.1 (localhost resolves to ::1 on Alpine, app listens on IPv4 only)

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
Co-authored-by: Mauricio Siu <mauricio@dokploy.com>
Update Autobase Docker image from 2.7.2 to 2.10.0 in docker-compose.yml and sync the blueprint meta.json version to match.
* feat: add Instatic template

Instatic is a self-hosted, open-source visual CMS combining a canvas
editor, content engine, and static site publisher. Deployed as a
single container backed by SQLite, with uploads and DB on one
persistent volume.

Signed-off-by: Tekena Solomon <tekena157@gmail.com>

* fix: add init container to fix Instatic storage volume permissions

Signed-off-by: Tekena Solomon <tekena157@gmail.com>

* fix(instatic): accept both https and http public origins so the setup wizard works before HTTPS is enabled

---------

Signed-off-by: Tekena Solomon <tekena157@gmail.com>
Co-authored-by: Mauricio Siu <mauricio@dokploy.com>
… Email SMTP (#1091)

* feat: update calcom image version and add QOL Env Var for public signup

* fix: add quotes to env var definition

* fix: add more information for selfhosting

* feat: add env vars and config for Email SMTP Creds

* chore(calcom): bump meta.json version to v6.2.0 and fix ARM comment line reference

---------

Co-authored-by: Mauricio Siu <mauricio@dokploy.com>
* fix(appwrite): enable HTTPS for function API endpoint

* appwrite: document that _APP_OPTIONS_FORCE_HTTPS=enabled requires an HTTPS domain

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <mauricio@dokploy.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
… mistake)

#1107 targeted main instead of canary and was squash-merged there. This merge
brings blueprints/openseo into canary and keeps both histories converged so
the next canary->main release stays conflict-free.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat: add Kotonoba template
- ghcr.io/plausible/community-edition v2.1.5 -> v3.2.1 (latest stable release)
- clickhouse-server 24.3.3.102-alpine -> 24.12-alpine, matching the official
  CE v3.2.1 compose.yml
- CLICKHOUSE_SKIP_USER_SETUP=1 on the events db: required by ClickHouse
  24.11+ images so Plausible can connect as the passwordless default user
  (without it the app crash-loops with AUTHENTICATION_FAILED)
- plausible-data volume + TMPDIR per the official v3 compose

Deploy-verified on a Dokploy instance: fresh import, all 3 containers
running, HTTP 200 on the domain with the Plausible login page.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* feat: make Firecrawl template production-ready

* fix: generate valid Firecrawl API keys
* feat(wupnext): add new env vars for mcp server

* fix: set explicit docker image version tag
* data permission right & Traefik configuration

Permession to write on data directory is mandatory for odoo server to run
Added Traefik configuration to allow POS and live chat to run

* fix(odoo_19): provide odoo.conf via config mount and enable proxy_mode

The empty ../files/config bind mount was hiding the image's
/etc/odoo/odoo.conf, crashing wait-for-psql.py (NoSectionError:
'options') in a restart loop. Ship odoo.conf through the template
mount instead, with proxy_mode enabled so websocket/POS/livechat
work behind Traefik (threaded mode serves /websocket on 8069, so
no extra routing is needed). Revert the manual Traefik labels
(invalid compose: labels must be a mapping; Dokploy generates
routing from template.toml) and the chown command (the named
volume already gets odoo ownership from the image).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <mauricio@dokploy.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…hcheck (#1121)

* fix(postiz): pass all social provider env vars and fix Temporal healthcheck

* fix(postiz): drop env vars Postiz does not read, unset NOT_SECURED

- GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET are not read by Postiz:
  the Google auth provider and GMB both use YOUTUBE_CLIENT_ID
  (google.provider.ts, gmb.provider.ts).
- NEXT_PUBLIC_FRONTEND_URL does not exist in the Postiz codebase.
- Postiz checks NOT_SECURED for truthiness only, so the string
  "false" still enables insecure mode; remove the variable so
  secure cookies are actually on for the HTTPS deployment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Mauricio Siu <mauricio@dokploy.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
frnikho and others added 6 commits August 30, 2026 16:35
* feat: add Silo object storage service with Docker Compose setup

* update version to match docker image

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…proxy_mode (#1124)

Same root cause as odoo_19 (#1108, fixed in #1110): the compose file
bind-mounts ../files/config over /etc/odoo, but with mounts = [] the
directory is empty, hiding the image's /etc/odoo/odoo.conf. As a result
wait-for-psql.py crashes with configparser.NoSectionError: No section:
'options' and the web container never starts.

Ship odoo.conf through the template config mount instead, with
proxy_mode enabled so websocket/POS/livechat work behind Traefik.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Self-hosted OpenStatus (status pages + uptime monitoring) following the
official docker-compose.github-packages.yaml setup: local libSQL database,
one-shot migration runner built from the pinned upstream commit, workflows,
API server, dashboard, status-page, and the private-location ingest server.
All app images pinned to upstream commit e1a9825; Tinybird analytics run in
no-op mode by default.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 29, 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 77fd697

@narcisonunez narcisonunez changed the title fix: resolve dependabot security alerts (no code changes) fix: resolve dependabot security alerts and fix templates for toml 4 Sep 29, 2026
Dependencies:
- app: react-router-dom ^7.18.0, vite ^6.4.3, yaml 2.8.3
- app (transitive, lockfile only): postcss 8.5.28, nanoid 3.3.19,
  picomatch 2.3.2/4.0.7, browserslist 4.29.2, rollup 4.63.5,
  @babel/core 7.29.7, @babel/runtime 7.29.7
- build-scripts: toml 4.2.0 (matches Dokploy/dokploy#5517), yaml 2.8.3

Templates rejected by toml 4's strict parsing (Dokploy fetches template.toml
from this repo at runtime, so they would fail there once #5517 ships):
- signoz, supabase: write invalid escape sequences (\{ \$ \( \s ...) as \\
  so the parsed value keeps the literal backslash exactly as toml 3 produced it
- timescaledb, valkey: drop `mounts = []` redefined by [[config.mounts]]

Parsed output is deep-equal to before under toml 3 for all 532 templates.
@Siumauricio

Copy link
Copy Markdown
Contributor

Thanks! Ported this to canary in #1206, since this PR targets main and conflicts with canary. #1206 keeps all your changes. It also fixes appwrite-2, which was merged after this PR and fails under toml 4 too. Checked with toml@4.2.0: all 559 templates parse. This one can be closed once #1206 is merged.

@narcisonunez

Copy link
Copy Markdown
Contributor Author

Thanks, my bad. Now we are using the canary branch in this repo too.

Thanks

fincrawmcq pushed a commit to fincrawmcq/dokploytemplates that referenced this pull request Oct 10, 2026
…(canary)

Port of Dokploy#1191 (which targets main) onto canary:
- app/ and build-scripts/ dependency bumps from Dokploy#1191
- signoz, timescaledb, valkey template.toml fixes from Dokploy#1191
- supabase: kept canary's version (already parses under toml 4 after Dokploy#1131/Dokploy#1149)
- appwrite-2 (merged after Dokploy#1191 was opened): escape the backslash in the
  mongo entrypoint (\! -> \\!), which toml 4 rejects as an invalid escape

All 559 blueprints/*/template.toml parse with toml@4.2.0.

Co-authored-by: narcisonunez <narcisonunez@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — 77fd697d Deployed Sep 29, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.