Add Sendy vhost templates for all variants#65
Open
amanjuman wants to merge 3 commits into
Open
Conversation
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
There was a problem hiding this comment.
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 inv1/,v2/,v2-varnish/, andv2-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-http3variant.
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 on lines
+17
to
+19
| if ($scheme != "https") { | ||
| rewrite ^ https://$host$uri permanent; | ||
| } |
Comment on lines
+17
to
+19
| if ($scheme != "https") { | ||
| rewrite ^ https://$host$uri permanent; | ||
| } |
Comment on lines
+20
to
+22
| if ($scheme != "https") { | ||
| rewrite ^ https://$host$uri permanent; | ||
| } |
Comment on lines
+5
to
+10
| listen 443 quic; | ||
| listen 443 ssl; | ||
| listen [::]:443 quic; | ||
| listen [::]:443 ssl; | ||
| http2 on; | ||
| http3 off; |
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 on lines
+21
to
+24
| location ~ /.well-known { | ||
| auth_basic off; | ||
| allow all; | ||
| } |
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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: