new options

This commit is contained in:
Mateusz Gruszczyński
2025-11-03 09:39:34 +01:00
parent e4a3671f90
commit 72bf6eb9d1
5 changed files with 168 additions and 103 deletions

View File

@@ -78,6 +78,15 @@
placeholder="80" min="1" max="65535" required>
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-12">
<label for="frontend_hostname" class="form-label">Frontend Hostname (Domain)</label>
<input type="text" class="form-control" id="frontend_hostname" name="frontend_hostname"
placeholder="e.g. hosts.h.linuxiarz.pl" required>
<div class="form-text">Domain name for the ACL rule - traffic will be matched by Host header</div>
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-6">
@@ -101,16 +110,6 @@
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-12">
<label for="frontend_hostname" class="form-label">Frontend Hostname (Domain)</label>
<input type="text" class="form-control" id="frontend_hostname" name="frontend_hostname"
placeholder="e.g. hosts.h.linuxiarz.pl" required>
<div class="form-text">Domain name for the ACL rule - traffic will be matched by Host header</div>
</div>
</div>
<!-- SSL Section -->
<div class="row g-3 mb-3">
<div class="col-md-12">
@@ -125,8 +124,9 @@
<div class="row g-3 mb-3 d-none" id="ssl_fields">
<div class="col-md-12">
<label for="ssl_cert_path" class="form-label">SSL Certificate Path</label>
<small>Upload certs in /ssl/</small>
<label for="ssl_cert_path" class="form-label">SSL Certificate Path
<small>Upload certs in /ssl/</small></label>
<input type="text" class="form-control" id="ssl_cert_path" name="ssl_cert_path"
value="/app/ssl/haproxy-configurator.pem">
<div class="form-text">Full path to .pem file</div>
@@ -142,6 +142,29 @@
</div>
</div>
<!-- Backend SSL Redirect -->
<div class="row g-3 mb-3">
<div class="col-md-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="backend_ssl_redirect"
name="backend_ssl_redirect">
<label class="form-check-label" for="backend_ssl_redirect">
<i class="bi bi-arrow-repeat me-1"></i>Add HTTP Redirect to HTTPS
</label>
<div class="form-text small">Creates additional frontend on port 80 to redirect HTTP to HTTPS backend</div>
</div>
</div>
</div>
<div class="row g-3 mb-3 d-none" id="backend_ssl_fields">
<div class="col-md-12">
<label for="ssl_redirect_backend_name" class="form-label">Redirect Backend Name (HTTP → HTTPS)</label>
<input type="text" class="form-control" id="ssl_redirect_backend_name"
name="ssl_redirect_backend_name" placeholder="e.g. be_redirect">
<div class="form-text">Name for the redirect backend that will push traffic to HTTPS</div>
</div>
</div>
<hr class="my-4">
<!-- BACKEND SECTION -->
@@ -369,79 +392,70 @@
<hr class="my-4">
<!-- ACL SECTION -->
<h6 class="text-primary mb-3"><i class="bi bi-diagram-3 me-2"></i>ACL & Routing</h6>
<!-- CUSTOM ACL SECTION (NEW) -->
<h6 class="text-primary mb-3"><i class="bi bi-shuffle me-2"></i>Custom ACL Rules (Advanced)</h6>
<div class="row g-3 mb-3 http-only">
<div class="col-md-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="add_acl" name="add_acl">
<label class="form-check-label" for="add_acl">
<i class="bi bi-shuffle me-1"></i>Add ACL
<input class="form-check-input" type="checkbox" id="add_custom_acl" name="add_custom_acl">
<label class="form-check-label" for="add_custom_acl">
<i class="bi bi-sliders me-1"></i>Add Custom ACL Rule
</label>
<div class="form-text small">Create additional routing or blocking rules beyond hostname matching</div>
</div>
</div>
<div class="col-md-4 d-none" id="acl_fields">
<input type="text" class="form-control" id="acl" name="acl" placeholder="acl_name">
</div>
<!-- Custom ACL Fields (Hidden by default) -->
<div class="row g-3 mb-3 http-only d-none" id="custom_acl_fields">
<div class="col-md-3">
<label for="custom_acl_name" class="form-label">ACL Name</label>
<input type="text" class="form-control" id="custom_acl_name" name="custom_acl_name"
placeholder="e.g. is_admin_path">
<div class="form-text small">Unique identifier for this rule</div>
</div>
<div class="col-md-4 d-none" id="acl_fields">
<select class="form-select" id="acl_action" name="acl_action">
<option value="hdr">Header</option>
<option value="path">Path</option>
<div class="col-md-3">
<label for="custom_acl_type" class="form-label">Rule Type</label>
<select class="form-select" id="custom_acl_type" name="custom_acl_type">
<option value="path_beg">Path Begins With</option>
<option value="path_end">Path Ends With</option>
<option value="path_sub">Path Contains</option>
<option value="hdr">Header Contains</option>
<option value="src">Source IP</option>
<option value="method">HTTP Method</option>
</select>
</div>
<div class="col-md-4 d-none" id="acl_fields">
<input type="text" class="form-control" id="backend_name_acl" name="backend_name_acl"
placeholder="backend_name">
</div>
</div>
<!-- Path-based routing -->
<div class="row g-3 mb-3 http-only">
<div class="col-md-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="add_path_based" name="add_path_based">
<label class="form-check-label" for="add_path_based">
<i class="bi bi-arrow-repeat me-1"></i>Path-based Redirect
</label>
</div>
<div class="col-md-3">
<label for="custom_acl_value" class="form-label">Rule Value</label>
<input type="text" class="form-control" id="custom_acl_value" name="custom_acl_value"
placeholder="e.g. /admin, api, 192.168.1.0/24, GET">
<div class="form-text small">Value to match (path, header name, IP, method)</div>
</div>
<div class="col-md-4 d-none" id="base_redirect_fields">
<input type="text" class="form-control" id="redirect_domain_name" name="redirect_domain_name"
placeholder="domain.com">
</div>
<div class="col-md-4 d-none" id="base_redirect_fields">
<input type="text" class="form-control" id="root_redirect" name="root_redirect"
placeholder="/">
</div>
<div class="col-md-4 d-none" id="base_redirect_fields">
<input type="text" class="form-control" id="redirect_to" name="redirect_to"
placeholder="https://example.com">
</div>
</div>
<!-- Forbidden paths -->
<div class="row g-3 mb-3 http-only">
<div class="col-md-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="add_acl_path" name="add_acl_path">
<label class="form-check-label" for="add_acl_path">
<i class="bi bi-ban me-1"></i>Block Paths
</label>
</div>
<div class="col-md-3">
<label for="custom_acl_action" class="form-label">Action</label>
<select class="form-select" id="custom_acl_action" name="custom_acl_action">
<option value="route">Route to Backend</option>
<option value="deny">Block (Deny)</option>
<option value="redirect">Redirect</option>
</select>
</div>
<div class="col-md-4 d-none" id="forbidden_fields">
<input type="text" class="form-control" id="forbidden_name" name="forbidden_name"
placeholder="forbidden_acl">
<div class="col-md-6 d-none" id="acl_backend_select">
<label for="custom_acl_backend" class="form-label">Target Backend</label>
<input type="text" class="form-control" id="custom_acl_backend" name="custom_acl_backend"
placeholder="e.g. be_admin">
<div class="form-text small">Backend to send matching traffic to</div>
</div>
<div class="col-md-4 d-none" id="forbidden_fields">
<input type="text" class="form-control" id="allowed_ip" name="allowed_ip"
placeholder="192.168.1.0/24">
</div>
<div class="col-md-4 d-none" id="forbidden_fields">
<input type="text" class="form-control" id="forbidden_path" name="forbidden_path"
placeholder="/admin">
<div class="col-md-6 d-none" id="acl_redirect_select">
<label for="custom_acl_redirect_url" class="form-label">Redirect URL</label>
<input type="text" class="form-control" id="custom_acl_redirect_url" name="custom_acl_redirect_url"
placeholder="e.g. https://example.com/new-path">
<div class="form-text small">URL to redirect matching requests to</div>
</div>
</div>