Fork project
This commit is contained in:
60
utils/setup.py
Normal file
60
utils/setup.py
Normal file
@ -0,0 +1,60 @@
|
||||
from CTFd.utils import set_config
|
||||
|
||||
from ..models import WhaleRedirectTemplate, db
|
||||
|
||||
|
||||
def setup_default_configs():
|
||||
for key, val in {
|
||||
'setup': 'true',
|
||||
'docker_api_url': 'unix:///var/run/docker.sock',
|
||||
'docker_credentials': '',
|
||||
'docker_dns': '127.0.0.1',
|
||||
'docker_max_container_count': '100',
|
||||
'docker_max_renew_count': '5',
|
||||
'docker_subnet': '174.1.0.0/16',
|
||||
'docker_subnet_new_prefix': '24',
|
||||
'docker_swarm_nodes': 'linux-1',
|
||||
'docker_timeout': '3600',
|
||||
'frp_api_url': 'http://frpc:7400',
|
||||
'frp_http_port': '8080',
|
||||
'frp_http_domain_suffix': '127.0.0.1.nip.io',
|
||||
'frp_direct_port_maximum': '10100',
|
||||
'frp_direct_port_minimum': '10000',
|
||||
'template_http_subdomain': '{{ container.uuid }}',
|
||||
'template_chall_flag': '{{ "flag{"+uuid.uuid4()|string+"}" }}',
|
||||
}.items():
|
||||
set_config('whale:' + key, val)
|
||||
db.session.add(WhaleRedirectTemplate(
|
||||
'http',
|
||||
'http://{{ container.http_subdomain }}.'
|
||||
'{{ get_config("whale:frp_http_domain_suffix", "") }}'
|
||||
'{% if get_config("whale:frp_http_port", "80") != 80 %}:{{ get_config("whale:frp_http_port") }}{% endif %}/',
|
||||
'''
|
||||
[http_{{ container.user_id|string }}-{{ container.uuid }}]
|
||||
type = http
|
||||
local_ip = {{ container.user_id|string }}-{{ container.uuid }}
|
||||
local_port = {{ container.challenge.redirect_port }}
|
||||
subdomain = {{ container.http_subdomain }}
|
||||
use_compression = true
|
||||
'''
|
||||
))
|
||||
db.session.add(WhaleRedirectTemplate(
|
||||
'direct',
|
||||
'nc {{ get_config("whale:frp_direct_ip_address", "127.0.0.1") }} {{ container.port }}',
|
||||
'''
|
||||
[direct_{{ container.user_id|string }}-{{ container.uuid }}]
|
||||
type = tcp
|
||||
local_ip = {{ container.user_id|string }}-{{ container.uuid }}
|
||||
local_port = {{ container.challenge.redirect_port }}
|
||||
remote_port = {{ container.port }}
|
||||
use_compression = true
|
||||
|
||||
[direct_{{ container.user_id|string }}-{{ container.uuid }}_udp]
|
||||
type = udp
|
||||
local_ip = {{ container.user_id|string }}-{{ container.uuid }}
|
||||
local_port = {{ container.challenge.redirect_port }}
|
||||
remote_port = {{ container.port }}
|
||||
use_compression = true
|
||||
'''
|
||||
))
|
||||
db.session.commit()
|
||||
Reference in New Issue
Block a user