欢迎为 kejilion.sh 贡献应用!通过在 apps/ 目录下创建 .conf 配置文件,您的应用将自动集成到脚本的应用市场中。
在 apps/ 目录下创建一个以应用名命名的配置文件,例如:myapp.conf。
每个配置文件应严格遵循以下结构,确保变量和函数命名规范:
# --- 基础信息 / Basic Information ---
local app_id="My File Name" # 和文件名一致,用于安装状态检测 / Same as the filename, used for installation status detection.
local app_name="My App Name" # 应用显示名称
local app_text="A brief description" # 一句话简介,说明应用用途
local app_url="https://github.com/..." # 官网链接 / Official URL
local docker_name="myapp_container" # 容器启动后的名称 / Container Name
local docker_port="8080" # 默认访问端口 / Default Port
local app_size="1" # 占用空间大小(GB) / Size in GB required (1-10)
# --- 核心逻辑 / Core Logic ---
docker_app_install() {
# 必须在 /home/docker/ 下创建应用目录 / Directory creation (Mandatory)
mkdir -p /home/docker/myapp && cd /home/docker/myapp
# 下载并配置 compose 文件 / Download compose file
# 务必使用 gh_proxy 变量 / Use gh_proxy for China access
curl -L -o docker-compose.yml "${gh_proxy}https://raw.githubusercontent.com/..."
# 端口处理(使用变量以便用户自定义)/ Port configuration (Customizable)
sed -i "s/8080:8080/${docker_port}:8080/g" docker-compose.yml
# 启动容器 / Start container
docker compose up -d
echo "安装完成 / Install Complete"
# 显示访问地址的函数保留即可 / Show the function that is reserved
check_docker_app_ip
}
docker_app_update() {
cd /home/docker/myapp
docker compose pull
docker compose up -d
echo "更新完成 / Update Complete"
}
docker_app_uninstall() {
cd /home/docker/myapp
# 停止并删除镜像 / Stop and remove images
docker compose down --rmi all
# 彻底物理删除目录 / Clean up directory
rm -rf /home/docker/myapp
echo "卸载完成 / Uninstall Complete"
}
# --- 注册 (必须包含) / Registration (Mandatory) ---
docker_app_plus
核心原则:数据不入系统盘,统一归档。
- 【必须】:所有持久化数据(Volume/Bind Mount)必须存储在
/home/docker/[应用名]目录下。 - 【禁止】:严禁将数据存放在
/root、/etc、/var/lib或其他非指定根目录。 - 【理由】:统一路径方便用户进行一键备份、整机迁移以及权限的统一管理。
- 开机自启:生成的
docker-compose.yml中必须包含restart: always或restart: unless-stopped。 - 干净卸载:
docker_app_uninstall函数必须执行闭环操作,包含:- 停止并删除容器 (
docker compose down) - 删除对应的镜像 (
--rmi all) - 彻底物理删除
/home/docker/[应用名]目录。
- 停止并删除容器 (
- App ID:当前版本已弱化 ID 概念,您可以省略或填入任意数值,系统目前主要以
.conf文件名作为唯一识别依据。 - Local 关键字:由于配置文件是在函数内部被
source加载的,请务必保留local声明,这能有效防止变量污染脚本的全局环境。
- 镜像加速:下载 GitHub 资源(如
.yml或脚本)时,请务必在 URL 前加上${gh_proxy}变量,以确保国内服务器的访问成功率。
一旦您的 .conf 文件被合入仓库,该应用将自动进入 “第三方应用入驻” 模块。此外,开发者可以向用户提供专属的极简安装指令:
bash <(curl -sL kejilion.sh) app [文件名]示例:如果您的配置文件名为 myapp.conf,则调用指令为: bash <(curl -sL kejilion.sh) app myapp
- 本地自测:在自己的 VPS 上完整运行安装、更新、卸载流程,确保无报错。
- 路径审计:检查
/home/docker/目录下是否正确生成了应用文件夹,且没有文件“溢出”到其他地方。 - 提交申请:将您的
[应用名].conf文件通过 Pull Request 提交至本仓库的sh/apps/目录。 - 审核发布:维护者审核逻辑安全后,您的应用将正式上线
kejilion.sh菜单。