PluralKit/PluralKit.API/Program.cs
2022-03-23 14:24:09 -04:00

35 lines
1.1 KiB
C#

using App.Metrics.AspNetCore;
using Autofac.Extensions.DependencyInjection;
using PluralKit.Core;
using Serilog;
namespace PluralKit.API;
public class Program
{
public static async Task Main(string[] args)
{
InitUtils.InitStatic();
await BuildInfoService.LoadVersion();
var host = CreateHostBuilder(args).Build();
var config = host.Services.GetRequiredService<CoreConfig>();
await host.Services.GetRequiredService<RedisService>().InitAsync(config);
await host.RunAsync();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseMetrics()
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.UseSerilog()
.ConfigureWebHostDefaults(whb => whb
.UseConfiguration(InitUtils.BuildConfiguration(args).Build())
.ConfigureKestrel(opts =>
{
opts.ListenAnyIP(opts.ApplicationServices.GetRequiredService<ApiConfig>().Port);
})
.UseStartup<Startup>());
}