Skip to content

Conversation

@nxyystore
Copy link

What is this PR about?

New PR of Cloudflare WARP

Checklist

Before submitting this PR, please make sure that:

Issues related (if applicable)

Close automatically the related issues using the keywords: closes #ISSUE_NUMBER

Screenshots or Videos

Copilot AI review requested due to automatic review settings December 27, 2025 17:49
@github-actions
Copy link

github-actions bot commented Dec 27, 2025

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

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

Copy link
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 adds a new template for Cloudflare WARP Connector and updates documentation links for the existing Cloudflared template to reflect Cloudflare's restructured documentation.

Key Changes:

  • Adds new Cloudflare WARP template with docker-compose configuration, template variables, and logo
  • Updates Cloudflared template documentation URLs to current Cloudflare documentation structure
  • Adds metadata entry for WARP in the templates index

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 10 comments.

File Description
meta.json Adds new WARP template entry with metadata and updates Cloudflared documentation links; however, missing required GitHub link and uses "latest" version
blueprints/warp/docker-compose.yml Defines WARP service container configuration; has issues with version pinning, network configuration, port exposure, environment variable naming, and service naming convention
blueprints/warp/template.toml Configures template variables and environment mappings; has critical bug with self-referencing variable and environment variable name mismatch
blueprints/warp/image.svg Adds service logo for WARP template

meta.json Outdated
"description": "Cloudflare WARP Connector (beta) is a software client that enables site-to-site, bidirectional, and mesh networking connectivity without requiring changes to underlying network routing infrastructure.",
"logo": "image.svg",
"links": {
"github": "https://github.com/cloudflare/",
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The links object is missing a required "github" field. According to the project's JSON schema validation (enforced in build-scripts/process-meta.js), all template entries must include a "github" link. Please add the GitHub repository URL for the Cloudflare WARP Connector project.

Suggested change
"github": "https://github.com/cloudflare/",
"github": "https://github.com/cloudflare/cloudflared",

Copilot uses AI. Check for mistakes.
{
"id": "warp",
"name": "Cloudflare WARP",
"version": "latest",
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The version field is set to "latest", which violates the project convention that states "NEVER use 'latest' tag—it can break templates when upstream images change unexpectedly. Always verify image exists using 'docker manifest inspect image:tag' before committing." The version should be pinned to a specific version number.

Copilot generated this review using guidance from repository custom instructions.
Comment on lines 6 to 7
ports:
- 40000
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

Including 'ports:' in docker-compose.yml goes against project conventions. The project guidelines state: "Docker Compose: Minimal—omit 'ports' (Dokploy proxies)." Dokploy handles port mapping and proxying automatically, so explicit port declarations should be avoided. If the service needs to expose a port for Dokploy to proxy to, it should be configured in template.toml using the [[config.domains]] section instead.

Copilot generated this review using guidance from repository custom instructions.
@@ -0,0 +1,7 @@
[variables]
license = "${warp_key}"
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The variable definition uses a self-referencing pattern 'warp_key = "${warp_key}"' which doesn't generate any value. According to the project conventions, variables should use helpers for secrets like '${password:32}', '${uuid}', or '${jwt:secret_var}'. For a license key, either provide a placeholder value like 'warp_key = "YOUR_LICENSE_KEY_HERE"' or use an appropriate helper if auto-generation is desired.

Suggested change
license = "${warp_key}"
warp_key = "YOUR_WARP_LICENSE_KEY_HERE"

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,14 @@
services:
cloudflare-warp-proxy:
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The service name 'cloudflare-warp-proxy' doesn't follow the typical convention where service names match the blueprint folder name. The folder is named 'warp', so the service should ideally be named 'warp' for consistency. This makes templates more predictable and easier to maintain.

Copilot generated this review using guidance from repository custom instructions.
meta.json Outdated
"name": "Cloudflare WARP",
"version": "latest",
"description": "Cloudflare WARP Connector (beta) is a software client that enables site-to-site, bidirectional, and mesh networking connectivity without requiring changes to underlying network routing infrastructure.",
"logo": "image.svg",
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The logo filename is set to "image.svg" but the actual file in the blueprint is named "image.svg". While this matches, the project convention is to use more descriptive filenames that match the service name (e.g., "warp.svg" or "cloudflare-warp.svg"). Additionally, this filename must match exactly what's referenced in the meta.json logo field.

Suggested change
"logo": "image.svg",
"logo": "warp.svg",

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,14 @@
services:
cloudflare-warp-proxy:
image: seiry/cloudflare-warp-proxy
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The Docker image is using an untagged or non-specific version. According to project conventions: "Pin images to specific versions in docker-compose.yml (e.g., ghost:5.82.0-alpine); match in meta.json.version. NEVER use 'latest' tag—it can break templates when upstream images change unexpectedly." Please specify a concrete version tag and verify it exists using 'docker manifest inspect seiry/cloudflare-warp-proxy:VERSION'.

Copilot generated this review using guidance from repository custom instructions.
cloudflare-warp-proxy:
image: seiry/cloudflare-warp-proxy
# image: ghcr.io/seiry/cloudflare-warp-proxy
network_mode: bridge
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The 'network_mode: bridge' directive should be avoided. According to project conventions: "Omit 'ports' (Dokploy proxies), persistent volumes. No Networks: Rely on Dokploy's isolated deployments—avoid explicit 'networks:'." While 'bridge' is the default, explicitly setting network_mode is generally unnecessary and can interfere with Dokploy's network management. Remove this line unless there's a specific technical requirement similar to the cloudflared template which uses 'network_mode: host' for specific routing needs.

Copilot generated this review using guidance from repository custom instructions.
- 40000
restart: unless-stopped
environment:
- LICENSE=${WARP_LICENSE}
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

There's an inconsistency in environment variable naming. The docker-compose.yml uses 'LICENSE=${WARP_KEY}' (line 10), but template.toml defines 'WARP_LICENSE="${warp_key}"' (line 7). This mismatch will cause the environment variable to not be properly set. Either change docker-compose.yml to use 'WARP_LICENSE=${WARP_LICENSE}' or update template.toml to set 'LICENSE="${warp_key}"' to ensure consistency.

Suggested change
- LICENSE=${WARP_LICENSE}
- WARP_LICENSE=${WARP_LICENSE}

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,14 @@
services:
cloudflare-warp-proxy:
image: seiry/cloudflare-warp-proxy
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

Before adding this template, verify that the 'seiry/cloudflare-warp-proxy' Docker image is for an open-source project. According to project requirements: "Service MUST be open source. Only add templates for applications with an open-source license (e.g., MIT, Apache, GPL, AGPL). Proprietary or closed-source services are not allowed." The image repository source and license should be verified before merging this PR.

Copilot generated this review using guidance from repository custom instructions.
Copy link
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

Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.

Comment on lines +9 to +11
[[config.mounts]]
filePath = "/run/dbus/system_bus_socket"
content = "" No newline at end of file
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The mount configuration is incorrect. The [[config.mounts]] section in template.toml is designed to create file content within the container, not to bind mount host directories or sockets. Since the docker-compose.yml already handles the volume mount from the host's /run/dbus/system_bus_socket, this mount entry should be removed entirely from template.toml.

File mounts in template.toml are for injecting configuration file content, not for defining volume bindings (see examples in blueprints/registry/template.toml:13-18).

Copilot generated this review using guidance from repository custom instructions.
"description": "Cloudflare WARP Connector (beta) is a software client that enables site-to-site, bidirectional, and mesh networking connectivity without requiring changes to underlying network routing infrastructure.",
"logo": "warp.svg",
"links": {
"github": "https://github.com/seiry/docker-warp-proxy",
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The GitHub link points to https://github.com/seiry/docker-warp-proxy, which is a third-party Docker wrapper rather than the official Cloudflare WARP project. According to repository requirements, "Service MUST be open source" and templates should link to the official project repository.

The official Cloudflare WARP documentation is referenced in the website and docs fields, but there appears to be no official open-source repository for the Cloudflare WARP Connector itself. This raises concerns about whether this service meets the open-source requirement.

If the official Cloudflare WARP Connector is not open source (only the client/documentation is), this template should not be added to the repository. If using a third-party wrapper like seiry/docker-warp-proxy, verify it has an appropriate open-source license and consider whether it's appropriate to include.

Copilot generated this review using guidance from repository custom instructions.
Comment on lines 5 to 6
[[config.env]]
WARP_KEY = "<INSERT TOKEN>"
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The environment variable configuration format is incorrect. According to the template.toml structure documented in the README, env should be an array of strings in "KEY=VALUE" format, not a table array using [[config.env]].

The correct format should be:

[config]
env = ["WARP_KEY=<INSERT TOKEN>"]

Reference: blueprints/cloudflared/template.toml:5 shows the correct format for similar configuration.

Copilot generated this review using guidance from repository custom instructions.
Copy link
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

Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.

Comment on lines 8 to 12
LICENSE = "${warp_key}"

[[config.mounts]]
filePath = "/run/dbus/system_bus_socket"
content = "" No newline at end of file
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The mount configuration for /run/dbus/system_bus_socket is incorrect. This file path is a system socket that needs to be bind-mounted from the host (as defined in docker-compose.yml line 11), not created as a file mount by the Dokploy template.

The config.mounts section in template.toml is for creating files with content that the application needs. System sockets like /run/dbus/system_bus_socket should only be defined in docker-compose.yml as volume mounts from the host, similar to how the homeassistant template handles /run/dbus (see blueprints/homeassistant/docker-compose.yml line 14).

This mount entry should be removed from template.toml entirely.

Suggested change
LICENSE = "${warp_key}"
[[config.mounts]]
filePath = "/run/dbus/system_bus_socket"
content = ""
LICENSE = "${warp_key}"

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +16
services:
cloudflare-warp-proxy:
image: ghcr.io/seiry/cloudflare-warp-proxy:latest
restart: unless-stopped
# `LICENSE` is injected by the Dokploy template (`template.toml` [config.env]).
logging:
driver: json-file
options:
max-size: 1m
volumes:
- /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro
security_opt:
- apparmor:unconfined
# If AppArmor unconfined is insufficient on some hosts, uncomment the next line
# to run the container in privileged mode (less secure):
# privileged: true
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The template lacks documentation on how to use the WARP proxy once deployed. Since this is a proxy service with no exposed external ports, users need to know:

  1. What port the SOCKS proxy listens on internally
  2. How other Docker Compose services should connect to it (e.g., via service name and port)
  3. Example configuration for using the proxy from other containers

Consider adding this information either as comments in the docker-compose.yml or as a README mount in template.toml (similar to blueprints/kokoro-tts/template.toml which includes comprehensive usage documentation).

Copilot uses AI. Check for mistakes.
Comment on lines +1308 to +1309
"website": "https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/",
"docs": "https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/get-started/"
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

This PR includes unrelated changes to the cloudflared template URLs (lines 1308-1309). While these URL updates appear to correct outdated Cloudflare documentation links, they should ideally be submitted as a separate PR to keep changes focused and make the review process clearer.

However, the URL updates themselves look valid - they update from the deprecated /connections/connect-apps/ path structure to the current /networks/connectors/cloudflare-tunnel/ structure in Cloudflare's documentation.

Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
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

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

options:
max-size: 1m
volumes:
- /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

Mounting the host's D-Bus system socket (/run/dbus/system_bus_socket) creates a tight coupling between the container and the host system, which has operational implications. This mount may not exist on all host systems (different Linux distributions place D-Bus sockets in different locations), and it may not work correctly in containerized environments like Kubernetes or certain cloud platforms. Consider adding documentation about this requirement and potential compatibility issues, or providing alternative configuration options for environments where this socket is not available or located elsewhere.

Copilot uses AI. Check for mistakes.
@nxyystore
Copy link
Author

tested it and uhh it doesnt work so make it stale for rn

@nxyystore
Copy link
Author

yeah fuck this one docker warp proxy

@nxyystore nxyystore closed this Dec 29, 2025
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.

1 participant