From 7b95dffd11bff88ff733652910e72bda527a5efe Mon Sep 17 00:00:00 2001 From: femsci Date: Thu, 2 Mar 2023 23:10:13 +0100 Subject: [PATCH] Initial project stub --- .dockerignore | 9 ++++ .gitignore | 4 ++ .nyoki | 3 ++ Dockerfile | 55 +++++++++++++++++++++ Nyangate.sln | 50 +++++++++++++++++++ src/Nyangate.Cli/Nyangate.Cli.csproj | 10 ++++ src/Nyangate.Cli/Program.cs | 1 + src/Nyangate.Lib/Nyangate.Lib.csproj | 9 ++++ src/Nyangate/Nyangate.csproj | 9 ++++ src/Nyangate/Program.cs | 6 +++ src/Nyangate/Properties/launchSettings.json | 37 ++++++++++++++ src/Nyangate/appsettings.Development.json | 8 +++ src/Nyangate/appsettings.json | 9 ++++ test/Nyangate.Test/Nyangate.Test.csproj | 24 +++++++++ test/Nyangate.Test/Usings.cs | 1 + 15 files changed, 235 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 .nyoki create mode 100644 Dockerfile create mode 100644 Nyangate.sln create mode 100644 src/Nyangate.Cli/Nyangate.Cli.csproj create mode 100644 src/Nyangate.Cli/Program.cs create mode 100644 src/Nyangate.Lib/Nyangate.Lib.csproj create mode 100644 src/Nyangate/Nyangate.csproj create mode 100644 src/Nyangate/Program.cs create mode 100644 src/Nyangate/Properties/launchSettings.json create mode 100644 src/Nyangate/appsettings.Development.json create mode 100644 src/Nyangate/appsettings.json create mode 100644 test/Nyangate.Test/Nyangate.Test.csproj create mode 100644 test/Nyangate.Test/Usings.cs diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..31cb3e8 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +* +!/scripts/* +!/src/* +!/test/* +!/Nyangate.sln +src/*/bin +src/*/obj +test/*/bin +test/*/obj diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d29d3c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.vscode/ +**/obj/ +**/bin/ +out/ diff --git a/.nyoki b/.nyoki new file mode 100644 index 0000000..758b030 --- /dev/null +++ b/.nyoki @@ -0,0 +1,3 @@ +{ + "instanceId": "79b5f7e0-eeb6-441d-85f0-721e4ea92fb4" +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..497a343 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,55 @@ +FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine AS build + +WORKDIR /source + +COPY Nyangate.sln ./ + +COPY src/Nyangate/*.csproj ./src/Nyangate/ +COPY src/Nyangate.Cli/*.csproj ./src/Nyangate.Cli/ +COPY src/Nyangate.Lib/*.csproj ./src/Nyangate.Lib/ +COPY test/Nyangate.Test/*.csproj ./test/Nyangate.Test/ + +RUN dotnet restore + +COPY src/Nyangate/. ./src/Nyangate/ +COPY src/Nyangate.Lib/. ./src/Nyangate.Lib/ + +RUN dotnet publish ./src/Nyangate/Nyangate.csproj --no-restore -c Release -o /build/nyangate + +FROM mcr.microsoft.com/dotnet/aspnet:7.0-alpine AS tests + +WORKDIR /source + +COPY test/Nyangate.Test/. ./test/Nyangate.Test/ +RUN dotnet test + +FROM mcr.microsoft.com/dotnet/aspnet:7.0-alpine AS runtime + +# Environment vars + +ENV TLS_CERT_PUB=/etc/tls/certs/main.pem +ENV TLS_CERT_PRIVKEY=/etc/tls/certs/main.key.pem + +RUN mkdir -p /srv/nyangate/config /etc/tls/certs + +# Files + +COPY --from=build /build/nyangate /srv/nyangate + +#COPY ./scripts/chkhealth /usr/bin/ + +VOLUME [ "/srv/nyangate/config" ] + +WORKDIR /srv/nyangate + +# Net + +EXPOSE 80/tcp +EXPOSE 443/tcp + +# Process handling + +STOPSIGNAL SIGTERM +#HEALTHCHECK --interval=60s --timeout=30s --start-period=5s --retries=3 CMD [ "/usr/bin/chkhealth" ] + +ENTRYPOINT [ "dotnet", "/srv/nyangate/Nyangate.dll" ] diff --git a/Nyangate.sln b/Nyangate.sln new file mode 100644 index 0000000..5f56c08 --- /dev/null +++ b/Nyangate.sln @@ -0,0 +1,50 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{9B32EA6C-F2D3-4A38-99FC-0C5F522B338A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nyangate.Test", "test\Nyangate.Test\Nyangate.Test.csproj", "{65ADE5CC-F1ED-4D18-A64E-7C4C625334D7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D389138A-1E17-4AFE-A0C8-D71DA9C2967B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nyangate.Cli", "src\Nyangate.Cli\Nyangate.Cli.csproj", "{8CCADE0F-436B-4CF0-A885-CEE0F96121D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nyangate", "src\Nyangate\Nyangate.csproj", "{D1171FEB-30A7-4D0B-B1AF-2DF5857E25A1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nyangate.Lib", "src\Nyangate.Lib\Nyangate.Lib.csproj", "{273954D9-C2DC-430F-A62D-DD55B908BA6C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {65ADE5CC-F1ED-4D18-A64E-7C4C625334D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65ADE5CC-F1ED-4D18-A64E-7C4C625334D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65ADE5CC-F1ED-4D18-A64E-7C4C625334D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65ADE5CC-F1ED-4D18-A64E-7C4C625334D7}.Release|Any CPU.Build.0 = Release|Any CPU + {8CCADE0F-436B-4CF0-A885-CEE0F96121D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CCADE0F-436B-4CF0-A885-CEE0F96121D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CCADE0F-436B-4CF0-A885-CEE0F96121D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CCADE0F-436B-4CF0-A885-CEE0F96121D4}.Release|Any CPU.Build.0 = Release|Any CPU + {D1171FEB-30A7-4D0B-B1AF-2DF5857E25A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1171FEB-30A7-4D0B-B1AF-2DF5857E25A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1171FEB-30A7-4D0B-B1AF-2DF5857E25A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1171FEB-30A7-4D0B-B1AF-2DF5857E25A1}.Release|Any CPU.Build.0 = Release|Any CPU + {273954D9-C2DC-430F-A62D-DD55B908BA6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {273954D9-C2DC-430F-A62D-DD55B908BA6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {273954D9-C2DC-430F-A62D-DD55B908BA6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {273954D9-C2DC-430F-A62D-DD55B908BA6C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {65ADE5CC-F1ED-4D18-A64E-7C4C625334D7} = {9B32EA6C-F2D3-4A38-99FC-0C5F522B338A} + {8CCADE0F-436B-4CF0-A885-CEE0F96121D4} = {D389138A-1E17-4AFE-A0C8-D71DA9C2967B} + {D1171FEB-30A7-4D0B-B1AF-2DF5857E25A1} = {D389138A-1E17-4AFE-A0C8-D71DA9C2967B} + {273954D9-C2DC-430F-A62D-DD55B908BA6C} = {D389138A-1E17-4AFE-A0C8-D71DA9C2967B} + EndGlobalSection +EndGlobal diff --git a/src/Nyangate.Cli/Nyangate.Cli.csproj b/src/Nyangate.Cli/Nyangate.Cli.csproj new file mode 100644 index 0000000..d439800 --- /dev/null +++ b/src/Nyangate.Cli/Nyangate.Cli.csproj @@ -0,0 +1,10 @@ + + + + Exe + net7.0 + enable + enable + + + diff --git a/src/Nyangate.Cli/Program.cs b/src/Nyangate.Cli/Program.cs new file mode 100644 index 0000000..d123c73 --- /dev/null +++ b/src/Nyangate.Cli/Program.cs @@ -0,0 +1 @@ +Console.WriteLine("meow~"); diff --git a/src/Nyangate.Lib/Nyangate.Lib.csproj b/src/Nyangate.Lib/Nyangate.Lib.csproj new file mode 100644 index 0000000..4658cbf --- /dev/null +++ b/src/Nyangate.Lib/Nyangate.Lib.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/src/Nyangate/Nyangate.csproj b/src/Nyangate/Nyangate.csproj new file mode 100644 index 0000000..72a1294 --- /dev/null +++ b/src/Nyangate/Nyangate.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/src/Nyangate/Program.cs b/src/Nyangate/Program.cs new file mode 100644 index 0000000..7dd389f --- /dev/null +++ b/src/Nyangate/Program.cs @@ -0,0 +1,6 @@ +var builder = WebApplication.CreateBuilder(args); +var app = builder.Build(); + +app.MapGet("/", () => "meow~"); + +app.Run(); diff --git a/src/Nyangate/Properties/launchSettings.json b/src/Nyangate/Properties/launchSettings.json new file mode 100644 index 0000000..701a318 --- /dev/null +++ b/src/Nyangate/Properties/launchSettings.json @@ -0,0 +1,37 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:17984", + "sslPort": 44337 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5178", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7056;http://localhost:5178", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/src/Nyangate/appsettings.Development.json b/src/Nyangate/appsettings.Development.json new file mode 100644 index 0000000..ff66ba6 --- /dev/null +++ b/src/Nyangate/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/src/Nyangate/appsettings.json b/src/Nyangate/appsettings.json new file mode 100644 index 0000000..4d56694 --- /dev/null +++ b/src/Nyangate/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/test/Nyangate.Test/Nyangate.Test.csproj b/test/Nyangate.Test/Nyangate.Test.csproj new file mode 100644 index 0000000..86a36ef --- /dev/null +++ b/test/Nyangate.Test/Nyangate.Test.csproj @@ -0,0 +1,24 @@ + + + + net7.0 + enable + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + diff --git a/test/Nyangate.Test/Usings.cs b/test/Nyangate.Test/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/test/Nyangate.Test/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file