@page "/admin/" @using ShareGuard.Web.DbModels @rendermode InteractiveServer ShareGuard Admin

ShareGuard Admin

Generate Share-Link
WG-Quick Template

You can use the following placeholders:
{ip} for the peer's ip address(es)
{publicKey} for the peer's public key
{privateKey} for the peer's private key

This template will be generated for your users.
@if (_links != null) {
History
@foreach (var link in _links) { @if (link.PeerPublicKey == null) { } else { } }
Name Token Client Public Key IP Address(es) Actions
@link.Name @link.TokenPending@link.PeerPublicKey@link.IpAddress
} @code { private const string TemplateFilePath = "./wg-quick-template.txt"; private string? _template; private void SaveTemplate() { if (_template != null) { File.WriteAllText(TemplateFilePath, _template); } } private List? _links; protected override void OnInitialized() { if (File.Exists(TemplateFilePath)) _template = File.ReadAllText(TemplateFilePath); using var db = new Database(); _links = db.Links.ToList(); } private string _newName = ""; private string _newIpAddress = ""; private void GenerateNewLink() { using var db = new Database(); db.Links.Add(new Link { Name = _newName, IpAddress = _newIpAddress, Token = Link.GenerateToken(db) }); db.SaveChanges(); OnInitialized(); } private void DeleteLink(Link link) { using var db = new Database(); db.Remove(link); db.SaveChanges(); OnInitialized(); } }