LumaTunnel
【WinUI】LumaTunnel 是一个面向个人多设备的 Windows 代理系统。客户端在本机提供 HTTP/HTTPS CONNECT 与 SOCKS5 TCP 代理,并通过一个受信任 TLS 证书保护的 WSS 会话,将多个 TCP 流复用到自建 Windows Server 节点。
关注
0
Fork
0
Star
0
namespace LumaTunnel.Server.Core.Configuration;
public sealed record ServerPaths(string RootPath)
{
public string ConfigDirectory => Path.Combine(RootPath, "config");
public string DataDirectory => Path.Combine(RootPath, "data");
public string LogDirectory => Path.Combine(RootPath, "logs");
public string SettingsFile => Path.Combine(ConfigDirectory, "server.json");
public string DevicesFile => Path.Combine(DataDirectory, "devices.json");
public string PairingCodesFile => Path.Combine(DataDirectory, "pairing-codes.json");
public string TrafficFile => Path.Combine(DataDirectory, "traffic.json");
public static ServerPaths CreateDefault()
{
var overrideRoot = Environment.GetEnvironmentVariable("LUMATUNNEL_DATA_ROOT");
var root = !string.IsNullOrWhiteSpace(overrideRoot)
? overrideRoot
: Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "LumaTunnel");
return new ServerPaths(root);
}
public void EnsureDirectories()
{
Directory.CreateDirectory(ConfigDirectory);
Directory.CreateDirectory(DataDirectory);
Directory.CreateDirectory(LogDirectory);
}
}
namespace LumaTunnel.Server.Core.Configuration;
public sealed record ServerPaths(string RootPath)
{
public string ConfigDirectory => Path.Combine(RootPath, "config");
public string DataDirectory => Path.Combine(RootPath, "data");
public string LogDirectory => Path.Combine(RootPath, "logs");
public string SettingsFile => Path.Combine(ConfigDirectory, "server.json");
public string DevicesFile => Path.Combine(DataDirectory, "devices.json");
public string PairingCodesFile => Path.Combine(DataDirectory, "pairing-codes.json");
public string TrafficFile => Path.Combine(DataDirectory, "traffic.json");
public static ServerPaths CreateDefault()
{
var overrideRoot = Environment.GetEnvironmentVariable("LUMATUNNEL_DATA_ROOT");
var root = !string.IsNullOrWhiteSpace(overrideRoot)
? overrideRoot
: Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "LumaTunnel");
return new ServerPaths(root);
}
public void EnsureDirectories()
{
Directory.CreateDirectory(ConfigDirectory);
Directory.CreateDirectory(DataDirectory);
Directory.CreateDirectory(LogDirectory);
}
}