Split AuthService/Server

some refactoring
fix some stuff
add http context accessor
configure metrics as well
commit 713d054ccb965f7adb8eafa6e3fb52853a1e6dd2 (partial, Docker only)
This commit is contained in:
Stanley Dimant
2024-05-06 14:05:24 +02:00
committed by Loporrit
parent c400d9746f
commit 7639066249
61 changed files with 593 additions and 120 deletions

View File

@@ -0,0 +1,32 @@
FROM mcr.microsoft.com/dotnet/sdk:8.0 as BUILD
COPY MareAPI /server/MareAPI
COPY MareSynchronosServer/MareSynchronosShared /server/MareSynchronosServer/MareSynchronosShared
COPY MareSynchronosServer/MareSynchronosAuthService /server/MareSynchronosServer/MareSynchronosAuthService
WORKDIR /server/MareSynchronosServer/MareSynchronosAuthService/
RUN dotnet publish \
--configuration=Debug \
--os=linux \
--output=/build \
MareSynchronosAuthService.csproj
FROM mcr.microsoft.com/dotnet/aspnet:8.0
RUN adduser \
--disabled-password \
--group \
--no-create-home \
--quiet \
--system \
mare
COPY --from=BUILD /build /opt/MareSynchronosAuthService
RUN chown -R mare:mare /opt/MareSynchronosAuthService
RUN apt-get update; apt-get install curl -y
USER mare:mare
WORKDIR /opt/MareSynchronosAuthService
CMD ["./MareSynchronosAuthService"]

View File

@@ -0,0 +1,30 @@
FROM mcr.microsoft.com/dotnet/sdk:8.0 as BUILD
RUN git clone --recurse-submodules https://github.com/Penumbra-Sync/server
WORKDIR /server/MareSynchronosServer/MareSynchronosAuthService/
RUN dotnet publish \
--configuration=Release \
--os=linux \
--output=/MareSynchronosAuthService \
MareSynchronosAuthService.csproj
FROM mcr.microsoft.com/dotnet/aspnet:8.0
RUN adduser \
--disabled-password \
--group \
--no-create-home \
--quiet \
--system \
mare
COPY --from=BUILD /MareSynchronosAuthService /opt/MareSynchronosAuthService
RUN chown -R mare:mare /opt/MareSynchronosAuthService
RUN apt-get update; apt-get install curl -y
USER mare:mare
WORKDIR /opt/MareSynchronosAuthService
CMD ["./MareSynchronosAuthService"]

View File

@@ -0,0 +1,2 @@
#!/bin/sh
docker build -t darkarchon/mare-synchronos-authservice:latest . -f ../Dockerfile-MareSynchronosAuthService-git --no-cache --pull --force-rm

View File

@@ -1,4 +1,5 @@
#!/bin/sh
./docker-build-server.sh
./docker-build-authservice.sh
./docker-build-services.sh
./docker-build-staticfilesserver.sh

View File

@@ -0,0 +1,2 @@
#!/bin/sh
docker build -t darkarchon/mare-synchronos-authservice:latest . -f ../Dockerfile-MareSynchronosAuthService --no-cache --pull --force-rm

View File

@@ -1,4 +1,5 @@
#!/bin/sh
./docker-build-server.sh
./docker-build-authservice.sh
./docker-build-services.sh
./docker-build-staticfilesserver.sh

View File

@@ -0,0 +1,3 @@
@echo off
docker build -t darkarchon/mare-synchronos-authservice:latest . -f ..\Dockerfile-MareSynchronosAuthService-git --no-cache --pull --force-rm

View File

@@ -1,5 +1,6 @@
@echo off
call docker-build-server.bat
call docker-build-authservice.bat
call docker-build-services.bat
call docker-build-staticfilesserver.bat

View File

@@ -0,0 +1,4 @@
@echo off
cd ..\..\..\
docker build -t darkarchon/mare-synchronos-authservice:latest . -f Docker\build\Dockerfile-MareSynchronosAuthService --no-cache --pull --force-rm
cd Docker\build\windows-local

View File

@@ -1,5 +1,6 @@
@echo off
call docker-build-server.bat
call docker-build-authservice.bat
call docker-build-services.bat
call docker-build-staticfilesserver.bat

View File

@@ -44,6 +44,21 @@ services:
start_period: 10s
timeout: 1s
mare-auth:
image: darkarchon/mare-synchronos-authservice:latest
restart: on-failure
environment:
DOTNET_USE_POLLING_FILE_WATCHER: 1
volumes:
- ../config/standalone/authservice-standalone.json:/opt/MareSynchronosAuthService/appsettings.json
- ../log/authservice-standalone/:/opt/MareSynchronosAuthService/logs/:rw
- postgres_socket:/var/run/postgresql/:rw
depends_on:
mare-server:
condition: service_healthy
postgres:
condition: service_healthy
mare-services:
image: darkarchon/mare-synchronos-services:latest
restart: on-failure

View File

@@ -0,0 +1,42 @@
{
"ConnectionStrings": {
"DefaultConnection": "Host=/var/run/postgresql;Port=5432;Database=mare;Username=mare;Keepalive=15;Minimum Pool Size=10;Maximum Pool Size=50;No Reset On Close=true;Max Auto Prepare=50;Enlist=false"
},
"Logging": {
"LogLevel": {
"Default": "Warning",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"MareSynchronosServices": "Information",
"MareSynchronosShared": "Information",
"System.IO": "Information"
},
"File": {
"BasePath": "logs",
"FileAccessMode": "KeepOpenAndAutoFlush",
"FileEncodingName": "utf-8",
"DateFormat": "yyyMMdd",
"MaxFileSize": 104857600,
"Files": [
{
"Path": "<date:yyyy>/<date:MM>/<date:dd>/mare-<date:HH>-<counter:0000>.log"
}
]
}
},
"MareSynchronos": {
"DbContextPoolSize": 512,
"ShardName": "AuthServices",
"MetricsPort": 6150,
"Jwt": "teststringteststringteststringteststringteststringteststringteststringteststringteststringteststring",
"RedisConnectionString": "redis,password=secretredispassword",
"FailedAuthForTempBan": 5,
"UseGeoIP": false,
"GeoIPDbCityFile": ""
},
"AllowedHosts": "*",
"Kestrel": {
},
"IpRateLimiting": {},
"IPRateLimitPolicies": {}
}

View File

@@ -28,7 +28,6 @@
"DbContextPoolSize": 512,
"ShardName": "Files",
"MetricsPort": 6250,
"FileServerGrpcAddress": "",
"ForcedDeletionOfFilesAfterHours": -1,
"CacheSizeHardLimitInGiB": -1,
"UnusedFileRetentionPeriodInDays": 14,
@@ -37,7 +36,9 @@
"MainServerAddress": "http://mare-server:6000/",
"RedisConnectionString": "redis,password=secretredispassword",
"MainFileServerAddress": "",
"Jwt": "teststringteststringteststringteststringteststringteststringteststringteststringteststringteststring"
"Jwt": "teststringteststringteststringteststringteststringteststringteststringteststringteststringteststring",
"UseColdStorage": false,
"IsDistributionNode": true
},
"AllowedHosts": "*",
"Kestrel": {