Initial commit

This commit is contained in:
zavolo
2026-06-05 00:53:35 +03:00
commit e59e4424a4
7686 changed files with 352420 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
$version=Get-Content "./version.txt"
$date = Get-Date -Format "Mdd"
$version = $version+$date
$currentDir=(Get-Item .).FullName
$parentFolder=(Get-Item $currentDir).Parent
$outputRootFolder=Join-Path $parentFolder "out/local" $version
$sourceRootFolder=Join-Path $parentFolder "./source/src"
$authServerOutputFolder=Join-Path $outputRootFolder "auth"
$gatewayOutputFolder=Join-Path $outputRootFolder "gateway"
$messengerProCommandOutputFolder=Join-Path $outputRootFolder "command-server"
$messengerProQueryOutputFolder=Join-Path $outputRootFolder "query-server"
$messengerGrpcOutputFolder=Join-Path $outputRootFolder "messenger-grpc"
$smsOutputFolder=Join-Path $outputRootFolder "sms"
$dataSeederOutputFolder=Join-Path $outputRootFolder "data-seeder"
Write-Output "Current dir:$currentDir"
Write-Output "OutputFolder is:$outputRootFolder"
function CreateFolderIfNotExists([System.String] $folder){
if(![System.IO.Directory]::Exists($folder)){
Write-Output "Create new folder:$folder"
[System.IO.Directory]::CreateDirectory($folder)
}
}
function Build-Server([System.String]$srcFolder,[System.String] $outputFolder) {
$sourceFolder=Join-Path $sourceRootFolder $srcFolder
dotnet publish $sourceFolder -c Release -o $outputFolder
}
# Set-Location ../source/
#dotnet restore ./MyTelegram.sln
Build-Server "./MyTelegram.AuthServer" $authServerOutputFolder
Build-Server "./MyTelegram.GatewayServer" $gatewayOutputFolder
Build-Server "./MyTelegram.Messenger.CommandServer" $messengerProCommandOutputFolder
Build-Server "./MyTelegram.Messenger.QueryServer" $messengerProQueryOutputFolder
#Build-Server "./MyTelegram.MessengerServer.GrpcService" $messengerGrpcOutputFolder
Build-Server "./MyTelegram.SmsSender" $smsOutputFolder
Build-Server "./MyTelegram.DataSeeder" $dataSeederOutputFolder
Set-Location $currentDir
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
v=$(head -n 1 ./version.txt)
currentDate=`date +%-m%d`
version=$v.$currentDate
currentDir=$(pwd)
parentFolder=$(dirname "$currentDir")
outputRootFolder="$parentFolder/out/local/$version"
sourceRootFolder="$parentFolder/source/src"
authServerOutputFolder="$outputRootFolder/auth"
gatewayOutputFolder="$outputRootFolder/gateway"
messengerProCommandOutputFolder="$outputRootFolder/command-server"
messengerProQueryOutputFolder="$outputRootFolder/query-server"
messengerGrpcOutputFolder="$outputRootFolder/messenger-grpc"
smsOutputFolder="$outputRootFolder/sms"
dataSeederOutputFolder="$outputRootFolder/data-seeder"
echo "Current dir: $currentDir"
echo "OutputFolder is: $outputRootFolder"
CreateFolderIfNotExists() {
folder="$1"
if [ ! -d "$folder" ]; then
echo "Create new folder: $folder"
mkdir -p "$folder"
fi
}
Build-Server() {
srcFolder="$1"
outputFolder="$2"
sourceFolder="$sourceRootFolder/$srcFolder"
dotnet publish "$sourceFolder" -c Release -o "$outputFolder"
}
Build-Server "./MyTelegram.AuthServer" "$authServerOutputFolder"
Build-Server "./MyTelegram.GatewayServer" "$gatewayOutputFolder"
Build-Server "./MyTelegram.Messenger.CommandServer" "$messengerProCommandOutputFolder"
Build-Server "./MyTelegram.Messenger.QueryServer" "$messengerProQueryOutputFolder"
#Build-Server "./MyTelegram.MessengerServer.GrpcService" "$messengerGrpcOutputFolder"
Build-Server "./MyTelegram.SmsSender" "$smsOutputFolder"
Build-Server "./MyTelegram.DataSeeder" "$dataSeederOutputFolder"
cd "$currentDir"
@@ -0,0 +1,5 @@
#!/bin/sh
export MYTELEGRAM_SERVER_NAME="mytelegram-messenger-command-server"
. ./helper.sh
$BUILD_ALL_COMMAND
@@ -0,0 +1,5 @@
#!/bin/sh
export MYTELEGRAM_SERVER_NAME="mytelegram-messenger-query-server"
. ./helper.sh
$BUILD_ALL_COMMAND
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
export MYTELEGRAM_SERVER_NAME="mytelegram-sms-sender"
. ./helper.sh
$BUILD_ALL_COMMAND
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
export MYTELEGRAM_SERVER_NAME="mytelegram-gateway-server"
. ./helper.sh
$BUILD_ALL_COMMAND
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
export MYTELEGRAM_SERVER_NAME="mytelegram-auth-server"
. ./helper.sh
$BUILD_ALL_COMMAND
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
export MYTELEGRAM_SERVER_NAME="mytelegram-data-seeder"
. ./helper.sh
$BUILD_ALL_COMMAND
@@ -0,0 +1,46 @@
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/runtime:9.0 AS base
USER $APP_UID
WORKDIR /app
# This stage is used to build the service project
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0 AS build
ARG BUILD_CONFIGURATION=Release
ARG TARGETARCH
WORKDIR /src
COPY ["Directory.Packages.props", "."]
COPY ["Directory.Build.props", "."]
COPY ["nuget.config", "."]
COPY ["src/MyTelegram.DataSeeder/MyTelegram.DataSeeder.csproj", "src/MyTelegram.DataSeeder/"]
COPY ["src/MyTelegram.Domain/MyTelegram.Domain.csproj", "src/MyTelegram.Domain/"]
COPY ["src/MyTelegram.Domain.Shared/MyTelegram.Domain.Shared.csproj", "src/MyTelegram.Domain.Shared/"]
COPY ["src/MyTelegram.Abstractions/MyTelegram.Abstractions.csproj", "src/MyTelegram.Abstractions/"]
COPY ["src/MyTelegram.Schema/MyTelegram.Schema.csproj", "src/MyTelegram.Schema/"]
COPY ["src/MyTelegram.EventFlow/MyTelegram.EventFlow.csproj", "src/MyTelegram.EventFlow/"]
COPY ["src/MyTelegram.QueryHandlers.MongoDB/MyTelegram.QueryHandlers.MongoDB.csproj", "src/MyTelegram.QueryHandlers.MongoDB/"]
COPY ["src/MyTelegram.Queries/MyTelegram.Queries.csproj", "src/MyTelegram.Queries/"]
COPY ["src/MyTelegram.ReadModel/MyTelegram.ReadModel.csproj", "src/MyTelegram.ReadModel/"]
COPY ["src/MyTelegram.ReadModel.Interfaces/MyTelegram.ReadModel.Interfaces.csproj", "src/MyTelegram.ReadModel.Interfaces/"]
COPY ["src/MyTelegram.ReadModel.MongoDB/MyTelegram.ReadModel.MongoDB.csproj", "src/MyTelegram.ReadModel.MongoDB/"]
COPY ["src/MyTelegram.EventFlow.MongoDB/MyTelegram.EventFlow.MongoDB.csproj", "src/MyTelegram.EventFlow.MongoDB/"]
COPY ["src/MyTelegram.Services/MyTelegram.Services.csproj", "src/MyTelegram.Services/"]
COPY ["src/MyTelegram.Core/MyTelegram.Core.csproj", "src/MyTelegram.Core/"]
COPY ["src/MyTelegram.EventBus/MyTelegram.EventBus.csproj", "src/MyTelegram.EventBus/"]
RUN dotnet restore -a $TARGETARCH "./src/MyTelegram.DataSeeder/MyTelegram.DataSeeder.csproj"
COPY . .
WORKDIR "/src/src/MyTelegram.DataSeeder"
RUN dotnet build "./MyTelegram.DataSeeder.csproj" -a $TARGETARCH -c $BUILD_CONFIGURATION -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyTelegram.DataSeeder.csproj" -a $TARGETARCH -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyTelegram.DataSeeder.dll"]
@@ -0,0 +1,40 @@
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/runtime:9.0 AS base
USER $APP_UID
WORKDIR /app
# This stage is used to build the service project
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0 AS build
ARG BUILD_CONFIGURATION=Release
ARG TARGETARCH
WORKDIR /src
COPY ["Directory.Packages.props", "."]
COPY ["Directory.Build.props", "."]
COPY ["nuget.config", "."]
COPY ["src/MyTelegram.SmsSender/MyTelegram.SmsSender.csproj", "src/MyTelegram.SmsSender/"]
COPY ["src/MyTelegram.Core/MyTelegram.Core.csproj", "src/MyTelegram.Core/"]
COPY ["src/MyTelegram.Abstractions/MyTelegram.Abstractions.csproj", "src/MyTelegram.Abstractions/"]
COPY ["src/MyTelegram.Domain.Shared/MyTelegram.Domain.Shared.csproj", "src/MyTelegram.Domain.Shared/"]
COPY ["src/MyTelegram.Schema/MyTelegram.Schema.csproj", "src/MyTelegram.Schema/"]
COPY ["src/MyTelegram.EventBus.RabbitMQ/MyTelegram.EventBus.RabbitMQ.csproj", "src/MyTelegram.EventBus.RabbitMQ/"]
COPY ["src/MyTelegram.EventBus/MyTelegram.EventBus.csproj", "src/MyTelegram.EventBus/"]
COPY ["src/MyTelegram.Services/MyTelegram.Services.csproj", "src/MyTelegram.Services/"]
COPY ["src/MyTelegram.EventFlow/MyTelegram.EventFlow.csproj", "src/MyTelegram.EventFlow/"]
RUN dotnet restore -a $TARGETARCH "./src/MyTelegram.SmsSender/MyTelegram.SmsSender.csproj"
COPY . .
WORKDIR "/src/src/MyTelegram.SmsSender"
RUN dotnet build "./MyTelegram.SmsSender.csproj" -a $TARGETARCH -c $BUILD_CONFIGURATION -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
ARG TARGETARCH
RUN dotnet publish "./MyTelegram.SmsSender.csproj" -a $TARGETARCH -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyTelegram.SmsSender.dll"]
+13
View File
@@ -0,0 +1,13 @@
### Run the following scripts to build docker images
### linux/amd64 (build)
```
build-all-amd64.sh
```
### linux/arm64 (build)
```
build-all-arm64.sh
```
### linux/amd64 & linux/arm64 (build and push)
```
build-and-push-all-amd64-arm64.sh
```
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
./1.build-messenger-command-server.sh
./2.build-messenger-query-server.sh
./4.build-sms-sender.sh
./5.build-gateway-server.sh
./6.build-auth-server.sh
./7.build-data-seeder.sh
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
export BUILDPLATFORM="linux/arm64"
export TARGETARCH="linux/arm64"
./1.build-messenger-command-server.sh
./2.build-messenger-query-server.sh
./4.build-sms-sender.sh
./5.build-gateway-server.sh
./6.build-auth-server.sh
./7.build-data-seeder.sh
@@ -0,0 +1,11 @@
#!/bin/sh
export BUILDPLATFORM="linux/amd64,linux/arm64"
export TARGETARCH="linux/amd64,linux/arm64"
#export REGISTRY_URL="localhost:8500"
export BUILD_COMMAND="docker buildx build --push"
./1.build-messenger-command-server.sh
./2.build-messenger-query-server.sh
./4.build-sms-sender.sh
./5.build-gateway-server.sh
./6.build-auth-server.sh
./7.build-data-seeder.sh
@@ -0,0 +1,11 @@
#!/bin/sh
export BUILDPLATFORM="linux/amd64"
export TARGETARCH="linux/amd64"
export REGISTRY_URL="localhost:8500"
export BUILD_COMMAND="docker buildx build --push"
./1.build-messenger-command-server.sh
./2.build-messenger-query-server.sh
./4.build-sms-sender.sh
./5.build-gateway-server.sh
./6.build-auth-server.sh
./7.build-data-seeder.sh
+31
View File
@@ -0,0 +1,31 @@
#!/bin/sh
v=$(head -n 1 ../version.txt)
currentDate=`date +%-m%d`
export DEFAULT_VERSION=$v.$currentDate
export DEFAULT_IMAGE_VERSION=$DEFAULT_VERSION
DEFAULT_PLATFORM="linux/amd64"
: ${VERSION:=$DEFAULT_VERSION}
: ${IMAGE_VERSION:=$DEFAULT_IMAGE_VERSION}
: ${TARGETARCH:=$DEFAULT_PLATFORM}
: ${BUILDPLATFORM:=$DEFAULT_PLATFORM}
: ${BUILD_CONFIGURATION:="Release"}
: ${REGISTRY_URL:="mytelegram"}
: ${BUILD_COMMAND:="docker build" }
: ${MYTELEGRAM_SERVER_NAME:="mytelegram-messenger-command-server"}
: ${IMAGE_NAME:=$REGISTRY_URL/$MYTELEGRAM_SERVER_NAME}
: ${DOCKER_FILENAME:="./Dockerfile-$MYTELEGRAM_SERVER_NAME"}
echo Version: $VERSION
echo Docker image version: $IMAGE_VERSION
echo Target architecture: $TARGETARCH
echo Buld configuration: $BUILD_CONFIGURATION
: ${BUILD_ALL_COMMAND:=$BUILD_COMMAND \
--platform $BUILDPLATFORM \
--build-arg BUILD_CONFIGURATION=$BUILD_CONFIGURATION \
--tag $IMAGE_NAME:$IMAGE_VERSION \
--tag $IMAGE_NAME:latest \
--file $DOCKER_FILENAME \
../../source \
--network=host}
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
export REGISTRY_URL="mytelegram"
./1.build-messenger-command-server.sh
./2.build-messenger-query-server.sh
./4.build-sms-sender.sh
./5.build-gateway-server.sh
./6.build-auth-server.sh
+1
View File
@@ -0,0 +1 @@
0.32.206