mirror of https://github.com/Aidaho12/haproxy-wi
parent
5e7115f9d9
commit
dda49db5fa
79
README.md
79
README.md
|
@ -12,42 +12,45 @@ Web interface(user-friendly web GUI, alerting, monitoring and secure) for managi
|
||||||

|

|
||||||
|
|
||||||
# Features:
|
# Features:
|
||||||
1. Installation and updating HAProxy, Nginx and Keepalived with HAProxy-WI
|
1. Installation and updating HAProxy, Nginx and Keepalived with HAProxy-WI
|
||||||
1. Installation and updating Grafana, Prometheus servers with HAProxy-WI
|
2. Installation and updating Grafana, Prometheus servers with HAProxy-WI
|
||||||
1. Installation and updating HAProxy and Nginx exporters with HAProxy-WI
|
3. Installation and updating HAProxy and Nginx exporters with HAProxy-WI
|
||||||
1. Servers provisioning on AWS and DigitalOcean
|
4. Server provisioning on AWS, DigitalOcean and G-Core Labs
|
||||||
2. Configure HAProxy, Nginx and Keepalived In a jiffy with HAProxy-WI
|
5. Downloading, updating and formatting GeoIP to the acceptable format for HAProxy with HAProxy-WI
|
||||||
3. Dynamic change of Maxconn, backend's IP address and port with saving changes to the config file
|
6. Dynamic change of Maxconn, Black/white lists and backend's IP address and port with saving changes to the config file
|
||||||
3. View and analyse Status of all Frontend/backend server via HAProxy-WI from a single control panel.
|
7. Configuring HAProxy, Nginx and Keepalived in a jiffy with HAProxy-WI
|
||||||
4. Enable/disable servers through stats page without rebooting HAProxy
|
8. Viewing and analysing the status of all Frontend/backend servers via HAProxy-WI from a single control panel
|
||||||
5. View/Analyse HAproxy, Nginx logs straight from the HAProxy-WI web interface
|
9. Enabling/disabling servers through stats page without rebooting HAProxy
|
||||||
6. Create and visualise the HAProxy workflow from Web Ui.
|
1. Viewing/Analysing HAProxy and Nginx logs right from the HAProxy-WI web interface
|
||||||
7. Push Your changes to your HAProxy, Nginx and Keepalived servers with a single click through web interface
|
1. Creating and visualizing the HAProxy workflow from Web Ui
|
||||||
8. Get info on past changes, evaluate your config files and restore a previous stable config anytime with a single click straight from Web interface
|
1. Pushing Your changes to your HAProxy, Nginx and Keepalived servers with a single click via the web interface
|
||||||
9. Add/Edit Frontend or backend servers via web interface with a click of a button.
|
1. Getting info on past changes, evaluating your config files and restoring the previous stable config at any time with a single click right from Web interface
|
||||||
10. Edit config of HAProxy, Nginx, Keepalived and push changes to All Master/Slave server with a single click
|
1. Adding/Editing Frontend or backend servers via the web interface with a click
|
||||||
11. Add Multiple server to ensure Config Sync between servers.
|
1. Editing the config of HAProxy, Nginx and Keepalived and push ingchanges to All Master/Slave servers by a single click
|
||||||
12. Auto management of ports assigned to Fronted.
|
1. Adding Multiple server to ensure the Config Sync between servers
|
||||||
13. Evaluate the changes of recent configs pushed to HAProxy, Nginx and Keepalived instances straight from web ui
|
1. Managing the ports assigned to Frontend automatically
|
||||||
14. Multiple User Roles support for privileged based Viewing and editing of Config
|
1. Evaluating the changes of recent configs pushed to HAProxy, Nginx and Keepalived instances right from the Web UI
|
||||||
15. Create Groups and add/remove servers to ensure proper identification for your HAProxy, Nginx Clusters
|
1. Multiple User Roles support for privileged based Viewing and editing of Config
|
||||||
16. Send notifications to Telegram directly from HAProxy-WI and in web interface
|
1. Creating Groups and adding/removing servers to ensure the proper identification for your HAProxy and Nginx Clusters
|
||||||
17. HAProxy-WI supports high Availability to ensure uptime to all Master slave servers configured
|
1. Sending notifications from HAProxy-WI via Telegram, Slack and via the web interface
|
||||||
18. SSL certificate support, Let's Encrypt support
|
1. Supporting high Availability to ensure uptime to all Master slave servers configured
|
||||||
19. SSH Key support for managing multiple HAProxy Servers straight from HAProxy-WI
|
1. Support of SSL (including Let's Encrypt)
|
||||||
20. SYN flood protect
|
1. Support of SSH Key for managing multiple HAProxy and Nginx Servers straight from HAProxy-WI
|
||||||
21. Alerting about changes HAProxy backends state
|
1. SYN flood protect
|
||||||
22. Alerting about HAProxy and Nginx service state
|
1. Alerting about сhanges of the state of HAProxy backends
|
||||||
23. Metrics incoming connections
|
1. Alerting about the state of HAProxy and Nginx service
|
||||||
24. Web acceleration settings
|
1. Gathering metrics for incoming connections
|
||||||
25. Web application firewall
|
1. Web acceleration settings
|
||||||
26. LDAP support
|
1. Firewall for web application
|
||||||
27. Keep active HAProxy service
|
1. LDAP support
|
||||||
28. Ability to hide parts of the config with tags for users with "guest" role: "HideBlockStart" and "HideBlockEnd"
|
1. Keep active HAProxy and Nginx services
|
||||||
29. Mobile-ready desing
|
1. Possibility to hide parts of the config with tags for users with "guest" role: "HideBlockStart" and "HideBlockEnd"
|
||||||
30. Simple port monitoring
|
1. Mobile-ready design
|
||||||
31. Backup HAProxy, Nginx and Keepalived config files through HAProxy-WI
|
1. Simple port monitoring (SMON)
|
||||||
32. Manage OpenVPN3 as client via HAProxy-WI
|
1. Backup HAProxy, Nginx and Keepalived config files through HAProxy-WI
|
||||||
|
1. Managing OpenVPN3 as a client via HAProxy-WI
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -74,7 +77,7 @@ Default HAProxy-WI use Sqlite, if you want use MySQL enable in config, and creat
|
||||||
|
|
||||||
### Read instruction on the official [site](https://haproxy-wi.org/settings.py#db_settings)
|
### Read instruction on the official [site](https://haproxy-wi.org/settings.py#db_settings)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
# Settings
|
# Settings
|
||||||
|
|
||||||
|
@ -83,7 +86,7 @@ Login https://haproxy-wi-server/users.py, and add: users, groups and servers. De
|
||||||
|
|
||||||
### Read instruction on the official [site](https://haproxy-wi.org/settings.py)
|
### Read instruction on the official [site](https://haproxy-wi.org/settings.py)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||

|

|
||||||
|
|
|
@ -680,7 +680,7 @@ def update_haproxy_wi(service):
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
service = 'haproxy-wi-'+service
|
service = 'haproxy-wi-'+service
|
||||||
cmd = 'sudo -S yum -y update '+service
|
cmd = 'sudo -S yum -y update ' + service +' && sudo systemctl restart ' + service
|
||||||
output, stderr = subprocess_execute(cmd)
|
output, stderr = subprocess_execute(cmd)
|
||||||
print(output)
|
print(output)
|
||||||
print(stderr)
|
print(stderr)
|
||||||
|
@ -1256,7 +1256,7 @@ def check_is_server_in_group(serv):
|
||||||
|
|
||||||
|
|
||||||
def check_service(serv, service_name):
|
def check_service(serv, service_name):
|
||||||
commands = ["systemctl status "+service_name+" |grep Active |awk '{print $1}'"]
|
commands = ["systemctl is-active "+service_name]
|
||||||
return ssh_command(serv, commands)
|
return ssh_command(serv, commands)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1271,7 +1271,7 @@ def get_services_status():
|
||||||
'grafana-server': 'Grafana service',
|
'grafana-server': 'Grafana service',
|
||||||
'fail2ban': 'Fail2ban service'}
|
'fail2ban': 'Fail2ban service'}
|
||||||
for s, v in services_name.items():
|
for s, v in services_name.items():
|
||||||
cmd = "systemctl status %s |grep Act |awk '{print $2}'" % s
|
cmd = "systemctl is-active %s" % s
|
||||||
status, stderr = subprocess_execute(cmd)
|
status, stderr = subprocess_execute(cmd)
|
||||||
if s != 'keep_alive':
|
if s != 'keep_alive':
|
||||||
service_name = s.split('_')[0]
|
service_name = s.split('_')[0]
|
||||||
|
|
|
@ -72,15 +72,15 @@ try:
|
||||||
prometheus, stderr = funct.subprocess_execute(cmd)
|
prometheus, stderr = funct.subprocess_execute(cmd)
|
||||||
host = os.environ.get('HTTP_HOST', '')
|
host = os.environ.get('HTTP_HOST', '')
|
||||||
|
|
||||||
cmd = "systemctl status metrics_haproxy |grep Act |awk '{print $2}'"
|
cmd = "systemctl is-active metrics_haproxy"
|
||||||
metrics_master, stderr = funct.subprocess_execute(cmd)
|
metrics_master, stderr = funct.subprocess_execute(cmd)
|
||||||
cmd = "systemctl status checker_haproxy |grep Act |awk '{print $2}'"
|
cmd = "systemctl is-active checker_haproxy"
|
||||||
checker_master, stderr = funct.subprocess_execute(cmd)
|
checker_master, stderr = funct.subprocess_execute(cmd)
|
||||||
cmd = "systemctl status keep_alive |grep Act |awk '{print $2}'"
|
cmd = "systemctl is-active keep_alive"
|
||||||
keep_alive, stderr = funct.subprocess_execute(cmd)
|
keep_alive, stderr = funct.subprocess_execute(cmd)
|
||||||
cmd = "systemctl status smon |grep Act |awk '{print $2}'"
|
cmd = "systemctl is-active smon"
|
||||||
smon, stderr = funct.subprocess_execute(cmd)
|
smon, stderr = funct.subprocess_execute(cmd)
|
||||||
cmd = "systemctl status portscanner |grep Act |awk '{print $2}'"
|
cmd = "systemctl is-active portscanner"
|
||||||
port_scanner, stderr = funct.subprocess_execute(cmd)
|
port_scanner, stderr = funct.subprocess_execute(cmd)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
@ -278,7 +278,7 @@ $( function() {
|
||||||
type: "POST",
|
type: "POST",
|
||||||
success: function( data ) {
|
success: function( data ) {
|
||||||
data = data.replace(/^\s+|\s+$/g,'');
|
data = data.replace(/^\s+|\s+$/g,'');
|
||||||
if(data == 'Active:') {
|
if(data == 'active') {
|
||||||
$('#cur_haproxy_exp_ver').text('HAProxy expoter is installed');
|
$('#cur_haproxy_exp_ver').text('HAProxy expoter is installed');
|
||||||
$('#haproxy_exp_install').text('Update');
|
$('#haproxy_exp_install').text('Update');
|
||||||
$('#haproxy_exp_install').attr('title', 'Update HAProxy expoter');
|
$('#haproxy_exp_install').attr('title', 'Update HAProxy expoter');
|
||||||
|
@ -301,7 +301,7 @@ $( function() {
|
||||||
type: "POST",
|
type: "POST",
|
||||||
success: function( data ) {
|
success: function( data ) {
|
||||||
data = data.replace(/^\s+|\s+$/g,'');
|
data = data.replace(/^\s+|\s+$/g,'');
|
||||||
if(data == 'Active:') {
|
if(data == 'active') {
|
||||||
$('#cur_nginx_exp_ver').text('Nginx expoter is installed');
|
$('#cur_nginx_exp_ver').text('Nginx expoter is installed');
|
||||||
$('#nginx_exp_install').text('Update');
|
$('#nginx_exp_install').text('Update');
|
||||||
$('#nginx_exp_install').attr('title', 'Update Nginx expoter');
|
$('#nginx_exp_install').attr('title', 'Update Nginx expoter');
|
||||||
|
|
Loading…
Reference in New Issue