Route social crawlers on invoice URLs to Open Graph HTML.

Bots hitting /invoices/:id on manage get API OG markup; browsers still load the SPA.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-11 16:15:52 +03:30
co-authored by Cursor
parent 2be3b3376d
commit c3408a498a
2 changed files with 26 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

+26
View File
@@ -1,4 +1,12 @@
# HTTPS dashboards (Certbot SANs on meshkee-dashboards)
#
# Link-preview bots (WhatsApp, etc.) hitting /invoices/:id get Open Graph HTML
# from the API; browsers still receive the SPA.
map $http_user_agent $meshkee_link_preview_bot {
default 0;
~*(whatsapp|facebookexternalhit|facebot|twitterbot|linkedinbot|slackbot|telegrambot|discordbot) 1;
}
server {
listen 443 ssl;
@@ -7,6 +15,24 @@ server {
ssl_certificate_key /etc/letsencrypt/live/meshkee-dashboards/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
location ~ ^/invoices/(?<invoice_public_id>[0-9]{6,32})$ {
if ($meshkee_link_preview_bot = 1) {
rewrite ^ /__internal/invoice-og/$invoice_public_id last;
}
root /var/www/meshkee/super-admin;
try_files /index.html =404;
}
location ~ ^/__internal/invoice-og/([0-9]{6,32})$ {
internal;
proxy_pass https://api.meshkee.com/api/v1/public/invoices/$1/og;
proxy_ssl_server_name on;
proxy_set_header Host api.meshkee.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
root /var/www/meshkee/super-admin;
try_files $uri $uri/ /index.html;