From 44fc9047e01c08614dc10d0c56d2af6b02932bbf Mon Sep 17 00:00:00 2001 From: Alexa <53471801+Alexa-RR@users.noreply.github.com> Date: Thu, 25 Jun 2026 14:04:36 +0300 Subject: [PATCH] feat: Make S3 bucket names configurable via environment variables --- DorkNet.Server/Services/ObjectStorageService.cs | 11 +++++++++-- docker-compose.microservices.dokploy.yml | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/DorkNet.Server/Services/ObjectStorageService.cs b/DorkNet.Server/Services/ObjectStorageService.cs index 4b1bce4..cb32062 100644 --- a/DorkNet.Server/Services/ObjectStorageService.cs +++ b/DorkNet.Server/Services/ObjectStorageService.cs @@ -62,8 +62,8 @@ public interface IObjectStorage public static class Buckets { - public const string Content = "dorknet-content"; - public const string Saves = "dorknet-saves"; + public static string Content { get; set; } = "dorknet-content"; + public static string Saves { get; set; } = "dorknet-saves"; } /// @@ -157,6 +157,13 @@ public class ObjectStorageService : IObjectStorage, IDisposable { _log = log; _diskFallbackRoot = Path.Combine(AppContext.BaseDirectory, "data", "object-fallback"); + // Bucket names are env-overridable so a new game generation can point at + // fresh buckets (e.g. dorknet2023-*) without a code change. Applied here + // (before the disk/S3 branch) so the disk fallback paths use them too. + if (config["S3:ContentBucket"] is { Length: > 0 } contentBucket) Buckets.Content = contentBucket; + if (config["S3:SavesBucket"] is { Length: > 0 } savesBucket) Buckets.Saves = savesBucket; + _log.LogInformation( + "[storage] buckets content={Content} saves={Saves}", Buckets.Content, Buckets.Saves); // Provider switch: env-driven. The Garage one-click service in // Coolify exposes its endpoint on http://garage:3900 and supplies diff --git a/docker-compose.microservices.dokploy.yml b/docker-compose.microservices.dokploy.yml index 39cd1af..9fe05e5 100644 --- a/docker-compose.microservices.dokploy.yml +++ b/docker-compose.microservices.dokploy.yml @@ -8,6 +8,8 @@ x-dorknet-service-env: &dorknet-service-env S3__AccessKey: ${DORKNET_S3_ACCESS_KEY:?Set DORKNET_S3_ACCESS_KEY in Dokploy} S3__SecretKey: ${DORKNET_S3_SECRET_KEY:?Set DORKNET_S3_SECRET_KEY in Dokploy} S3__Region: ${DORKNET_S3_REGION:-garage} + S3__ContentBucket: ${DORKNET_S3_CONTENT_BUCKET:-dorknet-content} + S3__SavesBucket: ${DORKNET_S3_SAVES_BUCKET:-dorknet-saves} Photon__AppId: ${Photon__AppId:?Set Photon__AppId in Dokploy} Photon__VoiceAppId: ${Photon__VoiceAppId:-} Photon__CloudRegion: ${Photon__CloudRegion:-eu}