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