Browse Source

add public port env vars; allow streaming through ui port (#1993)

pull/1994/head
Jason Dove 2 months ago committed by GitHub
parent
commit
70472ac84e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      CHANGELOG.md
  2. 3
      ErsatzTV.Core/Settings.cs
  3. 37
      ErsatzTV/Program.cs
  4. 4
      ErsatzTV/Properties/launchSettings.json
  5. 16
      ErsatzTV/Startup.cs

2
CHANGELOG.md

@ -12,6 +12,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -12,6 +12,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Add environment variables to allow ETV to run UI and streaming on separate ports
- `ETV_STREAMING_PORT`: port used for streaming requests, defaults to 8409
- `ETV_UI_PORT`: port used for admin UI, defaults to 8409
- `ETV_PUBLIC_STREAMING_PORT`: port used for streaming requests at reverse proxy, defaults to 8409
- `ETV_PUBLIC_UI_PORT`: port used for admin UI at reverse proxy, defaults to 8409
### Fixed
- Fix error message about synchronizing Plex collections from a Plex server that has zero collections

3
ErsatzTV.Core/Settings.cs

@ -4,4 +4,7 @@ public static class Settings @@ -4,4 +4,7 @@ public static class Settings
{
public static int UiPort { get; set; }
public static int StreamingPort { get; set; }
public static int PublicUiPort { get; set; }
public static int PublicStreamingPort { get; set; }
}

37
ErsatzTV/Program.cs

@ -138,31 +138,50 @@ public class Program @@ -138,31 +138,50 @@ public class Program
{
uiPort = 8409;
}
Settings.UiPort = uiPort;
string publicUiPortVariable = Environment.GetEnvironmentVariable("ETV_PUBLIC_UI_PORT");
if (!int.TryParse(publicUiPortVariable, out int publicUiPort))
{
publicUiPort = 8409;
}
Settings.PublicUiPort = publicUiPort;
string streamingPortVariable = Environment.GetEnvironmentVariable("ETV_STREAMING_PORT");
if (!int.TryParse(streamingPortVariable, out int streamingPort))
{
streamingPort = 8409;
}
Settings.StreamingPort = streamingPort;
string publicStreamingPortVariable = Environment.GetEnvironmentVariable("ETV_PUBLIC_STREAMING_PORT");
if (!int.TryParse(publicStreamingPortVariable, out int publicStreamingPort))
{
publicStreamingPort = 8409;
}
Settings.PublicStreamingPort = publicStreamingPort;
return Host.CreateDefaultBuilder(args)
.ConfigureServices(services => services.AddSingleton(LoggingLevelSwitches))
.ConfigureWebHostDefaults(
webBuilder => webBuilder.UseStartup<Startup>()
.UseConfiguration(Configuration)
.UseKestrel(options =>
{
options.ListenAnyIP(Settings.UiPort);
if (Settings.StreamingPort != Settings.UiPort)
.UseKestrel(
options =>
{
options.ListenAnyIP(Settings.StreamingPort);
}
options.ListenAnyIP(Settings.UiPort);
if (Settings.StreamingPort != Settings.UiPort)
{
options.ListenAnyIP(Settings.StreamingPort);
}
options.AddServerHeader = false;
})
options.AddServerHeader = false;
})
.UseContentRoot(BasePath))
.UseSerilog();
}

4
ErsatzTV/Properties/launchSettings.json

@ -7,7 +7,9 @@ @@ -7,7 +7,9 @@
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"ETV_STREAMING_PORT": "8409",
"ETV_UI_PORT": "8410"
"ETV_UI_PORT": "8410",
"ETV_PUBLIC_STREAMING_PORT": "8409",
"ETV_PUBLIC_UI_PORT": "8410"
}
}
}

16
ErsatzTV/Startup.cs

@ -592,23 +592,11 @@ public class Startup @@ -592,23 +592,11 @@ public class Startup
else
{
app.MapWhen(
ctx => ctx.Request.Host.Port == Settings.UiPort,
ctx => ctx.Request.Host.Port == Settings.UiPort || ctx.Request.Host.Port == Settings.PublicUiPort,
uiApp =>
{
uiApp.UseRouting();
uiApp.UseWhen(
c => c.Request.Path.StartsWithSegments("/iptv"), // && !IPAddress.IsLoopback(c.Connection.RemoteIpAddress ?? IPAddress.None),
a =>
{
a.Run(
c =>
{
c.Response.StatusCode = 404;
return Task.CompletedTask;
});
});
if (OidcHelper.IsEnabled)
{
uiApp.UseAuthentication();
@ -627,7 +615,7 @@ public class Startup @@ -627,7 +615,7 @@ public class Startup
});
app.MapWhen(
ctx => ctx.Request.Host.Port == Settings.StreamingPort,
ctx => ctx.Request.Host.Port == Settings.StreamingPort || ctx.Request.Host.Port == Settings.PublicStreamingPort,
streamingApp =>
{
streamingApp.UseRouting();

Loading…
Cancel
Save