mirror of
https://github.com/DJSundog/wg-portal.git
synced 2024-11-27 09:00:03 -05:00
120 lines
6.2 KiB
HTML
120 lines
6.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
|
<title>{{ .Static.WebsiteTitle }} - Admin</title>
|
|
<meta name="description" content="{{ .Static.WebsiteTitle }}">
|
|
<link rel="stylesheet" href="/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="/fonts/fontawesome-all.min.css">
|
|
<link rel="stylesheet" href="/css/custom.css">
|
|
</head>
|
|
|
|
<body id="page-top" class="d-flex flex-column min-vh-100">
|
|
{{template "prt_nav.html" .}}
|
|
<div class="container mt-5 main-app">
|
|
<h1>Edit interface <strong>{{.Device.DeviceName}}</strong></h1>
|
|
{{template "prt_flashes.html" .}}
|
|
|
|
<form method="post" enctype="multipart/form-data">
|
|
<input type="hidden" name="_csrf" value="{{.Csrf}}">
|
|
<input type="hidden" name="device" value="{{.Device.DeviceName}}">
|
|
<h3>Server's interface configuration</h3>
|
|
{{if .EditableKeys}}
|
|
<div class="form-row">
|
|
<div class="form-group required col-md-12">
|
|
<label for="inputServerPrivateKey">Private Key</label>
|
|
<input type="text" name="privkey" class="form-control" id="inputServerPrivateKey" value="{{.Device.PrivateKey}}">
|
|
</div>
|
|
</div>
|
|
<div class="form-row">
|
|
<div class="form-group required col-md-12">
|
|
<label for="inputServerPublicKey">Public Key</label>
|
|
<input type="text" name="pubkey" class="form-control" id="inputServerPublicKey" value="{{.Device.PublicKey}}">
|
|
</div>
|
|
</div>
|
|
{{else}}
|
|
<input type="hidden" name="privkey" value="{{.Device.PrivateKey}}">
|
|
<div class="form-row">
|
|
<div class="form-group col-md-12">
|
|
<label for="inputServerPublicKey">Public Key</label>
|
|
<input type="text" name="pubkey" readonly class="form-control" id="inputServerPublicKey" value="{{.Device.PublicKey}}">
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
<div class="form-row">
|
|
<div class="form-group required col-md-6">
|
|
<label for="inputListenPort">Listen port</label>
|
|
<input type="number" name="port" class="form-control" id="inputListenPort" placeholder="51820" value="{{.Device.ListenPort}}">
|
|
</div>
|
|
<div class="form-group required col-md-6">
|
|
<label for="inputIPs">Server IP address</label>
|
|
<input type="text" name="ip" class="form-control" id="inputIPs" placeholder="10.6.6.1/24" value="{{.Device.IPsStr}}">
|
|
</div>
|
|
</div>
|
|
<h3>Client's global configuration</h3>
|
|
<div class="form-row">
|
|
<div class="form-group required col-md-12">
|
|
<label for="inputPublicEndpoint">Public Endpoint for Clients</label>
|
|
<input type="text" name="endpoint" class="form-control" id="inputPublicEndpoint" placeholder="vpn.company.com:51820" value="{{.Device.Endpoint}}">
|
|
</div>
|
|
</div>
|
|
<div class="form-row">
|
|
<div class="form-group col-md-6">
|
|
<label for="inputDNS">DNS Servers</label>
|
|
<input type="text" name="dns" class="form-control" id="inputDNS" placeholder="1.1.1.1" value="{{.Device.DNSStr}}">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="inputAllowedIP">Default allowed IPs</label>
|
|
<input type="text" name="allowedip" class="form-control" id="inputAllowedIP" placeholder="10.6.6.0/24" value="{{.Device.AllowedIPsStr}}">
|
|
</div>
|
|
</div>
|
|
<div class="form-row">
|
|
<div class="form-group col-md-6">
|
|
<label for="inputMTU">Global MTU</label>
|
|
<input type="number" name="mtu" class="form-control" id="inputMTU" placeholder="0" value="{{.Device.Mtu}}">
|
|
</div>
|
|
<div class="form-group col-md-6">
|
|
<label for="inputPersistentKeepalive">Persistent Keepalive</label>
|
|
<input type="number" name="keepalive" class="form-control" id="inputPersistentKeepalive" placeholder="16" value="{{.Device.PersistentKeepalive}}">
|
|
</div>
|
|
</div>
|
|
<h3>Interface configuration hooks</h3>
|
|
<div class="form-row">
|
|
<div class="form-group col-md-12">
|
|
<label for="inputPreUp">Pre Up</label>
|
|
<input type="text" name="preup" class="form-control" id="inputPreUp" value="{{.Device.PreUp}}">
|
|
</div>
|
|
</div>
|
|
<div class="form-row">
|
|
<div class="form-group col-md-12">
|
|
<label for="inputPostUp">Post Up</label>
|
|
<input type="text" name="postup" class="form-control" id="inputPostUp" value="{{.Device.PostUp}}">
|
|
</div>
|
|
</div>
|
|
<div class="form-row">
|
|
<div class="form-group col-md-12">
|
|
<label for="inputPreDown">Pre Down</label>
|
|
<input type="text" name="predown" class="form-control" id="inputPreDown" value="{{.Device.PreDown}}">
|
|
</div>
|
|
</div>
|
|
<div class="form-row">
|
|
<div class="form-group col-md-12">
|
|
<label for="inputPostDown">Post Down</label>
|
|
<input type="text" name="postdown" class="form-control" id="inputPostDown" value="{{.Device.PostDown}}">
|
|
</div>
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-primary">Save</button>
|
|
<a href="/admin" class="btn btn-secondary">Cancel</a>
|
|
<a href="/admin/device/applyglobals" class="btn btn-dark float-right">Apply Allowed IP's to clients</a>
|
|
</form>
|
|
</div>
|
|
{{template "prt_footer.html" .}}
|
|
<script src="/js/jquery.min.js"></script>
|
|
<script src="/js/bootstrap.bundle.min.js"></script>
|
|
<script src="/js/jquery.easing.js"></script>
|
|
<script src="/js/custom.js"></script>
|
|
</body>
|
|
|
|
</html> |