diff --git a/README.md b/README.md
index b342469..8f98d6c 100644
--- a/README.md
+++ b/README.md
@@ -8,12 +8,14 @@ Includes the backend (`src/Vegasco.Server.Api`) and the frontend (`src/Vegasco-W
### Configuration
-| Configuration | Description | Default | Required |
-|--------------------------|---------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|----------|
-| JWT:MetadataUrl | The oidc meta data url | - | true |
-| JWT:ValidAudience | The valid audience of the JWT token. | - | true |
-| JWT:NameClaimType | The claim type of the user's name claim. For keycloak, using `preferred_username` is often the better choice. | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | false |
-| JWT:AllowHttpMetadataUrl | Whether to allow the meta data url to have http as protocol. Always true when `ASPNETCORE_ENVIRONMENT=true` | false | false |
+| Configuration | Description | Default | Required |
+|------------------------------------|---------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|----------|
+| JWT:MetadataUrl | The oidc meta data url | - | true |
+| JWT:ValidAudience | The valid audience of the JWT token. | - | true |
+| JWT:NameClaimType | The claim type of the user's name claim. For keycloak, using `preferred_username` is often the better choice. | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | false |
+| JWT:AllowHttpMetadataUrl | Whether to allow the meta data url to have http as protocol. Always true when `ASPNETCORE_ENVIRONMENT=true` | false | false |
+| ConnectionStrings:seq | The seq http endpoint to send the logs and traces to. If not set, logs and traces will not be sent to seq. | - | false |
+| ConnectionStrings:vegasco-database | The connection string to the postgres database. | - | true |
The application uses the prefix `Vegasco_` for environment variable names. The prefix is removed when the application reads the environment variables and duplicate entries are overwritten by the environment variables.
diff --git a/src/Vegasco-Web/Dockerfile b/src/Vegasco-Web/Dockerfile
index 7a66bc5..5ee1157 100644
--- a/src/Vegasco-Web/Dockerfile
+++ b/src/Vegasco-Web/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:lts AS build
+FROM node:latest AS build
RUN npm install -g pnpm
ARG CONFIGURATION=development
WORKDIR /usr/local/app
diff --git a/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs b/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs
index ccdbd30..33acf4f 100644
--- a/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs
+++ b/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs
@@ -18,6 +18,8 @@ public static class DependencyInjectionExtensions
///
public static void AddApiServices(this IHostApplicationBuilder builder)
{
+ builder.AddBuilderServices();
+
builder.Services
.AddMiscellaneousServices()
.AddCustomOpenApi()
@@ -27,6 +29,17 @@ public static class DependencyInjectionExtensions
builder.AddDbContext();
}
+ private static IHostApplicationBuilder AddBuilderServices(this IHostApplicationBuilder builder)
+ {
+ string? seqHost = builder.Configuration.GetConnectionString("seq");
+ if (!string.IsNullOrEmpty(seqHost))
+ {
+ builder.AddSeqEndpoint("seq");
+ }
+
+ return builder;
+ }
+
private static IServiceCollection AddMiscellaneousServices(this IServiceCollection services)
{
services.AddSingleton(() =>
diff --git a/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj b/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj
index 86548ed..461fc82 100644
--- a/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj
+++ b/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj
@@ -14,6 +14,7 @@
+
diff --git a/src/Vegasco.Server.AppHost/Program.cs b/src/Vegasco.Server.AppHost/Program.cs
index f3ea64e..81a12e7 100644
--- a/src/Vegasco.Server.AppHost/Program.cs
+++ b/src/Vegasco.Server.AppHost/Program.cs
@@ -14,13 +14,21 @@ if (builder.Environment.IsDevelopment())
.WithPgAdmin();
}
+IResourceBuilder seq = builder.AddSeq("seq")
+ .WithLifetime(ContainerLifetime.Persistent)
+ .WithDataVolume()
+ .WithExternalHttpEndpoints()
+ .WithImageTag("latest");
+
IResourceBuilder postgres = postgresBuilder
.AddDatabase(Constants.Database.Name);
IResourceBuilder api = builder
.AddProject(Constants.Projects.Api)
.WithReference(postgres)
- .WaitFor(postgres);
+ .WaitFor(postgres)
+ .WithReference(seq)
+ .WaitFor(seq);
builder
.AddNpmApp("Vegasco-Web", "../Vegasco-Web")
diff --git a/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj b/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj
index 783a0d3..6f4dfb9 100644
--- a/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj
+++ b/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj
@@ -18,6 +18,7 @@
3.7.115
+