PortIO/resources/views/admin/servers/edit.blade.php
2023-08-14 12:07:49 +08:00

323 lines
12 KiB
PHP

<x-app-layout>
{{-- <nav>
<div class="nav nav-tabs" id="nav-tab" role="tablist">
<button class="nav-link active" aria-selected="true" data-bs-toggle="tab" data-bs-target="#nav-info"
type="button" role="tab">基础信息</button>
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#nav-settings" type="button"
role="tab">服务器设置</button>
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#nav-frps" type="button" role="tab">Frps
配置文件</button>
</div>
</nav> --}}
{{-- <div class="tab-content" id="nav-tabContent">--}}
{{-- <div class="tab-pane fade" id="nav-settings" role="tabpanel">--}}
<form action="{{ route('admin.servers.update', $server->id) }}" method="post">
@csrf
@method('PUT')
<div class="row">
<div class="col">
<h4>服务器</h4>
<div class="mb-3">
<label for="serverName" class="form-label">服务器名称</label>
<input type="text" required class="form-control" id="serverName" placeholder="输入服务器名称,它将会被搜索到"
name="name" value="{{ $server->name }}">
</div>
<div class="mb-3">
<label for="serverKey" class="form-label">鉴权 Key</label>
<input type="text" required value="{{ $server->key }}" class="form-control"
id="serverKey" name="key">
</div>
<h4>Frps 信息</h4>
<div class="mb-3">
<label for="serverAddr" class="form-label">Frps 地址</label>
<input type="text" required class="form-control" id="serverAddr" name="server_address"
value="{{ $server->server_address }}">
</div>
<div class="mb-3">
<label for="serverPort" class="form-label">Frps 端口</label>
<input type="text" required class="form-control" id="serverPort" name="server_port"
value="{{ $server->server_port }}">
</div>
<div class="mb-3">
<label for="serverToken" class="form-label">Frps 令牌</label>
<input type="text" required class="form-control" id="serverToken" name="token"
value="{{ $server->token }}">
</div>
</div>
<div class="col">
<h4>Frps Dashboard 配置</h4>
<div class="mb-3">
<label for="dashboardPort" class="form-label">端口</label>
<input type="text" required class="form-control" id="dashboardPort" name="dashboard_port"
value="{{ $server->dashboard_port }}">
</div>
<div class="mb-3">
<label for="dashboardUser" class="form-label">登录用户名</label>
<input type="text" required class="form-control" id="dashboardUser" name="dashboard_user"
value="{{ $server->dashboard_user }}">
</div>
<div class="mb-3">
<label for="dashboardPwd" class="form-label">密码</label>
<input type="text" required class="form-control" id="dashboardPwd" name="dashboard_password"
value="{{ $server->dashboard_password }}">
</div>
<h4>端口范围限制</h4>
<div class="input-group input-group-sm mb-3">
<input type="text" required class="form-control" placeholder="最小端口, 比如: 10000" name="min_port"
value="{{ $server->min_port }}">
<input type="text" required class="form-control" placeholder="最大端口, 比如: 65535" name="max_port"
value="{{ $server->max_port }}">
</div>
<h4>最多隧道数量</h4>
<div class="input-group input-group-sm mb-3">
<input type="text" required class="form-control" placeholder="最多隧道数量, 比如: 1024个隧道"
name="max_tunnels" value="{{ $server->max_tunnels }}">
</div>
</div>
<div class="col">
<h4>隧道协议限制</h4>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="allow_http" value="1"
@if ($server->allow_http) checked @endif id="allow_http">
<label class="form-check-label" for="allow_http">
允许 HTTP
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="allow_https" value="1"
@if ($server->allow_https) checked @endif id="allow_https">
<label class="form-check-label" for="allow_https">
允许 HTTPS
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="allow_tcp" value="1"
@if ($server->allow_tcp) checked @endif id="allow_tcp">
<label class="form-check-label" for="allow_tcp">
允许 TCP
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="allow_udp" value="1"
@if ($server->allow_udp) checked @endif id="allow_udp">
<label class="form-check-label" for="allow_udp">
允许 UDP
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="allow_stcp" value="1"
@if ($server->allow_stcp) checked @endif
id="allow_stcp">
<label class="form-check-label" for="allow_stcp">
允许 STCP
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="allow_xtcp" value="1"
@if ($server->allow_xtcp) checked @endif
id="allow_xtcp">
<label class="form-check-label" for="allow_xtcp">
允许 XTCP
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="allow_sudp" value="1"
id="allow_sudp" @if ($server->allow_sudp) checked @endif>
<label class="form-check-label" for="allow_sudp">
允许 SUDP
</label>
</div>
<div class="form-check mt-3">
<input class="form-check-input" type="checkbox" name="is_china_mainland" value="1"
id="is_china_mainland" @if ($server->is_china_mainland) checked @endif>
<label class="form-check-label" for="is_china_mainland">
服务器是否位于中国大陆
</label>
</div>
<div class="d-grid mt-3">
<button type="submit" class="btn btn-primary mb-3">保存更改</button>
</div>
</div>
</div>
</form>
<form action="{{ route('admin.servers.destroy', $server->id) }}" method="post">
@csrf
@method('DELETE')
<button type="submit"
class="btn btn-danger mb-3"
onclick="confirm('确定删除这个服务器吗?删除后将无法恢复,与此关联的隧道将一并删除。') ? true : event.preventDefault()"
>
删除服务器
</button>
</form>
<table class="mt-3 table table-hover text-center table-bordered">
<tbody>
<tr>
<td>Frps 版本</td>
<td>{{ $serverInfo->version ?? 0 }}</td>
</tr>
<tr>
<td>绑定端口</td>
<td>{{ $serverInfo->bind_port ?? 0 }}</td>
</tr>
@if ($serverInfo->bind_udp_port ?? 0)
<tr>
<td>UDP 端口</td>
<td>{{ $serverInfo->bind_udp_port ?? 0 }}</td>
</tr>
@endif
<tr>
<td>HTTP 端口</td>
<td>{{ $serverInfo->vhost_http_port ?? 0 }}</td>
</tr>
<tr>
<td>HTTPS 端口</td>
<td>{{ $serverInfo->vhost_https_port ?? 0 }}</td>
</tr>
<tr>
<td>KCP 端口</td>
<td>{{ $serverInfo->kcp_bind_port ?? 0 }}</td>
</tr>
@if (!empty($serverInfo->subdomain_host))
<tr>
<td>子域名</td>
<td>{{ $serverInfo->subdomain_host ?? 0 }}</td>
</tr>
@endif
<tr>
<td>Max PoolCount</td>
<td>{{ $serverInfo->max_pool_count ?? 0 }}</td>
</tr>
<tr>
<td>Max Ports Peer Client</td>
<td>{{ $serverInfo->max_ports_per_client ?? 0 }}</td>
</tr>
<tr>
<td>Heartbeat timeout</td>
<td>{{ $serverInfo->heart_beat_timeout ?? 0 }}</td>
</tr>
<tr>
<td>自启动以来总入流量</td>
<td>{{ unitConversion($serverInfo->total_traffic_in ?? 0) }}</td>
</tr>
<tr>
<td>自启动以来总出流量</td>
<td>{{ unitConversion($serverInfo->total_traffic_out ?? 0) }}</td>
</tr>
<tr>
<td>客户端数量</td>
<td>{{ $serverInfo->client_counts ?? 0 }}</td>
</tr>
<tr>
<td>当前连接数量</td>
<td>{{ $serverInfo->cur_conns ?? 0 }}</td>
</tr>
</tbody>
</table>
@if ($server->status == 'down')
<h4 class="text-danger">无法连接到服务器</h4>
<form action="{{ route('admin.servers.update', $server->id) }}" method="POST">
@csrf
@method('PUT')
<input type="hidden" name="status" value="up"/>
<button type="submit" class="btn btn-danger mb-2">强制标记为在线</button>
</form>
@else
<span class="text-success">正常</span>
<form action="{{ route('admin.servers.update', $server->id) }}" method="POST">
@csrf
@method('PUT')
<input type="hidden" name="status" value="down"/>
<button type="submit" class="btn btn-danger mb-2">标记为离线</button>
</form>
@endif
@if ($server->status == 'maintenance')
<span class="text-danger">维护中</span>
<form action="{{ route('admin.servers.update', $server->id) }}" method="POST">
@csrf
@method('PUT')
<input type="hidden" name="status" value="down"/>
<button type="submit" class="btn btn-warning mb-2">取消维护</button>
</form>
@else
<form action="{{ route('admin.servers.update', $server->id) }}" method="POST">
@csrf
@method('PUT')
<input type="hidden" name="status" value="maintenance"/>
<button type="submit" class="btn btn-warning mb-2">开始维护</button>
</form>
@endif
<div class="alert alert-primary">
将这些内容放入: frps.ini
</div>
<textarea readonly class="form-control mb-3" rows="20" cols="80">[common]
bind_port = {{ $server->server_port }}
bind_udp_port = {{ $server->server_port }}
@if ($server->server_port + 1 > 65535)
kcp_bind_port = {{ $server->server_port - 1 }}
@else
kcp_bind_port = {{ $server->server_port + 1 }}
@endif
token = {{ $server->token }}
@if ($server->allow_http)
vhost_http_port = 80
@endif
@if ($server->allow_https)
vhost_https_port = 443
@endif
dashboard_port = {{ $server->dashboard_port }}
dashboard_user = {{ $server->dashboard_user }}
dashboard_pwd = {{ $server->dashboard_password }}
[plugin.port-manager]
addr = {{ route('api.tunnel.handler', '') }}/
path = {{ $server->key }}
ops = NewProxy
</textarea>
</x-app-layout>