← back to Kamatera Nginx

sites-available/venturaclaw.com

72 lines

# venturaclaw.com — coming-soon page + read-only /services hub.
# / = static teaser landing
# /services, /legal-notice, /api/services-chat, /static/* = proxied to ventura-claw :9788
# Everything else (login, admin, chat) stays gated.

server {
    listen 80;
    listen [::]:80;
    server_name venturaclaw.com www.venturaclaw.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl;
    server_name venturaclaw.com www.venturaclaw.com;

    ssl_certificate     /etc/letsencrypt/live/venturaclaw.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/venturaclaw.com/privkey.pem;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_protocols TLSv1.2 TLSv1.3;

    root /var/www/venturaclaw-comingsoon;
    index index.html;

    # ---- Public services hub: /services, /legal-notice, /api/services-chat ----
    # These three paths and their static deps proxy to the ventura-claw Express app on :9788.
    location = /services        { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /legal-notice    { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /privacy         { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /terms           { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /faq             { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /docs            { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /about           { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /how-it-works    { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location ~ ^/connectors(/|$) { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /pricing         { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /sitemap.xml { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /robots.txt { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /changelog       { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /feed            { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /api/public/services { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
    location = /api/services-demo/domain-email {
        proxy_pass http://127.0.0.1:9788;
        include /etc/nginx/proxy_params;
        proxy_set_header Host $host;
        proxy_read_timeout 30s;
    }
    location = /api/services-lead {
        proxy_pass http://127.0.0.1:9788;
        include /etc/nginx/proxy_params;
        proxy_set_header Host $host;
        proxy_read_timeout 30s;
    }
    location = /api/services-chat {
        proxy_pass http://127.0.0.1:9788;
        include /etc/nginx/proxy_params;
        proxy_set_header Host $host;
        proxy_read_timeout 90s;
    }

    # / = static teaser
    location / {
        try_files /index.html =404;
        add_header Cache-Control "public, max-age=300";
    }

    # Block any other /api/* path (login, admin, etc.) — gated to hidden door later.
    location /api/ { return 404; }
}