{% extends "base.html" %} {% block title %}{{lang.menu_links.add_proxy.title}}{% endblock %} {% block h2 %}{{lang.menu_links.add_proxy.title}}{% endblock %} {% block content %} {% from 'include/input_macros.html' import input, checkbox, select %} {% set balance_params = dict() %} {% set balance_params = {'roundrobin':'roundrobin','source':'source','leastconn':'leastconn','first':'first', 'rdp-cookie':'rdp-cookie', 'uri':'uri', 'uri whole':'uri whole', 'static-rr': 'static-rr', 'url_param userid':'url_param userid'} %} {% set checks = dict() %} {% set checks = {'':'Choose a custom health check','option tcp-check':'Check a TCP Port', 'option ssl-hello-chk':'Check a SSL Port','option httpchk':'Check a HTTP service', 'option ldap-check':'Check a LDAP service', 'option mysql-check':'Check a MySql Service', 'option pgsql-check':'Check a PgSQL Service', 'option redis-check': 'Check a Redis Service', 'option smtpchk':'Check a SMTP service'} %} {% set observe = {'layer7':'layer7', 'layer4': 'layer4'} %} {% set on_error = {'mark-down':'mark-down', 'fastinter': 'fastinter', 'fail-check':'fail-check', 'sudden-death':'sudden-death'} %} {% set header_res = {'http-response': 'response', 'http-request': 'request'} %} {% set header_params = {'add-header': 'add-header', 'set-header': 'set-header', 'del-header': 'del-header'} %} {% set if_values = {'1':'Host name starts with','2':'Host name ends with','3':'Path starts with','4':'Path ends with', '6': 'Src ip'} %}
{% include 'include/add_proxy.html' %}

{{lang.words.add|title()}} {{lang.words.listener}}

{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.server}}:
{{lang.words.note|title()}}: {{lang.phrases.master_slave}}
{{lang.add_page.desc.listener_desc1}}

{{lang.add_page.desc.listener_desc2}}

{{lang.add_page.desc.listener_desc3}}
{{lang.words.name|title()}}: {{ input('name', name='listener', title=lang.words.name|title() + ' ' +lang.words.listener, placeholder="web_80", required='required') }}
IP and {{lang.words.port|title()}}: {{ input('ip', placeholder="Any", size='15') }}: {{ input('listen-port', name='port', title=lang.add_page.desc.port_for_bind + ' ' + lang.words.listener, placeholder="8080", size='5', required='required') }}
{{lang.add_page.desc.ip_port}}
{{lang.words.mode|title()}}: {% set values = dict() %} {% set values = {'http':'http','tcp':'tcp'} %} {{ select('listen-mode-select', name='mode', values=values, selected='http', required='required', class='force_close') }}
Maxconn: {{ input('maxconn', value='2000', type="number", title=lang.add_page.desc.maxconn_fix, size='5', required='required') }}
{{lang.add_page.desc.maxconn_desc}}: 2000
{{lang.words.balance|title()}}: {{ select('balance', values=balance_params, selected='roundrobin', required='required', class='force_close') }}
{{lang.words.health|title()}} {{lang.words.check}}: {{ select('listener_checks', name='health_check', values=checks, selected='', class='force_close') }}
{{lang.words.headers|title()}}:
ACL:
Web {{lang.words.acceleration}}: {{ checkbox('compression', title=lang.add_page.desc.http_compression, value='1', desc=lang.words.compression|title()) }} {{ checkbox('cache', title=lang.words.enable|title()+' '+lang.words.cache, value='2', desc=lang.words.cache|title()) }} {{ checkbox('ssl_offloading', title=lang.add_page.desc.http_https, desc='HTTP->HTTPS') }}
WAF: {{ checkbox('slow_atack', title=lang.add_page.desc.slow_attack, desc='Slow attack') }} {{ checkbox('ddos', title='DDOS attack protect', desc='DDOS') }} {{ checkbox('whitelist_checkbox', title=lang.words.enable|title()+' '+ lang.words.whitelist, desc=lang.words.whitelist|title()) }} {{ checkbox('blacklist_checkbox', title=lang.words.enable|title()+' '+ lang.words.blacklist, desc=lang.words.blacklist|title()) }} {{ checkbox('waf', title='Web application firewall', desc='WAF', value='1') }} {{ checkbox('antibot', title=lang.add_page.desc.antibot, desc='Antibot', value='1') }}
{{lang.words.options|title()}}: {{ checkbox('forward_for', title=lang.add_page.desc.forward_for, desc='Forward for') }} {{ checkbox('redispatch', title=lang.add_page.desc.redispatch, desc='Redispatch') }} {% set values = dict() %} {% set values = {'Off':'Off','Server only':'Server only','Force close':'Force close','Pretend keep alive':'Pretend keep alive'} %} {{ select('force_close', values=values, first='Force HTTP close', title=lang.add_page.desc.force_close, class='force_close') }} {{ checkbox('cookie', title=lang.add_page.desc.cookie, desc=lang.words.set|title()+' cookie', value='1') }} {{ checkbox('options-listen-show', title=lang.add_page.buttons.set_options_m, desc=lang.add_page.buttons.set_options) }}
{{lang.words.servers|title()}}: {% include 'include/add_servers.html' %}

{{ checkbox('template-listen', name='template', title=lang.add_page.desc.server_template, value='template', desc=lang.add_page.desc.server_template) }}
{{lang.words.check|title()}}:
{{lang.add_page.desc.def_check}}: inter 2000 rise 2 fall 5
{{ checkbox('circuit_breaking_listen', name="circuit_breaking", desc='Circuit Breaking', title=lang.add_page.desc.circuit_breaking, value='1') }}
{{lang.words.add|title()}} {{lang.words.linstener|title()}} {{lang.words.generate|title()}} {{lang.words.config}}

{{lang.words.add|title()}} {{lang.words.frontend}}

{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.server}}:
{{lang.words.note|title()}}: {{lang.phrases.master_slave}}
{{lang.add_page.desc.front_desc1}}

{{lang.add_page.desc.listener_desc2}}

{{lang.add_page.desc.listener_desc1}}
{{lang.words.name|title()}}:
IP and {{lang.words.port|title()}}: :
{{lang.add_page.desc.ip_port}}
{{lang.words.mode|title()}}: {% set values = dict() %} {% set values = {'http':'http','tcp':'tcp'} %} {{ select('frontend-mode-select', name='mode', values=values, selected='http', required='required', class='force_close') }} {{ checkbox('https-frontend', title=lang.add_page.desc.ssl_offloading, desc='SSL Offloading') }}
Maxconn: {{ input('maxconn', value='2000', type="number", title=lang.add_page.desc.maxconn_fix, size='5', required='required') }}
{{lang.add_page.desc.maxconn_desc}}: 2000
{{lang.words.headers|title()}}:
ACL:
Web {{lang.words.acceleration}}: {{ checkbox('compression2', name="compression", title=lang.add_page.desc.http_compression, value='1', desc=lang.words.compression|title()) }} {{ checkbox('cache2', name="cache", title=lang.words.enable|title()+' '+lang.words.cache, value='2', desc=lang.words.cache|title()) }} {{ checkbox('ssl_offloading1', title=lang.add_page.desc.http_https, desc='HTTP->HTTPS') }}
WAF: {{ checkbox('slow_atack1', title=lang.add_page.desc.slow_attack, desc='Slow attack') }} {{ checkbox('ddos1', title='DDOS attack protect', desc='DDOS') }} {{ checkbox('whitelist_checkbox1', title=lang.words.enable|title()+' '+ lang.words.whitelist, desc=lang.words.whitelist|title()) }} {{ checkbox('blacklist_checkbox1', title=lang.words.enable|title()+' '+ lang.words.blacklist, desc=lang.words.blacklist|title()) }} {{ checkbox('waf2', name='waf', title='Web application firewall', desc='WAF', value='1') }} {{ checkbox('antibot1', title=lang.add_page.desc.antibot, desc='Antibot', value='1') }}
{{lang.words.options|title()}}: {{ checkbox('forward_for1', title=lang.add_page.desc.forward_for, desc='Forward for') }} {% set values = dict() %} {% set values = {'Off':'Off','Server only':'Server only','Force close':'Force close','Pretend keep alive':'Pretend keep alive'} %} {{ select('force_close', values=values, first='Force HTTP close', title=lang.add_page.desc.force_close, class='force_close') }} {{ checkbox('options-frontend-show', title=lang.add_page.buttons.set_options_m, desc=lang.add_page.buttons.set_options) }}
{{lang.words.default_backend}} {{ input('backends', name='backends', placeholder="some_backend", size='30', title=lang.add_page.desc.no_def_backend) }}
{{lang.words.note|title()}}: {{lang.add_page.desc.def_backend}}, {{lang.add_page.desc.def_backend_exit}}.
Add Frontend {{lang.words.generate|title()}} {{lang.words.config}}

{{lang.words.add|title()}} {{lang.words.backend}}

{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.server}}:
{{lang.words.note|title()}}: {{lang.phrases.master_slave}}
{{lang.add_page.desc.back_des1}}

{{lang.add_page.desc.listener_desc2}}

{{lang.add_page.desc.listener_desc3}}
{{lang.words.name|title()}}: {{ input('new_backend', title=lang.words.name|title() + ' ' +lang.words.backend, placeholder="web_80", required='required') }}
{{lang.words.mode|title()}}: {% set values = dict() %} {% set values = {'http':'http','tcp':'tcp'} %} {{ select('backend-mode-select', name='mode', values=values, selected='http', required='required', class='force_close') }}
{{lang.words.balance|title()}}: {{ select('balance', values=balance_params, selected='roundrobin', required='required', class='force_close') }}
{{lang.words.health|title()}} {{lang.words.check}}: {{ select('backend_checks', name='health_check', values=checks, selected='', class='force_close') }}
{{lang.words.headers|title()}}:
ACL:
Web {{lang.words.acceleration}}: {{ checkbox('compression3', name="compression", title=lang.add_page.desc.http_compression, value='1', desc=lang.words.compression|title()) }} {{ checkbox('cache3', name="cache", title=lang.words.enable|title()+' '+lang.words.cache, value='2', desc=lang.words.cache|title()) }} {{ checkbox('ssl_offloading2', title=lang.add_page.desc.http_https, desc='SSL Offloading') }}
{{lang.words.options|title()}}: {{ checkbox('forward_for2', title=lang.add_page.desc.forward_for, desc='Forward for') }} {{ checkbox('redispatch2', title=lang.add_page.desc.redispatch, desc='Redispatch') }} {% set values = dict() %} {% set values = {'Off':'Off','Server only':'Server only','Force close':'Force close','Pretend keep alive':'Pretend keep alive'} %} {{ select('force_close', values=values, first='Force HTTP close', title=lang.add_page.desc.force_close, class='force_close') }} {{ checkbox('cookie2', title=lang.add_page.desc.cookie, desc=lang.words.set|title()+' cookie', value='1') }} {{ checkbox('options-backend-show', title=lang.add_page.buttons.set_options_m, desc=lang.add_page.buttons.set_options) }}
{{lang.words.servers|title()}}: {% include 'include/add_servers.html' %}

{{ checkbox('template-backend', name='template', title=lang.add_page.desc.server_template, value='template', desc=lang.add_page.desc.server_template) }}
{{lang.words.check|title()}}:
{{lang.add_page.desc.def_check}}: inter 2000 rise 2 fall 5
{{ checkbox('circuit_breaking_backend', name="circuit_breaking", desc='Circuit Breaking', title=lang.add_page.desc.circuit_breaking, value='1') }}
{{lang.words.add|title()}} {{lang.words.backend|title()}} {{lang.words.generate|title()}} {{lang.words.config}}

SSL

{{lang.words.view|title()}} {{lang.words.cert2}} {{lang.words.upload|title()}} {{lang.words.certs}}
{{lang.words.upload|title()}} SSL {{lang.words.certs}} {{lang.words.cert_name|title()}} {{lang.add_page.desc.paste_cert}}
{{ input('ssl_name') }}

Let's Encrypt

{{lang.words.server|title()}} {{lang.words.domain|title()}} {{lang.words.email|title()}}
{{ input('lets_domain', placeholder="example.com") }} {{ input('lets_email') }}
{% for option in options %} {% if option.groups == group or group == '1' %} {% endif %} {% endfor %}
Id {{lang.words.params|title()}}
{{ option.id }}

+ {{lang.words.add|title()}}

{{lang.add_page.desc.options}}
{% for s in saved_servers %} {% if s.groups == group or group == '1' %} {% endif %} {% endfor %}
{{lang.words.server|title()}} {{lang.words.desc|title()}}

+ {{lang.words.add|title()}}

{{lang.add_page.desc.servers}}

{{lang.words.add|title()}} {{lang.words.userlists}}

{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.server}}:
{{lang.words.note|title()}}: {{lang.phrases.master_slave}}
{{lang.add_page.desc.userlist_desc}}
{{lang.words.name|title()}}: {{ input('new_userlist', required='required', title=lang.add_page.desc.userlist_name, placeholder="basic-auth-list") }}
{{lang.words.groups|title()}}: {{ input('userlist-group', title=lang.add_page.desc.userlist_user_grp, placeholder="group_name") }}
{{lang.add_page.desc.userlist_group}}
{{lang.words.user|title()}}: {{ input('userlist-user', required='required', title=lang.words.username|title(), placeholder="user_name") }} {{ input('userlist-password', required='required', title=lang.add_page.desc.userlist_pass, placeholder="password") }} {{ input('userlist-user-group', title=lang.add_page.desc.userlist_user_grp, placeholder="group") }}
{{lang.add_page.desc.userlist_user}}
{{lang.words.add|title()}} {{lang.words.userlist|title()}} {{lang.words.generate|title()}} {{lang.words.config}}

{{lang.words.existing|title()}} {{lang.words.userlists}}

{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.server}}:
{{lang.words.note|title()}}: {{lang.phrases.master_slave}}
{{lang.words.show|title()}} {{lang.words.userlists}}
{{lang.add_page.desc.userlist}}
{{lang.words.read|title()}} {{lang.words.here}} {{lang.phrases.howto_user}} {{lang.words.userlists}}

{{lang.words.add|title()}} Peer

{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.server}}:
{{lang.words.note|title()}}: {{lang.phrases.master_slave}}
{{lang.add_page.desc.peers}}
Peers {{lang.words.name}}: {{ input('peers-name', title="Peers "+lang.words.name, placeholder="peers name") }}
Peers {{lang.words.servers}}: : :
: :
{{lang.words.add|title()}} peer {{lang.words.generate|title()}} {{lang.words.config}}
{{lang.add_page.desc.peers_master}}
{{lang.add_page.desc.peers_slave}}
{{lang.words.read|title()}} {{lang.words.here}} {{lang.phrases.howto_user}} peers
{{ input('group', value=group, type='hidden') }}
{{lang.words.new|title()}} {{lang.words.blacklist}} {{lang.words.server|title()}} {{lang.words.for}} {{lang.words.uploading}} {{lang.words.existing|title()}} {{lang.words.blacklists}}
{{lang.words.name|title()}}: {{ input('new_blacklist_name') }} {% for list in black_lists %} {{ list }} {% endfor %}
{{lang.words.new|title()}} {{lang.words.whitelist}} {{lang.words.server|title()}} {{lang.words.for}} {{lang.words.uploading}} {{lang.words.existing|title()}} {{lang.words.whitelists}}
{{lang.words.name|title()}}: {{ input('new_whitelist_name') }} {% for list in white_lists %} {{ list }} {% endfor %}
{{lang.add_page.desc.lists_howto}} {{lang.words.article}}
{{ input('group', value=group, type='hidden') }}
{{lang.words.new|title()}} {{lang.words.map}} {{lang.words.server|title()}} {{lang.words.for}} {{lang.words.uploading}} {{lang.words.existing|title()}} {{lang.words.maps}}
{{lang.words.name|title()}}: {{ input('new_map_name') }} {% for map in maps %} {{ map }} {% endfor %}
{{lang.add_page.desc.lists_howto}} {{lang.words.article}}
{% include 'include/del_confirm.html' %}
{% endblock %}