← back to Kamatera Nginx

sites-available/gmail.agentabrams.com

76 lines

# Gmail.AgentAbrams.com - Gmail Cleanup Tool
# Reverse proxy to local Gmail API server on port 8002
# OAuth authentication handled by application

server {
    server_name gmail.agentabrams.com;
    auth_basic "gmail.agentabrams.com — admin only";
    auth_basic_user_file /etc/nginx/.htpasswd-builds;


    # Security headers
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;

    # Proxy settings
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    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;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_connect_timeout 60s;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
    proxy_cache_bypass $http_upgrade;

    # Main application - proxy to Gmail API server
    location / {
        proxy_pass http://127.0.0.1:8002;
    }

    # API endpoints
    location /delete {
        proxy_pass http://127.0.0.1:8002;
    }

    location /archive {
        proxy_pass http://127.0.0.1:8002;
    }

    location /extract {
        proxy_pass http://127.0.0.1:8002;
    }

    # JSON data endpoints
    location /gmail_data.json {
        proxy_pass http://127.0.0.1:8002;
    }

    location /gmail_user_profile.json {
        proxy_pass http://127.0.0.1:8002;
    }

    # Access logs
    access_log /var/log/nginx/gmail.agentabrams.com.access.log;
    error_log /var/log/nginx/gmail.agentabrams.com.error.log;

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/gmail.agentabrams.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/gmail.agentabrams.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = gmail.agentabrams.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name gmail.agentabrams.com;
    return 404; # managed by Certbot
}