MrBrax / LiveStreamDVR

An automatic livestream recorder
MIT License
309 stars 24 forks source link

Any idea how to get this to work with Docker-SWAG as reverse proxy? #501

Closed nothing2obvi closed 3 months ago

nothing2obvi commented 3 months ago

I'm genuinely sorry if this is a dumb or too heavily involved question, but I'm just not good at reverse proxy stuff, so I use Docker-SWAG (guide here) for all my reverse proxy needs. It has pre-made proxy-confs for several popular Docker services, and if I need a service to be exposed to the internet that they don't have a pre-made proxy-conf for, their default subdomain template is a good starting point. However, I just can't get it to work with LiveStreamDVR.

I saw this issue #274 that mentions SWAG but it doesn't really provide a solution.

Also, if I could get help with this, I could try to get the proxy-conf added to their repo.

Below is what I've tried so far. I first tried it with just the first location and then added the api, then the socket. I also tried using port 8080 instead, and I also tried https instead, but neither worked.

If anyone has gotten LiveStreamDVR to work with SWAG and has the time and patience to help me out with this, I'd really appreciate it. I really want to get LiveStreamDVR to work. Thank you.

## Version 2023/05/31
# REMOVE THIS LINE BEFORE SUBMITTING: The structure of the file (all of the existing lines) should be kept as close as possible to this template.
# REMOVE THIS LINE BEFORE SUBMITTING: Look through this file for <tags> and replace them. Review other sample files to see how things are done.
# REMOVE THIS LINE BEFORE SUBMITTING: The comment lines at the top of the file (below this line) should explain any prerequisites for using the proxy such as DNS or app settings.
# make sure that your <container_name> container is named <container_name>
# make sure that your dns has a cname set for <container_name>

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name livestreamdvr.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    # enable for Authentik (requires authentik-location.conf in the location block)
    #include /config/nginx/authentik-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        # enable for Authentik (requires authentik-server.conf in the server block)
        #include /config/nginx/authentik-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app livestreamdvr;
        set $upstream_port 8082;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

        # REMOVE THIS LINE BEFORE SUBMITTING: Additional proxy settings such as headers go below this line, leave the blank line above.
    }

    # REMOVE THIS LINE BEFORE SUBMITTING: Some proxies require one or more additional location blocks for things like API or RPC endpoints.
    # REMOVE THIS LINE BEFORE SUBMITTING: If the proxy you are making a sample for does not require an additional location block please remove the commented out section below.
    location ~ (/livestreamdvr)?/api {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app livestreamdvr;
        set $upstream_port 8082;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }

    location ~ (/livestreamdvr)?/socket {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app livestreamdvr;
        set $upstream_port 8082;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

         # REMOVE THIS LINE BEFORE SUBMITTING: Additional proxy settings such as headers go below this line, leave the blank line above.
    }
}
nothing2obvi commented 3 months ago

@Serph91P @aerox845

I see from a past issue that you've gotten this to work with SWAG. Could you please help me? I'd greatly appreciate it.

nothing2obvi commented 3 months ago

I figured it out. I don't know what happened, but I just started the proxy-conf from scratch using the provided template in SWAG, used the 8080 port, and added the api portion and it worked. Closing. Thanks.