Skip to content

Update Plunk template to use next version#622

Merged
Siumauricio merged 3 commits into
Dokploy:canaryfrom
driaug:canary
May 12, 2026
Merged

Update Plunk template to use next version#622
Siumauricio merged 3 commits into
Dokploy:canaryfrom
driaug:canary

Conversation

@driaug
Copy link
Copy Markdown
Contributor

@driaug driaug commented Dec 22, 2025

What is this PR about?

This PR updates the Plunk template to the Next version (next.useplunk.com)

Checklist

Before submitting this PR, please make sure that:

Issues related (if applicable)

Screenshots or Videos

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Dec 22, 2025

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview 468bed2

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the Plunk template from the legacy version to the next version (next.useplunk.com), introducing a multi-service architecture with subdomain-based routing, additional infrastructure services (Minio, ntfy), and comprehensive environment configuration.

Key Changes:

  • Replaces the legacy driaug/plunk image with the official ghcr.io/useplunk/plunk:latest image
  • Introduces subdomain-based routing for API, dashboard, landing page, and documentation
  • Adds Minio for S3-compatible storage and ntfy for notifications

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 7 comments.

File Description
blueprints/plunk/docker-compose.yml Migrates to new multi-service architecture with nginx reverse proxy, Minio, ntfy, and updated Plunk image
blueprints/plunk/template.toml Expands configuration to support subdomain routing, Minio storage, OAuth, Stripe, and additional service dependencies
Comments suppressed due to low confidence (1)

blueprints/plunk/template.toml:1

  • The environment variable SES_CONFIGURATION_SET_NO_TRACKING references an undefined variable. This variable is used in docker-compose.yml line 118 but is never defined in the [variables] section or [config.env] array. This will cause deployment failures.
[variables]

DASHBOARD_DOMAIN = "${dashboard_domain}"
LANDING_DOMAIN = "${landing_domain}"
WIKI_DOMAIN = "${wiki_domain}"
USE_HTTPS = "true"
Copy link

Copilot AI Dec 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Setting USE_HTTPS = "true" hardcodes HTTPS usage, but the URL variables in lines 71-74 and line 90 will generate HTTP URLs (e.g., http://${api_domain}). This creates a mismatch between the HTTPS flag and the actual URL scheme. Either set USE_HTTPS = "false" to match the HTTP URLs, or update all URL constructions to use HTTPS explicitly.

Copilot generated this review using guidance from repository custom instructions.
S3_ACCESS_KEY_ID = "${minio_root_user}"
S3_ACCESS_KEY_SECRET = "${minio_root_password}"
S3_BUCKET = "uploads"
S3_PUBLIC_URL = "https://${minio_domain}/uploads"
Copy link

Copilot AI Dec 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The S3_PUBLIC_URL uses HTTPS while the internal S3_ENDPOINT (line 86) uses HTTP. According to the coding guidelines, URLs should use HTTP by default unless explicitly required. Since this is accessing Minio internally through Docker networking, it should be "http://${minio_domain}/uploads" to maintain consistency with the internal endpoint.

Copilot generated this review using guidance from repository custom instructions.

volumes:
# Mount Traefik certificates for SSL
- /etc/dokploy/traefik/dynamic/acme.json:/certs/acme.json:ro
Copy link

Copilot AI Dec 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mounting host paths directly (especially system paths like /etc/dokploy/) violates Docker Compose best practices for Dokploy templates. According to the coding guidelines, templates should use persistent volumes instead. This mount may not exist in all Dokploy installations and creates tight coupling to the host filesystem. Consider using a named volume or removing this mount if SSL certificate handling is managed by Dokploy's reverse proxy.

Copilot generated this review using guidance from repository custom instructions.
Comment on lines +54 to +56
ports:
- 9000
- 9001
Copy link

Copilot AI Dec 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to Dokploy template conventions, the ports section should be omitted as Dokploy handles service isolation via internal networks and proxying. Exposing ports explicitly can cause conflicts in multi-instance deployments. Use expose directive instead if port declaration is needed, or remove entirely since Minio is accessed via service networking.

Copilot generated this review using guidance from repository custom instructions.
Comment on lines +157 to +162
ports:
# Main nginx port (handles all subdomain routing)
- 80
# SMTP ports (for email relay)
- 465
- 587
Copy link

Copilot AI Dec 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to Dokploy template conventions, the ports section should be omitted as Dokploy handles proxying through its own reverse proxy. Explicitly defining ports can cause conflicts. Port 80 is especially problematic as Dokploy manages HTTP/HTTPS routing through Traefik. For SMTP ports (465, 587), if these truly need external access, they should be documented separately as they fall outside typical HTTP proxying.

Copilot generated this review using guidance from repository custom instructions.
Comment on lines +3 to +7
api_domain = "${domain}"
dashboard_domain = "${domain}"
landing_domain = "${domain}"
wiki_domain = "${domain}"
minio_domain = "${domain}"
Copy link

Copilot AI Dec 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All five domain variables are set to the same value "${domain}", but the comments in docker-compose.yml (lines 4-9) and the template structure indicate these should be different subdomains (api.yourdomain.com, app.yourdomain.com, etc.). This configuration will cause all services to attempt routing on the same domain, breaking the subdomain-based architecture. Each variable should either have distinct subdomain prefixes or the template should be documented to work with path-based routing instead.

Suggested change
api_domain = "${domain}"
dashboard_domain = "${domain}"
landing_domain = "${domain}"
wiki_domain = "${domain}"
minio_domain = "${domain}"
api_domain = "api.${domain}"
dashboard_domain = "app.${domain}"
landing_domain = "${domain}"
wiki_domain = "docs.${domain}"
minio_domain = "minio.${domain}"

Copilot uses AI. Check for mistakes.
Comment on lines +186 to +187
plunk_data:
driver: local
Copy link

Copilot AI Dec 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The volume plunk_data is defined but never mounted or used by any service in the compose file. This creates unnecessary resource allocation and confusion. Remove this unused volume definition.

Suggested change
plunk_data:
driver: local

Copilot uses AI. Check for mistakes.
@Siumauricio
Copy link
Copy Markdown
Contributor

Can you check that?

Screenshot 2026-02-15 at 7 36 12 PM

@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label May 4, 2026
@driaug
Copy link
Copy Markdown
Contributor Author

driaug commented May 4, 2026

Can you check that?

Screenshot 2026-02-15 at 7 36 12 PM

Removed the NTFY service since it is optional and will cause self-hosters more headaches than it will solve issues.

@Siumauricio
Copy link
Copy Markdown
Contributor

thank you

@Siumauricio Siumauricio merged commit 5ca048a into Dokploy:canary May 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants