# 1panel-app
**Repository Path**: baishicoke/1panel-app
## Basic Information
- **Project Name**: 1panel-app
- **Description**: 默认分支为demo分支
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: demo
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-19
- **Last Updated**: 2025-05-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[TOC]
## 免责声明
### 1. 镜像容器适配
本项目仅针对原 `docker`镜像容器运行进行针对 `1Panel`应用商店的适配。我们不对任何原始镜像的有效性做出任何明示或暗示的保证或声明,并且不对使用本仓库应用所造成的任何影响负责。用户在使用本项目时应自行承担风险。
### 2. 法律遵守
用户在使用本仓库时必须遵守所在国家与地区的法律法规。某些应用可能受到特定国家法律的限制,用户需自行了解并遵守相关法律要求。本仓库不对用户违反法律法规所产生的任何后果负责。
### 3. 免责声明接受
用户在导入本仓库并使用其中的应用时,即表示用户已经阅读、理解并同意接受本免责声明的所有条款和条件。
请注意,本免责声明仅针对本仓库的使用情况,并不包括其他第三方应用或服务。对于与本仓库链接的第三方内容,我们不对其准确性、完整性、可靠性或合法性负责。
在使用本仓库之前,请确保已经阅读、理解并接受了本免责声明的所有条款和条件。
---
## 1. 简介
**本分支主要目的是维护clash代理软件**
## 2. 使用方式
### 2.1 国际互联网络
#### 2.1.1 使用 git 命令获取应用
`1Panel`计划任务类型 `Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令,
```shell
#!/bin/bash
# === 用户配置项 ===
USE_PROXY=false # 是否启用代理(true/false)
PROXY_URL="http://192.168.1.12:7777"
# === 获取 1Panel 安装路径 ===
BASE_DIR=$(which 1pctl | xargs grep '^BASE_DIR=' | cut -d'=' -f2)
# 检查 BASE_DIR 是否有效
if [[ -z "$BASE_DIR" || ! -d "$BASE_DIR" ]]; then
echo "❌ 无法获取 1Panel 安装路径,退出。"
exit 1
fi
# 设置路径和仓库
APP_PATH="$BASE_DIR/1panel/resource/apps/local"
REPO_URL="https://github.com/baishicoke/1panel-app"
BRANCH_NAME="demo"
TMP_DIR="$APP_PATH/appstore-localApps"
# 代理设置
if [[ "$USE_PROXY" == true ]]; then
export http_proxy="$PROXY_URL"
export https_proxy="$PROXY_URL"
echo "🌐 已启用代理:$PROXY_URL"
else
echo "🚫 未启用代理。"
fi
# 清理旧的临时目录(如果存在)
[ -d "$TMP_DIR" ] && rm -rf "$TMP_DIR"
# 克隆指定分支
echo "🚀 正在克隆 $BRANCH_NAME 分支..."
git clone -b "$BRANCH_NAME" "$REPO_URL" "$TMP_DIR"
if [ $? -ne 0 ]; then
echo "❌ 克隆失败,请检查网络、代理或仓库地址是否正确。"
[[ "$USE_PROXY" == true ]] && unset http_proxy https_proxy
exit 2
fi
# 拷贝 Clash 应用到目标目录
echo "📂 正在复制 Clash 应用到 $APP_PATH ..."
cp -rf "$TMP_DIR/clash/"* "$APP_PATH/"
# 删除临时目录
rm -rf "$TMP_DIR"
# 清除代理变量
[[ "$USE_PROXY" == true ]] && unset http_proxy https_proxy
# 成功提示
echo -e "\n✅ Clash 应用已成功复制到:$APP_PATH"
# by tomato
```
然后应用商店刷新本地应用即可。
#### 2.1.2 使用压缩包方式获取应用
`1Panel`计划任务类型 `Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令,
```shell
#!/bin/bash
# === 用户配置项 ===
USE_PROXY=false # 是否启用代理(true/false)
PROXY_URL="http://192.168.1.12:7777"
# === 获取 1Panel 安装路径 ===
BASE_DIR=$(which 1pctl | xargs grep '^BASE_DIR=' | cut -d'=' -f2)
# 检查 BASE_DIR 是否有效
if [[ -z "$BASE_DIR" || ! -d "$BASE_DIR" ]]; then
echo "❌ 无法获取 1Panel 安装路径,退出。"
exit 1
fi
# 设置路径和仓库
APP_PATH="$BASE_DIR/1panel/resource/apps/local"
ZIP_URL="https://github.com/baishicoke/1panel-app/archive/refs/heads/demo.zip"
ZIP_FILE="$APP_PATH/localApps.zip"
UNZIP_DIR="$APP_PATH/1panel-app-demo"
# 设置代理(如果启用)
if [[ "$USE_PROXY" == true ]]; then
export http_proxy="$PROXY_URL"
export https_proxy="$PROXY_URL"
echo "🌐 已启用代理:$PROXY_URL"
else
echo "🚫 未启用代理。"
fi
# 下载 zip 包
echo "📦 正在下载压缩包..."
wget -O "$ZIP_FILE" "$ZIP_URL"
if [ $? -ne 0 ]; then
echo "❌ 下载失败,请检查网络、代理或链接是否正确。"
[[ "$USE_PROXY" == true ]] && unset http_proxy https_proxy
exit 2
fi
# 解压并覆盖原有内容
echo "📂 正在解压..."
unzip -o -d "$APP_PATH" "$ZIP_FILE"
# 拷贝 apps 目录下的内容
echo "📁 正在复制应用..."
cp -rf "$UNZIP_DIR/clash/"* "$APP_PATH/"
# 清理
echo "🧹 正在清理临时文件..."
rm -rf "$UNZIP_DIR"
rm -f "$ZIP_FILE"
# 清除代理变量
[[ "$USE_PROXY" == true ]] && unset http_proxy https_proxy
# 成功提示
echo -e "\n✅ 应用已成功复制到:$APP_PATH"
# by tomato
```
然后应用商店刷新本地应用即可。
## 3.自动更新订阅方法
**本分支主要目的是维护clash代理软件
提供自动更新订阅脚本,将该脚本放到1panel的计划任务设置每天执行达到自动更新目的**
注意!
更改自动更新脚本变量:
| 参数含义 | 参数 |
| --------------------------------------------------------------------------------------------- | --------------- |
| 订阅地址 | BASE_URL |
| 请求类型一般默认不需要改 | FLAG |
| 容器名称 | CLASH_CONTAINER |
| 配置文件config.yaml路径
写到上一级文件夹即可
比如"./data/config.yaml"就写到"./data" | CONFIG_DIR |
```shell
#!/bin/bash
# === 变量定义区域 ===
BASE_URL=""
FLAG="&flag=clash"
URL="${BASE_URL}${FLAG}"
CONFIG_DIR="/volume1/docker/clashpremium"
CONFIG_TMP="${CONFIG_DIR}/config.file"
CONFIG_FINAL="${CONFIG_DIR}/config.yaml"
CLASH_CONTAINER="clash-premium"
echo "开始下载配置文件... 从URL: $URL"
wget -O "$CONFIG_TMP" "$URL"
if [ ! -s "$CONFIG_TMP" ]; then
echo "错误: 下载的配置文件为空,停止脚本执行!"
exit 1
else
echo "配置文件下载成功!"
fi
if grep -q "7890" "$CONFIG_TMP"; then
echo "配置文件包含 '7890',继续处理..."
mv "$CONFIG_TMP" "$CONFIG_FINAL"
echo "配置文件重命名为 config.yaml 完成。"
# === 兼容有无引号的 external-controller 替换 ===
sed -i "s/^[[:space:]]*external-controller:[[:space:]]*['\"]\{0,1\}.*:9090['\"]\{0,1\}/external-controller: 0.0.0.0:9090/" "$CONFIG_FINAL"
echo "配置文件中的 external-controller 已成功修改为 0.0.0.0:9090。"
echo "正在重启 Clash 容器(${CLASH_CONTAINER})..."
docker restart "$CLASH_CONTAINER"
if [ $? -eq 0 ]; then
echo "Clash 容器重启成功!"
else
echo "错误: Clash 容器重启失败!"
exit 1
fi
else
echo "警告: 配置文件中没有找到匹配的内容(7890),停止脚本执行!"
exit 1
fi
```
## 备注
安装应用准备好config.yaml配置文件,不然启动失败