From c7e2c6973329afbf657bc6affdcc17307c57aa00 Mon Sep 17 00:00:00 2001 From: Omega Leo Date: Sat, 24 Oct 2026 12:01:09 +0100 Subject: [PATCH] Added docker compose --- .dockerignore | 10 ++++++++++ OmegaLeo.HelperLib.Web/Program.cs | 12 ++++++++++++ compose.yaml | 18 ++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 .dockerignore create mode 100644 compose.yaml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d36b9eb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +**/bin/ +**/obj/ +**/*.user +**/.vs/ +.idea/ +.vscode/ +.git/ +.gitea/ +.github/ +**/logs/ diff --git a/OmegaLeo.HelperLib.Web/Program.cs b/OmegaLeo.HelperLib.Web/Program.cs index 2a48945..0ec52ab 100755 --- a/OmegaLeo.HelperLib.Web/Program.cs +++ b/OmegaLeo.HelperLib.Web/Program.cs @@ -1,3 +1,4 @@ +using Microsoft.AspNetCore.HttpOverrides; using Serilog; var builder = WebApplication.CreateBuilder(args); @@ -5,6 +6,15 @@ var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); +// Trust X-Forwarded-* from the reverse proxy in front of the container, so HTTPS +// redirection and HSTS see the original scheme instead of looping on plain HTTP. +builder.Services.Configure(options => +{ + options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; + options.KnownNetworks.Clear(); + options.KnownProxies.Clear(); +}); + // Configure logging // Configure Serilog Log.Logger = new LoggerConfiguration() @@ -20,6 +30,8 @@ builder.Host.UseSerilog(); var app = builder.Build(); +app.UseForwardedHeaders(); + // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..aaabb0a --- /dev/null +++ b/compose.yaml @@ -0,0 +1,18 @@ +services: + helperlib-web: + container_name: helperlib-web + build: + context: . + dockerfile: OmegaLeo.HelperLib.Web/Dockerfile + image: helperlib-web:latest + restart: unless-stopped + environment: + ASPNETCORE_ENVIRONMENT: Production + ports: + # Cloudflare Tunnel: library.omegaleo.dev -> http://localhost:5001 + - "${HELPERLIB_WEB_PORT:-5001}:8080" + volumes: + - helperlib-web-logs:/app/logs + +volumes: + helperlib-web-logs: