##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
        listen 8088 default_server;
        listen [::]:8088 default_server;

        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

    location /ollamaproxy/ {
        rewrite ^/ollamaproxy(/.*)$ $1 break;
        proxy_pass https://ollama.com;
        proxy_set_header Host ollama.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;
	proxy_hide_header X-Class;

        proxy_redirect https://ollama.com/ /ollamaproxy/;

        # Allow embedding
        proxy_hide_header X-Frame-Options;
        proxy_hide_header Content-Security-Policy;

        sub_filter_types text/html text/css text/javascript application/javascript;
        sub_filter 'href="/' 'href="/ollamaproxy/';
        sub_filter 'src="/' 'src="/ollamaproxy/';
        sub_filter '<header class=' '<!-- /header class=';
	sub_filter '</header>' '</header -->';
        sub_filter_once off;
    }

    location /ollamaproxy/static/ {
        proxy_pass https://ollama.com/static/;
        proxy_set_header Host ollama.com;
    }

    location /library {
        proxy_pass https://ollama.com/library?$query_string;
#        proxy_set_header Host ollama.com;

        sub_filter_types text/html text/css text/javascript application/javascript;
        sub_filter 'href="/' 'href="/ollamaproxy/';
        sub_filter 'src="/' 'src="/ollamaproxy/';
        sub_filter_once off;


    }


}
