Skip to content

Add Sendy vhost templates for all variants#65

Open
amanjuman wants to merge 3 commits into
cloudpanel-io:masterfrom
amanjuman:add-sendy-vhost-template
Open

Add Sendy vhost templates for all variants#65
amanjuman wants to merge 3 commits into
cloudpanel-io:masterfrom
amanjuman:add-sendy-vhost-template

Conversation

@amanjuman

Copy link
Copy Markdown

Adds Nginx vhost templates for Sendy (https://sendy.co), a self-hosted email newsletter application, across all four CloudPanel variants: v1, v2, v2-http3, and v2-varnish.

Key configuration decisions:

  • Single-block direct PHP-FPM (no Varnish) — Sendy's tracking endpoints (/l/, /t/, /w/, /r/) must process every request individually; caching would break click/open tracking
  • Sendy-specific URL rewrites for tracking, subscription, and confirmation endpoints
  • Global X-Robots-Tag noindex — Sendy is a backend mail sending tool that should not be indexed by search engines
  • Blocks access to .ht, .svn, and .git files

Adds Nginx vhost templates for Sendy (https://sendy.co), a self-hosted
email newsletter application, across all four CloudPanel variants:
v1, v2, v2-http3, and v2-varnish.

Key configuration decisions:
- Single-block direct PHP-FPM (no Varnish) — Sendy's tracking endpoints
  (/l/, /t/, /w/, /r/) must process every request individually; caching
  would break click/open tracking
- Sendy-specific URL rewrites for tracking, subscription, and
  confirmation endpoints
- Global X-Robots-Tag noindex — Sendy is a backend mail sending tool
  that should not be indexed by search engines
- Blocks access to .ht, .svn, and .git files
Copilot AI review requested due to automatic review settings June 11, 2026 11:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds Nginx server templates for hosting Sendy across multiple deployment variants (v1, v2, v2+Varnish, v2+HTTP/3), including PHP-FPM wiring and URL rewrites for Sendy endpoints.

Changes:

  • Introduces new Nginx server {} configs for Sendy in v1/, v2/, v2-varnish/, and v2-http3/ variants.
  • Adds Sendy-specific rewrite rules (/l/, /t/, /w/, /r/, subscription endpoints) and PHP FastCGI handling.
  • Adds HTTP/3/QUIC listeners and response headers in the v2-http3 variant.

Reviewed changes

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

File Description
v2/Sendy/Sendy New v2 Nginx template for Sendy (PHP 8.1 metadata), rewrites + PHP-FPM block
v2-varnish/Sendy/Sendy New v2 Nginx template for Sendy behind Varnish (PHP 8.3 metadata)
v2-http3/Sendy/Sendy New v2 Nginx template with QUIC/HTTP3-related directives and headers
v1/Sendy/Sendy New v1 Nginx template for Sendy with basic auth placeholder and PHP placeholders

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread v2/Sendy/Sendy
Comment on lines +17 to +19
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
Comment thread v2-varnish/Sendy/Sendy
Comment on lines +17 to +19
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
Comment thread v1/Sendy/Sendy
Comment on lines +20 to +22
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
Comment thread v2-http3/Sendy/Sendy
Comment on lines +5 to +10
listen 443 quic;
listen 443 ssl;
listen [::]:443 quic;
listen [::]:443 ssl;
http2 on;
http3 off;
Comment thread v2-http3/Sendy/Sendy
Comment on lines +81 to +86
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map|mjs)$ {
add_header Access-Control-Allow-Origin "*";
add_header alt-svc 'h3=":443"; ma=86400';
expires max;
access_log off;
}
Comment thread v2/Sendy/Sendy Outdated
Comment on lines +21 to +24
location ~ /.well-known {
auth_basic off;
allow all;
}
Comment thread v2/Sendy/Sendy
Replace rewrite with return 301 and $request_uri to ensure query
parameters are not dropped during HTTP→HTTPS redirect. This matters
for Sendy subscription and confirmation URLs that carry parameters.
Replace loose regex location ~ /.well-known with prefix match
location ^~ /.well-known/ to avoid matching unintended paths
(unescaped dot and no anchor in the regex variant).
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.

2 participants