map $host $code { default code; }

server {
    listen      80;
    listen      [::]:80;
    server_name code.shore.co.il;
    include     snippets/robots-disallow-all.conf;
    include     snippets/ads-txt.conf;
    include     snippets/security-txt.conf;
    include     snippets/www-acme-challenge.conf;
    include     snippets/redirect-https.conf;
}

server {
    listen      443 ssl;
    listen      [::]:443 ssl;
    server_name code.shore.co.il;
    include     snippets/robots-disallow-all.conf;
    include     snippets/ads-txt.conf;
    include     snippets/security-txt.conf;
    include     snippets/ssl.conf;

    # The following was copied (and modified) from
    # https://www.collaboraoffice.com/code/nginx-reverse-proxy/.

    # static files
    location ^~ /loleaflet {
        proxy_pass              http://$code:9980$request_uri;
        proxy_http_version      1.1;
        include                 snippets/proxy-headers.conf;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass              http://$code:9980$request_uri;
        proxy_http_version      1.1;
        include                 snippets/proxy-headers.conf;
    }

    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass              http://$code:9980$request_uri;
        proxy_http_version      1.1;
        include                 snippets/proxy-headers.conf;
    }

    # main websocket
    location ~ ^/lool/(.*)/ws$ {
        proxy_pass              http://$code:9980$request_uri;
        proxy_http_version      1.1;
        include                 snippets/proxy-headers.conf;
        include                 snippets/websockets.conf;
    }

    # download, presentation and image upload
    location ~ ^/lool {
        proxy_pass              http://$code:9980$request_uri;
        proxy_http_version      1.1;
        include                 snippets/proxy-headers.conf;
    }

    # Admin Console websocket
    location ^~ /lool/adminws {
        proxy_pass              http://$code:9980$request_uri;
        proxy_http_version      1.1;
        include                 snippets/proxy-headers.conf;
        include                 snippets/websockets.conf;
    }
}