Go to file
Aidaho12 90df931e63 v2.2 2018-04-28 14:34:11 +06:00
cgi-bin v2.2 2018-04-28 14:34:11 +06:00
image v2.0.7 2018-04-26 19:03:48 +06:00
inc v2.2 2018-04-28 10:06:48 +06:00
log Create config_edit.log 2018-01-15 12:15:03 +06:00
.gitignore v1.4.1 2018-01-26 10:08:34 +06:00
CONTRIBUTING.md Create CONTRIBUTING.md 2018-01-19 21:40:01 +06:00
LICENSE Initial commit 2018-01-15 11:58:02 +06:00
README.md v2.2 2018-04-28 13:34:45 +06:00
index.html v1.10.2 2018-04-08 13:33:09 +06:00
install.sh v2.2 2018-04-28 11:17:06 +06:00
requirements.txt v2.0.6 2018-04-25 18:23:05 +06:00

README.md

Haproxy web interface

A simple web interface(user-frendly web GUI) for managing Haproxy servers. Leave your feedback

alt text

Capabilities:

  1. View statistics of all servers in one place
  2. Server and service statsus in one place
  3. View logs of all servers in one place
  4. Map frontend, backends and servers
  5. Runtime API with the ability to save changes (need install socat on all haproxy servers)
  6. Browsing Configs
  7. Add sections: listen, frontend, backend from web interface
  8. Editing configs
  9. Rollback to previous versions of the config
  10. Master/slave servers
  11. Configure firewalld on HAProxy servers based on config ports
  12. Comparing versions of configs
  13. Users roles: admin, editor, viewer
  14. Server groups
  15. Telegram notification
  16. Creating HA HAProxy cluster
  17. Editing keepalived configs

Install

The installer will ask you a few questions

$ git clone https://github.com/Aidaho12/haproxy-wi.git /var/www/haproxy-wi
$ cd /var/www/haproxy-wi
$ chmod +x install.sh
$ ./install

Manual install

For install just clone:

$ cd /var/www/
$ git clone https://github.com/Aidaho12/haproxy-wi.git /var/www/haproxy-wi
$ chown -R apache:apache haproxy-wi/
$ pip install -r haproxy-wi/requirements.txt 
$ chmod +x haproxy-wi/cgi-bin/*.py 

For Apache do virtualhost with cgi-bin. Like this:

# vi /etc/httpd/conf.d/haproxy-wi.conf 
<VirtualHost *:8080>
        ServerName haproxy-wi
        ErrorLog /var/log/httpd/haproxy-wi.error.log
        CustomLog /var/log/httpd/haproxy-wi.access.log combined

        DocumentRoot /var/www/haproxy-wi
        ScriptAlias /cgi-bin/ "/var/www/haproxy-wi/cgi-bin/"

        <Directory /var/www/haproxy-wi>
                Options +ExecCGI
                AddHandler cgi-script .py
                Order deny,allow
                Allow from all
        </Directory>
</VirtualHost>

Database support

Default Haproxy-WI use Sqlite, if you want use MySQL enable in config, and create database:

For MySQL support:

MariaDB [(none)]> create user 'haproxy-wi'@'%';
MariaDB [(none)]> create database haproxywi;
MariaDB [(none)]> grant all on haproxywi.* to 'haproxy-wi'@'%' IDENTIFIED BY 'haproxy-wi';
MariaDB [(none)]> grant all on haproxywi.* to 'haproxy-wi'@'localhost' IDENTIFIED BY 'haproxy-wi';

alt text

Settings

Edit $HOME_HAPROXY-WI/cgi-bin/haproxy-webintarface.config with your env

Copy ssh key on all HAproxy servers

Login http://haproxy-wi-server/users.py, and add: users, groups and servers. Default: admin/admin

alt text

For Runtime API enable state file on HAproxt servers and need install socat on all haproxy servers, and configre HAProxy:

    global
		stats socket *:1999 level admin 
		stats socket /var/run/haproxy.sock mode 600 level admin
		server-state-file /etc/haproxy/haproxy/haproxy.state
    defaults
		load-server-state-from-file global

alt text

Update DB

$ cd /var/www/haproxy-wi/cgi-bin
$ ./update_db.py

Troubleshooting

If you have error:

Forbidden
You don't have permission to access /cgi-bin/overview.py on this server. 

Check owner(must be apache, or another user for apache)

If at first login you have:

Internal Server Error

Do this:

$ cd /var/www/haproxy-wi
$ ./update_db.py

Further development and support

Offer your ideas and wishes, ask questions. All this is welcomed