/// <summary> /// Starts various parts of the server than loop to keep everything alive. /// </summary> private void Setup() { Console.WriteLine("Creating settings"); var settings = Config.Load(); Console.WriteLine("Configuring up server"); Tools.ConfigureServer(); Console.WriteLine(Assembly.GetExecutingAssembly().GetName().Version); var useTerminal = settings.Terminal.AllowTerminal; var useWebServer = settings.WebServer.ToggleWebServer; var useWebCams = settings.Webcams.UseWebcams; if (useWebCams) { Console.WriteLine("Loading Webcams"); WebCamManager.LoadCameras(); } if (useWebServer) { Console.WriteLine("Setting up HTTP Server"); HttpServer.Setup(); } systemService = new SystemService(); Console.WriteLine("Creating system service"); systemService.Start(); UlteriusApiServer.RunningAsService = Tools.RunningAsService(); Console.Write($"Service: {UlteriusApiServer.RunningAsService}"); UlteriusApiServer.Start(); if (useTerminal) { Console.WriteLine("Starting Terminal API"); TerminalManagerServer.Start(); } try { var useUpnp = settings.Network.UpnpEnabled; if (useUpnp) { Console.WriteLine("Trying to forward ports"); Tools.ForwardPorts(); } } catch (Exception) { Console.WriteLine("Failed to forward ports"); } }