Browse Source

no message

KIM-JINO5 2 months ago
parent
commit
22d11f5f8b

+ 7 - 6
Admin/Admin.csproj

@@ -16,20 +16,21 @@
 	</ItemGroup>
 	</ItemGroup>
 
 
 	<ItemGroup>
 	<ItemGroup>
-		<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.2" />
-		<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="10.0.2" />
-		<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.2">
+		<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.5" />
+		<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="10.0.5" />
+		<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.5">
 			<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
 			<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
 			<PrivateAssets>all</PrivateAssets>
 			<PrivateAssets>all</PrivateAssets>
 		</PackageReference>
 		</PackageReference>
-		<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.2" />
-		<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.2">
+		<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.5" />
+		<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.5">
 			<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
 			<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
 			<PrivateAssets>all</PrivateAssets>
 			<PrivateAssets>all</PrivateAssets>
 		</PackageReference>
 		</PackageReference>
+		<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.0.5" />
 		<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="10.0.2" />
 		<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="10.0.2" />
 		<PackageReference Include="MimeKit" Version="4.15.1" />
 		<PackageReference Include="MimeKit" Version="4.15.1" />
-		<PackageReference Include="System.Management" Version="10.0.2" />
+		<PackageReference Include="System.Management" Version="10.0.5" />
 	</ItemGroup>
 	</ItemGroup>
 
 
 	<ItemGroup>
 	<ItemGroup>

+ 2 - 0
Admin/Program.cs

@@ -12,6 +12,8 @@ Console.Title = settings.App.Name;
 Console.WriteLine($"ENV={builder.Environment.EnvironmentName}");
 Console.WriteLine($"ENV={builder.Environment.EnvironmentName}");
 Console.WriteLine($"현재 시간: {DateTime.Now} / {TimeZoneInfo.Local.Id}");
 Console.WriteLine($"현재 시간: {DateTime.Now} / {TimeZoneInfo.Local.Id}");
 
 
+builder.Host.UseWindowsService();
+
 // Add services to the container.
 // Add services to the container.
 var mvcBuilder = builder.Services.AddRazorPages(options =>
 var mvcBuilder = builder.Services.AddRazorPages(options =>
 {
 {

+ 0 - 0
Admin/appsettings.Development.json → Admin/appsettings.production.Development.json


+ 8 - 8
Admin/appsettings.json → Admin/appsettings.production.json

@@ -10,8 +10,8 @@
     "AllowedHosts": "*",
     "AllowedHosts": "*",
 
 
     "ConnectionStrings": {
     "ConnectionStrings": {
-        "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=AdminContext-87208056-7d2d-412a-b7f8-8e6c942ea8c8;Trusted_Connection=True;MultipleActiveResultSets=true",
-        "IdentityDbContextConnection": "Server=(localdb)\\mssqllocaldb;Database=Admin;Trusted_Connection=True;MultipleActiveResultSets=true"
+        "DefaultConnection": "Server=192.168.0.100;Database=bitforum;User Id=sa;Password=@@20120726KKh;Trusted_Connection=True;MultipleActiveResultSets=true",
+        "IdentityDbContextConnection": "Server=192.168.0.100;Database=bitforum;User Id=sa;Password=@@20120726KKh;Trusted_Connection=True;MultipleActiveResultSets=true"
     },
     },
 
 
     "Kestrel": {
     "Kestrel": {
@@ -28,9 +28,9 @@
     "App": {
     "App": {
         "Name": "bitforum Admin",
         "Name": "bitforum Admin",
         "Company": "PLAYR",
         "Company": "PLAYR",
-        "BaseURL": "https://localhost:5000",
-        "ApiURL": "https://localhost:4000",
-        "FrontURL": "https://localhost:3000"
+        "BaseURL": "https://admin.bitforum.io",
+        "ApiURL": "https://api.bitforum.io",
+        "FrontURL": "https://bitforum.io"
     },
     },
 
 
     "Redis": {
     "Redis": {
@@ -42,9 +42,9 @@
     },
     },
 
 
     "SMTP": {
     "SMTP": {
-        "Host": "mail.web.or.kr",
-        "Port": 587,
-        "User": "dev@web.or.kr",
+        "Host": "mail.bitforum.io",
+        "Port": 465,
+        "User": "admin@bitforum.io",
         "Password": "@@17125942KKh",
         "Password": "@@17125942KKh",
         "UseStartTls": true,
         "UseStartTls": true,
         "FromEmail": "support@bitforum.io",
         "FromEmail": "support@bitforum.io",

+ 1 - 0
Application/Abstractions/Chat/IChatConnectionTracker.cs

@@ -5,5 +5,6 @@
         Task AddAsync(ConnectedUser user);
         Task AddAsync(ConnectedUser user);
         Task RemoveAsync(string connectionId);
         Task RemoveAsync(string connectionId);
         Task<IReadOnlyList<ConnectedUser>> GetAllAsync();
         Task<IReadOnlyList<ConnectedUser>> GetAllAsync();
+        Task ClearAllAsync();
     }
     }
 }
 }

+ 5 - 0
Infrastructure/Chat/RedisChatConnectionTracker.cs

@@ -49,5 +49,10 @@ namespace Infrastructure.Chat
 
 
             return list.AsReadOnly();
             return list.AsReadOnly();
         }
         }
+
+        public async Task ClearAllAsync()
+        {
+            await _db.KeyDeleteAsync(CacheKeys.ChatConnections);
+        }
     }
     }
 }
 }

+ 3 - 4
Web.Api/Program.cs

@@ -16,8 +16,8 @@ Console.Title = settings.App.Name;
 Console.WriteLine($"ENV={builder.Environment.EnvironmentName}");
 Console.WriteLine($"ENV={builder.Environment.EnvironmentName}");
 Console.WriteLine($"현재 시간: {DateTime.Now} / {TimeZoneInfo.Local.Id}");
 Console.WriteLine($"현재 시간: {DateTime.Now} / {TimeZoneInfo.Local.Id}");
 
 
+builder.Host.UseWindowsService();
 builder.Services.Configure<AppSettings>(builder.Configuration);
 builder.Services.Configure<AppSettings>(builder.Configuration);
-
 builder.Services
 builder.Services
     .AddApplication()
     .AddApplication()
     .AddPresentation()
     .AddPresentation()
@@ -65,7 +65,7 @@ if (app.Environment.IsDevelopment())
     app.UseSwaggerUI();
     app.UseSwaggerUI();
 }
 }
 
 
-// 상태 확인
+// 상태 확인\
 app.MapHealthChecks("/health");
 app.MapHealthChecks("/health");
 
 
 app.UseExceptionHandler();
 app.UseExceptionHandler();
@@ -80,8 +80,7 @@ app.MapHub<ChatHub>("/hubs/chat");
 // 서버 시작 시 이전 채팅 접속자 정보 초기화 (stale 연결 제거)
 // 서버 시작 시 이전 채팅 접속자 정보 초기화 (stale 연결 제거)
 using (var scope = app.Services.CreateScope())
 using (var scope = app.Services.CreateScope())
 {
 {
-    var redis = scope.ServiceProvider.GetRequiredService<StackExchange.Redis.IConnectionMultiplexer>();
-    redis.GetDatabase().KeyDelete(Application.Abstractions.Cache.CacheKeys.ChatConnections);
+    await scope.ServiceProvider.GetRequiredService<IChatConnectionTracker>().ClearAllAsync();
 }
 }
 
 
 app.Run();
 app.Run();

+ 4 - 3
Web.Api/Web.Api.csproj

@@ -7,10 +7,11 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.2" />
-    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.2" />
+    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.5" />
+    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.5" />
+    <PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.0.5" />
     <PackageReference Include="MimeKit" Version="4.15.1" />
     <PackageReference Include="MimeKit" Version="4.15.1" />
-    <PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.0" />
+    <PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.5" />
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>

+ 0 - 8
Web.Api/appsettings.Development.json

@@ -1,8 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
-    }
-  }
-}

+ 0 - 0
Web.Api/appsettings.json → Web.Api/appsettings.production.Development.json


+ 46 - 0
Web.Api/appsettings.production.json

@@ -0,0 +1,46 @@
+{
+    "App": {
+        "Name": "bitForum API",
+        "Company": "PLAYR",
+        "BaseURL": "https://admin.bitforum.io",
+        "ApiURL": "https://api.bitforum.io",
+        "FrontURL": "https://bitforum.io"
+    },
+
+    "ConnectionStrings": {
+        "DefaultConnection": "Server=192.168.0.100;Database=bitforum;User Id=sa;Password=@@20120726KKh;Trusted_Connection=True;MultipleActiveResultSets=true"
+    },
+
+    "Redis": {
+        "DefaultConnection": "192.168.0.100:6379,password=bluescreen!!,defaultDatabase=4",
+        "CachePrefix": "Admin:Cache",
+        "DataProtectionKey": "Admin:DataProtection-Keys",
+        "DefaultKeyLifetime": "90.00:00:00"
+    },
+
+    "JWT": {
+        "SecretKey": "bitforum-dev-secret-key-2026-minimum-32-chars!",
+        "Issuer": "bitforum-api",
+        "Audience": "bitforum-front",
+        "AccessTokenExpiration": 30,
+        "RefreshTokenExpiration": 7
+    },
+
+    "CorsPolicy": {
+        "Name": "AllowFront",
+        "PreflightMaxAgeSeconds": 3600,
+        "AllowedOrigins": [
+            "http://bitforum.io",
+            "https://bitforum.io"
+        ]
+    },
+
+    "Logging": {
+        "LogLevel": {
+            "Default": "Information",
+            "Microsoft.AspNetCore": "Warning"
+        }
+    },
+
+    "AllowedHosts": "*"
+}

+ 0 - 0
bitforum-crypto.postman_collection.json → Web.Api/postman/bitforum-crypto.postman_collection.json


+ 0 - 0
bitforum-mypage-postman.json → Web.Api/postman/bitforum-mypage-postman.json