events {
    worker_connections 1024;
}

http {
    server {
        listen 8540;
        server_name 127.0.0.1;
        access_log  off;

        # Upload limit for pictshare
        client_max_body_size 50M;

        location / {
            proxy_pass http://lemmy-alpha:8540;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            # WebSocket support
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        # pict-rs images
        location /pictrs {
          location /pictrs/image {
            proxy_pass http://pictrs:8080/image;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
          # Block the import
          return 403;
        }

        location /iframely/ {
            proxy_pass http://iframely:80/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    server {
        listen 8550;
        server_name 127.0.0.1;
        access_log off;

        # Upload limit for pictshare
        client_max_body_size 50M;

        location / {
            proxy_pass http://lemmy-beta:8550;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            # WebSocket support
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        # pict-rs images
        location /pictrs {
          location /pictrs/image {
            proxy_pass http://pictrs:8080/image;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
          # Block the import
          return 403;
        }

        location /iframely/ {
            proxy_pass http://iframely:80/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    server {
        listen 8560;
        server_name 127.0.0.1;
        access_log off;

        # Upload limit for pictshare
        client_max_body_size 50M;

        location / {
            proxy_pass http://lemmy-gamma:8560;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            # WebSocket support
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        # pict-rs images
        location /pictrs {
          location /pictrs/image {
            proxy_pass http://pictrs:8080/image;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
          # Block the import
          return 403;
        }

        location /iframely/ {
            proxy_pass http://iframely:80/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}