From e277ea0bc58c1a4e277d70d29fcbb47c76ba8fa2 Mon Sep 17 00:00:00 2001 From: XShine555 Date: Mon, 20 Jul 2026 15:13:15 +0200 Subject: [PATCH] fix(gateway): load the proxy routes and ticket settings in every environment The YARP routes, the bucket path transform and the StreamTicket section only existed in appsettings.Development.json, so a Production run had no routes at all and every /media request fell through to a 404. Move them to appsettings.json and leave only the environment-specific overrides (key path) in the Development file; the container gets the filer address, the bucket and the allowed CORS origins from environment variables. --- .../appsettings.Development.json | 29 +--------------- .../Musify.StreamingGateway/appsettings.json | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/backend/Musify.StreamingGateway/appsettings.Development.json b/backend/Musify.StreamingGateway/appsettings.Development.json index f18846a..7000da9 100644 --- a/backend/Musify.StreamingGateway/appsettings.Development.json +++ b/backend/Musify.StreamingGateway/appsettings.Development.json @@ -1,32 +1,5 @@ { "StreamTicket": { - "PublicKeyPath": "D:\\weed\\stream_public.pem", - "Audience": "media-gateway", - "Issuer": "musify-webapi", - "QueryParameterName": "t", - "MediaPathPrefix": "/media" - }, - - "Cors": { - "AllowedOrigins": [ "http://localhost:5173", "http://localhost:3000" ] - }, - - "ReverseProxy": { - "Routes": { - "media": { - "ClusterId": "seaweed-filer", - "Match": { "Path": "/media/{**rest}" }, - "Transforms": [ - { "PathPattern": "/buckets/webapi-storage/{**rest}" } - ] - } - }, - "Clusters": { - "seaweed-filer": { - "Destinations": { - "filer": { "Address": "http://localhost:8888/" } - } - } - } + "PublicKeyPath": "../../deploy/keys/stream_public.pem" } } diff --git a/backend/Musify.StreamingGateway/appsettings.json b/backend/Musify.StreamingGateway/appsettings.json index c382627..a2eeaa5 100644 --- a/backend/Musify.StreamingGateway/appsettings.json +++ b/backend/Musify.StreamingGateway/appsettings.json @@ -6,5 +6,36 @@ "Yarp": "Information" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + + "StreamTicket": { + "PublicKeyPath": "", + "Audience": "media-gateway", + "Issuer": "musify-webapi", + "QueryParameterName": "t", + "MediaPathPrefix": "/media" + }, + + "Cors": { + "AllowedOrigins": [] + }, + + "ReverseProxy": { + "Routes": { + "media": { + "ClusterId": "seaweed-filer", + "Match": { "Path": "/media/{**rest}" }, + "Transforms": [ + { "PathPattern": "/buckets/webapi-storage/{**rest}" } + ] + } + }, + "Clusters": { + "seaweed-filer": { + "Destinations": { + "filer": { "Address": "http://localhost:8888/" } + } + } + } + } }