add easy mode switch

This commit is contained in:
Jordan Blasenhauer 2024-06-13 16:01:26 +02:00
parent 3a407f12c7
commit f92f2e8cb7
7 changed files with 297 additions and 324 deletions

View file

@ -62,18 +62,34 @@ const props = defineProps({
const data = reactive({
currStep: 0,
totalSteps: Object.keys(props.template).length,
isFinalStep: computed(() => data.currStep === data.totalSteps - 1),
isFirstStep: computed(() => data.currStep === 0),
});
const buttonSave = {
id: uuidv4(),
text: "action_save",
disabled: false,
color: "success",
size: "normal",
type: "submit",
containerClass: "flex justify-center",
};
const buttonPrev = {
id: uuidv4(),
text: "action_previous",
color: "info",
size: "normal",
};
const buttonNext = {
id: uuidv4(),
text: "action_next",
color: "info",
size: "normal",
};
onMounted(() => {
// Restart step one every time the component is mounted
data.currStep = 0;
@ -92,8 +108,8 @@ onMounted(() => {
<template v-for="(step, id) in props.template">
<Container v-if="data.currStep === id" class="col-span-12 w-full">
<Title type="card" :title="step.name" />
<Subtitle type="card" :subtitle="step.description" />
<Title type="card" :title="step.title" />
<Subtitle type="card" :subtitle="step.subtitle" />
<Container class="grid grid-cols-12 w-full relative">
<template
@ -105,8 +121,20 @@ onMounted(() => {
</Container>
</Container>
</template>
<Flex>
<Button v-bind="buttonSave" />
<Flex :flexClass="'justify-center'">
<Button
@click="data.currStep = Math.max(data.currStep - 1, 0)"
:disabled="data.isFirstStep"
v-bind="buttonPrev"
:containerClass="`mr-2`"
/>
<Button
:containerClass="`mr-2`"
@click="data.currStep = Math.min(data.currStep + 1, data.totalSteps)"
:disabled="data.isFinalStep"
v-bind="buttonNext"
/>
<Button :disabled="!data.isFinalStep" v-bind="buttonSave" />
</Flex>
</Container>
</template>

View file

@ -4,6 +4,7 @@ import Container from "@components/Widget/Container.vue";
import Combobox from "@components/Forms/Field/Combobox.vue";
import Advanced from "@components/Form/Advanced.vue";
import Raw from "@components/Form/Raw.vue";
import Easy from "@components/Form/Easy.vue";
import { v4 as uuidv4 } from "uuid";
/**
@ -118,5 +119,9 @@ onBeforeMount(() => {
v-if="data.currModeName === 'raw'"
:template="props.templates[data.currModeName][data.currTemplateName]"
/>
<Easy
v-if="data.currModeName === 'easy'"
:template="props.templates[data.currModeName][data.currTemplateName]"
/>
</Container>
</template>

View file

@ -132,6 +132,8 @@
"action_restart": "restart {name}",
"action_upload": "upload {name}",
"action_delete_all": "delete all {name}",
"action_previous" : "previous",
"action_next" : "next",
"home_version": "version",
"home_all_features_available": "all features are available",
"home_awaiting_compliance": "awaiting compliance",

View file

@ -56,7 +56,7 @@ onMounted(() => {
const data = {
advanced: {
"global config": [
default: [
{
id: "general",
stream: "partial",
@ -212,8 +212,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "yes",
disabled: false,
value: "no",
popovers: [
{
iconColor: "blue",
@ -247,7 +247,7 @@ const data = {
mobile: 12,
},
disabled: false,
value: "app1.example.com www.example.com",
value: "www.example.com",
popovers: [
{
iconColor: "orange",
@ -418,8 +418,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "info",
disabled: false,
value: "notice",
popovers: [
{
iconColor: "blue",
@ -772,8 +772,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "127.0.0.0/24 10.20.30.0/24",
disabled: false,
value: "127.0.0.0/8",
popovers: [
{
iconColor: "blue",
@ -2085,8 +2085,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "no",
disabled: false,
value: "yes",
popovers: [
{
iconColor: "orange",
@ -2986,8 +2986,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "no",
disabled: false,
value: "yes",
popovers: [
{
iconColor: "orange",
@ -3065,8 +3065,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: false,
value: "no",
disabled: true,
value: "yes",
popovers: [
{
iconColor: "orange",
@ -3442,8 +3442,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "yes",
disabled: false,
value: "no",
popovers: [
{
iconColor: "orange",
@ -4027,7 +4027,7 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: false,
disabled: true,
value: "",
popovers: [
{
@ -4514,8 +4514,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "yes",
disabled: false,
value: "dsfrgrdgrdgrdhgd",
popovers: [
{
iconColor: "orange",
@ -5040,7 +5040,7 @@ const data = {
},
disabled: false,
value:
"accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), cross-origin-isolated=(), display-capture=(), 2024-06-11T09:34:57.050404825Z document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), serial=(), usb=(), web-share=(), xr-spatial-tracking=()",
"accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), cross-origin-isolated=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), serial=(), usb=(), web-share=(), xr-spatial-tracking=()",
popovers: [
{
iconColor: "orange",
@ -5722,8 +5722,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "yes",
disabled: false,
value: "no",
popovers: [
{
iconColor: "blue",
@ -5914,8 +5914,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "no",
disabled: false,
value: "yes",
popovers: [
{
iconColor: "orange",
@ -6365,8 +6365,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "no",
disabled: false,
value: "yes",
popovers: [
{
iconColor: "blue",
@ -8975,7 +8975,7 @@ const data = {
mobile: 12,
},
disabled: false,
value: "no",
value: "yes",
popovers: [
{
iconColor: "orange",
@ -9052,8 +9052,8 @@ const data = {
tablet: 6,
mobile: 12,
},
disabled: true,
value: "no",
disabled: false,
value: "yes",
popovers: [
{
iconColor: "orange",
@ -9441,297 +9441,153 @@ const data = {
],
},
easy: {
"global config": {},
default: [
{
title: "Title 1",
subtitle: "subtitle 1",
settings: {
USE_UI: {
context: "multisite",
default: "no",
help: "Use UI",
id: "use-ui",
label: "Use UI",
regex: "^(yes|no)$",
type: "check",
containerClass: "z-1",
pattern: "^(yes|no)$",
inpType: "checkbox",
name: "Use UI",
columns: {
pc: 4,
tablet: 6,
mobile: 12,
},
disabled: false,
value: "yes",
popovers: [
{
iconColor: "orange",
iconName: "disk",
text: "inp_popover_multisite",
},
{
iconColor: "info",
iconName: "info",
text: "Use UI",
},
],
},
USE_CORS: {
context: "multisite",
default: "no",
help: "Use CORS",
id: "use-cors",
label: "Use CORS",
regex: "^(yes|no)$",
type: "check",
containerClass: "z-0",
pattern: "^(yes|no)$",
inpType: "checkbox",
name: "Use CORS",
columns: {
pc: 4,
tablet: 6,
mobile: 12,
},
disabled: true,
value: "yes",
popovers: [
{
iconColor: "orange",
iconName: "disk",
text: "inp_popover_multisite",
},
{
iconColor: "info",
iconName: "info",
text: "Use CORS",
},
],
},
},
},
{
title: "Title 2",
subtitle: "subtitle 2",
settings: {
USE_UI: {
context: "multisite",
default: "no",
help: "Use UI",
id: "use-ui",
label: "Use UI",
regex: "^(yes|no)$",
type: "check",
containerClass: "z-1",
pattern: "^(yes|no)$",
inpType: "checkbox",
name: "Use UI",
columns: {
pc: 4,
tablet: 6,
mobile: 12,
},
disabled: false,
value: "yes",
popovers: [
{
iconColor: "orange",
iconName: "disk",
text: "inp_popover_multisite",
},
{
iconColor: "info",
iconName: "info",
text: "Use UI",
},
],
},
USE_CORS: {
context: "multisite",
default: "no",
help: "Use CORS",
id: "use-cors",
label: "Use CORS",
regex: "^(yes|no)$",
type: "check",
containerClass: "z-0",
pattern: "^(yes|no)$",
inpType: "checkbox",
name: "Use CORS",
columns: {
pc: 4,
tablet: 6,
mobile: 12,
},
disabled: true,
value: "yes",
popovers: [
{
iconColor: "orange",
iconName: "disk",
text: "inp_popover_multisite",
},
{
iconColor: "info",
iconName: "info",
text: "Use CORS",
},
],
},
},
},
],
},
raw: {
"global config": {
IS_LOADING: "no",
NGINX_PREFIX: "/etc/nginx/",
HTTP_PORT: "8080",
HTTPS_PORT: "8443",
MULTISITE: "yes",
SERVER_NAME: "app1.example.com www.example.com",
WORKER_PROCESSES: "auto",
WORKER_RLIMIT_NOFILE: "2048",
WORKER_CONNECTIONS: "1024",
LOG_FORMAT:
'$host $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"',
LOG_LEVEL: "info",
DNS_RESOLVERS: "127.0.0.11",
DATASTORE_MEMORY_SIZE: "64m",
CACHESTORE_MEMORY_SIZE: "64m",
CACHESTORE_IPC_MEMORY_SIZE: "16m",
CACHESTORE_MISS_MEMORY_SIZE: "16m",
CACHESTORE_LOCKS_MEMORY_SIZE: "16m",
USE_API: "yes",
API_HTTP_PORT: "5000",
API_LISTEN_IP: "0.0.0.0",
API_SERVER_NAME: "bwapi",
API_WHITELIST_IP: "127.0.0.0/24 10.20.30.0/24",
AUTOCONF_MODE: "no",
SWARM_MODE: "no",
KUBERNETES_MODE: "no",
SERVER_TYPE: "http",
LISTEN_STREAM: "yes",
LISTEN_STREAM_PORT: "1337",
LISTEN_STREAM_PORT_SSL: "4242",
USE_UDP: "no",
USE_IPV6: "no",
IS_DRAFT: "no",
TIMERS_LOG_LEVEL: "debug",
BUNKERWEB_INSTANCES: "127.0.0.1",
USE_ANTIBOT: "no",
ANTIBOT_URI: "/challenge",
ANTIBOT_TIME_RESOLVE: "60",
ANTIBOT_TIME_VALID: "86400",
ANTIBOT_RECAPTCHA_SCORE: "0.7",
ANTIBOT_RECAPTCHA_SITEKEY: "",
ANTIBOT_RECAPTCHA_SECRET: "",
ANTIBOT_HCAPTCHA_SITEKEY: "",
ANTIBOT_HCAPTCHA_SECRET: "",
ANTIBOT_TURNSTILE_SITEKEY: "",
ANTIBOT_TURNSTILE_SECRET: "",
USE_AUTH_BASIC: "no",
AUTH_BASIC_LOCATION: "sitewide",
AUTH_BASIC_USER: "changeme",
AUTH_BASIC_PASSWORD: "changeme",
AUTH_BASIC_TEXT: "Restricted area",
USE_BACKUP: "yes",
BACKUP_SCHEDULE: "daily",
BACKUP_ROTATION: "7",
BACKUP_DIRECTORY: "/var/lib/bunkerweb/backups",
USE_BAD_BEHAVIOR: "yes",
BAD_BEHAVIOR_STATUS_CODES: "400 401 403 404 405 429 444",
BAD_BEHAVIOR_THRESHOLD: "10",
BAD_BEHAVIOR_COUNT_TIME: "60",
BAD_BEHAVIOR_BAN_TIME: "86400",
USE_BLACKLIST: "no",
BLACKLIST_IP: "",
BLACKLIST_RDNS: ".shodan.io .censys.io",
BLACKLIST_RDNS_GLOBAL: "yes",
BLACKLIST_ASN: "",
BLACKLIST_USER_AGENT: "",
BLACKLIST_URI: "",
BLACKLIST_IGNORE_IP: "",
BLACKLIST_IGNORE_RDNS: "",
BLACKLIST_IGNORE_ASN: "",
BLACKLIST_IGNORE_USER_AGENT: "",
BLACKLIST_IGNORE_URI: "",
BLACKLIST_IP_URLS: "https://www.dan.me.uk/torlist/?exit",
BLACKLIST_RDNS_URLS: "",
BLACKLIST_ASN_URLS: "",
BLACKLIST_USER_AGENT_URLS:
"https://raw.githubusercontent.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/master/_generator_lists/bad-user-agents.list",
BLACKLIST_URI_URLS: "",
BLACKLIST_IGNORE_IP_URLS: "",
BLACKLIST_IGNORE_RDNS_URLS: "",
BLACKLIST_IGNORE_ASN_URLS: "",
BLACKLIST_IGNORE_USER_AGENT_URLS: "",
BLACKLIST_IGNORE_URI_URLS: "",
USE_BROTLI: "no",
BROTLI_TYPES:
"application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml",
BROTLI_MIN_LENGTH: "1000",
BROTLI_COMP_LEVEL: "6",
USE_BUNKERNET: "no",
BUNKERNET_SERVER: "https://api.bunkerweb.io",
USE_CORS: "no",
CORS_ALLOW_ORIGIN: "*",
CORS_ALLOW_METHODS: "GET, POST, OPTIONS",
CORS_ALLOW_HEADERS:
"DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range",
CORS_ALLOW_CREDENTIALS: "no",
CORS_EXPOSE_HEADERS: "Content-Length,Content-Range",
CROSS_ORIGIN_OPENER_POLICY: "",
CROSS_ORIGIN_EMBEDDER_POLICY: "",
CROSS_ORIGIN_RESOURCE_POLICY: "",
CORS_MAX_AGE: "86400",
CORS_DENY_REQUEST: "yes",
USE_CLIENT_CACHE: "yes",
CLIENT_CACHE_EXTENSIONS:
"jpg|jpeg|png|bmp|ico|svg|tif|css|js|otf|ttf|eot|woff|woff2",
CLIENT_CACHE_ETAG: "yes",
CLIENT_CACHE_CONTROL: "public, max-age=15552000",
BLACKLIST_COUNTRY: "",
WHITELIST_COUNTRY: "",
USE_CUSTOM_SSL: "no",
CUSTOM_SSL_CERT: "",
CUSTOM_SSL_KEY: "",
CUSTOM_SSL_CERT_DATA: "",
CUSTOM_SSL_KEY_DATA: "",
DATABASE_URI: "sqlite:////var/lib/bunkerweb/db.sqlite3",
DATABASE_URI_READONLY: "",
DATABASE_LOG_LEVEL: "warning",
USE_DNSBL: "yes",
DNSBL_LIST:
"bl.blocklist.de problems.dnsbl.sorbs.net sbl.spamhaus.org xbl.spamhaus.org",
ERRORS: "",
INTERCEPTED_ERROR_CODES:
"400 401 403 404 405 413 429 500 501 502 503 504",
USE_GREYLIST: "no",
GREYLIST_IP: "",
GREYLIST_RDNS: "",
GREYLIST_RDNS_GLOBAL: "yes",
GREYLIST_ASN: "",
GREYLIST_USER_AGENT: "",
GREYLIST_URI: "",
GREYLIST_IP_URLS: "",
GREYLIST_RDNS_URLS: "",
GREYLIST_ASN_URLS: "",
GREYLIST_USER_AGENT_URLS: "",
GREYLIST_URI_URLS: "",
USE_GZIP: "yes",
GZIP_TYPES:
"application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml",
GZIP_MIN_LENGTH: "1000",
GZIP_COMP_LEVEL: "5",
GZIP_PROXIED: "no-cache no-store private expired auth",
INJECT_BODY: "",
CUSTOM_HEADER: "",
REMOVE_HEADERS:
"Server Expect-CT X-Powered-By X-AspNet-Version X-AspNetMvc-Version",
KEEP_UPSTREAM_HEADERS:
"Content-Security-Policy Permissions-Policy Feature-Policy X-Frame-Options",
STRICT_TRANSPORT_SECURITY: "max-age=31536000",
COOKIE_FLAGS: "* HttpOnly SameSite=Lax",
COOKIE_AUTO_SECURE_FLAG: "yes",
CONTENT_SECURITY_POLICY:
"object-src 'none'; form-action 'self'; frame-ancestors 'self';",
CONTENT_SECURITY_POLICY_REPORT_ONLY: "no",
REFERRER_POLICY: "strict-origin-when-cross-origin",
PERMISSIONS_POLICY:
"accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), cross-origin-isolated=(), display-capture=(), 2024-06-11T09:34:57.050404825Z document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), serial=(), usb=(), web-share=(), xr-spatial-tracking=()",
FEATURE_POLICY:
"accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'none'; battery 'none'; camera 'none'; display-capture 'none'; document-domain 'none'; encrypted-media 'none'; execution-while-not-rendered 'none'; execution-while-out-of-viewport 'none'; fullscreen 'none'; geolocation 'none'; gyroscope 'none'; layout-animation 'none'; legacy-image-formats 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; navigation-override 'none'; payment 'none'; picture-in-picture 'none'; publickey-credentials-get 'none'; speaker-selection 'none'; sync-xhr 'none'; unoptimized-images 'none'; unsized-media 'none'; usb 'none'; screen-wake-lock 'none'; web-share 'none'; xr-spatial-tracking 'none';",
X_FRAME_OPTIONS: "SAMEORIGIN",
X_CONTENT_TYPE_OPTIONS: "nosniff",
X_XSS_PROTECTION: "1; mode=block",
AUTO_LETS_ENCRYPT: "no",
EMAIL_LETS_ENCRYPT: "",
USE_LETS_ENCRYPT_STAGING: "no",
LETS_ENCRYPT_CLEAR_OLD_CERTS: "no",
USE_LIMIT_REQ: "yes",
LIMIT_REQ_URL: "/",
LIMIT_REQ_RATE: "2r/s",
USE_LIMIT_CONN: "yes",
LIMIT_CONN_MAX_HTTP1: "10",
LIMIT_CONN_MAX_HTTP2: "100",
LIMIT_CONN_MAX_STREAM: "10",
USE_METRICS: "yes",
METRICS_MEMORY_SIZE: "16m",
METRICS_MAX_BLOCKED_REQUESTS: "100",
DISABLE_DEFAULT_SERVER: "yes",
DISABLE_DEFAULT_SERVER_STRICT_SNI: "no",
REDIRECT_HTTP_TO_HTTPS: "no",
AUTO_REDIRECT_HTTP_TO_HTTPS: "yes",
ALLOWED_METHODS: "GET|POST|HEAD",
MAX_CLIENT_SIZE: "10m",
SERVE_FILES: "no",
ROOT_FOLDER: "",
SSL_PROTOCOLS: "TLSv1.2 TLSv1.3",
HTTP2: "yes",
HTTP3: "no",
HTTP3_ALT_SVC_PORT: "443",
LISTEN_HTTP: "yes",
USE_OPEN_FILE_CACHE: "no",
OPEN_FILE_CACHE: "max=1000 inactive=20s",
OPEN_FILE_CACHE_ERRORS: "yes",
OPEN_FILE_CACHE_MIN_USES: "2",
OPEN_FILE_CACHE_VALID: "30s",
EXTERNAL_PLUGIN_URLS: "",
DENY_HTTP_STATUS: "403",
SEND_ANONYMOUS_REPORT: "no",
USE_MODSECURITY: "yes",
USE_MODSECURITY_CRS: "yes",
MODSECURITY_CRS_VERSION: "3",
MODSECURITY_SEC_AUDIT_ENGINE: "RelevantOnly",
MODSECURITY_SEC_RULE_ENGINE: "On",
MODSECURITY_SEC_AUDIT_LOG_PARTS: "ABCFHZ",
REMOTE_PHP: "",
REMOTE_PHP_PATH: "",
LOCAL_PHP: "",
LOCAL_PHP_PATH: "",
PRO_LICENSE_KEY: "",
USE_REAL_IP: "no",
USE_PROXY_PROTOCOL: "no",
REAL_IP_FROM: "192.168.0.0/16 172.16.0.0/12 10.0.0.0/8",
REAL_IP_HEADER: "X-Forwarded-For",
REAL_IP_RECURSIVE: "yes",
REAL_IP_FROM_URLS: "",
REDIRECT_TO: "",
REDIRECT_TO_REQUEST_URI: "no",
REDIRECT_TO_STATUS_CODE: "301",
USE_REDIS: "no",
REDIS_HOST: "",
REDIS_PORT: "6379",
REDIS_DATABASE: "0",
REDIS_SSL: "no",
REDIS_SSL_VERIFY: "no",
REDIS_TIMEOUT: "1000",
REDIS_USERNAME: "",
REDIS_PASSWORD: "",
REDIS_SENTINEL_HOSTS: "",
REDIS_SENTINEL_USERNAME: "",
REDIS_SENTINEL_PASSWORD: "",
REDIS_SENTINEL_MASTER: "",
REDIS_KEEPALIVE_IDLE: "30000",
REDIS_KEEPALIVE_POOL: "10",
USE_REVERSE_PROXY: "no",
REVERSE_PROXY_INTERCEPT_ERRORS: "yes",
REVERSE_PROXY_CUSTOM_HOST: "",
REVERSE_PROXY_HOST: "",
REVERSE_PROXY_URL: "/",
REVERSE_PROXY_WS: "no",
REVERSE_PROXY_HEADERS: "",
REVERSE_PROXY_HEADERS_CLIENT: "",
REVERSE_PROXY_BUFFERING: "yes",
REVERSE_PROXY_KEEPALIVE: "no",
REVERSE_PROXY_AUTH_REQUEST: "",
REVERSE_PROXY_AUTH_REQUEST_SIGNIN_URL: "",
REVERSE_PROXY_AUTH_REQUEST_SET: "",
REVERSE_PROXY_CONNECT_TIMEOUT: "60s",
REVERSE_PROXY_READ_TIMEOUT: "60s",
REVERSE_PROXY_SEND_TIMEOUT: "60s",
REVERSE_PROXY_INCLUDES: "",
USE_PROXY_CACHE: "no",
PROXY_CACHE_PATH_LEVELS: "1:2",
PROXY_CACHE_PATH_ZONE_SIZE: "10m",
PROXY_CACHE_PATH_PARAMS: "max_size=100m",
PROXY_CACHE_METHODS: "GET HEAD",
PROXY_CACHE_MIN_USES: "2",
PROXY_CACHE_KEY: "$scheme$host$request_uri",
PROXY_CACHE_VALID: "200=24h 301=1h 302=24h",
PROXY_NO_CACHE: "$http_pragma $http_authorization",
PROXY_CACHE_BYPASS: "0",
USE_REVERSE_SCAN: "no",
REVERSE_SCAN_PORTS: "22 80 443 3128 8000 8080",
REVERSE_SCAN_TIMEOUT: "500",
GENERATE_SELF_SIGNED_SSL: "no",
SELF_SIGNED_SSL_EXPIRY: "365",
SELF_SIGNED_SSL_SUBJ: "/CN=www.example.com/",
SESSIONS_SECRET: "random",
SESSIONS_NAME: "random",
SESSIONS_IDLING_TIMEOUT: "1800",
SESSIONS_ROLLING_TIMEOUT: "3600",
SESSIONS_ABSOLUTE_TIMEOUT: "86400",
SESSIONS_CHECK_IP: "yes",
SESSIONS_CHECK_USER_AGENT: "yes",
USE_UI: "no",
UI_HOST: "",
USE_WHITELIST: "no",
WHITELIST_IP:
"20.191.45.212 40.88.21.235 40.76.173.151 40.76.163.7 20.185.79.47 52.142.26.175 20.185.79.15 52.142.24.149 40.76.162.208 40.76.163.23 40.76.162.191 40.76.162.247",
WHITELIST_RDNS:
".google.com .googlebot.com .yandex.ru .yandex.net .yandex.com .search.msn.com .baidu.com .baidu.jp .crawl.yahoo.net .fwd.linkedin.com .twitter.com .twttr.com .discord.com",
WHITELIST_RDNS_GLOBAL: "yes",
WHITELIST_ASN: "32934",
WHITELIST_USER_AGENT: "",
WHITELIST_URI: "",
WHITELIST_IP_URLS: "",
WHITELIST_RDNS_URLS: "",
WHITELIST_ASN_URLS: "",
WHITELIST_USER_AGENT_URLS: "",
WHITELIST_URI_URLS: "",
default: {
USE_GZIP: "dsfrgrdgrdgrdhgd",
USE_UI: "yes",
},
},
};

View file

@ -184,6 +184,18 @@ export default {
"sm:w-full",
"md:w-full",
"lg:w-full",
"relative",
"sm:relative",
"md:relative",
"lg:relative",
"absolute",
"sm:absolute",
"md:absolute",
"lg:absolute",
"fixed",
"sm:fixed",
"md:fixed",
"lg:fixed",
],
important: true,
darkMode: "class",

View file

@ -9388,6 +9388,76 @@
]
}
}
},
{
"title": "Title 2",
"subtitle": "subtitle 2",
"settings": {
"USE_UI": {
"context": "multisite",
"default": "no",
"help": "Use UI",
"id": "use-ui",
"label": "Use UI",
"regex": "^(yes|no)$",
"type": "check",
"containerClass": "z-1",
"pattern": "^(yes|no)$",
"inpType": "checkbox",
"name": "Use UI",
"columns": {
"pc": 4,
"tablet": 6,
"mobile": 12
},
"disabled": false,
"value": "yes",
"popovers": [
{
"iconColor": "orange",
"iconName": "disk",
"text": "inp_popover_multisite"
},
{
"iconColor": "info",
"iconName": "info",
"text": "Use UI"
}
]
},
"USE_CORS": {
"context": "multisite",
"default": "no",
"help": "Use CORS",
"id": "use-cors",
"label": "Use CORS",
"regex": "^(yes|no)$",
"type": "check",
"containerClass": "z-0",
"pattern": "^(yes|no)$",
"inpType": "checkbox",
"name": "Use CORS",
"columns": {
"pc": 4,
"tablet": 6,
"mobile": 12
},
"disabled": true,
"value": "yes",
"popovers": [
{
"iconColor": "orange",
"iconName": "disk",
"text": "inp_popover_multisite"
},
{
"iconColor": "info",
"iconName": "info",
"text": "Use CORS"
}
]
}
}
}
]
},

View file

@ -11,7 +11,7 @@ service_settings = {'ERRORS': {'value': '', 'global': True, 'method': 'scheduler
# Default template
default_template = {"name" : "default", "steps": [{"title" : "Title 1", "subtitle" : "subtitle 1", "settings" : ["USE_UI", "USE_CORS"]}], "configs" : {}, "settings" : {'USE_UI': 'no', 'USE_CORS': 'no', 'USE_GZIP': 'dsfrgrdgrdgrdhgd'}}
default_template = {"name" : "default", "steps": [{"title" : "Title 1", "subtitle" : "subtitle 1", "settings" : ["USE_UI", "USE_CORS"]}, {"title" : "Title 2", "subtitle" : "subtitle 2", "settings" : ["USE_UI", "USE_CORS"]}], "configs" : {}, "settings" : {'USE_UI': 'no', 'USE_CORS': 'no', 'USE_GZIP': 'dsfrgrdgrdgrdhgd'}}
def get_service_forms(templates = [], plugins = [], service_settings = {}):