|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<title>{{title}} - HAproxy-WI</title>
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
<link href="/image/pic/favicon.ico" rel="icon" type="image/png" />
|
|
|
|
<script>
|
|
|
|
FontAwesomeConfig = { searchPseudoElements: true, observeMutations: false };
|
|
|
|
</script>
|
|
|
|
<script defer src="/inc/fa-solid.min.js"></script>
|
|
|
|
<script defer src="/inc/fontawesome.min.js"></script>
|
|
|
|
<link href="/inc/awesome.css" rel="stylesheet">
|
|
|
|
<link href="/inc/vertical_scrol/custom_scrollbar.css" rel="stylesheet">
|
|
|
|
<link href="/inc/style.css" rel="stylesheet">
|
|
|
|
<link href="/inc/nprogress.css" rel="stylesheet">
|
|
|
|
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
|
|
|
|
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
|
|
|
|
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
|
|
|
<script src="/inc/js-cookie.js"></script>
|
|
|
|
<script src="/inc/script.js"></script>
|
|
|
|
<script src="/inc/configshow.js"></script>
|
|
|
|
<script src="/inc/nprogress.js"></script>
|
|
|
|
<script src="/inc/vertical_scrol/custom_scrollbar.min.js"></script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<input type="hidden" id="token" value="{{ token }}">
|
|
|
|
<a name="top"></a>
|
|
|
|
<div class="show_menu" style="display: none;">
|
|
|
|
<a href="#" id="show_menu" title="Show menu" style="margin-top: 30px;position: absolute;">
|
|
|
|
<span class="ui-state-default ui-corner-all">
|
|
|
|
<span class="ui-icon ui-icon-arrowthick-1-e" id="arrow"></span>
|
|
|
|
</span>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<div class="top-menu">
|
|
|
|
<div class="LogoText">
|
|
|
|
<span style="padding: 10px;">HAproxy-WI</span>
|
|
|
|
<a href="#" id="hide_menu" title="Hide menu" style="margin-left: 24px;position: absolute;">
|
|
|
|
<span class="ui-state-default ui-corner-all">
|
|
|
|
<span class="ui-icon ui-icon-arrowthick-1-w" id="arrow"></span>
|
|
|
|
</span>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<div class="top-link">
|
|
|
|
<nav class="menu">
|
|
|
|
<ul id="menu">
|
|
|
|
<li><a title="Statistics, monitoring and logs" class="stats">Stats</a>
|
|
|
|
<li><a href=/app/overview.py title="Server and service status" class="overview-link head-submenu">Overview</a></li>
|
|
|
|
<li><a href=/app/viewsttats.py title"Show stats" class="stats head-submenu">Stats</a></li>
|
|
|
|
<li><a href=/app/logs.py title="View logs" class="logs head-submenu"> Logs</a></li>
|
|
|
|
<li><a href=/app/map.py title="View map" class="map head-submenu">Map</a></li>
|
|
|
|
<li><a href=/app/edit.py title="Runtime API" class="runtime head-submenu">Runtime API</a></li>
|
|
|
|
<li><a href=/app/metrics.py title="Metrics" class="metrics head-submenu">Metrics</a></li>
|
|
|
|
</li>
|
|
|
|
<li><a title="Actions with Haproxy configs" class="config-show">Haproxy</a>
|
|
|
|
<li><a href=/app/configshow.py title="Show Haproxy Config" class="config-show head-submenu">Show config</a></li>
|
|
|
|
<li><a href=/app/diff.py title="Compare Haproxy Configs" class="compare head-submenu">Compare configs</a></li>
|
|
|
|
{% if user %}
|
|
|
|
{% if role <= 2 %}
|
|
|
|
<li><a href=/app/add.py#listner title="Add single listen" class="add head-submenu">Add listen</a></li>
|
|
|
|
<li><a href=/app/add.py#frontend title="Add single frontend" class="add head-submenu">Add frontend</a></li>
|
|
|
|
<li><a href=/app/add.py#backend title="Add single backend" class="add head-submenu">Add backend</a></li>
|
|
|
|
<li><a href=/app/add.py#ssl title="Upload SSL cert" class="cert head-submenu">SSL</a></li>
|
|
|
|
<li><a href=/app/config.py title="Edit Haproxy Config" class="edit head-submenu">Edit config</a> </li>
|
|
|
|
<li><a href=/app/lists.py title="Manage black and white lists" class="lists head-submenu">Lists</a> </li>
|
|
|
|
<li><a href=/app/ihap.py title="Installation HAProxy" class="hap head-submenu">Installation</a> </li>
|
|
|
|
{% endif %}
|
|
|
|
</li>
|
|
|
|
{% if role <= 2 %}
|
|
|
|
<li><a title="Actions with configs" class="version">Versions</a>
|
|
|
|
<li><a href=/app/configver.py title="Upload old versions configs" class="upload head-submenu">Upload</a></li>
|
|
|
|
{% endif %}
|
|
|
|
{% if role <= 2 %}
|
|
|
|
<li><a href=/app/delver.py title="Delete old versions configs" class="delete head-submenu">Delete</a></li>
|
|
|
|
{% endif %}
|
|
|
|
</li>
|
|
|
|
{% if role <= 2 %}
|
|
|
|
<li><a title="Keepalived" class="ha">Keepalived</a>
|
|
|
|
<li><a href=/app/ha.py title="Create HA cluster" class="keepalived head-submenu">HA</a></li>
|
|
|
|
<li><a href=/app/keepalivedconfig.py title="Edit keepalived config" class="edit head-submenu">Edit config</a></li>
|
|
|
|
</li>
|
|
|
|
<li><a title="Servers manage" class="runtime">Servers</a>
|
|
|
|
<li><a href=/app/servers.py title="Server manage" class="runtime head-submenu">Servers</a></li>
|
|
|
|
<li><a href=/app/servers.py#ssh title="Manage SSH credentials" class="admin head-submenu">SSH credentials</a></li>
|
|
|
|
</li>
|
|
|
|
{% endif %}
|
|
|
|
{% if role <= 1 %}
|
|
|
|
<li><a title="Admin area" class="admin">Admin area</a>
|
|
|
|
<li><a href=/app/users.py#users title="Actions with users" class="users head-submenu">Users</a></li>
|
|
|
|
<li><a href=/app/users.py#groups title="Actions with groups" class="group head-submenu">Groups</a></li>
|
|
|
|
<li><a href=/app/users.py#servers title="Actions with servers" class="runtime head-submenu">Servers</a></li>
|
|
|
|
<li><a href=/app/users.py#roles title="Users roles" class="role head-submenu">Roles</a></li>
|
|
|
|
<li><a href=/app/users.py#ssh title="Manage SSH credentials" class="admin head-submenu">SSH credentials</a></li>
|
|
|
|
<li><a href=/app/settings.py title="View settings" class="settings head-submenu">View settings</a></li>
|
|
|
|
<li><a href=/app/viewlogs.py title="View internal logs" class="logs head-submenu">Internal logs</a></li>
|
|
|
|
</li>
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
<div class="copyright-menu">
|
|
|
|
HAproxy-WI v2.9
|
|
|
|
<br>
|
|
|
|
<a href="https://www.patreon.com/haproxy_wi" title="Donate" target="_blank" style="color: #fff; margin-left: 30px; color: red;" class="patreon"> Patreon</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="container">
|
|
|
|
{% if h2 %}
|
|
|
|
<h2>
|
|
|
|
{{title}}
|
|
|
|
{% if user %}
|
|
|
|
<a href=/app/login.py?logout=logout title="Logout, user name: {{ user }}" class="login"> Logout</a>
|
|
|
|
{% else %}
|
|
|
|
<a href=/app/login.py title="Login" class="login"> Login</a>
|
|
|
|
{% endif %}
|
|
|
|
{% if autorefresh %}
|
|
|
|
<span class="auto-refresh">
|
|
|
|
<a onclick="pauseAutoRefresh()" class="auto-refresh-pause" style="display: none; margin-top: 4px;"></a>
|
|
|
|
<a onclick="pauseAutoResume()" class="auto-refresh-resume" style="display: none; margin-top: 4px;"></a>
|
|
|
|
<a id="0"><img src="/image/pic/update.png" alt="restart" class="icon"> Auto-refresh</a>
|
|
|
|
<a id="1" style="display: none;"><img src="/image/pic/update.png" alt="restart" class="icon"> Auto-refresh</a>
|
|
|
|
</span>
|
|
|
|
{% endif %}
|
|
|
|
</h2>
|
|
|
|
{% endif %}
|
|
|
|
{% if autorefresh %}
|
|
|
|
<div class="auto-refresh-div">
|
|
|
|
<div class="auto-refresh-head">
|
|
|
|
Refresh Interval
|
|
|
|
</div>
|
|
|
|
<div class="auto-refresh-interval">
|
|
|
|
<div class="auto-refresh-ul">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a class="ui-button ui-widget ui-corner-all" onclick="setRefreshInterval(0)" title="Turn off auto-refresh">Off</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<div class="auto-refresh-ul" id="secIntervals">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 5 seconds" onclick="setRefreshInterval(5000)">5 seconds</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 10 seconds" onclick="setRefreshInterval(10000)">10 seconds</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 30 seconds" onclick="setRefreshInterval(30000)">30 seconds</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh ever 45 seconds" onclick="setRefreshInterval(45000)">45 seconds</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<div class="auto-refresh-ul">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 1 minute" onclick="setRefreshInterval(60000)">1 minute</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 5 minutes" onclick="setRefreshInterval(300000)">5 minutes</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 15 minutes" onclick="setRefreshInterval(900000)">15 minutes</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh ever 30 minutes" onclick="setRefreshInterval(1800000)">30 minutes</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<div class="auto-refresh-ul">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 1 hour" onclick="setRefreshInterval(3600000)">1 hour</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 2 hour" onclick="setRefreshInterval(7200000)">2 hour</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh every 12 hour" onclick="setRefreshInterval(43200000)">12 hour</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a title="Auto-refresh ever 1 day" onclick="setRefreshInterval(86400000)">1 day</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% block content %}{% endblock %}
|
|
|
|
<div id="ajax-compare"></div>
|
|
|
|
<div id="ajax"></div>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|