Merge pull request #111 from Moonlight-Panel/CodeCleanup

Code cleanup
This commit is contained in:
Marcel Baumgartner
2023-05-05 04:55:26 +02:00
committed by GitHub
93 changed files with 90 additions and 1594 deletions

View File

@@ -1,6 +1,4 @@
using Moonlight.App.Database.Entities;
using Moonlight.App.Models.Plesk.Resources;
using Newtonsoft.Json;
using Newtonsoft.Json;
using RestSharp;
namespace Moonlight.App.ApiClients.CloudPanel;

View File

@@ -3,7 +3,7 @@ using Moonlight.App.Exceptions;
using Newtonsoft.Json;
using RestSharp;
namespace Moonlight.App.Helpers;
namespace Moonlight.App.ApiClients.Daemon;
public class DaemonApiHelper
{

View File

@@ -1,6 +1,6 @@
using System.Runtime.Serialization;
namespace Moonlight.App.Exceptions;
namespace Moonlight.App.ApiClients.Daemon;
[Serializable]
public class DaemonException : Exception

View File

@@ -1,4 +1,4 @@
namespace Moonlight.App.Models.Daemon.Resources;
namespace Moonlight.App.ApiClients.Daemon.Resources;
public class ContainerStats
{

View File

@@ -1,4 +1,4 @@
namespace Moonlight.App.Models.Daemon.Resources;
namespace Moonlight.App.ApiClients.Daemon.Resources;
public class CpuStats
{

View File

@@ -1,4 +1,4 @@
namespace Moonlight.App.Models.Daemon.Resources;
namespace Moonlight.App.ApiClients.Daemon.Resources;
public class DiskStats
{

View File

@@ -1,4 +1,4 @@
namespace Moonlight.App.Models.Daemon.Resources;
namespace Moonlight.App.ApiClients.Daemon.Resources;
public class MemoryStats
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Google.Requests;
namespace Moonlight.App.ApiClients.Google.Requests;
public class GoogleOAuth2CodePayload
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.IpLocate.Resources;
namespace Moonlight.App.ApiClients.IpLocate.Resources;
public class IpLocate
{

View File

@@ -2,7 +2,7 @@
using Newtonsoft.Json;
using RestSharp;
namespace Moonlight.App.Helpers;
namespace Moonlight.App.ApiClients.Paper;
public class PaperApiHelper
{

View File

@@ -1,4 +1,4 @@
namespace Moonlight.App.Exceptions;
namespace Moonlight.App.ApiClients.Paper;
public class PaperException : Exception
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Paper.Resources;
namespace Moonlight.App.ApiClients.Paper.Resources;
public class PaperBuilds
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Paper.Resources;
namespace Moonlight.App.ApiClients.Paper.Resources;
public class PaperVersions
{

View File

@@ -1,4 +1,4 @@
namespace Moonlight.App.Models.Wings;
namespace Moonlight.App.ApiClients.Wings;
public enum PowerSignal
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class CompressFiles
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class CreateBackup
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class CreateDirectory
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class CreateServer
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class DecompressFile
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class DeleteFiles
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class RenameFiles
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class RestoreBackup
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Requests;
namespace Moonlight.App.ApiClients.Wings.Requests;
public class ServerPower
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Resources;
namespace Moonlight.App.ApiClients.Wings.Resources;
public class ListDirectory
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Resources;
namespace Moonlight.App.ApiClients.Wings.Resources;
public class ServerDetails
{

View File

@@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Wings.Resources;
namespace Moonlight.App.ApiClients.Wings.Resources;
public class SystemStatus
{

View File

@@ -3,7 +3,7 @@ using Moonlight.App.Exceptions;
using Newtonsoft.Json;
using RestSharp;
namespace Moonlight.App.Helpers;
namespace Moonlight.App.ApiClients.Wings;
public class WingsApiHelper
{

View File

@@ -1,6 +1,6 @@
using System.Runtime.Serialization;
namespace Moonlight.App.Exceptions;
namespace Moonlight.App.ApiClients.Wings;
[Serializable]
public class WingsException : Exception

View File

@@ -1,32 +0,0 @@
using System.Runtime.Serialization;
namespace Moonlight.App.Exceptions;
[Serializable]
public class PleskException : Exception
{
public int StatusCode { get; set; }
public PleskException()
{
}
public PleskException(string message, int statusCode) : base(message)
{
StatusCode = statusCode;
}
public PleskException(string message) : base(message)
{
}
public PleskException(string message, Exception inner) : base(message, inner)
{
}
protected PleskException(
SerializationInfo info,
StreamingContext context) : base(info, context)
{
}
}

View File

@@ -1,43 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Helpers;
public class ConfigUtils
{
public static void SaveConfigurationAsJson(IConfiguration configuration, string filePath)
{
// Serialize the configuration to a JSON object
var jsonObject = new Dictionary<string, object>();
foreach (var section in configuration.GetChildren())
{
SerializeSection(section, jsonObject);
}
// Convert the JSON object to a JSON string
var jsonString = JsonConvert.SerializeObject(jsonObject);
// Write the JSON string to a file
File.WriteAllText(filePath, jsonString);
}
private static void SerializeSection(IConfigurationSection section, IDictionary<string, object> jsonObject)
{
var children = section.GetChildren();
if (!children.Any())
{
// Leaf node
jsonObject[section.Key] = section.Value;
}
else
{
// Non-leaf node
var childObject = new Dictionary<string, object>();
foreach (var childSection in children)
{
SerializeSection(childSection, childObject);
}
jsonObject[section.Key] = childObject;
}
}
}

View File

@@ -1,7 +1,8 @@
using System.Web;
using Moonlight.App.ApiClients.Wings;
using Moonlight.App.ApiClients.Wings.Requests;
using Moonlight.App.ApiClients.Wings.Resources;
using Moonlight.App.Database.Entities;
using Moonlight.App.Models.Wings.Requests;
using Moonlight.App.Models.Wings.Resources;
using Moonlight.App.Services;
using RestSharp;

View File

@@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Mvc;
using Moonlight.App.Helpers;
using Moonlight.App.Models.Misc;
using Moonlight.App.Services;
using Moonlight.App.Services.Files;
using Moonlight.App.Services.LogServices;
namespace Moonlight.App.Http.Controllers.Api.Moonlight;

View File

@@ -1,10 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Requests;
public class CliCall
{
[JsonProperty("params")] public List<string> Params { get; set; } = new();
[JsonProperty("env")] public Dictionary<string, string> Env { get; set; } = new();
}

View File

@@ -1,23 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Requests;
public class CreateDatabase
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("type")]
public string Type { get; set; }
[JsonProperty("parent_domain")] public ParentDomainModel ParentDomain { get; set; } = new();
[JsonProperty("server_id")]
public int ServerId { get; set; }
public class ParentDomainModel
{
[JsonProperty("name")]
public string Name { get; set; }
}
}

View File

@@ -1,15 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Requests;
public class CreateDatabaseUser
{
[JsonProperty("login")]
public string Login { get; set; }
[JsonProperty("password")]
public string Password { get; set; }
[JsonProperty("database_id")]
public int DatabaseId { get; set; }
}

View File

@@ -1,45 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Requests;
public class CreateDomain
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
[JsonProperty("hosting_type")]
public string HostingType { get; set; }
[JsonProperty("hosting_settings")]
public HostingSettingsModel HostingSettings { get; set; }
[JsonProperty("owner_client")]
public OwnerClientModel OwnerClient { get; set; }
[JsonProperty("plan")]
public PlanModel Plan { get; set; }
public partial class HostingSettingsModel
{
[JsonProperty("ftp_login")]
public string FtpLogin { get; set; }
[JsonProperty("ftp_password")]
public string FtpPassword { get; set; }
}
public partial class OwnerClientModel
{
[JsonProperty("id")]
public long Id { get; set; }
}
public partial class PlanModel
{
[JsonProperty("name")]
public string Name { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Resources;
public class CliResult
{
[JsonProperty("code")]
public int Code { get; set; }
[JsonProperty("stdout")] public string Stdout { get; set; } = "";
[JsonProperty("stderr")] public string Stderr { get; set; } = "";
}

View File

@@ -1,45 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Resources;
public class Client
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("created")]
public DateTimeOffset Created { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("company")]
public string Company { get; set; }
[JsonProperty("login")]
public string Login { get; set; }
[JsonProperty("status")]
public long Status { get; set; }
[JsonProperty("email")]
public string Email { get; set; }
[JsonProperty("locale")]
public string Locale { get; set; }
[JsonProperty("guid")]
public Guid Guid { get; set; }
[JsonProperty("owner_login")]
public string OwnerLogin { get; set; }
[JsonProperty("external_id")]
public string ExternalId { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
[JsonProperty("type")]
public string Type { get; set; }
}

View File

@@ -1,12 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Resources;
public class CreateResult
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("guid")]
public Guid Guid { get; set; }
}

View File

@@ -1,15 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Resources;
public class Database
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("type")]
public string Type { get; set; }
}

View File

@@ -1,30 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Resources;
public class DatabaseServer
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("host")]
public string Host { get; set; }
[JsonProperty("port")]
public int Port { get; set; }
[JsonProperty("type")]
public string Type { get; set; }
[JsonProperty("status")]
public string Status { get; set; }
[JsonProperty("db_count")]
public int DbCount { get; set; }
[JsonProperty("is_default")]
public bool IsDefault { get; set; }
[JsonProperty("is_local")]
public bool IsLocal { get; set; }
}

View File

@@ -1,15 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Resources;
public class DatabaseUser
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("login")]
public string Login { get; set; }
[JsonProperty("database_id")]
public int DatabaseId { get; set; }
}

View File

@@ -1,18 +0,0 @@
using Newtonsoft.Json;
namespace Moonlight.App.Models.Plesk.Resources;
public class ServerStatus
{
[JsonProperty("platform")]
public string Platform { get; set; }
[JsonProperty("hostname")]
public string Hostname { get; set; }
[JsonProperty("guid")]
public Guid Guid { get; set; }
[JsonProperty("panel_version")]
public string PanelVersion { get; set; }
}

View File

@@ -1,16 +1,15 @@
using System.Diagnostics;
using Logging.Net;
using Microsoft.EntityFrameworkCore;
using MineStatLib;
using Moonlight.App.ApiClients.Daemon.Resources;
using Moonlight.App.ApiClients.Wings;
using Moonlight.App.Database.Entities;
using Moonlight.App.Models.Daemon.Resources;
using Moonlight.App.Models.Wings;
using Moonlight.App.Events;
using Moonlight.App.Repositories;
using Moonlight.App.Repositories.Servers;
using Logging.Net;
using Moonlight.App.Events;
using Newtonsoft.Json;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Background;
public class CleanupService
{

View File

@@ -3,8 +3,9 @@ using Discord.Webhook;
using Logging.Net;
using Moonlight.App.Database.Entities;
using Moonlight.App.Events;
using Moonlight.App.Services.Files;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Background;
public class DiscordNotificationService
{

View File

@@ -2,6 +2,7 @@
using Logging.Net;
using Microsoft.Extensions.Primitives;
using Moonlight.App.Helpers;
using Moonlight.App.Services.Files;
namespace Moonlight.App.Services;
@@ -74,9 +75,4 @@ public class ConfigService : IConfiguration
get => Configuration[key];
set => Configuration[key] = value;
}
public void Save()
{
ConfigUtils.SaveConfigurationAsJson(Configuration, "..\\..\\appsettings.json");
}
}

View File

@@ -2,7 +2,7 @@
using Discord.WebSocket;
using Logging.Net;
using Microsoft.EntityFrameworkCore;
using Moonlight.App.Models.Wings;
using Moonlight.App.ApiClients.Wings;
using Moonlight.App.Repositories;
using Moonlight.App.Repositories.Servers;

View File

@@ -1,7 +1,6 @@
using Logging.Net;
using Moonlight.App.Helpers;
using Moonlight.App.Helpers;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Files;
public class BucketService
{

View File

@@ -1,6 +1,6 @@
using Moonlight.App.Database.Entities;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Files;
public class ResourceService
{

View File

@@ -1,7 +1,7 @@
using Logging.Net;
using Moonlight.App.Helpers;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Files;
public class StorageService
{

View File

@@ -2,7 +2,7 @@
using Moonlight.App.Helpers;
using Moonlight.App.Models.Misc;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.LogServices;
public class LogService
{

View File

@@ -1,13 +1,11 @@
using System.Net;
using System.Net.Mail;
using Logging.Net;
using Logging.Net;
using MimeKit;
using Moonlight.App.Database.Entities;
using Moonlight.App.Exceptions;
using Moonlight.App.Helpers;
using SmtpClient = MailKit.Net.Smtp.SmtpClient;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Mail;
public class MailService
{

View File

@@ -1,7 +1,7 @@
using System.Net;
using Logging.Net;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Mail;
public class TrashMailDetectorService
{

View File

@@ -3,7 +3,7 @@ using Moonlight.App.Helpers;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Minecraft;
public class FabricService
{

View File

@@ -1,7 +1,6 @@
using System.Text;
using Moonlight.App.Helpers;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Minecraft;
public class ForgeService
{

View File

@@ -1,7 +1,7 @@
using Moonlight.App.Helpers;
using Moonlight.App.Models.Paper.Resources;
using Moonlight.App.ApiClients.Paper;
using Moonlight.App.ApiClients.Paper.Resources;
namespace Moonlight.App.Services;
namespace Moonlight.App.Services.Minecraft;
public class PaperService
{

View File

@@ -1,7 +1,9 @@
using Moonlight.App.Database.Entities;
using Moonlight.App.ApiClients.Daemon;
using Moonlight.App.ApiClients.Daemon.Resources;
using Moonlight.App.ApiClients.Wings;
using Moonlight.App.ApiClients.Wings.Resources;
using Moonlight.App.Database.Entities;
using Moonlight.App.Helpers;
using Moonlight.App.Models.Daemon.Resources;
using Moonlight.App.Models.Wings.Resources;
using Moonlight.App.Repositories;
namespace Moonlight.App.Services;

View File

@@ -2,7 +2,6 @@
using Logging.Net;
using Moonlight.App.Database.Entities;
using Moonlight.App.Exceptions;
using Moonlight.App.Models.Google.Requests;
using Moonlight.App.Models.Misc;
using RestSharp;

View File

@@ -1,8 +1,8 @@
using System.Text;
using Logging.Net;
using Moonlight.App.ApiClients.Google.Requests;
using Moonlight.App.Database.Entities;
using Moonlight.App.Exceptions;
using Moonlight.App.Models.Google.Requests;
using RestSharp;
namespace Moonlight.App.Services.OAuth2;

View File

@@ -1,4 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Moonlight.App.ApiClients.Wings;
using Moonlight.App.ApiClients.Wings.Requests;
using Moonlight.App.ApiClients.Wings.Resources;
using Moonlight.App.Database;
using Moonlight.App.Database.Entities;
using Moonlight.App.Events;
@@ -6,9 +9,6 @@ using Moonlight.App.Exceptions;
using Moonlight.App.Helpers;
using Moonlight.App.Helpers.Files;
using Moonlight.App.Models.Misc;
using Moonlight.App.Models.Wings;
using Moonlight.App.Models.Wings.Requests;
using Moonlight.App.Models.Wings.Resources;
using Moonlight.App.Repositories;
using Moonlight.App.Repositories.Servers;
using Moonlight.App.Services.LogServices;

View File

@@ -1,5 +1,5 @@
using System.Net;
using Moonlight.App.Models.IpLocate.Resources;
using Moonlight.App.ApiClients.IpLocate.Resources;
using Newtonsoft.Json;
namespace Moonlight.App.Services.Sessions;

View File

@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Components.Forms;
using Moonlight.App.Database.Entities;
using Moonlight.App.Events;
using Moonlight.App.Services.Files;
using Moonlight.App.Services.Sessions;
namespace Moonlight.App.Services.SupportChat;

View File

@@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Components.Forms;
using Moonlight.App.Database.Entities;
using Moonlight.App.Events;
using Moonlight.App.Services.Files;
using Moonlight.App.Services.Sessions;
namespace Moonlight.App.Services.SupportChat;

View File

@@ -6,6 +6,7 @@ using Moonlight.App.Helpers;
using Moonlight.App.Models.Misc;
using Moonlight.App.Repositories;
using Moonlight.App.Services.LogServices;
using Moonlight.App.Services.Mail;
using Moonlight.App.Services.Sessions;
namespace Moonlight.App.Services;

View File

@@ -1,13 +1,10 @@
using Logging.Net;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Moonlight.App.ApiClients.CloudPanel;
using Moonlight.App.ApiClients.CloudPanel.Requests;
using Moonlight.App.Database.Entities;
using Moonlight.App.Exceptions;
using Moonlight.App.Helpers;
using Moonlight.App.Helpers.Files;
using Moonlight.App.Models.Plesk.Requests;
using Moonlight.App.Models.Plesk.Resources;
using Moonlight.App.Repositories;
using FileAccess = Moonlight.App.Helpers.Files.FileAccess;

View File

@@ -71,10 +71,8 @@
<ItemGroup>
<Folder Include="App\ApiClients\CloudPanel\Resources\" />
<Folder Include="App\ApiClients\Daemon\Requests\" />
<Folder Include="App\Http\Middleware" />
<Folder Include="App\Models\Daemon\Requests" />
<Folder Include="App\Models\Google\Resources" />
<Folder Include="resources\lang" />
</ItemGroup>
</Project>

View File

@@ -3,6 +3,9 @@ using BlazorTable;
using CurrieTechnologies.Razor.SweetAlert2;
using Logging.Net;
using Moonlight.App.ApiClients.CloudPanel;
using Moonlight.App.ApiClients.Daemon;
using Moonlight.App.ApiClients.Paper;
using Moonlight.App.ApiClients.Wings;
using Moonlight.App.Database;
using Moonlight.App.Events;
using Moonlight.App.Helpers;
@@ -12,9 +15,13 @@ using Moonlight.App.Repositories.Domains;
using Moonlight.App.Repositories.LogEntries;
using Moonlight.App.Repositories.Servers;
using Moonlight.App.Services;
using Moonlight.App.Services.Background;
using Moonlight.App.Services.DiscordBot;
using Moonlight.App.Services.Files;
using Moonlight.App.Services.Interop;
using Moonlight.App.Services.LogServices;
using Moonlight.App.Services.Mail;
using Moonlight.App.Services.Minecraft;
using Moonlight.App.Services.Notifications;
using Moonlight.App.Services.OAuth2;
using Moonlight.App.Services.Sessions;

View File

@@ -3,6 +3,7 @@
@using Moonlight.App.Services
@using Logging.Net
@using Moonlight.App.ApiClients.CloudPanel
@using Moonlight.App.ApiClients.Wings
@inherits ErrorBoundaryBase
@inject AlertService AlertService

View File

@@ -3,6 +3,7 @@
@using Moonlight.App.Helpers
@using Moonlight.App.Helpers.Files
@using Moonlight.App.Services
@using Moonlight.App.ApiClients.Wings
@inject WingsApiHelper WingsApiHelper
@inject WingsJwtHelper WingsJwtHelper

View File

@@ -4,6 +4,7 @@
@using Moonlight.App.Repositories
@using Moonlight.App.Repositories.Servers
@using Moonlight.App.Helpers
@using Moonlight.App.Services.Minecraft
@inject ServerService ServerService
@inject ServerRepository ServerRepository

View File

@@ -5,6 +5,7 @@
@using Moonlight.App.Repositories.Servers
@using Logging.Net
@using Moonlight.App.Helpers
@using Moonlight.App.Services.Minecraft
@inject ServerService ServerService
@inject ServerRepository ServerRepository

View File

@@ -4,6 +4,7 @@
@using Moonlight.App.Database.Entities
@using Moonlight.App.Repositories
@using Moonlight.App.Repositories.Servers
@using Moonlight.App.Services.Minecraft
@inject ServerService ServerService
@inject ServerRepository ServerRepository

View File

@@ -1,6 +1,5 @@
@using Moonlight.App.Database.Entities
@using Moonlight.App.Models.Forms
@using Moonlight.App.Models.Plesk.Resources
@using Moonlight.App.Services
@inject SmartTranslateService SmartTranslateService

View File

@@ -1,12 +1,12 @@
@page "/admin/nodes"
@using Moonlight.App.Repositories
@using Moonlight.App.Database.Entities
@using Moonlight.App.Models.Wings.Resources
@using Moonlight.Shared.Components.Navigations
@using Moonlight.App.Services
@using Moonlight.App.Services.Interop
@using Logging.Net
@using BlazorTable
@using Moonlight.App.ApiClients.Wings.Resources
@inject NodeRepository NodeRepository
@inject AlertService AlertService

View File

@@ -3,9 +3,9 @@
@using Moonlight.App.Repositories
@using Moonlight.App.Database.Entities
@using Moonlight.App.Helpers
@using Moonlight.App.Models.Daemon.Resources
@using Moonlight.App.Models.Wings.Resources
@using Moonlight.App.Services
@using Moonlight.App.ApiClients.Wings.Resources
@using Moonlight.App.ApiClients.Daemon.Resources
@inject NodeRepository NodeRepository
@inject NodeService NodeService

View File

@@ -4,6 +4,7 @@
@using Moonlight.App.Models.Misc
@using Moonlight.App.Services.LogServices
@using Moonlight.App.Events
@using Moonlight.App.Services.Background
@inject CleanupService CleanupService
@inject AuditLogService AuditLogService

View File

@@ -4,10 +4,10 @@
@using Moonlight.App.Services
@using Moonlight.App.Services.Interop
@using Moonlight.App.Database.Entities
@using Moonlight.App.Models.Daemon.Resources
@using Moonlight.App.Models.Wings
@using BlazorTable
@using Microsoft.EntityFrameworkCore
@using Moonlight.App.ApiClients.Daemon.Resources
@using Moonlight.App.ApiClients.Wings
@using Moonlight.App.Helpers
@inject NodeRepository NodeRepository

View File

@@ -5,6 +5,7 @@
@using Moonlight.App.Services
@using Moonlight.App.Services.SupportChat
@using System.Text.RegularExpressions
@using Moonlight.App.Services.Files
@inject SupportChatAdminService AdminService
@inject UserRepository UserRepository

View File

@@ -3,6 +3,7 @@
@using BlazorTable
@using Moonlight.App.Models.Misc
@using Moonlight.App.Services
@using Moonlight.App.Services.LogServices
@using Moonlight.Shared.Components.Navigations
@inject LogService LogService

View File

@@ -1,69 +0,0 @@
@page "/setup/features"
@using Moonlight.App.Services
@inject ConfigService ConfigService
@inject NavigationManager NavigationManager
@inject SmartTranslateService SmartTranslateService
<IsSetup>
<div class="card col d-flex justify-content-center">
<div class="card-header">
<span class="card-title"><TL>Configure features</TL> (3/4)</span>
</div>
<div class="card-body p-10">
<div class="input-group">
<label class="col-lg-4 col-form-label fw-semibold fs-6">
<TL>Support chat</TL>
</label>
<div class="col-lg-8 d-flex align-items-center">
<div class="form-check form-check-solid form-switch form-check-custom fv-row">
<input @bind="EnableSupportChat" class="form-check-input w-45px h-30px" type="checkbox" id="supportChat">
<label class="form-check-label" for="supportChat"></label>
</div>
</div>
</div>
<div class="input-group mt-5">
<WButton Text="@(SmartTranslateService.Translate("Save and continue"))"
WorkingText="@(SmartTranslateService.Translate("Saving"))"
CssClasses="btn-success"
OnClick="Save">
</WButton>
<a href="/setup/final" class="btn btn-primary">
<TL>Next</TL>
</a>
<a href="/setup/users" class="btn btn-danger">
<TL>Back</TL>
</a>
</div>
</div>
</div>
</IsSetup>
<NonSetup>
<SetupCompletedAlert></SetupCompletedAlert>
</NonSetup>
@code
{
private bool EnableSupportChat
{
get => bool.Parse(
ConfigService
.GetSection("Moonlight")
.GetSection("SupportChat")
["Enabled"]!
);
set => ConfigService
.GetSection("Moonlight")
.GetSection("SupportChat")
["Enabled"] = value.ToString();
}
private Task Save()
{
ConfigService.Save();
NavigationManager.NavigateTo("/setup/final");
return Task.CompletedTask;
}
}

View File

@@ -1,40 +0,0 @@
@page "/setup/final"
@using Moonlight.App.Services
@using Moonlight.App.Services.Interop
@inject ConfigService ConfigService
@inject NavigationManager NavigationManager
@inject SmartTranslateService SmartTranslateService
@inject ToastService ToastService
<IsSetup>
<div class="card col d-flex justify-content-center">
<div class="card-header">
<span class="card-title"><TL>Finalize installation</TL> (4/4)</span>
</div>
<div class="card-body p-10">
<div class="input-group mt-5">
<WButton Text="@(SmartTranslateService.Translate("Finish"))"
WorkingText="@(SmartTranslateService.Translate("Saving"))"
CssClasses="btn-success"
OnClick="Save">
</WButton>
</div>
</div>
</div>
</IsSetup>
<NonSetup>
<SetupCompletedAlert></SetupCompletedAlert>
</NonSetup>
@code
{
private async Task Save()
{
ConfigService.GetSection("Moonlight")["SetupComplete"] = true.ToString();
ConfigService.Save();
await ToastService.Success(SmartTranslateService.Translate("Moonlight basic settings successfully configured"));
NavigationManager.NavigateTo("/");
}
}

View File

@@ -1,53 +0,0 @@
@page "/setup"
@using Moonlight.App.Services
@inject ConfigService ConfigService
@inject NavigationManager NavigationManager
@inject SmartTranslateService SmartTranslateService
<IsSetup>
<div class="card col d-flex justify-content-center">
<div class="card-header">
<span class="card-title"><TL>Configure basics</TL> (1/4)</span>
</div>
<div class="card-body p-10">
<label class="form-label">
<TL>Brand name</TL>
</label>
<div class="input-group mb-5">
<span class="input-group-text">
<i class="bx bx-purchase-tag-alt"></i>
</span>
<input
@bind="@(ConfigService.GetSection("Moonlight").GetSection("Marketing")["BrandName"])"
type="text"
class="form-control"
placeholder="@(SmartTranslateService.Translate("Insert brand name..."))">
</div>
<div class="input-group mt-5">
<WButton Text="@(SmartTranslateService.Translate("Save and continue"))"
WorkingText="@(SmartTranslateService.Translate("Saving"))"
CssClasses="btn-success"
OnClick="Save">
</WButton>
<a href="/setup/users" class="btn btn-primary">
<TL>Next</TL>
</a>
</div>
</div>
</div>
</IsSetup>
<NonSetup>
<SetupCompletedAlert></SetupCompletedAlert>
</NonSetup>
@code
{
private Task Save()
{
ConfigService.Save();
NavigationManager.NavigateTo("/setup/users");
return Task.CompletedTask;
}
}

View File

@@ -1,142 +0,0 @@
@page "/setup/users"
@using Moonlight.App.Services
@using Microsoft.AspNetCore.Components
@using Moonlight.App.Database.Entities
@using Moonlight.App.Exceptions
@using Moonlight.App.Services.Interop
@using Logging.Net
@using Moonlight.App.Repositories
@inject UserService UserService
@inject UserRepository UserRepository
@inject SmartTranslateService SmartTranslateService
@inject AlertService AlertService
@inject ToastService ToastService
<IsSetup>
<div class="card col d-flex justify-content-center">
<div class="card-header">
<span class="card-title"><TL>Add admin accounts</TL> (2/4)</span>
</div>
<div class="card-body p-10">
<label class="form-label">
<TL>First name</TL>
</label>
<div class="input-group mb-5">
<span class="input-group-text">
<i class="bx bx-envelope"></i>
</span>
<input
@bind="@(NewUser.FirstName)"
type="text"
class="form-control"
required=""
placeholder="@(SmartTranslateService.Translate("Insert first name..."))">
</div>
<label class="form-label">
<TL>Last name</TL>
</label>
<div class="input-group mb-5">
<span class="input-group-text">
<i class="bx bx-envelope"></i>
</span>
<input
@bind="@(NewUser.LastName)"
type="text"
class="form-control"
required=""
placeholder="@(SmartTranslateService.Translate("Insert last name..."))">
</div>
<label class="form-label">
<TL>Email address</TL>
</label>
<div class="input-group mb-5">
<span class="input-group-text">
<i class="bx bx-envelope"></i>
</span>
<input
@bind="@(NewUser.Email)"
type="email"
class="form-control"
required=""
placeholder="@(SmartTranslateService.Translate("Insert email address..."))">
</div>
<label class="form-label">
<TL>Enter password</TL>
</label>
<div class="input-group mb-5">
<span class="input-group-text">
<i class="bx bx-envelope"></i>
</span>
<input
@bind="@(NewUser.Password)"
type="password"
class="form-control"
required="">
</div>
<div class="input-group mt-5">
<WButton Text="@(SmartTranslateService.Translate("Add"))"
WorkingText="@(SmartTranslateService.Translate("Adding..."))"
CssClasses="btn-success"
OnClick="Save">
</WButton>
<a href="/setup/features" class="btn btn-primary">
<TL>Next</TL>
</a>
<a href="/setup" class="btn btn-danger">
<TL>Back</TL>
</a>
</div>
</div>
</div>
</IsSetup>
<NonSetup>
<SetupCompletedAlert></SetupCompletedAlert>
</NonSetup>
@code
{
private User NewUser = new();
private async Task Save()
{
try
{
await UserService.Register(
NewUser.Email,
NewUser.Password,
NewUser.FirstName,
NewUser.LastName
);
var user = UserRepository.Get().First(x => x.Email == NewUser.Email);
user.Admin = true;
UserRepository.Update(user);
await ToastService.Success(
SmartTranslateService.Translate("User successfully created")
);
}
catch (DisplayException e)
{
await AlertService.Error(
SmartTranslateService.Translate("Error"),
e.Message
);
}
catch (Exception e)
{
await AlertService.Error(
SmartTranslateService.Translate("Error"),
SmartTranslateService.Translate("An error occured while creating user")
);
Logger.Error("Error while creating user");
Logger.Error(e);
}
NewUser = new();
await InvokeAsync(StateHasChanged);
}
}

View File

@@ -5,6 +5,7 @@
@using Moonlight.App.Services.SupportChat
@using Logging.Net
@using System.Text.RegularExpressions
@using Moonlight.App.Services.Files
@inject ResourceService ResourceService
@inject SupportChatClientService ClientService

View File

@@ -1,12 +0,0 @@
@page "/test"
<LazyLoader Load="Load">
</LazyLoader>
@code
{
private Task Load(LazyLoader arg)
{
throw new Exception("Nein");
}
}

View File

@@ -1,568 +0,0 @@
Open support;Open support
About us;About us
Imprint;Imprint
Privacy;Privacy
Login;Login
Register;Register
Insert brand name...;Insert brand name...
Save and continue;Save and continue
Saving;Saving
Configure basics;Configure basics
Brand name;Brand name
test;test
Insert first name...;Insert first name...
Insert last name...;Insert last name...
Insert email address...;Insert email address...
Add;Add
Adding...;Adding...
Add admin accounts;Add admin accounts
First name;First name
Last name;Last name
Email address;Email address
Enter password;Enter password
Next;Next
Back;Back
Configure features;Configure features
Support chat;Support chat
Finish;Finish
Finalize installation;Finalize installation
Moonlight basic settings successfully configured;Moonlight basic settings successfully configured
Ooops. This page is crashed;Ooops. This page is crashed
This page is crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page;This page is crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page
Setup complete;Setup complete
It looks like this moonlight instance is ready to go;It looks like this moonlight instance is ready to go
User successfully created;User successfully created
Ooops. Your moonlight client is crashed;Ooops. Your moonlight client is crashed
This error has been reported to the moonlight team;This error has been reported to the moonlight team
Sign In;Sign In
Sign in to start with moonlight;Sign in to start with moonlight
Sign in with Discord;Sign in with Discord
Or with email;Or with email
Forgot password?;Forgot password?
Sign-in;Sign-in
Not registered yet?;Not registered yet?
Sign up;Sign up
Authenticating;Authenticating
Sign in with Google;Sign in with Google
Working;Working
Error;Error
Email and password combination not found;Email and password combination not found
Email;Email
Password;Password
Account settings;Account settings
Logout;Logout
Dashboard;Dashboard
Order;Order
Website;Website
Database;Database
Domain;Domain
Servers;Servers
Websites;Websites
Databases;Databases
Domains;Domains
Changelog;Changelog
Firstname;Firstname
Lastname;Lastname
Repeat password;Repeat password
Sign Up;Sign Up
Sign up to start with moonlight;Sign up to start with moonlight
Sign up with Discord;Sign up with Discord
Sign up with Google;Sign up with Google
Sign-up;Sign-up
Already registered?;Already registered?
Sign in;Sign in
Create something new;Create something new
Create a gameserver;Create a gameserver
A new gameserver in just a few minutes;A new gameserver in just a few minutes
Create a database;Create a database
A quick way to store your data and manage it from all around the world;A quick way to store your data and manage it from all around the world
Manage your services;Manage your services
Manage your gameservers;Manage your gameservers
Adjust your gameservers;Adjust your gameservers
Manage your databases;Manage your databases
Insert, delete and update the data in your databases;Insert, delete and update the data in your databases
Create a website;Create a website
Make your own websites with a webspace;Make your own websites with a webspace
Create a domain;Create a domain
Make your servvices accessible throught your own domain;Make your servvices accessible throught your own domain
Manage your websites;Manage your websites
Modify the content of your websites;Modify the content of your websites
Manage your domains;Manage your domains
Add, edit and delete dns records;Add, edit and delete dns records
Admin;Admin
System;System
Overview;Overview
Manager;Manager
Cleanup;Cleanup
Nodes;Nodes
Images;Images
aaPanel;aaPanel
Users;Users
Support;Support
Statistics;Statistics
No nodes found. Start with adding a new node;No nodes found. Start with adding a new node
Nodename;Nodename
FQDN;FQDN
Create;Create
Creating;Creating
Http port;Http port
Sftp port;Sftp port
Moonlight daemon port;Moonlight daemon port
SSL;SSL
CPU Usage;CPU Usage
In %;In %
Memory;Memory
Used / Available memory;Used / Available memory
Storage;Storage
Available storage;Available storage
Add a new node;Add a new node
Delete;Delete
Deleting;Deleting
Edit;Edit
Token Id;Token Id
Token;Token
Save;Save
Setup;Setup
Open a ssh connection to your node and enter;Open a ssh connection to your node and enter
and paste the config below. Then press STRG+O and STRG+X to save;and paste the config below. Then press STRG+O and STRG+X to save
Before configuring this node, install the daemon;Before configuring this node, install the daemon
Delete this node?;Delete this node?
Do you really want to delete this node;Do you really want to delete this node
Yes;Yes
No;No
Status;Status
Adding;Adding
Port;Port
Id;Id
Manage;Manage
Create new server;Create new server
No servers found;No servers found
Server name;Server name
Cpu cores;Cpu cores
Disk;Disk
Image;Image
Override startup;Override startup
Docker image;Docker image
CPU Cores (100% = 1 Core);CPU Cores (100% = 1 Core)
Server successfully created;Server successfully created
Name;Name
Cores;Cores
Owner;Owner
Value;Value
An unknown error occured;An unknown error occured
No allocation found;No allocation found
Identifier;Identifier
UuidIdentifier;UuidIdentifier
Override startup command;Override startup command
Loading;Loading
Offline;Offline
Connecting;Connecting
Start;Start
Restart;Restart
Stop;Stop
Shared IP;Shared IP
Server ID;Server ID
Cpu;Cpu
Console;Console
Files;Files
Backups;Backups
Network;Network
Plugins;Plugins
Settings;Settings
Enter command;Enter command
Execute;Execute
Checking disk space;Checking disk space
Updating config files;Updating config files
Checking file permissions;Checking file permissions
Downloading server image;Downloading server image
Downloaded server image;Downloaded server image
Starting;Starting
Online;Online
Kill;Kill
Stopping;Stopping
Search files and folders;Search files and folders
Launch WinSCP;Launch WinSCP
New folder;New folder
Upload;Upload
File name;File name
File size;File size
Last modified;Last modified
Cancel;Cancel
Canceling;Canceling
Running;Running
Loading backups;Loading backups
Started backup creation;Started backup creation
Backup is going to be created;Backup is going to be created
Rename;Rename
Move;Move
Archive;Archive
Unarchive;Unarchive
Download;Download
Starting download;Starting download
Backup successfully created;Backup successfully created
Restore;Restore
Copy url;Copy url
Backup deletion started;Backup deletion started
Backup successfully deleted;Backup successfully deleted
Primary;Primary
This feature is currently not available;This feature is currently not available
Send;Send
Sending;Sending
Welcome to the support chat. Ask your question here and we will help you;Welcome to the support chat. Ask your question here and we will help you
minutes ago; minutes ago
just now;just now
less than a minute ago;less than a minute ago
1 hour ago;1 hour ago
1 minute ago;1 minute ago
Failed;Failed
hours ago; hours ago
Open tickets;Open tickets
Actions;Actions
No support ticket is currently open;No support ticket is currently open
User information;User information
Close ticket;Close ticket
Closing;Closing
The support team has been notified. Please be patient;The support team has been notified. Please be patient
The ticket is now closed. Type a message to open it again;The ticket is now closed. Type a message to open it again
1 day ago;1 day ago
is typing;is typing
are typing;are typing
No domains available;No domains available
Shared domains;Shared domains
Shared domain;Shared domain
Shared domain successfully deleted;Shared domain successfully deleted
Shared domain successfully added;Shared domain successfully added
Domain name;Domain name
DNS records for;DNS records for
Fetching dns records;Fetching dns records
No dns records found;No dns records found
Content;Content
Priority;Priority
Ttl;Ttl
Enable cloudflare proxy;Enable cloudflare proxy
CF Proxy;CF Proxy
days ago; days ago
Cancle;Cancle
An unexpected error occured;An unexpected error occured
Testy;Testy
Error from cloudflare api;Error from cloudflare api
Profile;Profile
No subscription available;No subscription available
Buy;Buy
Redirecting;Redirecting
Apply;Apply
Applying code;Applying code
Invalid subscription code;Invalid subscription code
Cancel Subscription;Cancel Subscription
Active until;Active until
We will send you a notification upon subscription expiration;We will send you a notification upon subscription expiration
This token has been already used;This token has been already used
New login for;New login for
No records found for this day;No records found for this day
Change;Change
Changing;Changing
Minecraft version;Minecraft version
Build version;Build version
Server installation is currently running;Server installation is currently running
Selected;Selected
Move deleted;Move deleted
Delete selected;Delete selected
Log level;Log level
Log message;Log message
Time;Time
Version;Version
You are running moonlight version;You are running moonlight version
Operating system;Operating system
Moonlight is running on;Moonlight is running on
Memory usage;Memory usage
Moonlight is using;Moonlight is using
of memory;of memory
Cpu usage;Cpu usage
Refresh;Refresh
Send a message to all users;Send a message to all users
IP;IP
URL;URL
Device;Device
Change url;Change url
Message;Message
Enter message;Enter message
Enter the message to send;Enter the message to send
Confirm;Confirm
Are you sure?;Are you sure?
Enter url;Enter url
An unknown error occured while starting backup deletion;An unknown error occured while starting backup deletion
Success;Success
Backup URL successfully copied to your clipboard;Backup URL successfully copied to your clipboard
Backup restore started;Backup restore started
Backup successfully restored;Backup successfully restored
Register for;Register for
Core;Core
Logs;Logs
AuditLog;AuditLog
SecurityLog;SecurityLog
ErrorLog;ErrorLog
Resources;Resources
WinSCP cannot be launched here;WinSCP cannot be launched here
Create a new folder;Create a new folder
Enter a name;Enter a name
File upload complete;File upload complete
New server;New server
Sessions;Sessions
New user;New user
Created at;Created at
Mail template not found;Mail template not found
Missing admin permissions. This attempt has been logged ;)
Address;Address
City;City
State;State
Country;Country
Totp;Totp
Discord;Discord
Subscription;Subscription
None;None
No user with this id found;No user with this id found
Back to list;Back to list
New domain;New domain
Reset password;Reset password
Password reset;Password reset
Reset the password of your account;Reset the password of your account
Wrong here?;Wrong here?
A user with this email can not be found;A user with this email can not be found
Passwort reset successfull. Check your mail;Passwort reset successfull. Check your mail
Discord bot;Discord bot
New image;New image
Description;Description
Uuid;Uuid
Enter tag name;Enter tag name
Remove;Remove
No tags found;No tags found
Enter docker image name;Enter docker image name
Tags;Tags
Docker images;Docker images
Default image;Default image
Startup command;Startup command
Install container;Install container
Install entry;Install entry
Configuration files;Configuration files
Startup detection;Startup detection
Stop command;Stop command
Successfully saved image;Successfully saved image
No docker images found;No docker images found
Key;Key
Default value;Default value
Allocations;Allocations
No variables found;No variables found
Successfully added image;Successfully added image
Password change for;Password change for
of;of
New node;New node
Fqdn;Fqdn
Cores used;Cores used
used;used
5.15.90.1-microsoft-standard-WSL2 - amd64;5.15.90.1-microsoft-standard-WSL2 - amd64
Host system information;Host system information
0;0
Docker containers running;Docker containers running
details;details
1;1
2;2
DDos;DDos
No ddos attacks found;No ddos attacks found
Node;Node
Date;Date
DDos attack started;DDos attack started
packets;packets
DDos attack stopped;DDos attack stopped
packets; packets
Stop all;Stop all
Kill all;Kill all
Network in;Network in
Network out;Network out
Kill all servers;Kill all servers
Do you really want to kill all running servers?;Do you really want to kill all running servers?
Change power state for;Change power state for
to;to
Stop all servers;Stop all servers
Do you really want to stop all running servers?;Do you really want to stop all running servers?
Manage ;Manage
Manage user ;Manage user
Reloading;Reloading
Update;Update
Updating;Updating
Successfully updated user;Successfully updated user
Discord id;Discord id
Discord username;Discord username
Discord discriminator;Discord discriminator
The Name field is required.;The Name field is required.
An error occured while logging you in;An error occured while logging you in
You need to enter an email address;You need to enter an email address
You need to enter a password;You need to enter a password
You need to enter a password with minimum 8 characters in lenght;You need to enter a password with minimum 8 characters in lenght
Proccessing;Proccessing
The FirstName field is required.;The FirstName field is required.
The LastName field is required.;The LastName field is required.
The Address field is required.;The Address field is required.
The City field is required.;The City field is required.
The State field is required.;The State field is required.
The Country field is required.;The Country field is required.
Street and house number requered;Street and house number requered
Max lenght reached;Max lenght reached
Server;Server
stopped;stopped
Cleanups;Cleanups
executed;executed
Used clanup;Used clanup
Enable;Enable
Disabble;Disabble
Disable;Disable
Addons;Addons
Javascript version;Javascript version
Javascript file;Javascript file
Select javascript file to execute on start;Select javascript file to execute on start
Submit;Submit
Processing;Processing
Go up;Go up
Running cleanup;Running cleanup
servers;servers
Select folder to move the file(s) to;Select folder to move the file(s) to
Paper version;Paper version
Join2Start;Join2Start
Server reset;Server reset
Reset;Reset
Resetting;Resetting
Are you sure you want to reset this server?;Are you sure you want to reset this server?
Are you sure? This cannot be undone;Are you sure? This cannot be undone
Resetting server;Resetting server
Deleted file;Deleted file
Reinstalling server;Reinstalling server
Uploading files;Uploading files
complete;complete
Upload complete;Upload complete
Security;Security
Subscriptions;Subscriptions
2fa Code;2fa Code
Your account is secured with 2fa;Your account is secured with 2fa
anyone write a fancy text here?;anyone write a fancy text here?
Activate 2fa;Activate 2fa
2fa apps;2fa apps
Use an app like ;Use an app like
or;or
and scan the following QR Code;and scan the following QR Code
If you have trouble using the QR Code, select manual input in the app and enter your email and the following code:;If you have trouble using the QR Code, select manual input in the app and enter your email and the following code:
Finish activation;Finish activation
2fa Code requiered;2fa Code requiered
New password;New password
Secure your account;Secure your account
2fa adds another layer of security to your account. You have to enter a 6 digit code in order to login.;2fa adds another layer of security to your account. You have to enter a 6 digit code in order to login.
New subscription;New subscription
You need to enter a name;You need to enter a name
You need to enter a description;You need to enter a description
Add new limit;Add new limit
Create subscription;Create subscription
Options;Options
Amount;Amount
Do you really want to delete it?;Do you really want to delete it?
Loading your subscription;Loading your subscription
Searching for deploy node;Searching for deploy node
Searching for available images;Searching for available images
Server details;Server details
Configure your server;Configure your server
Default;Default
You reached the maximum amount of servers for every image of your subscription;You reached the maximum amount of servers for every image of your subscription
Personal information;Personal information
Enter code;Enter code
Server rename;Server rename
Create code;Create code
Save subscription;Save subscription
Enter your information;Enter your information
You need to enter your full name in order to use moonlight;You need to enter your full name in order to use moonlight
No node found;No node found
No node found to deploy to found;No node found to deploy to found
Node offline;Node offline
The node the server is running on is currently offline;The node the server is running on is currently offline
Server not found;Server not found
A server with that id cannot be found or you have no access for this server;A server with that id cannot be found or you have no access for this server
Compress;Compress
Decompress;Decompress
Moving;Moving
Compressing;Compressing
selected;selected
New website;New website
Plesk servers;Plesk servers
Base domain;Base domain
Plesk server;Plesk server
Ftp;Ftp
No SSL certificate found;No SSL certificate found
Ftp Host;Ftp Host
Ftp Port;Ftp Port
Ftp Username;Ftp Username
Ftp Password;Ftp Password
Use;Use
SSL Certificates;SSL Certificates
SSL certificates;SSL certificates
Issue certificate;Issue certificate
New plesk server;New plesk server
Api url;Api url
Host system offline;Host system offline
The host system the website is running on is currently offline;The host system the website is running on is currently offline
No SSL certificates found;No SSL certificates found
No databases found for this website;No databases found for this website
The name should be at least 8 characters long;The name should be at least 8 characters long
The name should only contain of lower case characters and numbers;The name should only contain of lower case characters and numbers
Error from plesk;Error from plesk
Host;Host
Username;Username
SRV records cannot be updated thanks to the cloudflare api client. Please delete the record and create a new one;SRV records cannot be updated thanks to the cloudflare api client. Please delete the record and create a new one
The User field is required.;The User field is required.
You need to specify a owner;You need to specify a owner
You need to specify a image;You need to specify a image
Api Url;Api Url
Api Key;Api Key
Duration;Duration
Enter duration of subscription;Enter duration of subscription
Copied code to clipboard;Copied code to clipboard
Invalid or expired subscription code;Invalid or expired subscription code
Current subscription;Current subscription
You need to specify a server image;You need to specify a server image
CPU;CPU
Hour;Hour
Day;Day
Month;Month
Year;Year
All time;All time
This function is not implemented;This function is not implemented
Domain details;Domain details
Configure your domain;Configure your domain
You reached the maximum amount of domains in your subscription;You reached the maximum amount of domains in your subscription
You need to specify a shared domain;You need to specify a shared domain
A domain with this name does already exist for this shared domain;A domain with this name does already exist for this shared domain
The Email field is required.;The Email field is required.
The Password field is required.;The Password field is required.
The ConfirmPassword field is required.;The ConfirmPassword field is required.
Passwords need to match;Passwords need to match
Cleanup exception;Cleanup exception
No shared domain found;No shared domain found
Searching for deploy plesk server;Searching for deploy plesk server
No plesk server found;No plesk server found
No plesk server found to deploy to;No plesk server found to deploy to
No node found to deploy to;No node found to deploy to
Website details;Website details
Configure your website;Configure your website
The name cannot be longer that 32 characters;The name cannot be longer that 32 characters
The name should only consist of lower case characters;The name should only consist of lower case characters
News;News
Title...;Title...
Enter text...;Enter text...
Saving...;Saving...
Deleting...;Deleting...
Delete post;Delete post
Do you really want to delete the post ";Do you really want to delete the post "
You have no domains;You have no domains
We were not able to find any domains associated with your account;We were not able to find any domains associated with your account
You have no websites;You have no websites
We were not able to find any websites associated with your account;We were not able to find any websites associated with your account
Guest;Guest
You need a domain;You need a domain
New post;New post
New entry;New entry
You reached the maximum amount of websites in your subscription;You reached the maximum amount of websites in your subscription

View File

@@ -1,86 +0,0 @@
Open support;Open support
About us;About us
Imprint;Imprint
Privacy;Privacy
Create;Create
Server;Server
Domain;Domain
Website;Website
Login;Login
Register;Register
Email;Email
Password;Password
Sign In;Sign In
Sign in to start with moonlight;Sign in to start with moonlight
Sign in with Discord;Sign in with Discord
Sign in with Google;Sign in with Google
Or with email;Or with email
Forgot password?;Forgot password?
Sign-in;Sign-in
Not registered yet?;Not registered yet?
Sign up;Sign up
Profile;Profile
Logout;Logout
Dashboard;Dashboard
Servers;Servers
Websites;Websites
Domains;Domains
Changelog;Changelog
Admin;Admin
System;System
Overview;Overview
Manager;Manager
Cleanup;Cleanup
Nodes;Nodes
Images;Images
Users;Users
Shared domains;Shared domains
Support;Support
Subscriptions;Subscriptions
Statistics;Statistics
Create something new;Create something new
Create a gameserver;Create a gameserver
A new gameserver in just a few minutes;A new gameserver in just a few minutes
Create a website;Create a website
Make your own websites with a webspace;Make your own websites with a webspace
Create a domain;Create a domain
Make your servvices accessible throught your own domain;Make your servvices accessible throught your own domain
Manage your services;Manage your services
Manage your gameservers;Manage your gameservers
Adjust your gameservers;Adjust your gameservers
Manage your websites;Manage your websites
Modify the content of your websites;Modify the content of your websites
Manage your domains;Manage your domains
Add, edit and delete dns records;Add, edit and delete dns records
New server;New server
Id;Id
Name;Name
Cores;Cores
Memory;Memory
Disk;Disk
Owner;Owner
Manage;Manage
Node offline;Node offline
The node the server is running on is currently offline;The node the server is running on is currently offline
Sessions;Sessions
New user;New user
First name;First name
Last name;Last name
Created at;Created at
Refresh;Refresh
Send a message to all users;Send a message to all users
IP;IP
URL;URL
Device;Device
Time;Time
Actions;Actions
Change url;Change url
Message;Message
Enter url;Enter url
Send;Send
Sending;Sending
Welcome to the support chat. Ask your question here and we will help you;Welcome to the support chat. Ask your question here and we will help you
less than a minute ago;less than a minute ago
The support team has been notified. Please be patient;The support team has been notified. Please be patient
is typing;is typing
Proccessing;Proccessing

View File

@@ -1,53 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>New moonlight login</title>
</head>
<body>
<div style="background-color:#ffffff; padding: 45px 0 34px 0; border-radius: 24px; margin:40px auto; max-width: 600px;">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="auto"
style="border-collapse:collapse">
<tbody>
<tr>
<td align="center" valign="center" style="text-align:center; padding-bottom: 10px">
<div style="text-align:center; margin:0 15px 34px 15px">
<div style="margin-bottom: 10px">
<a href="https://endelon-hosting.de" rel="noopener" target="_blank">
<img alt="Logo" src="https://moonlight.endelon-hosting.de/assets/media/logo/MoonFullText.png" style="height: 35px">
</a>
</div>
<div style="font-size: 14px; font-weight: 500; margin-bottom: 27px; font-family:Arial,Helvetica,sans-serif;">
<p style="margin-bottom:9px; color:#181C32; font-size: 22px; font-weight:700">Hey {{FirstName}}, there is a new login in your moonlight account</p>
<p style="margin-bottom:2px; color:#7E8299">Here is all the data we collected</p>
<p style="margin-bottom:2px; color:#7E8299">IP: {{Ip}}</p>
<p style="margin-bottom:2px; color:#7E8299">Device: {{Device}}</p>
<p style="margin-bottom:2px; color:#7E8299">Location: {{Location}}</p>
</div>
<a href="https://moonlight.endelon-hosting.de" target="_blank"
style="background-color:#50cd89; border-radius:6px;display:inline-block; padding:11px 19px; color: #FFFFFF; font-size: 14px; font-weight:500;">Open Moonlight
</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; text-align:center; padding: 0 10px 10px 10px; font-weight: 500; color: #A1A5B7; font-family:Arial,Helvetica,sans-serif">
<p style="color:#181C32; font-size: 16px; font-weight: 600; margin-bottom:9px">You need help?</p>
<p style="margin-bottom:2px">We are happy to help!</p>
<p style="margin-bottom:4px">More information at
<a href="https://endelon.link/support" rel="noopener" target="_blank" style="font-weight: 600">endelon.link/support</a>.
</p>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; padding:0 15px; text-align:center; font-weight: 500; color: #A1A5B7;font-family:Arial,Helvetica,sans-serif">
<p>Copyright 2022 Endelon Hosting </p>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

View File

@@ -1,53 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Moonlight password change</title>
</head>
<body>
<div style="background-color:#ffffff; padding: 45px 0 34px 0; border-radius: 24px; margin:40px auto; max-width: 600px;">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="auto"
style="border-collapse:collapse">
<tbody>
<tr>
<td align="center" valign="center" style="text-align:center; padding-bottom: 10px">
<div style="text-align:center; margin:0 15px 34px 15px">
<div style="margin-bottom: 10px">
<a href="https://endelon-hosting.de" rel="noopener" target="_blank">
<img alt="Logo" src="https://moonlight.endelon-hosting.de/assets/media/logo/MoonFullText.png" style="height: 35px">
</a>
</div>
<div style="font-size: 14px; font-weight: 500; margin-bottom: 27px; font-family:Arial,Helvetica,sans-serif;">
<p style="margin-bottom:9px; color:#181C32; font-size: 22px; font-weight:700">Hey {{FirstName}}, your password has been changed</p>
<p style="margin-bottom:2px; color:#7E8299">If this was not you please contact us. Also here is the data we collected.</p>
<p style="margin-bottom:2px; color:#7E8299">IP: {{Ip}}</p>
<p style="margin-bottom:2px; color:#7E8299">Device: {{Device}}</p>
<p style="margin-bottom:2px; color:#7E8299">Location: {{Location}}</p>
</div>
<a href="https://moonlight.endelon-hosting.de" target="_blank"
style="background-color:#50cd89; border-radius:6px;display:inline-block; padding:11px 19px; color: #FFFFFF; font-size: 14px; font-weight:500;">Open Moonlight
</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; text-align:center; padding: 0 10px 10px 10px; font-weight: 500; color: #A1A5B7; font-family:Arial,Helvetica,sans-serif">
<p style="color:#181C32; font-size: 16px; font-weight: 600; margin-bottom:9px">You need help?</p>
<p style="margin-bottom:2px">We are happy to help!</p>
<p style="margin-bottom:4px">More information at
<a href="https://endelon.link/support" rel="noopener" target="_blank" style="font-weight: 600">endelon.link/support</a>.
</p>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; padding:0 15px; text-align:center; font-weight: 500; color: #A1A5B7;font-family:Arial,Helvetica,sans-serif">
<p>Copyright 2023 Endelon Hosting </p>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

View File

@@ -1,54 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Moonlight password reset</title>
</head>
<body>
<div style="background-color:#ffffff; padding: 45px 0 34px 0; border-radius: 24px; margin:40px auto; max-width: 600px;">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="auto"
style="border-collapse:collapse">
<tbody>
<tr>
<td align="center" valign="center" style="text-align:center; padding-bottom: 10px">
<div style="text-align:center; margin:0 15px 34px 15px">
<div style="margin-bottom: 10px">
<a href="https://endelon-hosting.de" rel="noopener" target="_blank">
<img alt="Logo" src="https://moonlight.endelon-hosting.de/assets/media/logo/MoonFullText.png" style="height: 35px">
</a>
</div>
<div style="font-size: 14px; font-weight: 500; margin-bottom: 27px; font-family:Arial,Helvetica,sans-serif;">
<p style="margin-bottom:9px; color:#181C32; font-size: 22px; font-weight:700">Hey {{FirstName}}, your password has been resetted</p>
<p style="margin-bottom:2px; color:#7E8299">Your new password is: <b>{{Password}}</b></p>
<p style="margin-bottom:2px; color:#7E8299">If this was not you please contact us. Also here is the data we collected.</p>
<p style="margin-bottom:2px; color:#7E8299">IP: {{Ip}}</p>
<p style="margin-bottom:2px; color:#7E8299">Device: {{Device}}</p>
<p style="margin-bottom:2px; color:#7E8299">Location: {{Location}}</p>
</div>
<a href="https://moonlight.endelon-hosting.de" target="_blank"
style="background-color:#50cd89; border-radius:6px;display:inline-block; padding:11px 19px; color: #FFFFFF; font-size: 14px; font-weight:500;">Open Moonlight
</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; text-align:center; padding: 0 10px 10px 10px; font-weight: 500; color: #A1A5B7; font-family:Arial,Helvetica,sans-serif">
<p style="color:#181C32; font-size: 16px; font-weight: 600; margin-bottom:9px">You need help?</p>
<p style="margin-bottom:2px">We are happy to help!</p>
<p style="margin-bottom:4px">More information at
<a href="https://endelon.link/support" rel="noopener" target="_blank" style="font-weight: 600">endelon.link/support</a>.
</p>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; padding:0 15px; text-align:center; font-weight: 500; color: #A1A5B7;font-family:Arial,Helvetica,sans-serif">
<p>Copyright 2022 Endelon Hosting </p>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

View File

@@ -1,50 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcome</title>
</head>
<body>
<div style="background-color:#ffffff; padding: 45px 0 34px 0; border-radius: 24px; margin:40px auto; max-width: 600px;">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="auto"
style="border-collapse:collapse">
<tbody>
<tr>
<td align="center" valign="center" style="text-align:center; padding-bottom: 10px">
<div style="text-align:center; margin:0 15px 34px 15px">
<div style="margin-bottom: 10px">
<a href="https://endelon-hosting.de" rel="noopener" target="_blank">
<img alt="Logo" src="https://moonlight.endelon-hosting.de/assets/media/logo/MoonFullText.png" style="height: 35px">
</a>
</div>
<div style="font-size: 14px; font-weight: 500; margin-bottom: 27px; font-family:Arial,Helvetica,sans-serif;">
<p style="margin-bottom:9px; color:#181C32; font-size: 22px; font-weight:700">Hey {{FirstName}}, welcome to moonlight</p>
<p style="margin-bottom:2px; color:#7E8299">We are happy to welcome you in ;)</p>
</div>
<a href="https://moonlight.endelon-hosting.de" target="_blank"
style="background-color:#50cd89; border-radius:6px;display:inline-block; padding:11px 19px; color: #FFFFFF; font-size: 14px; font-weight:500;">Open Moonlight
</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; text-align:center; padding: 0 10px 10px 10px; font-weight: 500; color: #A1A5B7; font-family:Arial,Helvetica,sans-serif">
<p style="color:#181C32; font-size: 16px; font-weight: 600; margin-bottom:9px">You need help?</p>
<p style="margin-bottom:2px">We are happy to help!</p>
<p style="margin-bottom:4px">More information at
<a href="https://endelon.link/support" rel="noopener" target="_blank" style="font-weight: 600">endelon.link/support</a>.
</p>
</td>
</tr>
<tr>
<td align="center" valign="center"
style="font-size: 13px; padding:0 15px; text-align:center; font-weight: 500; color: #A1A5B7;font-family:Arial,Helvetica,sans-serif">
<p>Copyright 2022 Endelon Hosting </p>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="256px" height="301px" viewBox="0 0 256 301" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<defs>
<linearGradient x1="2.17771739%" y1="34.7938955%" x2="92.7221942%" y2="91.3419405%" id="linearGradient-1">
<stop stop-color="#41A7EF" offset="0%"></stop>
<stop stop-color="#813DDE" offset="54.2186236%"></stop>
<stop stop-color="#8F2EE2" offset="74.4988788%"></stop>
<stop stop-color="#A11CE6" offset="100%"></stop>
</linearGradient>
</defs>
<g>
<path d="M124.183681,101.699 C124.183681,66.515 136.256681,34.152 156.486681,8.525 C159.197681,5.092 156.787681,0.069 152.412681,0.012 C151.775681,0.004 151.136681,0 150.497681,0 C67.6206813,0 0.390681343,66.99 0.00168134279,149.775 C-0.386318657,232.369 66.4286813,300.195 149.019681,300.988 C189.884681,301.381 227.036681,285.484 254.376681,259.395 C257.519681,256.396 255.841681,251.082 251.548681,250.42 C179.413681,239.291 124.183681,176.949 124.183681,101.699" fill="url(#linearGradient-1)"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB