Fork project
This commit is contained in:
24
templates/config/base.router.config.html
Normal file
24
templates/config/base.router.config.html
Normal file
@ -0,0 +1,24 @@
|
||||
<div class="tab-pane fade" id="router" role="tabpanel">
|
||||
{% set value = get_config('whale:router_type') %}
|
||||
{% set cur_type = get_config("whale:router_type", "frp") %}
|
||||
<div class="form-group">
|
||||
<label for="router-type">
|
||||
Router type
|
||||
<small class="form-text text-muted">
|
||||
Select which router backend to use
|
||||
</small>
|
||||
</label>
|
||||
<select id="router-type" class="form-control custom-select" onchange="window.updateConfigs">
|
||||
{% for type in ["frp", "trp"] %}
|
||||
<option value="{{ type }}" {{ "selected" if value == type }}>{{ type }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% set template = "config/" + cur_type + ".router.config.html" %}
|
||||
{% include template %}
|
||||
<div class="submit-row float-right">
|
||||
<button type="submit" tabindex="0" class="btn btn-md btn-primary btn-outlined">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
25
templates/config/challenges.config.html
Normal file
25
templates/config/challenges.config.html
Normal file
@ -0,0 +1,25 @@
|
||||
<div class="tab-pane fade" id="challenges" role="tabpanel">
|
||||
{% for config, val in {
|
||||
"Subdomain Template": ("template_http_subdomain", "Controls how the subdomain of a container is generated"),
|
||||
"Flag Template": ("template_chall_flag", "Controls how a flag is generated"),
|
||||
}.items() %}
|
||||
{% set value = get_config('whale:' + val[0]) %}
|
||||
<div class="form-group">
|
||||
<label for="{{ val[0].replace('_', '-') }}">
|
||||
{{ config }}
|
||||
<small class="form-text text-muted">
|
||||
{{ val[1] }}
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="{{ val[0].replace('_', '-') }}" name="{{ 'whale:' + val[0] }}"
|
||||
{% if value != None %}value="{{ value }}"{% endif %}>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="submit-row float-right">
|
||||
<button type="submit" tabindex="0" class="btn btn-md btn-primary btn-outlined">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
122
templates/config/docker.config.html
Normal file
122
templates/config/docker.config.html
Normal file
@ -0,0 +1,122 @@
|
||||
<div class="tab-pane fade show active" id="docker" role="tabpanel" aria-autocomplete="none">
|
||||
<h5>Common</h5>
|
||||
<small class="form-text text-muted">
|
||||
Common configurations for both standalone and grouped containers
|
||||
</small><br>
|
||||
{% for config, val in {
|
||||
"API URL": ("docker_api_url", "Docker API to connect to"),
|
||||
"Credentials": ("docker_credentials", "docker.io username and password, separated by ':'. useful for private images"),
|
||||
"Swarm Nodes": ("docker_swarm_nodes", "Will pick up one from it, You should set your node with label name=windows-* or name=linux-*. Separated by commas."),
|
||||
}.items() %}
|
||||
{% set value = get_config('whale:' + val[0]) %}
|
||||
<div class="form-group">
|
||||
<label for="{{ val[0].replace('_', '-') }}">
|
||||
{{ config }}
|
||||
<small class="form-text text-muted">{{ val[1] }}</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="{{ val[0].replace('_', '-') }}" name="{{ 'whale:' + val[0] }}"
|
||||
{% if value != None %}value="{{ value }}"{% endif %}>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% set use_ssl = get_config('whale:docker_use_ssl') %}
|
||||
<div class="form-check">
|
||||
<input type="checkbox" id="docker-use-ssl" name="whale:docker_use_ssl"
|
||||
{% if use_ssl == True %}checked{% endif %}>
|
||||
<label for="docker-use-ssl">Use SSL</label>
|
||||
</div>
|
||||
<div class="container" id="docker-ssl-config">
|
||||
<div class="form-group">
|
||||
<label for="docker-ssl-ca-cert">
|
||||
SSL CA Certificate
|
||||
<small class="form-text text-muted">
|
||||
the location of the CA certificate file used in ssl connection
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="docker-ssl-ca-cert" name="whale:docker_ssl_ca_cert"
|
||||
value="{{ get_config('whale:docker_ssl_ca_cert') }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="docker-ssl-client-cert">
|
||||
SSL Client Certificate
|
||||
<small class="form-text text-muted">
|
||||
the location of the client certificate file used in ssl connection
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="docker-ssl-client-cert" name="whale:docker_ssl_client_cert"
|
||||
value="{{ get_config('whale:docker_ssl_client_cert') }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="docker-ssl-client-key">
|
||||
SSL Client Key
|
||||
<small class="form-text text-muted">
|
||||
the location of the client key file used in ssl connection
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="docker-ssl-client-key" name="whale:docker_ssl_client_key"
|
||||
value="{{ get_config('whale:docker_ssl_client_key') }}">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function () {
|
||||
let config = document.getElementById('docker-ssl-config');
|
||||
let option = document.getElementById('docker-use-ssl');
|
||||
config.hidden = !option.checked;
|
||||
option.onclick = () => (config.hidden = !option.checked) || true;
|
||||
}) ()
|
||||
</script>
|
||||
<hr>
|
||||
<h5>Standalone Containers</h5>
|
||||
<small class="form-text text-muted">
|
||||
Typical challenges. Under most circumstances you only need to set these.
|
||||
</small><br>
|
||||
{% for config, val in {
|
||||
"Auto Connect Network": ("docker_auto_connect_network", "The network connected for single-containers. It's usually the same network as the frpc is in."),
|
||||
"Dns Setting": ("docker_dns", "Decide which dns will be used in container network."),
|
||||
}.items() %}
|
||||
{% set value = get_config('whale:' + val[0]) %}
|
||||
<div class="form-group">
|
||||
<label for="{{ val[0].replace('_', '-') }}">
|
||||
{{ config }}
|
||||
<small class="form-text text-muted">
|
||||
{{ val[1] }}
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="{{ val[0].replace('_', '-') }}" name="{{ 'whale:' + val[0] }}"
|
||||
{% if value != None %}value="{{ value }}"{% endif %}>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<hr>
|
||||
<h5>Grouped Containers</h5>
|
||||
<small class="form-text text-muted">
|
||||
Designed for multi-container challenges
|
||||
</small><br>
|
||||
{% for config, val in {
|
||||
"Auto Connect Containers": ("docker_auto_connect_containers","Decide which container will be connected to multi-container-network automatically. Separated by commas."),
|
||||
"Multi-Container Network Subnet": ("docker_subnet", "Subnet which will be used by auto created networks for multi-container challenges."),
|
||||
"Multi-Container Network Subnet New Prefix": ("docker_subnet_new_prefix", "Prefix for auto created network.")
|
||||
}.items() %}
|
||||
{% set value = get_config('whale:' + val[0]) %}
|
||||
<div class="form-group">
|
||||
<label for="{{ val[0].replace('_', '-') }}">
|
||||
{{ config }}
|
||||
<small class="form-text text-muted">
|
||||
{{ val[1] }}
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="{{ val[0].replace('_', '-') }}" name="{{ 'whale:' + val[0] }}"
|
||||
{% if value != None %}value="{{ value }}"{% endif %}>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="submit-row float-right">
|
||||
<button type="submit" tabindex="0" class="btn btn-md btn-primary btn-outlined">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
50
templates/config/frp.router.config.html
Normal file
50
templates/config/frp.router.config.html
Normal file
@ -0,0 +1,50 @@
|
||||
{% for config, val in {
|
||||
"API URL": ("frp_api_url", "Frp API to connect to"),
|
||||
"Http Domain Suffix": ("frp_http_domain_suffix", "Will be appended to the hash of a container"),
|
||||
"External Http Port": ("frp_http_port", "Keep in sync with frps:vhost_http_port"),
|
||||
"Direct IP Address":("frp_direct_ip_address","For direct redirect"),
|
||||
"Direct Minimum Port": ("frp_direct_port_minimum", "For direct redirect (pwn challenges)"),
|
||||
"Direct Maximum Port": ("frp_direct_port_maximum", "For direct redirect (pwn challenges)"),
|
||||
}.items() %}
|
||||
{% set value = get_config('whale:' + val[0]) %}
|
||||
<div class="form-group">
|
||||
<label for="{{ val[0].replace('_', '-') }}">
|
||||
{{ config }}
|
||||
<small class="form-text text-muted">
|
||||
{{ val[1] }}
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control" id="{{ val[0].replace('_', '-') }}" name="{{ 'whale:' + val[0] }}" {% if
|
||||
value !=None %}value="{{ value }}" {% endif %}>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% set frpc_template = get_config("whale:frp_config_template", "") %}
|
||||
<div class="form-group">
|
||||
<label for="frp-config-template">
|
||||
Frpc config template
|
||||
<small class="form-text text-muted">
|
||||
Frp config template, only need common section!
|
||||
</small>
|
||||
</label>
|
||||
<textarea class="form-control input-filled-valid" id="frp-config-template" rows="7"
|
||||
name="whale:frp_config_template">{{ frpc_template }}</textarea>
|
||||
</div>
|
||||
{% if frpc_template %}
|
||||
<div class="form-group">
|
||||
<label for="frps-config-template">
|
||||
Frps config template [generated]
|
||||
<small class="form-text text-muted">
|
||||
This configuration is generated with your settings above.
|
||||
</small>
|
||||
</label>
|
||||
<textarea class="form-control input-filled-valid grey-text" id="frps-config-template" rows="6" disabled>
|
||||
[common]
|
||||
{% for i in frpc_template.split('\n') %}
|
||||
{%- if 'token' in i -%}{{ i }}{%- endif -%}
|
||||
{%- if 'server_port' in i -%}{{ i.replace('server_port', 'bind_port') }}{%- endif -%}
|
||||
{% endfor %}
|
||||
vhost_http_port = {{ get_config('whale:frp_http_port') }}
|
||||
subdomain_host = {{ get_config('whale:frp_http_domain_suffix', '127.0.0.1.xip.io').lstrip('.') }}
|
||||
</textarea>
|
||||
</div>
|
||||
{% endif %}
|
||||
26
templates/config/limits.config.html
Normal file
26
templates/config/limits.config.html
Normal file
@ -0,0 +1,26 @@
|
||||
<div class="tab-pane fade" id="limits" role="tabpanel">
|
||||
{% for config, val in {
|
||||
"Max Container Count": ("docker_max_container_count", "The maximum number of countainers allowed on the server"),
|
||||
"Max Renewal Times": ("docker_max_renew_count", "The maximum times a user is allowed to renew a container"),
|
||||
"Docker Container Timeout": ("docker_timeout", "A container times out after [timeout] seconds."),
|
||||
}.items() %}
|
||||
{% set value = get_config('whale:' + val[0]) %}
|
||||
<div class="form-group">
|
||||
<label for="{{ val[0].replace('_', '-') }}">
|
||||
{{ config }}
|
||||
<small class="form-text text-muted">
|
||||
{{ val[1] }}
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control"
|
||||
id="{{ val[0].replace('_', '-') }}" name="{{ 'whale:' + val[0] }}"
|
||||
{% if value != None %}value="{{ value }}"{% endif %}>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="submit-row float-right">
|
||||
<button type="submit" tabindex="0" class="btn btn-md btn-primary btn-outlined">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
17
templates/config/trp.router.config.html
Normal file
17
templates/config/trp.router.config.html
Normal file
@ -0,0 +1,17 @@
|
||||
{% for config, val in {
|
||||
"API URL": ("trp_api_url", "trp API to connect to"),
|
||||
"Domain Suffix": ("trp_domain_suffix", "Will be used to generated the access link of a challenge"),
|
||||
"Listening Port": ("trp_listening_port", "Will be used to generated the access link of a challenge"),
|
||||
}.items() %}
|
||||
{% set value = get_config('whale:' + val[0]) %}
|
||||
<div class="form-group">
|
||||
<label for="{{ val[0].replace('_', '-') }}">
|
||||
{{ config }}
|
||||
<small class="form-text text-muted">
|
||||
{{ val[1] }}
|
||||
</small>
|
||||
</label>
|
||||
<input type="text" class="form-control" id="{{ val[0].replace('_', '-') }}" name="{{ 'whale:' + val[0] }}"
|
||||
{% if value != None %}value="{{ value }}" {% endif %}>
|
||||
</div>
|
||||
{% endfor %}
|
||||
Reference in New Issue
Block a user