diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml index 171e5c507..1d1652a30 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml @@ -1,10 +1,6 @@
- - - info - haproxy.general.enabled @@ -225,6 +221,4 @@ - - haproxy-general-settings
diff --git a/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/index.volt b/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/index.volt index 701e4da85..097dce52b 100644 --- a/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/index.volt +++ b/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/index.volt @@ -1,6 +1,6 @@ {# -Copyright (C) 2016 Frank Wall +Copyright (C) 2016-2017 Frank Wall OPNsense® is Copyright © 2014 – 2015 by Deciso B.V. All rights reserved. @@ -344,50 +344,155 @@ POSSIBILITY OF SUCH DAMAGE.
+
+
+

Quick Start Guide

+

{{ lang._('Welcome to the HAProxy plugin! This plugin is designed to offer all the features and flexibility HAProxy is famous for. If you are using HAProxy for the first time, please take some time to get familiar with it. The following information should help you to get started.')}}

+

{{ lang._('Note that you should configure everything in the following order:') }}

+
    +
  • {{ lang._('Add %sReal Servers:%s All physical or virtual servers that you want HAProxy to use should be added here.') | format('', '') }}
  • +
  • {{ lang._('Add %sBackend Pools:%s Group the previously added servers to build a server farm. All servers in a group usually deliver the same content. The Backend Pool cares for health monitoring and load distribution. A Backend Pool must also be configured if you only have a single server.') | format('', '')}}
  • +
  • {{ lang._('Add %sPublic Services:%s The Public Service listens for client connections, optionally applies rules and forwards client request data to the selected Backend Pool for load balancing (or proxying).') | format('', '') }}
  • +
  • {{ lang._('Finally enable HAProxy using the %sService Settings%s.') | format('', '') }}
  • +
+

{{ lang._('Please be aware that you need to %smanually%s add the required firewall rules for all configured services.') | format('', '') }}

+

{{ lang._('Further information is available in our %sHAProxy plugin documentation%s and of course in the %sofficial HAProxy documentation%s. Be sure to report bugs and request features on our %sGitHub issue page%s. Code contributions are also very welcome!') | format('', '', '', '', '', '') }}

+
+
+
+ +
+
+

Real Servers

+

{{ lang._('HAProxy needs to know which servers should be used to serve content. The following minimum information must be provided for each server:') }}

+
    +
  • {{ lang._('%sFQDN or IP:%s The IP address or fully-qualified domain name that should be used when communicating with your server.') | format('', '') }}
  • +
  • {{ lang._('%sPort:%s The TCP or TCP port that should be used.') | format('', '') }}
  • +
+

{{ lang._("Please note that advanced mode settings allow you to disable a certain server or to configure it as a backup server in a Backend Pool. Another neat option is the possibility to adjust a server's weight relative to other servers in the same Backend Pool.") }}

+
+
+
+ +
+
+

Virtual Services

+

{{ lang._("HAProxy requires two virtual services for it's loadbalancing and proxying features. The following virtual services must be configured for everything that should be served by HAProxy:") }}

+
    +
  • {{ lang._('%sBackend Pools:%s The HAProxy backend. Group the %spreviously added servers%s to build a server farm. All servers in a group usually deliver the same content. The Backend Pool cares for health monitoring and load distribution. A Backend Pool must also be configured if you only have a single server. The same Backend Pool may be used for multiple Public Services.') | format('', '', '', '') }}
  • +
  • {{ lang._('%sPublic Services:%s The HAProxy frontend. The Public Service listens for client connections, optionally applies rules and forwards client request data to the selected Backend Pool for load balancing (or proxying). Every Public Service needs to be connected to a %spreviously created Backend Pool%s.') | format('', '', '', '') }}
  • +
+

{{ lang._('Remember to add firewall rules for all configured Public Services.') }}

+
+
+
+ +
+
+

Rules & Checks

+

{{ lang._("These are all optional features, HAProxy can be used without them. After getting used to HAProxy you'll find these optional features pretty useful:") }}

+
    +
  • {{ lang._('%sHealth Monitors:%s The HAProxy "health checks". Health Monitors are used by %sBackend Pools%s to determine if a server is still able to respond to client requests. If a server fails a health check it will automatically be removed from a Backend Pool and healthy servers are automatically re-added.') | format('', '', '', '') }}
  • +
  • {{ lang._('%sConditions:%s HAProxy is capable of extracting data from requests, responses and other connection data and match it against predefined patterns. Use these powerful patterns to compose a condition that may be used in (multiple) Rules.') | format('', '') }}
  • +
  • {{ lang._('%sRules:%s Perform a large set of actions if one or more %sConditions%s match. These Rules may be used in %sBackend Pools%s as well as %sPublic Services%s.') | format('', '', '', '', '', '', '', '') }}
  • +
+

{{ lang._("For more information on HAProxy's %sACL feature%s see the %sofficial documentation%s.") | format('', '', '', '') }}

+
+
+
+ +
+
+

Advanced Features

+

{{ lang._("Most of the time these features are not required, but in certain situations they will be handy:") }}

+
    +
  • {{ lang._("%sError Messages:%s Return a custom message instead of errors generated by HAProxy. Useful to overwrite HAProxy's internal error messages. The message must represent the full HTTP response and include required HTTP headers.") | format('', '') }}
  • +
  • {{ lang._("%sLua scripts:%s Include your own Lua code/scripts to extend HAProxy's functionality. The Lua code can be used in certain %sRules%s, for example.") | format('', '', '', '') }}
  • +
+

{{ lang._("For more details visit HAProxy's official documentation regarding the %sError Files%s and the %sLua Script%s features.") | format('', '', '', '') }}

+
+
+
+ + {# add automatically generated tabs #} {% for tab in mainForm['tabs']|default([]) %} {% if tab['subtabs']|default(false) %} {# Tab with dropdown #} @@ -410,8 +515,8 @@ POSSIBILITY OF SUCH DAMAGE. {{ lang._('Enabled') }} - {{ lang._('Frontend ID') }} - {{ lang._('Frontend Name') }} + {{ lang._('Public Service ID') }} + {{ lang._('Public Service Name') }} {{ lang._('Description') }} {{ lang._('Commands') }} {{ lang._('ID') }} @@ -445,8 +550,8 @@ POSSIBILITY OF SUCH DAMAGE. {{ lang._('Enabled') }} - {{ lang._('Backend ID') }} - {{ lang._('Backend Name') }} + {{ lang._('Backend Pool ID') }} + {{ lang._('Backend Pool Name') }} {{ lang._('Description') }} {{ lang._('Commands') }} {{ lang._('ID') }} @@ -479,7 +584,7 @@ POSSIBILITY OF SUCH DAMAGE. - + @@ -515,8 +620,8 @@ POSSIBILITY OF SUCH DAMAGE.
{{ lang._('Server id') }}{{ lang._('Server ID') }} {{ lang._('Server Name') }} {{ lang._('Server Address') }} {{ lang._('Server Port') }}
- - + + @@ -549,8 +654,8 @@ POSSIBILITY OF SUCH DAMAGE.
{{ lang._('Health Check ID') }}{{ lang._('Health Check Name') }}{{ lang._('Health Monitor ID') }}{{ lang._('Health Monitor Name') }} {{ lang._('Description') }} {{ lang._('Commands') }} {{ lang._('ID') }}
- - + + @@ -583,8 +688,8 @@ POSSIBILITY OF SUCH DAMAGE.
{{ lang._('Action ID') }}{{ lang._('Action Name') }}{{ lang._('Rule ID') }}{{ lang._('Rule Name') }} {{ lang._('Description') }} {{ lang._('Commands') }} {{ lang._('ID') }}
- - + + @@ -618,7 +723,7 @@ POSSIBILITY OF SUCH DAMAGE. - + @@ -652,8 +757,8 @@ POSSIBILITY OF SUCH DAMAGE.
{{ lang._('ACL id') }}{{ lang._('ACL Name') }}{{ lang._('Condition ID') }}{{ lang._('Condition Name') }} {{ lang._('Description') }} {{ lang._('Commands') }} {{ lang._('ID') }}
{{ lang._('Enabled') }}{{ lang._('Lua ID') }}{{ lang._('Lua Script ID') }} {{ lang._('Lua Script Name') }} {{ lang._('Description') }} {{ lang._('Commands') }}
- - + + @@ -683,11 +788,11 @@ POSSIBILITY OF SUCH DAMAGE. {# include dialogs #} -{{ partial("layout_partials/base_dialog",['fields':formDialogFrontend,'id':'DialogFrontend','label':lang._('Edit Frontend')])}} -{{ partial("layout_partials/base_dialog",['fields':formDialogBackend,'id':'DialogBackend','label':lang._('Edit Backend')])}} +{{ partial("layout_partials/base_dialog",['fields':formDialogFrontend,'id':'DialogFrontend','label':lang._('Edit Public Service')])}} +{{ partial("layout_partials/base_dialog",['fields':formDialogBackend,'id':'DialogBackend','label':lang._('Edit Backend Pool')])}} {{ partial("layout_partials/base_dialog",['fields':formDialogServer,'id':'DialogServer','label':lang._('Edit Server')])}} -{{ partial("layout_partials/base_dialog",['fields':formDialogHealthcheck,'id':'DialogHealthcheck','label':lang._('Edit Health Check')])}} -{{ partial("layout_partials/base_dialog",['fields':formDialogAction,'id':'DialogAction','label':lang._('Edit Action')])}} -{{ partial("layout_partials/base_dialog",['fields':formDialogAcl,'id':'DialogAcl','label':lang._('Edit ACL')])}} +{{ partial("layout_partials/base_dialog",['fields':formDialogHealthcheck,'id':'DialogHealthcheck','label':lang._('Edit Health Monitor')])}} +{{ partial("layout_partials/base_dialog",['fields':formDialogAction,'id':'DialogAction','label':lang._('Edit Rule')])}} +{{ partial("layout_partials/base_dialog",['fields':formDialogAcl,'id':'DialogAcl','label':lang._('Edit Condition')])}} {{ partial("layout_partials/base_dialog",['fields':formDialogLua,'id':'DialogLua','label':lang._('Edit Lua Script')])}} -{{ partial("layout_partials/base_dialog",['fields':formDialogErrorfile,'id':'DialogErrorfile','label':lang._('Edit Error File')])}} +{{ partial("layout_partials/base_dialog",['fields':formDialogErrorfile,'id':'DialogErrorfile','label':lang._('Edit Error Message')])}}
{{ lang._('Error File ID') }}{{ lang._('Name') }}{{ lang._('Error Message ID') }}{{ lang._('Error Message Name') }} {{ lang._('Description') }} {{ lang._('Commands') }} {{ lang._('ID') }}