mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-06 21:24:10 +00:00
Add /clash/:subid endpoint that returns complete Clash YAML config. User provides full template (DNS, routing, proxy-groups, rules) in settings, panel generates proxies from inbound/client data and injects via proxies: [] placeholder replacement. - New SubClashService reads template, generates vmess/vless/trojan/ss proxy entries with transport (ws/grpc/h2/tcp/httpupgrade), TLS, and Reality support - Settings: subClashEnable, subClashPath, subClashURI, subClashTemplate - UI: Clash settings tab, QR code on subpage, Desktop dropdown with clash-verge:// deep link preferring Clash URL - Version bump to v1.5.2-beta
51 lines
2.2 KiB
HTML
51 lines
2.2 KiB
HTML
{{define "settings/panel/subscription/clash"}}
|
|
<a-collapse default-active-key="1">
|
|
<a-collapse-panel key="1" header='{{ i18n "pages.xray.generalConfigs"}}'>
|
|
<a-setting-list-item paddings="small">
|
|
<template #title>{{ i18n "pages.settings.subPath"}}</template>
|
|
<template #description>{{ i18n "pages.settings.subPathDesc"}}</template>
|
|
<template #control>
|
|
<a-input type="text" v-model="allSetting.subClashPath"
|
|
@input="allSetting.subClashPath = ((typeof $event === 'string' ? $event : ($event && $event.target ? $event.target.value : '')) || '').replace(/[:*]/g, '')"
|
|
@blur="allSetting.subClashPath = (p => { p = p || '/'; if (!p.startsWith('/')) p='/' + p; if (!p.endsWith('/')) p += '/'; return p.replace(/\/+/g,'/'); })(allSetting.subClashPath)"
|
|
placeholder="/clash/"></a-input>
|
|
</template>
|
|
</a-setting-list-item>
|
|
<a-setting-list-item paddings="small">
|
|
<template #title>{{ i18n "pages.settings.subURI"}}</template>
|
|
<template #description>{{ i18n "pages.settings.subURIDesc"}}</template>
|
|
<template #control>
|
|
<a-input type="text" placeholder="(http|https)://domain[:port]/path/"
|
|
v-model="allSetting.subClashURI"></a-input>
|
|
</template>
|
|
</a-setting-list-item>
|
|
</a-collapse-panel>
|
|
<a-collapse-panel key="2" header="Clash YAML Template">
|
|
<a-setting-list-item paddings="small">
|
|
<template #title>Template</template>
|
|
<template #description>Complete Clash YAML template with proxies: [] placeholder. The panel will replace proxies: [] with generated proxy entries.</template>
|
|
<template #control>
|
|
<a-textarea v-model="allSetting.subClashTemplate" :rows="15"
|
|
placeholder="port: 7890
|
|
socks-port: 7891
|
|
allow-lan: false
|
|
mode: rule
|
|
log-level: info
|
|
proxies: []
|
|
proxy-groups:
|
|
- name: Proxy
|
|
type: select
|
|
proxies:
|
|
- DIRECT
|
|
dns:
|
|
enable: true
|
|
enhanced-mode: fake-ip
|
|
nameserver:
|
|
- 8.8.8.8
|
|
rules:
|
|
- MATCH,DIRECT"></a-textarea>
|
|
</template>
|
|
</a-setting-list-item>
|
|
</a-collapse-panel>
|
|
</a-collapse>
|
|
{{end}}
|