30 lines
1.4 KiB
C#
30 lines
1.4 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using StellaOps.TimelineIndexer.Core.Abstractions;
|
|
using StellaOps.TimelineIndexer.Infrastructure.DependencyInjection;
|
|
using StellaOps.TimelineIndexer.Infrastructure.Options;
|
|
using StellaOps.TimelineIndexer.Infrastructure.Subscriptions;
|
|
using StellaOps.TimelineIndexer.Worker;
|
|
using StellaOps.Worker.Health;
|
|
|
|
var builder = WebApplication.CreateSlimBuilder(args);
|
|
|
|
builder.Configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
|
|
builder.Configuration.AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true);
|
|
builder.Configuration.AddEnvironmentVariables();
|
|
builder.Configuration.AddEnvironmentVariables(prefix: "TIMELINE_");
|
|
|
|
builder.Services.AddTimelineIndexerPostgres(builder.Configuration);
|
|
builder.Services.AddOptions<TimelineIngestionOptions>()
|
|
.Bind(builder.Configuration.GetSection("Ingestion"));
|
|
|
|
builder.Services.AddSingleton<TimelineEnvelopeParser>();
|
|
builder.Services.AddSingleton<ITimelineEventSubscriber, NatsTimelineEventSubscriber>();
|
|
builder.Services.AddSingleton<ITimelineEventSubscriber, RedisTimelineEventSubscriber>();
|
|
builder.Services.AddSingleton<ITimelineEventSubscriber, NullTimelineEventSubscriber>();
|
|
builder.Services.AddHostedService<TimelineIngestionWorker>();
|
|
builder.Services.AddWorkerHealthChecks();
|
|
|
|
var app = builder.Build();
|
|
app.MapWorkerHealthEndpoints();
|
|
app.Run();
|