Commit Graph
1128 Commits
Author SHA1 Message Date
Mauricio SiuandClaude Fable 5 21c1fec5d8 feat: validator opt-out marker for intentional host ports + annotate 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>
2026-08-06 01:22:34 -06:00
Mauricio Siu f8a75dba2b Merge remote-tracking branch 'origin/canary' into fix/normalize-empty-mounts 2026-08-06 01:21:15 -06:00
Yusuf GündoğduandGitHub 1dc9c36216 libredb-studio: bump version to 0.9.59 (#1039) 2026-08-03 04:37:04 -06:00
Khiet Tam NguyenandGitHub 5aba7908a2 chore: remove conduwuit in favour of tuwunel (#1054) 2026-08-03 04:36:59 -06:00
Jiho LeeandGitHub a49f00fd7b ci: audit every blueprint on a schedule (#1049)
* ci: audit every blueprint on a schedule (#1047)

* ci: use RUNNER_TEMP and gate the fail step on the dispatch event

* ci: bound the step summary and publish the full report as an artifact

* ci: treat a missing file as a finding, and never truncate mid-fence
2026-08-03 04:36:31 -06:00
Finley Crawford-McQuillanandGitHub 292877b370 feat: Add Fluxer template (#1045)
* feat: Add Fluxer template

* fix: populate config.env in template.toml

* fix: syntax in template.toml for config.env

* fix: use multiline string for config.env in template.toml

* fix: format config.env as valid string array in template.toml

* fix: update template.toml format to match standard env array structure

* add: template.toml with optional env vars and http guidance

* fix: change wording to avoid confusion

* fix: add more missing instructions

* fix: more wording changes

* fix: final wording improvements

* fix: comma missing from previous commit
2026-08-03 04:36:10 -06:00
Mauricio SiuandClaude Fable 5 b9c4365e9f fix: normalize template.toml mounts across all blueprints (closes #1047)
- 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>
2026-08-03 04:28:49 -06:00
a176ba3e16 Blueprints/portabase (#1055)
* feat(blueprints): add portabase

* feat(blueprints): add portabase

---------

Co-authored-by: Théo LAGACHE <theo.lagache@soluce-technologies.com>
2026-08-03 04:18:15 -06:00
Khiet Tam NguyenandGitHub 69e731eda1 fix: change "ports" -> "expose" for multiple services (#1053)
* fix: change "ports" -> "expose" for multiple services

* chore: remove helper script
2026-08-03 04:12:26 -06:00
Andre Carbajal VargasandGitHub c1ccb27359 feat: add NaviServer template (#1062)
* feat: add NaviServer template

* fix: address NaviServer template review comments

* fix: align NaviServer template env format

* fix: publish NaviServer Minecraft ports
2026-08-03 04:12:23 -06:00
JavierandGitHub 4de48c2a73 Add WupNext blueprint (#1051) 2026-08-03 04:09:10 -06:00
Jiho LeeandGitHub 0c33668267 fix: bring scrutiny, stack-auth and vault in line with the compose conventions (#1048)
* fix: drop no-op container_name from three blueprints (#1047)

* fix: drop the empty [[config.mounts]] block from vault

* fix: pin vault and scrutiny images, add the missing version header
2026-08-03 04:02:30 -06:00
Stefan ErnstandGitHub 285e667c68 chore: update Windshift to v0.8.2 (#1041) 2026-07-21 21:56:19 -06:00
Mauricio SiuandGitHub c33d499975 Merge branch 'main' into canary 2026-07-20 00:34:19 -06:00
Marko KostichandGitHub b4542d82f8 feat(directus): upgrade template to Directus 12.1.1 (#986)
* feat(directus): upgrade template to Directus 12.1.1

* feat(directus): add commented S3 env variables to template.toml
2026-07-19 19:25:33 -06:00
MaflyandGitHub ceb65b216f fix(docker): share plugins and themes volumes across containers (#990) 2026-07-19 19:24:15 -06:00
8daff07700 Add PodFetch template (#1035)
* Add PodFetch template

* Use env array syntax in template.toml

* Potential fix for pull request finding

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

* Address review: match version to image tag, expose admin_username variable, dark-mode friendly logo

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-19 19:20:01 -06:00
Jakub KrzyżanowskiandGitHub 08d87d8a90 feat: add struxa template (#1037)
* feat: add struxa template

Adds a Dokploy blueprint for Struxa (github.com/struxadotcloud/struxa),
a self-hosted, open-source server management panel. Deploys the
published GHCR images (dashboard, watchkeeper, migrate) plus MySQL
and MinIO sidecars. The web service generates its RS256 JWT keypair
at startup via Node's built-in crypto module, since no Dokploy
template helper covers RSA key generation.

* fix: pin struxa images to latest floating tag

struxa's release workflow pushes a latest floating tag alongside
version tags on every stable release, matching the convention used
by ~44% of existing blueprints (version: "latest" in meta.json).

* fix: generate a 64-char DATABASE_ENCRYPTION_KEY

Dokploy's runtime \${hash:N} helper produces N hex characters, not N
bytes (the templates repo's local preview helpers.ts models it as
byte count, which is inconsistent with the platform). struxa's env
schema requires DATABASE_ENCRYPTION_KEY to be >=64 chars (it's hex
decoded to a 32-byte AES-256 key), so \${hash:32} only produced half
the required length. Confirmed against other blueprints (sim,
chatwoot, outline) which all use \${hash:64} for 64-char secrets.

* fix: address Copilot review comments

- Add explicit \`version: "3.8"\` to docker-compose.yml, matching the
  documented template format.
- Pin minio/minio to a specific RELEASE tag (used elsewhere in the
  repo: plane, posthog) instead of the floating latest tag.
- Default BETTER_AUTH_URL/APP_URL/CORS_ORIGIN to http://, matching
  repo convention for Dokploy-fronted apps (TLS terminates at the
  proxy).

* fix: rename web service to struxa

AGENTS.md convention: the primary Docker service name should match
the blueprint folder name. Renamed the web/dashboard service from
"web" to "struxa" in docker-compose.yml and updated
template.toml's config.domains.serviceName to match.
2026-07-19 19:19:42 -06:00
Zakher MasriandGitHub 8ca2bf9393 feat: adds check-links.js to find broken links (#983) 2026-07-19 19:11:43 -06:00
Marko KostichandGitHub 7aee585368 chore: normalize template tags to kebab-case (#987) 2026-07-19 19:11:40 -06:00
Edward BurtonandGitHub 34f3577b81 feat(templates): add systemprompt (#1032)
* feat(templates): add systemprompt

* fix header comment: accurate in both repos
2026-07-19 19:09:19 -06:00
Mauricio SiuandGitHub fff1708ebd Merge pull request #1033 from Dokploy/feat/mailu
feat: add Mailu mail server template
2026-07-19 19:06:25 -06:00
Mauricio SiuandGitHub c66a1df3cf Merge pull request #1027 from Dokploy/feat/oryx
feat: add Oryx (SRS) media streaming template
2026-07-19 19:05:32 -06:00
Mauricio SiuandGitHub dd12762085 Merge pull request #994 from Jinjinov/add-openhabittracker
Add openhabittracker template
2026-07-19 19:05:24 -06:00
Mauricio SiuandGitHub d6b842c275 Merge pull request #1034 from Dokploy/feat/oneuptime
feat: add OneUptime template
2026-07-17 13:37:12 -06:00
Mauricio SiuandClaude Fable 5 f6245f84dc feat: add Mailu template
Mailu 2024.06 mail server: front (nginx), admin, imap (dovecot),
smtp (postfix), antispam (rspamd), Roundcube webmail and redis.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 17:50:39 -06:00
Mauricio SiuandClaude Fable 5 6683685dae feat: add OneUptime template
Adds OneUptime (open-source observability platform: uptime monitoring,
status pages, incident management, on-call, logs/traces/metrics) as a
template, following upstream's current single-app architecture
(app + nginx ingress + postgres + redis + clickhouse + probe).

Closes #514

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 17:46:15 -06:00
Mauricio SiuandGitHub a3f2655baa Merge pull request #1028 from Dokploy/feat/posthog
feat: add PostHog template
2026-07-14 23:38:37 -06:00
Mauricio SiuandGitHub 13d03f9a92 Merge pull request #1030 from Dokploy/feat/bonfire
feat: add Bonfire template
2026-07-14 23:38:14 -06:00
Mauricio SiuandGitHub 51922e71b6 Merge pull request #1031 from knowsuchagency/add-dagu-template
Add Dagu template
2026-07-14 23:37:53 -06:00
Mauricio SiuandGitHub 3a6f9d709a Merge pull request #1029 from Dokploy/feat/n8n-queue
feat: add n8n queue mode template (scalable workers)
2026-07-14 23:36:47 -06:00
Stephan Fitzpatrick 0beb68a228 feat: add dagu blueprint
Dagu is a self-contained workflow engine with a Web UI for scheduling and
orchestrating jobs as DAGs defined in declarative YAML.

- Pin ghcr.io/dagucloud/dagu:2.10.7 and expose the Web UI on port 8080
- Set DAGU_HOST=0.0.0.0 so the service is reachable through the proxy
- Enable basic auth with a generated per-deploy admin password
- Persist /var/lib/dagu (DAGs, logs, run history) in a named volume

Claude-Session: https://claude.ai/code/session_01CRNT6sa2q2P9rUTokeoGhQ
2026-07-14 16:41:48 -07:00
Mauricio SiuandClaude Fable 5 7d252ead5c feat: add bonfire template
Bonfire (social flavour) — federated social networking toolkit.
App + PostGIS + Meilisearch, mirroring upstream's reference deployments.

Closes #125

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 16:24:32 -06:00
Mauricio SiuandClaude Fable 5 fe94f4ce0b feat: add n8n queue mode template
n8n running in queue mode (EXECUTIONS_MODE=queue): main instance for the
editor/webhooks, a scalable pool of workers (deploy.replicas driven by the
N8N_WORKER_REPLICAS env var), Redis (Bull) as the queue broker and
PostgreSQL as the database. Pinned to the current stable n8nio/n8n:2.30.4.

Closes #455

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 16:15:50 -06:00
Mauricio SiuandClaude Fable 5 3eb1d3b7bd fix: stop plugins service crash loop (logs-redis TLS default)
In production images LOGS_REDIS_TLS/TRACES_REDIS_TLS default to true, so
the logs-ingestion consumer (part of the plugin-server default mode) kept
attempting a TLS handshake against the plaintext Redis, timed out every
~11s and killed the process after 10 errors (restart loop every ~2.5 min).

Constrain the plugins service to the capability groups this template
ships (cdp_workflows, realtime_cohorts, feature_flags) and pin the redis
TLS flags to false as belt-and-braces.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 15:50:16 -06:00
Mauricio SiuandClaude Fable 5 af8b535d34 feat: add Oryx (SRS) media streaming template
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 14:06:04 -06:00
Mauricio SiuandGitHub 15db93df3b Merge pull request #1026 from Dokploy/feat/trek
feat: add TREK template
2026-07-14 14:00:35 -06:00
Mauricio SiuandGitHub cc3b93518b Merge pull request #1025 from Dokploy/feat/frappe-lms
feat: add Frappe LMS template
2026-07-14 14:00:26 -06:00
Mauricio SiuandGitHub e7285cea05 Merge pull request #1023 from Dokploy/feat/certmate
feat: add CertMate template
2026-07-14 14:00:22 -06:00
Mauricio SiuandGitHub a80a073389 Merge pull request #1020 from Dokploy/feat/steedos
feat: add Steedos template
2026-07-14 14:00:01 -06:00
Mauricio SiuandGitHub 77b078faf3 Merge pull request #1019 from Dokploy/feat/sim
feat: add Sim Studio template
2026-07-14 13:59:56 -06:00
Mauricio SiuandGitHub 31f95474d6 Merge pull request #1018 from Dokploy/feat/dify
feat: add Dify template
2026-07-14 13:59:47 -06:00
Mauricio SiuandGitHub fabecbe728 Merge pull request #1017 from Dokploy/feat/synapse
feat: add Synapse (Matrix homeserver) template
2026-07-14 13:59:37 -06:00
Mauricio SiuandGitHub 4159d3a9f0 Merge pull request #1016 from Dokploy/feat/weblate
feat: add Weblate template
2026-07-14 13:59:29 -06:00
Mauricio SiuandGitHub abe36ad330 Merge pull request #1015 from Dokploy/docs/template-instructions
docs: per-template setup instructions for Supabase and Trigger.dev
2026-07-14 13:59:20 -06:00
Mauricio SiuandGitHub 89505f0b54 Merge pull request #1014 from Dokploy/feat/mailcatcher-ng
feat: add MailCatcher NG template
2026-07-14 13:59:11 -06:00
Mauricio SiuandGitHub 981811f55f Merge pull request #1013 from Dokploy/fix/nextcloud-naming
fix(nextcloud-aio): drop AIO branding, pin nextcloud 33.0.6
2026-07-14 13:59:03 -06:00
Mauricio SiuandGitHub ffeaca14af Merge pull request #1012 from Dokploy/fix/minio-source-only
fix(minio): migrate to pgsty/minio community fork (upstream is source-only and archived)
2026-07-14 13:58:55 -06:00
Mauricio SiuandGitHub 77145ad581 Merge pull request #1011 from Dokploy/fix/wordpress-loopback
fix(wordpress): route loopback requests through Traefik to fix cURL error 28 timeouts
2026-07-14 13:58:48 -06:00
Mauricio SiuandGitHub c60bfa8c72 Merge pull request #1010 from Dokploy/fix/openpanel
fix(openpanel): pin verified 2.2.1 images to prevent broken-release breakage
2026-07-14 13:58:40 -06:00