feat:添加sub2clash到列表

This commit is contained in:
okxlin 2024-04-28 01:37:35 +08:00
parent 71eb059662
commit 3996296178
9 changed files with 304 additions and 0 deletions

View File

@ -0,0 +1,10 @@
CONTAINER_NAME="sub2clash"
PANEL_APP_PORT_HTTP="40223"
CACHE_EXPIRE="300"
CLASH_TEMPLATE="template_clash.yaml"
LOG_LEVEL="info"
META_TEMPLATE="template_meta.yaml"
PROXY_TEMPLATE="template_clash.yaml"
REQUEST_MAX_FILE_SIZE="1048576"
REQUEST_RETRY_TIMES="3"
SHORT_LINK_LENGTH="6"

View File

@ -0,0 +1,75 @@
additionalProperties:
formFields:
- default: 40223
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "template_meta.yaml"
edit: true
envKey: META_TEMPLATE
labelEn: Meta Template
labelZh: 默认 meta 模板文件名
required: true
type: text
- default: "template_clash.yaml"
edit: true
envKey: PROXY_TEMPLATE
labelEn: Clash Template
labelZh: 默认 clash 模板文件名
required: true
type: text
- default: "template_clash.yaml"
edit: true
envKey: CLASH_TEMPLATE
labelEn: Clash Template
labelZh: 默认 clash 模板文件名
required: true
type: text
- default: "3"
edit: true
envKey: REQUEST_RETRY_TIMES
labelEn: Request Retry Times
labelZh: Get 请求重试次数
required: true
type: number
- default: "1048576"
edit: true
envKey: REQUEST_MAX_FILE_SIZE
labelEn: Request Max File Size
labelZh: Get 请求订阅文件最大大小byte
required: true
type: number
- default: "300"
edit: true
envKey: CACHE_EXPIRE
labelEn: Cache Expire
labelZh: 订阅缓存时间(秒)
required: true
type: number
- default: "info"
edit: true
envKey: LOG_LEVEL
labelEn: Log Level
labelZh: 日志等级
required: true
type: select
values:
- label: Debug
value: "debug"
- label: Info
value: "info"
- label: Warn
value: "warn"
- label: Error
value: "error"
- default: "6"
edit: true
envKey: SHORT_LINK_LENGTH
labelEn: Short Link Length
labelZh: 短链长度
required: true
type: number

View File

@ -0,0 +1,28 @@
version: '3'
services:
sub2clash:
image: nite07/sub2clash:0.1.0-alpha.3
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}"
volumes:
- ./data/logs:/app/logs
- ./data/templates:/app/templates
- ./data/data:/app/data
environment:
- PORT=${PANEL_APP_PORT_HTTP}
- META_TEMPLATE=${META_TEMPLATE}
- PROXY_TEMPLATE=${PROXY_TEMPLATE}
- REQUEST_RETRY_TIMES=${REQUEST_RETRY_TIMES}
- REQUEST_MAX_FILE_SIZE=${REQUEST_MAX_FILE_SIZE}
- CACHE_EXPIRE=${CACHE_EXPIRE}
- LOG_LEVEL=${LOG_LEVEL}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

59
apps/sub2clash/README.md Normal file
View File

@ -0,0 +1,59 @@
# sub2clash
将订阅链接转换为 Clash、Clash.Meta 配置
[预览](https://www.nite07.com/sub)
## 特性
- 开箱即用的规则、策略组配置
- 自动根据节点名称按国家划分策略组
- 支持多订阅合并
- 支持添加自定义 Rule Provider、Rule
- 支持多种协议
- Shadowsocks
- ShadowsocksR
- Vmess
- Vless Clash.Meta
- Trojan
- Hysteria Clash.Meta
- Hysteria2 Clash.Meta
## 使用
### 运行
- [docker compose](./docker-compose.yml)
- 运行[二进制文件](https://github.com/nitezs/sub2clash/releases/latest)
### 配置
可以通过编辑 .env 文件来修改默认配置docker 直接添加环境变量
| 变量名 | 说明 | 默认值 |
| --------------------- | ---------------------------------------------- | --------------------- |
| PORT | 端口 | `8011` |
| META_TEMPLATE | 默认 meta 模板文件名 | `template_meta.yaml` |
| CLASH_TEMPLATE | 默认 clash 模板文件名 | `template_clash.yaml` |
| REQUEST_RETRY_TIMES | Get 请求重试次数 | `3` |
| REQUEST_MAX_FILE_SIZE | Get 请求订阅文件最大大小byte | `1048576` |
| CACHE_EXPIRE | 订阅缓存时间(秒) | `300` |
| LOG_LEVEL | 日志等级,可选值 `debug`,`info`,`warn`,`error` | `info` |
| SHORT_LINK_LENGTH | 短链长度 | `6` |
### API
[API 文档](./API.md)
### 模板
可以通过变量自定义模板中的策略组代理节点
具体参考下方默认模板
- `<all>` 为添加所有节点
- `<countries>` 为添加所有国家策略组
- `<地区二位字母代码>` 为添加指定地区所有节点,例如 `<hk>` 将添加所有香港节点
#### 默认模板
- [Clash](./templates/template_clash.yaml)
- [Clash.Meta](./templates/template_meta.yaml)

19
apps/sub2clash/data.yml Normal file
View File

@ -0,0 +1,19 @@
name: sub2clash
tags:
- 工具
title: 将节点和订阅转换为 clash(meta) 配置
description: 将节点和订阅转换为 clash(meta) 配置
additionalProperties:
key: sub2clash
name: sub2clash
tags:
- Tool
shortDescZh: 将节点和订阅转换为 clash(meta) 配置
shortDescEn: Converting nodes and subscriptions to clash(meta) configuration
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://www.nite07.com/sub
github: https://github.com/nitezs/sub2clash
document: https://github.com/nitezs/sub2clash

View File

@ -0,0 +1,10 @@
CONTAINER_NAME="sub2clash"
PANEL_APP_PORT_HTTP="40223"
CACHE_EXPIRE="300"
CLASH_TEMPLATE="template_clash.yaml"
LOG_LEVEL="info"
META_TEMPLATE="template_meta.yaml"
PROXY_TEMPLATE="template_clash.yaml"
REQUEST_MAX_FILE_SIZE="1048576"
REQUEST_RETRY_TIMES="3"
SHORT_LINK_LENGTH="6"

View File

@ -0,0 +1,75 @@
additionalProperties:
formFields:
- default: 40223
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "template_meta.yaml"
edit: true
envKey: META_TEMPLATE
labelEn: Meta Template
labelZh: 默认 meta 模板文件名
required: true
type: text
- default: "template_clash.yaml"
edit: true
envKey: PROXY_TEMPLATE
labelEn: Clash Template
labelZh: 默认 clash 模板文件名
required: true
type: text
- default: "template_clash.yaml"
edit: true
envKey: CLASH_TEMPLATE
labelEn: Clash Template
labelZh: 默认 clash 模板文件名
required: true
type: text
- default: "3"
edit: true
envKey: REQUEST_RETRY_TIMES
labelEn: Request Retry Times
labelZh: Get 请求重试次数
required: true
type: number
- default: "1048576"
edit: true
envKey: REQUEST_MAX_FILE_SIZE
labelEn: Request Max File Size
labelZh: Get 请求订阅文件最大大小byte
required: true
type: number
- default: "300"
edit: true
envKey: CACHE_EXPIRE
labelEn: Cache Expire
labelZh: 订阅缓存时间(秒)
required: true
type: number
- default: "info"
edit: true
envKey: LOG_LEVEL
labelEn: Log Level
labelZh: 日志等级
required: true
type: select
values:
- label: Debug
value: "debug"
- label: Info
value: "info"
- label: Warn
value: "warn"
- label: Error
value: "error"
- default: "6"
edit: true
envKey: SHORT_LINK_LENGTH
labelEn: Short Link Length
labelZh: 短链长度
required: true
type: number

View File

@ -0,0 +1,28 @@
version: '3'
services:
sub2clash:
image: nite07/sub2clash:latest
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}"
volumes:
- ./data/logs:/app/logs
- ./data/templates:/app/templates
- ./data/data:/app/data
environment:
- PORT=${PANEL_APP_PORT_HTTP}
- META_TEMPLATE=${META_TEMPLATE}
- PROXY_TEMPLATE=${PROXY_TEMPLATE}
- REQUEST_RETRY_TIMES=${REQUEST_RETRY_TIMES}
- REQUEST_MAX_FILE_SIZE=${REQUEST_MAX_FILE_SIZE}
- CACHE_EXPIRE=${CACHE_EXPIRE}
- LOG_LEVEL=${LOG_LEVEL}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

BIN
apps/sub2clash/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB