Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 0 additions & 71 deletions docker-compose.yml

This file was deleted.

21 changes: 21 additions & 0 deletions docker/Dockerfile.Collector
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

COPY NuGet.config /NuGet.config
COPY lib /lib

COPY src/DataAggregator.Collector/*.csproj ./DataAggregator.Collector/
COPY src/DataAggregator.Shared/*.csproj ./DataAggregator.Shared/
COPY src/DataAggregator.Collector.OpenCNCapnProtoConnector/*.csproj ./DataAggregator.Collector.OpenCNCapnProtoConnector/

RUN dotnet restore ./DataAggregator.Collector/DataAggregator.Collector.App.csproj --configfile /NuGet.config

COPY src/ ./
WORKDIR /src/DataAggregator.Collector
RUN dotnet publish -c Release -o /app/publish --configfile /NuGet.config

FROM mcr.microsoft.com/dotnet/aspnet:9.0
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "DataAggregator.Collector.App.dll"]
17 changes: 17 additions & 0 deletions docker/Dockerfile.Processor
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

COPY src/DataAggregator.Processor/*.csproj ./DataAggregator.Processor/
COPY src/DataAggregator.Shared/*.csproj ./DataAggregator.Shared/

RUN dotnet restore ./DataAggregator.Processor/DataAggregator.Processor.csproj

COPY src/ ./
WORKDIR /src/DataAggregator.Processor
RUN dotnet publish -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:9.0
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "DataAggregator.Processor.dll"]
17 changes: 17 additions & 0 deletions docker/Dockerfile.Registration
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src

COPY src/DataAggregator.Registration/*.csproj ./DataAggregator.Registration/
COPY src/DataAggregator.Shared/*.csproj ./DataAggregator.Shared/

RUN dotnet restore ./DataAggregator.Registration/DataAggregator.Registration.csproj

COPY src/ ./
WORKDIR /src/DataAggregator.Registration
RUN dotnet publish -c Release -o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:9.0
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "DataAggregator.Registration.dll"]
54 changes: 54 additions & 0 deletions env/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
services:
postgres:
image: postgres:15
environment:
POSTGRES_DB: dataaggregator
POSTGRES_USER: admin
POSTGRES_PASSWORD: password123
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data

influxdb:
image: influxdb:3-core
ports:
- "8181:8181"
environment:
INFLUXDB3_AUTH_TOKEN: YOUR-TOKEN
command:
- influxdb3
- serve
- --node-id=node0
- --object-store=file
- --data-dir=/var/lib/influxdb3
volumes:
- influx_data:/var/lib/influxdb3

influxdb-ui:
image: influxdata/influxdb3-ui:1.0.0
container_name: influxdb3-explorer
ports:
- "8888:80"
environment:
INFLUXDB_URL: http://influxdb:8181
command: [ "--mode=admin" ]
depends_on:
- influxdb

grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3001:3000"
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana_data:/var/lib/grafana
- ./volumes/grafana/data:/data/

volumes:
postgres_data:
influx_data:
grafana_data:
16 changes: 0 additions & 16 deletions src/DataAggregator.Collector/DataAggregator.Collector.http

This file was deleted.

20 changes: 0 additions & 20 deletions src/DataAggregator.Collector/Dockerfile

This file was deleted.

35 changes: 20 additions & 15 deletions src/DataAggregator.Collector/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using DataAggregator.Collector.Shared.DataStorage.Influx;
using DataAggregator.Collector.Shared.LocalStorage;
using DataAggregator.Collector.Shared.Registration;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Options;
using Serilog;

Expand All @@ -13,8 +14,6 @@
// Configure Serilog from appsettings.json
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.WriteTo.Console()
.Enrich.FromLogContext()
.CreateLogger();

builder.Host.UseSerilog();
Expand All @@ -24,6 +23,16 @@
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c => c.SwaggerDoc("v1", new() { Title = "DataAggregator Collector API", Version = "v1" }));

if (!builder.Environment.IsDevelopment())
{
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
}

// Get collector type from configuration
string? collectorType = builder.Configuration["CollectorType"];

Expand All @@ -37,11 +46,12 @@
SetupConfiguration(builder);

// Configure HTTP clients
builder.Services.AddHttpClient();
string registrationBaseUrl = builder.Configuration["Collector:RegistrationService:BaseUrl"] ?? "http://localhost:5000";
string registrationEndpoint = builder.Configuration["Collector:RegistrationService:Endpoint"] ?? "api/DeviceRegistration/register";

builder.Services.AddHttpClient("RegistrationClient", client =>
{
string registrationEndpoint = builder.Configuration["RegistrationService:Endpoint"] ?? "http://localhost:5001";
client.BaseAddress = new Uri(registrationEndpoint);
client.BaseAddress = new Uri(registrationBaseUrl);
client.DefaultRequestHeaders.Add("Accept", "application/json");
});

Expand All @@ -60,14 +70,6 @@
IHttpClientFactory httpClientFactory = sp.GetRequiredService<IHttpClientFactory>();
HttpClient httpClient = httpClientFactory.CreateClient("RegistrationClient");

string? registrationEndpoint = builder.Configuration["Collector:RegistrationService:Endpoint"];

if (string.IsNullOrEmpty(registrationEndpoint))
{
Log.Warning("Registration service endpoint not configured, using default: http://localhost:5001/api/DeviceRegistration/register");
registrationEndpoint = "http://localhost:5001/api/DeviceRegistration/register";
}

return new RegistrationService(httpClient, registrationEndpoint);
});

Expand Down Expand Up @@ -117,8 +119,11 @@
});
}

app.UseHttpsRedirection();
app.UseAuthorization();
if (!app.Environment.IsDevelopment())
{
app.UseForwardedHeaders();
}

app.MapControllers();
app.MapHealthChecks("/health");

Expand Down
27 changes: 18 additions & 9 deletions src/DataAggregator.Collector/appsettings.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",

"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.AspNetCore": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "Console",
"Args": {
"outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {ServiceName}: {Message:lj}{NewLine}{Exception}"
}
}
],
"Enrich": [ "FromLogContext" ],
"Properties": {
"ServiceName": "Collector"
}
},
"AllowedHosts": "*",

"CollectorType": "OpenCN",
"Collector": {
"DeviceName": "Micro5",
Expand All @@ -27,7 +35,8 @@
"Port": 7002
},
"RegistrationService": {
"Endpoint": "http://localhost:5137/api/DeviceRegistration/register"
"BaseUrl": "http://localhost:5137",
"Endpoint": "api/DeviceRegistration/register"
},
"BufferSettings": {
"MaxBufferSize": 10000
Expand Down
30 changes: 0 additions & 30 deletions src/DataAggregator.Processor/Dockerfile

This file was deleted.

Loading
Loading