Merge pull request #5367 from okxlin/adapt/resin-1panel

feat(app): add Resin
This commit is contained in:
okxlin
2026-07-30 20:44:16 +08:00
committed by GitHub
17 changed files with 337 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
PANEL_APP_PORT_HTTP=2260
RESIN_ADMIN_TOKEN=replace-with-a-strong-random-admin-token
RESIN_PROXY_TOKEN=replace-with-a-strong-random-proxy-token
APP_DATA_DIR=./data
TZ=Asia/Shanghai
CONTAINER_NAME=resin
+85
View File
@@ -0,0 +1,85 @@
additionalProperties:
formFields:
- default: 2260
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web and Proxy Port
labelZh: Web 与代理端口
label:
en: Web and Proxy Port
zh: Web 与代理端口
zh-Hant: Web 與代理連接埠
ja: Web・プロキシポート
ko: Web 및 프록시 포트
ru: Порт Web и прокси
ms: Port Web dan Proksi
pt-br: Porta Web e de Proxy
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: RESIN_ADMIN_TOKEN
labelEn: Admin Token
labelZh: 管理令牌
label:
en: Admin Token
zh: 管理令牌
zh-Hant: 管理權杖
ja: 管理トークン
ko: 관리자 토큰
ru: Токен администратора
ms: Token Pentadbir
pt-br: Token de Administrador
random: true
required: true
type: password
- default: ""
edit: true
envKey: RESIN_PROXY_TOKEN
labelEn: Proxy Token
labelZh: 代理令牌
label:
en: Proxy Token
zh: 代理令牌
zh-Hant: 代理權杖
ja: プロキシトークン
ko: 프록시 토큰
ru: Токен прокси
ms: Token Proksi
pt-br: Token de Proxy
random: true
required: true
type: password
- default: ./data
edit: true
envKey: APP_DATA_DIR
labelEn: Data Directory
labelZh: 数据目录
label:
en: Data Directory
zh: 数据目录
zh-Hant: 資料目錄
ja: データディレクトリ
ko: 데이터 디렉터리
ru: Каталог данных
ms: Direktori Data
pt-br: Diretório de Dados
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TZ
labelEn: Timezone
labelZh: 时区
label:
en: Timezone
zh: 时区
zh-Hant: 時區
ja: タイムゾーン
ko: 시간대
ru: Часовой пояс
ms: Zon waktu
pt-br: Fuso horário
required: true
type: text
View File
+32
View File
@@ -0,0 +1,32 @@
services:
resin:
image: "ghcr.io/resinat/resin:1.1.2"
container_name: ${CONTAINER_NAME}
restart: unless-stopped
environment:
- RESIN_AUTH_VERSION=V1
- RESIN_ADMIN_TOKEN=${RESIN_ADMIN_TOKEN}
- RESIN_PROXY_TOKEN=${RESIN_PROXY_TOKEN}
- RESIN_LISTEN_ADDRESS=0.0.0.0
- RESIN_PORT=2260
- TZ=${TZ}
ports:
- "${PANEL_APP_PORT_HTTP}:2260"
volumes:
- "${APP_DATA_DIR}/cache:/var/cache/resin"
- "${APP_DATA_DIR}/state:/var/lib/resin"
- "${APP_DATA_DIR}/log:/var/log/resin"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:2260/healthz >/dev/null || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
labels:
createdBy: "Apps"
networks:
- 1panel-network
networks:
1panel-network:
external: true
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
exit 0
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
docker-compose down --volumes
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
exit 0
+40
View File
@@ -0,0 +1,40 @@
# Resin
## 产品介绍
Resin 是一个高性能智能代理池网关,可将多个代理订阅聚合为统一的 HTTP、SOCKS5 和反向代理入口,并提供健康检查、智能调度、会话保持和可观测性。
## 主要功能
- 导入 sing-box、Clash、URI、Base64 及纯文本代理订阅
- 提供 HTTP、SOCKS5 和 URL 反向代理入口
- 支持节点健康探测、熔断、智能调度和粘性会话
- 通过 WebUI 管理订阅、节点、平台、租约和请求日志
- 持久化状态、缓存、指标与请求日志
## 访问说明
- 安装后通过 `http://<服务器 IP>:<Web 端口>` 打开管理界面,并使用安装时生成的管理令牌登录。
- HTTP 和 SOCKS5 正向代理与管理界面共用容器内的 `2260` 端口;客户端使用安装时生成的代理令牌认证。
- 新安装固定使用 Resin `V1` 认证格式;HTTP 和 SOCKS5 代理用户名格式为 `平台.账户`,未指定时可使用 `Default`
- WebUI 中新增自定义接入点时,还需要在 1Panel 编排中发布对应端口。Docker 无法为已经运行的容器动态增加端口映射。
## 安全说明
当前上游 `1.1.2` 镜像包含 Trivy 报告的 `CVE-2026-33186` Critical 漏洞以及若干 High 漏洞。本应用按维护者明确接受的安全例外提供,部署前应结合网络暴露范围评估风险,并在上游发布修复镜像后尽快升级。
## Introduction
Resin is a high-performance intelligent proxy pool gateway. It combines multiple proxy subscriptions behind unified HTTP, SOCKS5, and reverse-proxy entry points with health monitoring, smart routing, sticky sessions, and observability.
## Features
- Import sing-box, Clash, URI, Base64, and plain-text proxy subscriptions
- Serve HTTP, SOCKS5, and URL-based reverse proxy traffic
- Monitor node health and provide circuit breaking, smart scheduling, and sticky sessions
- Manage subscriptions, nodes, platforms, leases, and request logs through the WebUI
- Persist state, cache, metrics, and request logs
## Security Notice
The current upstream `1.1.2` image contains the Trivy-reported Critical vulnerability `CVE-2026-33186` and several High vulnerabilities. This package is provided under an explicitly accepted maintainer exception. Review the exposure risk before deployment and upgrade when upstream publishes a fixed image.
+33
View File
@@ -0,0 +1,33 @@
name: Resin
tags:
- 网络工具
- 面板
title: 高性能智能代理池网关
description: 高性能智能代理池网关
additionalProperties:
key: resin
name: Resin
tags:
- Network
- Tool
shortDescZh: 高性能智能代理池网关
shortDescEn: High-performance intelligent proxy pool gateway
description:
en: Turn large proxy subscriptions into a stable, intelligent, and observable gateway with sticky sessions.
zh: 将大量代理订阅整合为稳定、智能、可观测并支持会话保持的统一网关。
zh-Hant: 將大量代理訂閱整合為穩定、智慧、可觀測並支援工作階段保持的統一閘道。
ja: 大量のプロキシサブスクリプションを、セッション維持に対応した安定的でインテリジェントかつ観測可能な統合ゲートウェイに集約します。
ko: 대규모 프록시 구독을 세션 고정 기능을 갖춘 안정적이고 지능적이며 관찰 가능한 통합 게이트웨이로 구성합니다.
ru: Объединяйте множество подписок на прокси в стабильный, интеллектуальный и наблюдаемый шлюз с закреплением сеансов.
ms: Satukan langganan proksi berskala besar menjadi get laluan yang stabil, pintar dan boleh dipantau dengan sesi melekat.
pt-br: Reuna grandes assinaturas de proxy em um gateway estável, inteligente e observável com sessões persistentes.
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/Resinat/Resin
github: https://github.com/Resinat/Resin
document: https://github.com/Resinat/Resin/blob/v1.1.2/README.zh-CN.md
architectures:
- amd64
- arm64
+6
View File
@@ -0,0 +1,6 @@
PANEL_APP_PORT_HTTP=2260
RESIN_ADMIN_TOKEN=replace-with-a-strong-random-admin-token
RESIN_PROXY_TOKEN=replace-with-a-strong-random-proxy-token
APP_DATA_DIR=./data
TZ=Asia/Shanghai
CONTAINER_NAME=resin
+85
View File
@@ -0,0 +1,85 @@
additionalProperties:
formFields:
- default: 2260
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web and Proxy Port
labelZh: Web 与代理端口
label:
en: Web and Proxy Port
zh: Web 与代理端口
zh-Hant: Web 與代理連接埠
ja: Web・プロキシポート
ko: Web 및 프록시 포트
ru: Порт Web и прокси
ms: Port Web dan Proksi
pt-br: Porta Web e de Proxy
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: RESIN_ADMIN_TOKEN
labelEn: Admin Token
labelZh: 管理令牌
label:
en: Admin Token
zh: 管理令牌
zh-Hant: 管理權杖
ja: 管理トークン
ko: 관리자 토큰
ru: Токен администратора
ms: Token Pentadbir
pt-br: Token de Administrador
random: true
required: true
type: password
- default: ""
edit: true
envKey: RESIN_PROXY_TOKEN
labelEn: Proxy Token
labelZh: 代理令牌
label:
en: Proxy Token
zh: 代理令牌
zh-Hant: 代理權杖
ja: プロキシトークン
ko: 프록시 토큰
ru: Токен прокси
ms: Token Proksi
pt-br: Token de Proxy
random: true
required: true
type: password
- default: ./data
edit: true
envKey: APP_DATA_DIR
labelEn: Data Directory
labelZh: 数据目录
label:
en: Data Directory
zh: 数据目录
zh-Hant: 資料目錄
ja: データディレクトリ
ko: 데이터 디렉터리
ru: Каталог данных
ms: Direktori Data
pt-br: Diretório de Dados
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TZ
labelEn: Timezone
labelZh: 时区
label:
en: Timezone
zh: 时区
zh-Hant: 時區
ja: タイムゾーン
ko: 시간대
ru: Часовой пояс
ms: Zon waktu
pt-br: Fuso horário
required: true
type: text
View File
+32
View File
@@ -0,0 +1,32 @@
services:
resin:
image: "ghcr.io/resinat/resin:latest"
container_name: ${CONTAINER_NAME}
restart: unless-stopped
environment:
- RESIN_AUTH_VERSION=V1
- RESIN_ADMIN_TOKEN=${RESIN_ADMIN_TOKEN}
- RESIN_PROXY_TOKEN=${RESIN_PROXY_TOKEN}
- RESIN_LISTEN_ADDRESS=0.0.0.0
- RESIN_PORT=2260
- TZ=${TZ}
ports:
- "${PANEL_APP_PORT_HTTP}:2260"
volumes:
- "${APP_DATA_DIR}/cache:/var/cache/resin"
- "${APP_DATA_DIR}/state:/var/lib/resin"
- "${APP_DATA_DIR}/log:/var/log/resin"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:2260/healthz >/dev/null || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
labels:
createdBy: "Apps"
networks:
- 1panel-network
networks:
1panel-network:
external: true
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
exit 0
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
docker-compose down --volumes
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
exit 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB