Conversation
built with Refined Cloudflare Pages Action⚡ Cloudflare Pages Deployment
|
| labels: | ||
| - "traefik.enable=true" | ||
| - "traefik.http.routers.c1.rule=Host(`your.wings.domain`)" | ||
| - "traefik.http.routers.c1.entrypoints=websecure" |
|
@greptile review |
| ports: | ||
| - 8080 | ||
| - 2022 |
There was a problem hiding this comment.
ports should not be used in Dokploy templates
Per the project's contribution guidelines (AGENTS.md), docker-compose templates should never include ports — Dokploy handles network routing internally. If these ports need to be exposed to the container network, use expose instead:
| ports: | |
| - 8080 | |
| - 2022 | |
| expose: | |
| - 8080 | |
| - 2022 |
Using ports can cause conflicts with Dokploy's internal networking and port management on the host.
Context Used: Context from dashboard - AGENTS.md (source)
| labels: | ||
| - "traefik.enable=true" | ||
| - "traefik.http.routers.c1.rule=Host(`your.wings.domain`)" | ||
| - "traefik.http.routers.c1.entrypoints=websecure" | ||
| - "traefik.http.services.c1.loadbalancer.server.port=8080" | ||
| - "traefik.http.routers.c1.tls=true" | ||
| - "traefik.http.middlewares.c1-headers.headers.customrequestheaders.X-Forwarded-Proto=https" | ||
| - "traefik.http.routers.c1.middlewares=c1-headers" | ||
| - "traefik.http.services.c1.loadbalancer.server.scheme=https" | ||
| - "traefik.http.routers.c1.tls.certresolver=myresolver" |
There was a problem hiding this comment.
Traefik labels conflict with Dokploy's routing
These Traefik labels are redundant and potentially problematic. Dokploy manages its own Traefik routing configuration based on the [[config.domains]] section in template.toml. Including hardcoded Traefik labels with a placeholder domain (your.wings.domain) and a cert resolver (myresolver) will likely conflict with Dokploy's automatic routing setup.
The template.toml already correctly configures domain routing for port 8080. This entire labels block should be removed:
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.http.routers.c1.rule=Host(`your.wings.domain`)" | |
| - "traefik.http.routers.c1.entrypoints=websecure" | |
| - "traefik.http.services.c1.loadbalancer.server.port=8080" | |
| - "traefik.http.routers.c1.tls=true" | |
| - "traefik.http.middlewares.c1-headers.headers.customrequestheaders.X-Forwarded-Proto=https" | |
| - "traefik.http.routers.c1.middlewares=c1-headers" | |
| - "traefik.http.services.c1.loadbalancer.server.scheme=https" | |
| - "traefik.http.routers.c1.tls.certresolver=myresolver" |
If custom Traefik configuration is genuinely needed beyond what Dokploy provides, it should be documented clearly, but in this case the template.toml domain configuration is sufficient.
| volumes: | ||
| - "/var/run/docker.sock:/var/run/docker.sock" | ||
| - "/var/lib/docker/containers/:/var/lib/docker/containers/" | ||
| - "/etc/wings/:/etc/pterodactyl/" | ||
| - "/var/lib/pterodactyl/:/var/lib/pterodactyl/" | ||
| - "/var/log/pterodactyl/:/var/log/pterodactyl/" | ||
| - "/tmp/pterodactyl/:/tmp/pterodactyl/" | ||
| - "/etc/ssl/certs:/etc/ssl/certs:ro" |
There was a problem hiding this comment.
Host bind mounts expose sensitive host paths
This template mounts the Docker socket (/var/run/docker.sock) and several host directories directly. While this is required for Wings to manage game server containers, it effectively grants the container full Docker daemon access and read/write to host paths. This is a significant security surface — users deploying this template should be aware that Wings requires these elevated privileges by design.
Additionally, the host path mounts (e.g., /etc/wings/, /var/lib/pterodactyl/) are not using named Docker volumes, which means they depend on specific host directory structures. Consider adding a comment at the top of the compose file explaining these requirements and the security implications, similar to how other templates (e.g., crowdsec) document their prerequisites.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
What is this PR about?
New PR of Pterodacrtyl Wings Template
Checklist
Before submitting this PR, please make sure that:
Issues related (if applicable)
Close automatically the related issues using the keywords:
closes #ISSUE_NUMBERScreenshots or Videos
Greptile Summary
This PR adds a new Dokploy template for Pterodactyl Wings (v1.11.11), the server control plane companion to Pterodactyl Panel. The template includes a
docker-compose.yml,template.toml, logo image, andmeta.jsonentry.Key issues found:
docker-compose.ymlusesportsinstead ofexpose: The Dokploy template conventions require usingexposerather thanports, since Dokploy manages its own networking and port routing. Usingportscan cause host port conflicts.your.wings.domain) and cert resolver (myresolver). Dokploy manages Traefik configuration automatically based ontemplate.toml, so these labels are redundant and will likely conflict with Dokploy's routing.template.tomlandmeta.jsonentries are well-structured and follow the project conventions correctly.meta.jsonanddocker-compose.yml, with a helpful comment explaining why the latest v1.12.0 is not used.Confidence Score: 2/5
portsinstead ofexposewhich violates project conventions and can cause host conflicts, and (2) hardcoded Traefik labels that will conflict with Dokploy's automatic routing. The template.toml and meta.json are correct, and the issues are straightforward to fix.blueprints/wings/docker-compose.yml— needsportschanged toexposeand Traefik labels removed.Last reviewed commit: e52747a
(2/5) Greptile learns from your feedback when you react with thumbs up/down!
Context used:
dashboard- AGENTS.md (source)