From 3203b67f4ee618bed8950de124c61973d4019c12 Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Sun, 12 Jul 2026 16:04:14 +0800 Subject: [PATCH] Retire uninstallable legacy apps (#4768) --- .github/renovate-automerge-whitelist.txt | 4 - .github/renovate-docker.json | 7 - .github/retired-apps.yml | 42 +++ .github/scripts/test_renovate_app_version.py | 19 + README-en.md | 5 + README.md | 5 + apps/ais-ninja/1.0.8/.env.sample | 22 -- apps/ais-ninja/1.0.8/data.yml | 343 ------------------- apps/ais-ninja/1.0.8/docker-compose.yml | 34 -- apps/ais-ninja/README.md | 41 --- apps/ais-ninja/data.yml | 30 -- apps/ais-ninja/latest/.env.sample | 22 -- apps/ais-ninja/latest/data.yml | 343 ------------------- apps/ais-ninja/latest/docker-compose.yml | 34 -- apps/ais-ninja/logo.png | Bin 4768 -> 0 bytes apps/nezha-agent/1.1.4/.env.sample | 3 - apps/nezha-agent/1.1.4/data.yml | 34 -- apps/nezha-agent/1.1.4/docker-compose.yml | 11 - apps/nezha-agent/README.md | 29 -- apps/nezha-agent/data.yml | 30 -- apps/nezha-agent/latest/.env.sample | 3 - apps/nezha-agent/latest/data.yml | 34 -- apps/nezha-agent/latest/docker-compose.yml | 11 - apps/nezha-agent/logo.png | Bin 2455 -> 0 bytes apps/pandora/1.3.5/.env.sample | 6 - apps/pandora/1.3.5/data.yml | 83 ----- apps/pandora/1.3.5/docker-compose.yml | 43 --- apps/pandora/README.md | 41 --- apps/pandora/data.yml | 30 -- apps/pandora/latest/.env.sample | 6 - apps/pandora/latest/data.yml | 83 ----- apps/pandora/latest/docker-compose.yml | 43 --- apps/pandora/logo.png | Bin 2305 -> 0 bytes apps/reader/2.7.4/.env.sample | 7 - apps/reader/2.7.4/data.yml | 105 ------ apps/reader/2.7.4/docker-compose.yml | 28 -- apps/reader/3.2.14/.env.sample | 7 - apps/reader/3.2.14/data.yml | 105 ------ apps/reader/3.2.14/docker-compose.yml | 28 -- apps/reader/README.md | 41 --- apps/reader/data.yml | 30 -- apps/reader/latest/.env.sample | 7 - apps/reader/latest/data.yml | 105 ------ apps/reader/latest/docker-compose.yml | 28 -- apps/reader/logo.png | Bin 5112 -> 0 bytes 45 files changed, 71 insertions(+), 1861 deletions(-) create mode 100644 .github/retired-apps.yml delete mode 100644 apps/ais-ninja/1.0.8/.env.sample delete mode 100644 apps/ais-ninja/1.0.8/data.yml delete mode 100644 apps/ais-ninja/1.0.8/docker-compose.yml delete mode 100644 apps/ais-ninja/README.md delete mode 100644 apps/ais-ninja/data.yml delete mode 100644 apps/ais-ninja/latest/.env.sample delete mode 100644 apps/ais-ninja/latest/data.yml delete mode 100644 apps/ais-ninja/latest/docker-compose.yml delete mode 100644 apps/ais-ninja/logo.png delete mode 100644 apps/nezha-agent/1.1.4/.env.sample delete mode 100644 apps/nezha-agent/1.1.4/data.yml delete mode 100644 apps/nezha-agent/1.1.4/docker-compose.yml delete mode 100644 apps/nezha-agent/README.md delete mode 100644 apps/nezha-agent/data.yml delete mode 100644 apps/nezha-agent/latest/.env.sample delete mode 100644 apps/nezha-agent/latest/data.yml delete mode 100644 apps/nezha-agent/latest/docker-compose.yml delete mode 100644 apps/nezha-agent/logo.png delete mode 100644 apps/pandora/1.3.5/.env.sample delete mode 100644 apps/pandora/1.3.5/data.yml delete mode 100644 apps/pandora/1.3.5/docker-compose.yml delete mode 100644 apps/pandora/README.md delete mode 100644 apps/pandora/data.yml delete mode 100644 apps/pandora/latest/.env.sample delete mode 100644 apps/pandora/latest/data.yml delete mode 100644 apps/pandora/latest/docker-compose.yml delete mode 100644 apps/pandora/logo.png delete mode 100644 apps/reader/2.7.4/.env.sample delete mode 100644 apps/reader/2.7.4/data.yml delete mode 100644 apps/reader/2.7.4/docker-compose.yml delete mode 100644 apps/reader/3.2.14/.env.sample delete mode 100644 apps/reader/3.2.14/data.yml delete mode 100644 apps/reader/3.2.14/docker-compose.yml delete mode 100644 apps/reader/README.md delete mode 100644 apps/reader/data.yml delete mode 100644 apps/reader/latest/.env.sample delete mode 100644 apps/reader/latest/data.yml delete mode 100644 apps/reader/latest/docker-compose.yml delete mode 100644 apps/reader/logo.png diff --git a/.github/renovate-automerge-whitelist.txt b/.github/renovate-automerge-whitelist.txt index a27318a52..81bf8d8de 100644 --- a/.github/renovate-automerge-whitelist.txt +++ b/.github/renovate-automerge-whitelist.txt @@ -42,7 +42,6 @@ ikaros siyuan mt-photos nginxwebui -reader 2fauth adguardhome palworld-server @@ -66,7 +65,6 @@ redisinsight act_runner pagespy synapse -nezha-agent nextcloud linkding syncthing @@ -111,7 +109,6 @@ mdc-ng piclist mediawiki plex -ais-ninja answer artalk autoheal @@ -199,7 +196,6 @@ onenav openlist openlitespeed openspeedtest -pandora perfree-blog photoprism photoview diff --git a/.github/renovate-docker.json b/.github/renovate-docker.json index d7b520de1..7553a4d89 100644 --- a/.github/renovate-docker.json +++ b/.github/renovate-docker.json @@ -605,13 +605,6 @@ ], "dependencyDashboardApproval": true }, - { - "description": "Disable Renovate updates for reader 2.7.x", - "matchFileNames": [ - "apps/reader/2.7.*/*.yml" - ], - "enabled": false - }, { "description": "Disable Renovate updates for alist 3.44.0", "matchFileNames": [ diff --git a/.github/retired-apps.yml b/.github/retired-apps.yml new file mode 100644 index 000000000..122d36c9a --- /dev/null +++ b/.github/retired-apps.yml @@ -0,0 +1,42 @@ +# Applications removed from the active catalog remain recoverable through Git history. +retiredApps: + - key: ais-ninja + lastVersions: + - 1.0.8 + - latest + retiredOn: 2026-07-12 + reason: The upstream project has been inactive since 2023 and jarvis2f/ais-ninja was removed from Docker Hub. + source: https://github.com/jarvis2f/ais-ninja + image: jarvis2f/ais-ninja + replacement: null + + - key: nezha-agent + lastVersions: + - 1.1.4 + - latest + retiredOn: 2026-07-12 + reason: The third-party whoer/nezha-agent image was removed; the current official agent requires a fresh adaptation. + source: https://github.com/nezhahq/nezha + image: whoer/nezha-agent + replacement: Rebuild the app against the current official Nezha agent distribution. + + - key: pandora + lastVersions: + - 1.3.5 + - latest + retiredOn: 2026-07-12 + reason: The source repository and pengzhile/pandora image are no longer available. + source: https://github.com/zhile-io/pandora + image: pengzhile/pandora + replacement: null + + - key: reader + lastVersions: + - 2.7.4 + - 3.2.14 + - latest + retiredOn: 2026-07-12 + reason: The upstream repository is archived and hectorqin/reader was removed from Docker Hub. + source: https://github.com/hectorqin/reader + image: hectorqin/reader + replacement: null diff --git a/.github/scripts/test_renovate_app_version.py b/.github/scripts/test_renovate_app_version.py index eb7b11770..9394bbb8f 100644 --- a/.github/scripts/test_renovate_app_version.py +++ b/.github/scripts/test_renovate_app_version.py @@ -6,6 +6,8 @@ import subprocess import tempfile import unittest +import yaml + SCRIPT_PATH = pathlib.Path(__file__).with_name("renovate_app_version.py") RETRY_SCRIPT_PATH = pathlib.Path(__file__).with_name("renovate_retry_gate.py") @@ -37,6 +39,23 @@ def compose(images): class RenovateAppVersionTests(unittest.TestCase): + def test_retired_apps_are_not_active_or_automerge_eligible(self): + registry = yaml.safe_load( + (REPO_ROOT / ".github" / "retired-apps.yml").read_text(encoding="utf-8") + ) + retired = {item["key"] for item in registry["retiredApps"]} + whitelist = { + line.strip() + for line in ( + REPO_ROOT / ".github" / "renovate-automerge-whitelist.txt" + ).read_text(encoding="utf-8").splitlines() + if line.strip() and not line.lstrip().startswith("#") + } + + self.assertEqual({"ais-ninja", "nezha-agent", "pandora", "reader"}, retired) + self.assertTrue(all(not (REPO_ROOT / "apps" / key).exists() for key in retired)) + self.assertTrue(retired.isdisjoint(whitelist)) + def test_mend_is_primary_for_actions_and_compose_updates(self): config = json.loads(HOSTED_CONFIG.read_text(encoding="utf-8")) diff --git a/README-en.md b/README-en.md index d697a6feb..41e6c9ef9 100644 --- a/README-en.md +++ b/README-en.md @@ -26,6 +26,7 @@ Docker app configurations adapted for the `1Panel` app store `2.0`. After import - [3. Acceptance of Disclaimer](#3-acceptance-of-disclaimer) - [1. Introduction](#1-introduction) - [2. Contributing Apps](#2-contributing-apps) +- [Retired Apps](#retired-apps) - [3. Usage](#3-usage) - [3.1 GitHub Network Notes](#31-github-network-notes) - [3.2 Getting Apps via Git Command](#32-getting-apps-via-git-command) @@ -64,6 +65,10 @@ This repository keeps app directories, metadata, form variables, and compose fil When opening a PR, include reproducible upstream sources, image sources, default ports, data directories, required dependencies, and test results. Commit only the final app directory to this repository; temporary test output and process files are not needed. +## Retired Apps + +Apps that can no longer be installed and have no trustworthy replacement image are removed from the active catalog. Retirement reasons and last available versions are recorded in [`.github/retired-apps.yml`](.github/retired-apps.yml), while the complete app files remain recoverable from Git history. + ## 3. Usage The default installation path of `1Panel` is `/opt/`, which can be modified as needed. diff --git a/README.md b/README.md index 35b339b36..822d940ce 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ - [3. 免责声明接受](#3-免责声明接受) - [1. 简介](#1-简介) - [2. 贡献应用](#2-贡献应用) +- [已下架应用](#已下架应用) - [3. 使用方式](#3-使用方式) - [3.1 GitHub 网络说明](#31-github-网络说明) - [3.2 使用 git 命令获取应用](#32-使用-git-命令获取应用) @@ -63,6 +64,10 @@ 提交 PR 时请优先提供可复现的官方来源、镜像来源、默认端口、数据目录、前置依赖和测试结果。仓库只需要最终应用目录,不需要提交临时测试产物或过程文件。 +## 已下架应用 + +无法安装且没有可信替代镜像的应用会从活动目录移除,避免继续展示给新用户。下架原因和最后版本记录在 [`.github/retired-apps.yml`](.github/retired-apps.yml),完整应用文件仍可从 Git 历史恢复。 + ## 3. 使用方式 默认 `1Panel` 安装在 `/opt/` 路径下。如果你的 1Panel 安装目录不同,请按实际路径调整下面命令。 diff --git a/apps/ais-ninja/1.0.8/.env.sample b/apps/ais-ninja/1.0.8/.env.sample deleted file mode 100644 index 782ea9618..000000000 --- a/apps/ais-ninja/1.0.8/.env.sample +++ /dev/null @@ -1,22 +0,0 @@ -AIS_DB_PORT="3306" -AIS_PLATFORM="mysql" -ALI_ACCESS_ID="" -ALI_ACCESS_SECRET="" -ALI_SMS_PERMIT="" -ALI_SMS_SIGN="" -ALI_SMS_TEMPLATE="" -CONTAINER_NAME="ais-ninja" -EMAIL_SENDER="" -GOOGLE_CLIENT_ID="" -PANEL_APP_PORT_HTTP="40043" -PANEL_DB_HOST="mysql" -PANEL_DB_NAME="ais-ninja_Nk3BFS" -PANEL_DB_USER="ais-ninja_XpfeJ6" -PANEL_DB_USER_PASSWORD="ais-ninja_ZECQzW" -REDIS_HOST="redis" -REDIS_PASS="REDIS_PASSWORD" -REDIS_PORT=6379 -SMTP_HOST="" -SMTP_PASSWORD="" -SMTP_PORT="587" -SMTP_USER="" diff --git a/apps/ais-ninja/1.0.8/data.yml b/apps/ais-ninja/1.0.8/data.yml deleted file mode 100644 index 4f626b4b8..000000000 --- a/apps/ais-ninja/1.0.8/data.yml +++ /dev/null @@ -1,343 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - labelEn: Database Service - labelZh: 数据库服务 - label: - en: 'Database Service' - zh: '数据库服务' - zh-Hant: '數據庫服務' - ja: 'データベースサービス' - ko: '데이터베이스 서비스' - ru: 'Сервис базы данных' - ms: 'Perkhidmatan Pangkalan Data' - pt-br: 'Serviço de Banco de Dados' - required: true - type: service - default: mysql - envKey: AIS_PLATFORM - labelEn: Database Service - labelZh: 数据库服务 - label: - en: 'Database Service' - zh: '数据库服务' - zh-Hant: '數據庫服務' - ja: 'データベースサービス' - ko: '데이터베이스 서비스' - ru: 'Сервис базы данных' - ms: 'Perkhidmatan Pangkalan Data' - pt-br: 'Serviço de Banco de Dados' - params: - - envKey: AIS_DB_PORT - key: mysql - type: param - value: "3306" - - envKey: AIS_DB_PORT - key: postgresql - type: param - value: "5432" - required: true - type: apps - values: - - label: "MySQL" - value: mysql - - default: ais-ninja - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: 'Database' - zh: '数据库名' - zh-Hant: '數據庫名' - ja: 'データベース' - ko: '데이터베이스' - ru: 'База данных' - ms: 'Pangkalan Data' - pt-br: 'Banco de Dados' - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: 'User' - zh: '数据库用户' - zh-Hant: '數據庫用戶' - ja: 'ユーザー' - ko: '사용자' - ru: 'Пользователь' - ms: 'Pengguna' - pt-br: 'Usuário' - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: 'Password' - zh: '数据库用户密码' - zh-Hant: '數據庫用戶密碼' - ja: 'パスワード' - ko: '비밀번호' - ru: 'Пароль' - ms: 'Kata laluan' - pt-br: 'Senha' - random: true - required: true - rule: paramComplexity - type: password - - default: "" - edit: true - envKey: REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: Redis服务 - label: - en: 'Redis Service' - zh: 'Redis服务' - zh-Hant: 'Redis 服務' - ja: 'Redis サービス' - ko: 'Redis 서비스' - ru: 'Сервис Redis' - ms: 'Perkhidmatan Redis' - pt-br: 'Serviço Redis' - required: true - type: service - - default: "6379" - edit: true - envKey: REDIS_PORT - labelEn: Redis Service Port - labelZh: Redis服务端口 - label: - en: 'Redis Service Port' - zh: 'Redis服务端口' - zh-Hant: 'Redis 服務埠' - ja: 'Redis サービスポート' - ko: 'Redis 서비스 포트' - ru: 'Порт сервиса Redis' - ms: 'Port perkhidmatan Redis' - pt-br: 'Porta do serviço Redis' - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: REDIS_PASS - labelEn: Redis Service Password - labelZh: Redis服务密码 - label: - en: 'Redis Service Password' - zh: 'Redis服务密码' - zh-Hant: 'Redis 服務密碼' - ja: 'Redis サービスパスワード' - ko: 'Redis 서비스 비밀번호' - ru: 'Пароль сервиса Redis' - ms: 'Kata laluan perkhidmatan Redis' - pt-br: 'Senha do serviço Redis' - required: true - rule: paramCommon - type: password - - default: 40043 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: 'Port' - zh: '端口' - zh-Hant: '埠' - ja: 'ポート' - ko: '포트' - ru: 'Порт' - ms: 'Port' - pt-br: 'Porta' - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: SMTP_HOST - labelEn: SMTP HOST - labelZh: SMTP 主机 - label: - en: 'SMTP Host' - zh: 'SMTP 主机' - zh-Hant: 'SMTP 主機' - ja: 'SMTP ホスト' - ko: 'SMTP 호스트' - ru: 'SMTP хост' - ms: 'Hos SMTP' - pt-br: 'Host SMTP' - required: false - rule: paramExtUrl - type: text - - default: "587" - edit: true - envKey: SMTP_PORT - labelEn: SMTP Port - labelZh: SMTP 端口 - label: - en: 'SMTP Port' - zh: 'SMTP 端口' - zh-Hant: 'SMTP 埠' - ja: 'SMTP ポート' - ko: 'SMTP 포트' - ru: 'SMTP порт' - ms: 'Port SMTP' - pt-br: 'Porta SMTP' - required: false - rule: paramPort - type: number - - default: "" - edit: true - envKey: EMAIL_SENDER - labelEn: Email service sender email address - labelZh: 邮箱服务发送方邮箱地址 - label: - en: 'Email service sender email address' - zh: '邮箱服务发送方邮箱地址' - zh-Hant: '郵箱服務發送方郵箱地址' - ja: 'メールサービス送信者のメールアドレス' - ko: '이메일 서비스 발신자 이메일 주소' - ru: 'Адрес электронной почты отправителя службы электронной почты' - ms: 'Alamat e-mel penghantar perkhidmatan e-mel' - pt-br: 'Endereço de e-mail do remetente do serviço de e-mail' - required: false - type: text - - default: "" - edit: true - envKey: SMTP_USER - labelEn: Email service user name - labelZh: 邮箱服务用户名 - label: - en: 'Email service user name' - zh: '邮箱服务用户名' - zh-Hant: '郵箱服務用戶名' - ja: 'メールサービスのユーザー名' - ko: '이메일 서비스 사용자 이름' - ru: 'Имя пользователя службы электронной почты' - ms: 'Nama pengguna perkhidmatan e-mel' - pt-br: 'Nome de usuário do serviço de e-mail' - required: false - type: text - - default: "" - edit: true - envKey: SMTP_PASSWORD - labelEn: Email service password - labelZh: 邮箱服务密码 - label: - en: 'Email service password' - zh: '邮箱服务密码' - zh-Hant: '郵箱服務密碼' - ja: 'メールサービスのパスワード' - ko: '이메일 서비스 비밀번호' - ru: 'Пароль службы электронной почты' - ms: 'Kata laluan perkhidmatan e-mel' - pt-br: 'Senha do serviço de e-mail' - required: false - rule: paramCommon - type: password - - default: "" - edit: true - envKey: GOOGLE_CLIENT_ID - labelEn: Google login client_id - labelZh: 谷歌登录的client_id - label: - en: 'Google login client_id' - zh: '谷歌登录的client_id' - zh-Hant: 'Google 登入的 client_id' - ja: 'Google ログインの client_id' - ko: 'Google 로그인 client_id' - ru: 'client_id для входа через Google' - ms: 'client_id log masuk Google' - pt-br: 'client_id de login do Google' - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_ID - labelEn: Alibaba Cloud accessKey ID - labelZh: 阿里云accessKey ID - label: - en: 'Alibaba Cloud accessKey ID' - zh: '阿里云accessKey ID' - zh-Hant: '阿里雲 accessKey ID' - ja: 'Alibaba Cloud アクセスキー ID' - ko: 'Alibaba Cloud 액세스 키 ID' - ru: 'accessKey ID Alibaba Cloud' - ms: 'accessKey ID Alibaba Cloud' - pt-br: 'accessKey ID da Alibaba Cloud' - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_SECRET - labelEn: Alibaba Cloud accessKeySecret - labelZh: 阿里云 accessKeySecret - label: - en: 'Alibaba Cloud accessKeySecret' - zh: '阿里云 accessKeySecret' - zh-Hant: '阿里雲 accessKeySecret' - ja: 'Alibaba Cloud アクセスキーシークレット' - ko: 'Alibaba Cloud 액세스 키 시크릿' - ru: 'accessKeySecret Alibaba Cloud' - ms: 'accessKeySecret Alibaba Cloud' - pt-br: 'accessKeySecret da Alibaba Cloud' - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_PERMIT - labelEn: Enable mobile sign-in registration (true or false) - labelZh: 启用手机登录注册(true or false) - label: - en: 'Enable mobile sign-in registration (true or false)' - zh: '启用手机登录注册(true or false)' - zh-Hant: '啟用手機登入註冊 (true 或 false)' - ja: '携帯ログイン登録を有効化 (true または false)' - ko: '모바일 로그인 등록 활성화 (true 또는 false)' - ru: 'Включить регистрацию входа по мобильному телефону (true или false)' - ms: 'Dayakan pendaftaran log masuk mudah alih (true atau false)' - pt-br: 'Ativar registro de login móvel (true ou false)' - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_SIGN - labelEn: Alibaba Cloud SMS verification code service signature - labelZh: 阿里云短信验证码服务签名 - label: - en: 'Alibaba Cloud SMS verification code service signature' - zh: '阿里云短信验证码服务签名' - zh-Hant: '阿里雲簡訊驗證碼服務簽名' - ja: 'Alibaba Cloud SMS 認証コードサービス署名' - ko: 'Alibaba Cloud SMS 인증 코드 서비스 서명' - ru: 'Подпись службы SMS-кодов подтверждения Alibaba Cloud' - ms: 'Tandatangan perkhidmatan kod pengesahan SMS Alibaba Cloud' - pt-br: 'Assinatura do serviço de SMS de código de verificação da Alibaba Cloud' - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_TEMPLATE - labelEn: Alibaba Cloud verification code SMS template, which must include {code} - labelZh: 阿里云验证码短信模板,需要包含 {code} - label: - en: 'Alibaba Cloud verification code SMS template, which must include {code}' - zh: '阿里云验证码短信模板,需要包含 {code}' - zh-Hant: '阿里雲驗證碼簡訊範本,需包含 {code}' - ja: 'Alibaba Cloud 認証コード SMS テンプレート({code} を含める必要があります)' - ko: 'Alibaba Cloud 인증 코드 SMS 템플릿({code} 포함 필요)' - ru: 'Шаблон SMS с кодом подтверждения Alibaba Cloud, должен включать {code}' - ms: 'Templat SMS kod pengesahan Alibaba Cloud, mesti mengandungi {code}' - pt-br: 'Modelo de SMS de código de verificação da Alibaba Cloud, deve incluir {code}' - required: false - type: text diff --git a/apps/ais-ninja/1.0.8/docker-compose.yml b/apps/ais-ninja/1.0.8/docker-compose.yml deleted file mode 100644 index b00575e94..000000000 --- a/apps/ais-ninja/1.0.8/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -services: - ais-ninja: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - environment: - DATABASE_NAME: ${PANEL_DB_NAME} - DATABASE_PORT: ${AIS_DB_PORT} - DATABASE_HOST: ${PANEL_DB_HOST} - DATABASE_USER: ${PANEL_DB_USER} - DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DATABASE_SYNC: 'true' - REDIS_URL: redis://:${REDIS_PASS}@${REDIS_HOST}:${REDIS_PORT}/0 - EMAIL_HOST: ${SMTP_HOST} - EMAIL_PORT: ${SMTP_PORT} - EMAIL_FROM: ${EMAIL_SENDER} - EMAIL_AUTH_USER: ${SMTP_USER} - EMAIL_AUTH_PASS: ${SMTP_PASSWORD} - SOCIAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID} - ALI_ACCESS_KEY_ID: ${ALI_ACCESS_ID} - ALI_ACCESS_KEY_SECRET: ${ALI_ACCESS_SECRET} - ALI_SMS_ENABLE: ${ALI_SMS_PERMIT} - ALI_SMS_SIGN_NAME: ${ALI_SMS_SIGN} - ALI_SMS_TEMPLATE_CODE: ${ALI_SMS_TEMPLATE} - image: jarvis2f/ais-ninja:v1.0.8 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/ais-ninja/README.md b/apps/ais-ninja/README.md deleted file mode 100644 index 61d9a7c58..000000000 --- a/apps/ais-ninja/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# ais-ninja - -## 应用简介 -基于 ChatGPT 的 Web 应用程序。 - -英文说明:ChatGPT-based web applications. - -## 部署说明 -- 本应用使用 Docker Compose 在 1Panel 中部署。 -- 应用分类:AI。 -- 支持架构:amd64。 -- 可选版本:`latest`、`1.0.8`。 -- 安装后按应用表单中的端口访问 Web UI、SSH 或对应服务。 - -## 端口 -| 变量 | 说明 | 默认值 | 必填 | -| --- | --- | --- | --- | -| REDIS_PORT | Redis服务端口 | 6379 | 是 | -| PANEL_APP_PORT_HTTP | 端口 | 40043 | 是 | -| SMTP_PORT | SMTP 端口 | 587 | 否 | - -## 配置项 -| 变量 | 说明 | 默认值 | 必填 | -| --- | --- | --- | --- | -| AIS_PLATFORM | 数据库服务 | mysql | 是 | -| PANEL_DB_NAME | 数据库名 | ais-ninja | 是 | -| PANEL_DB_USER | 数据库用户 | ais-ninja | 是 | -| PANEL_DB_USER_PASSWORD | 数据库用户密码 | ais-ninja | 是 | -| REDIS_HOST | Redis服务 | - | 是 | -| REDIS_PASS | Redis服务密码 | - | 是 | -| SMTP_HOST | SMTP 主机 | - | 否 | -| EMAIL_SENDER | 邮箱服务发送方邮箱地址 | - | 否 | -| SMTP_USER | 邮箱服务用户名 | - | 否 | -| SMTP_PASSWORD | 邮箱服务密码 | - | 否 | - -## 使用说明 -- 管理员账户密码请通过查看容器日志获取; -- 访问地址加`/admin`即是管理员面板。 - -## 参考资料 -- 官网: diff --git a/apps/ais-ninja/data.yml b/apps/ais-ninja/data.yml deleted file mode 100644 index 98155b24b..000000000 --- a/apps/ais-ninja/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: ais-ninja -tags: - - AI -title: 基于 ChatGPT 的 Web 应用程序 -description: 基于 ChatGPT 的 Web 应用程序 -additionalProperties: - key: ais-ninja - name: ais-ninja - tags: - - AI - shortDescZh: 基于 ChatGPT 的 Web 应用程序 - shortDescEn: ChatGPT-based web applications - description: - en: A web application based on ChatGPT. - zh: 基于 ChatGPT 的 Web 应用程序 - zh-Hant: 基於 ChatGPT 的 Web 應用程式 - ja: ChatGPT ベースの Web アプリケーション - ko: ChatGPT 기반 웹 애플리케이션 - ru: Веб-приложение на базе ChatGPT. - ms: Aplikasi web berasaskan ChatGPT. - pt-br: Aplicativo web baseado no ChatGPT. - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/jarvis2f/ais-ninja - github: https://github.com/jarvis2f/ais-ninja - document: https://github.com/jarvis2f/ais-ninja - architectures: - - amd64 diff --git a/apps/ais-ninja/latest/.env.sample b/apps/ais-ninja/latest/.env.sample deleted file mode 100644 index 782ea9618..000000000 --- a/apps/ais-ninja/latest/.env.sample +++ /dev/null @@ -1,22 +0,0 @@ -AIS_DB_PORT="3306" -AIS_PLATFORM="mysql" -ALI_ACCESS_ID="" -ALI_ACCESS_SECRET="" -ALI_SMS_PERMIT="" -ALI_SMS_SIGN="" -ALI_SMS_TEMPLATE="" -CONTAINER_NAME="ais-ninja" -EMAIL_SENDER="" -GOOGLE_CLIENT_ID="" -PANEL_APP_PORT_HTTP="40043" -PANEL_DB_HOST="mysql" -PANEL_DB_NAME="ais-ninja_Nk3BFS" -PANEL_DB_USER="ais-ninja_XpfeJ6" -PANEL_DB_USER_PASSWORD="ais-ninja_ZECQzW" -REDIS_HOST="redis" -REDIS_PASS="REDIS_PASSWORD" -REDIS_PORT=6379 -SMTP_HOST="" -SMTP_PASSWORD="" -SMTP_PORT="587" -SMTP_USER="" diff --git a/apps/ais-ninja/latest/data.yml b/apps/ais-ninja/latest/data.yml deleted file mode 100644 index 4f626b4b8..000000000 --- a/apps/ais-ninja/latest/data.yml +++ /dev/null @@ -1,343 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - labelEn: Database Service - labelZh: 数据库服务 - label: - en: 'Database Service' - zh: '数据库服务' - zh-Hant: '數據庫服務' - ja: 'データベースサービス' - ko: '데이터베이스 서비스' - ru: 'Сервис базы данных' - ms: 'Perkhidmatan Pangkalan Data' - pt-br: 'Serviço de Banco de Dados' - required: true - type: service - default: mysql - envKey: AIS_PLATFORM - labelEn: Database Service - labelZh: 数据库服务 - label: - en: 'Database Service' - zh: '数据库服务' - zh-Hant: '數據庫服務' - ja: 'データベースサービス' - ko: '데이터베이스 서비스' - ru: 'Сервис базы данных' - ms: 'Perkhidmatan Pangkalan Data' - pt-br: 'Serviço de Banco de Dados' - params: - - envKey: AIS_DB_PORT - key: mysql - type: param - value: "3306" - - envKey: AIS_DB_PORT - key: postgresql - type: param - value: "5432" - required: true - type: apps - values: - - label: "MySQL" - value: mysql - - default: ais-ninja - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - label: - en: 'Database' - zh: '数据库名' - zh-Hant: '數據庫名' - ja: 'データベース' - ko: '데이터베이스' - ru: 'База данных' - ms: 'Pangkalan Data' - pt-br: 'Banco de Dados' - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - label: - en: 'User' - zh: '数据库用户' - zh-Hant: '數據庫用戶' - ja: 'ユーザー' - ko: '사용자' - ru: 'Пользователь' - ms: 'Pengguna' - pt-br: 'Usuário' - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - label: - en: 'Password' - zh: '数据库用户密码' - zh-Hant: '數據庫用戶密碼' - ja: 'パスワード' - ko: '비밀번호' - ru: 'Пароль' - ms: 'Kata laluan' - pt-br: 'Senha' - random: true - required: true - rule: paramComplexity - type: password - - default: "" - edit: true - envKey: REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: Redis服务 - label: - en: 'Redis Service' - zh: 'Redis服务' - zh-Hant: 'Redis 服務' - ja: 'Redis サービス' - ko: 'Redis 서비스' - ru: 'Сервис Redis' - ms: 'Perkhidmatan Redis' - pt-br: 'Serviço Redis' - required: true - type: service - - default: "6379" - edit: true - envKey: REDIS_PORT - labelEn: Redis Service Port - labelZh: Redis服务端口 - label: - en: 'Redis Service Port' - zh: 'Redis服务端口' - zh-Hant: 'Redis 服務埠' - ja: 'Redis サービスポート' - ko: 'Redis 서비스 포트' - ru: 'Порт сервиса Redis' - ms: 'Port perkhidmatan Redis' - pt-br: 'Porta do serviço Redis' - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: REDIS_PASS - labelEn: Redis Service Password - labelZh: Redis服务密码 - label: - en: 'Redis Service Password' - zh: 'Redis服务密码' - zh-Hant: 'Redis 服務密碼' - ja: 'Redis サービスパスワード' - ko: 'Redis 서비스 비밀번호' - ru: 'Пароль сервиса Redis' - ms: 'Kata laluan perkhidmatan Redis' - pt-br: 'Senha do serviço Redis' - required: true - rule: paramCommon - type: password - - default: 40043 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: 'Port' - zh: '端口' - zh-Hant: '埠' - ja: 'ポート' - ko: '포트' - ru: 'Порт' - ms: 'Port' - pt-br: 'Porta' - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: SMTP_HOST - labelEn: SMTP HOST - labelZh: SMTP 主机 - label: - en: 'SMTP Host' - zh: 'SMTP 主机' - zh-Hant: 'SMTP 主機' - ja: 'SMTP ホスト' - ko: 'SMTP 호스트' - ru: 'SMTP хост' - ms: 'Hos SMTP' - pt-br: 'Host SMTP' - required: false - rule: paramExtUrl - type: text - - default: "587" - edit: true - envKey: SMTP_PORT - labelEn: SMTP Port - labelZh: SMTP 端口 - label: - en: 'SMTP Port' - zh: 'SMTP 端口' - zh-Hant: 'SMTP 埠' - ja: 'SMTP ポート' - ko: 'SMTP 포트' - ru: 'SMTP порт' - ms: 'Port SMTP' - pt-br: 'Porta SMTP' - required: false - rule: paramPort - type: number - - default: "" - edit: true - envKey: EMAIL_SENDER - labelEn: Email service sender email address - labelZh: 邮箱服务发送方邮箱地址 - label: - en: 'Email service sender email address' - zh: '邮箱服务发送方邮箱地址' - zh-Hant: '郵箱服務發送方郵箱地址' - ja: 'メールサービス送信者のメールアドレス' - ko: '이메일 서비스 발신자 이메일 주소' - ru: 'Адрес электронной почты отправителя службы электронной почты' - ms: 'Alamat e-mel penghantar perkhidmatan e-mel' - pt-br: 'Endereço de e-mail do remetente do serviço de e-mail' - required: false - type: text - - default: "" - edit: true - envKey: SMTP_USER - labelEn: Email service user name - labelZh: 邮箱服务用户名 - label: - en: 'Email service user name' - zh: '邮箱服务用户名' - zh-Hant: '郵箱服務用戶名' - ja: 'メールサービスのユーザー名' - ko: '이메일 서비스 사용자 이름' - ru: 'Имя пользователя службы электронной почты' - ms: 'Nama pengguna perkhidmatan e-mel' - pt-br: 'Nome de usuário do serviço de e-mail' - required: false - type: text - - default: "" - edit: true - envKey: SMTP_PASSWORD - labelEn: Email service password - labelZh: 邮箱服务密码 - label: - en: 'Email service password' - zh: '邮箱服务密码' - zh-Hant: '郵箱服務密碼' - ja: 'メールサービスのパスワード' - ko: '이메일 서비스 비밀번호' - ru: 'Пароль службы электронной почты' - ms: 'Kata laluan perkhidmatan e-mel' - pt-br: 'Senha do serviço de e-mail' - required: false - rule: paramCommon - type: password - - default: "" - edit: true - envKey: GOOGLE_CLIENT_ID - labelEn: Google login client_id - labelZh: 谷歌登录的client_id - label: - en: 'Google login client_id' - zh: '谷歌登录的client_id' - zh-Hant: 'Google 登入的 client_id' - ja: 'Google ログインの client_id' - ko: 'Google 로그인 client_id' - ru: 'client_id для входа через Google' - ms: 'client_id log masuk Google' - pt-br: 'client_id de login do Google' - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_ID - labelEn: Alibaba Cloud accessKey ID - labelZh: 阿里云accessKey ID - label: - en: 'Alibaba Cloud accessKey ID' - zh: '阿里云accessKey ID' - zh-Hant: '阿里雲 accessKey ID' - ja: 'Alibaba Cloud アクセスキー ID' - ko: 'Alibaba Cloud 액세스 키 ID' - ru: 'accessKey ID Alibaba Cloud' - ms: 'accessKey ID Alibaba Cloud' - pt-br: 'accessKey ID da Alibaba Cloud' - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_SECRET - labelEn: Alibaba Cloud accessKeySecret - labelZh: 阿里云 accessKeySecret - label: - en: 'Alibaba Cloud accessKeySecret' - zh: '阿里云 accessKeySecret' - zh-Hant: '阿里雲 accessKeySecret' - ja: 'Alibaba Cloud アクセスキーシークレット' - ko: 'Alibaba Cloud 액세스 키 시크릿' - ru: 'accessKeySecret Alibaba Cloud' - ms: 'accessKeySecret Alibaba Cloud' - pt-br: 'accessKeySecret da Alibaba Cloud' - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_PERMIT - labelEn: Enable mobile sign-in registration (true or false) - labelZh: 启用手机登录注册(true or false) - label: - en: 'Enable mobile sign-in registration (true or false)' - zh: '启用手机登录注册(true or false)' - zh-Hant: '啟用手機登入註冊 (true 或 false)' - ja: '携帯ログイン登録を有効化 (true または false)' - ko: '모바일 로그인 등록 활성화 (true 또는 false)' - ru: 'Включить регистрацию входа по мобильному телефону (true или false)' - ms: 'Dayakan pendaftaran log masuk mudah alih (true atau false)' - pt-br: 'Ativar registro de login móvel (true ou false)' - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_SIGN - labelEn: Alibaba Cloud SMS verification code service signature - labelZh: 阿里云短信验证码服务签名 - label: - en: 'Alibaba Cloud SMS verification code service signature' - zh: '阿里云短信验证码服务签名' - zh-Hant: '阿里雲簡訊驗證碼服務簽名' - ja: 'Alibaba Cloud SMS 認証コードサービス署名' - ko: 'Alibaba Cloud SMS 인증 코드 서비스 서명' - ru: 'Подпись службы SMS-кодов подтверждения Alibaba Cloud' - ms: 'Tandatangan perkhidmatan kod pengesahan SMS Alibaba Cloud' - pt-br: 'Assinatura do serviço de SMS de código de verificação da Alibaba Cloud' - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_TEMPLATE - labelEn: Alibaba Cloud verification code SMS template, which must include {code} - labelZh: 阿里云验证码短信模板,需要包含 {code} - label: - en: 'Alibaba Cloud verification code SMS template, which must include {code}' - zh: '阿里云验证码短信模板,需要包含 {code}' - zh-Hant: '阿里雲驗證碼簡訊範本,需包含 {code}' - ja: 'Alibaba Cloud 認証コード SMS テンプレート({code} を含める必要があります)' - ko: 'Alibaba Cloud 인증 코드 SMS 템플릿({code} 포함 필요)' - ru: 'Шаблон SMS с кодом подтверждения Alibaba Cloud, должен включать {code}' - ms: 'Templat SMS kod pengesahan Alibaba Cloud, mesti mengandungi {code}' - pt-br: 'Modelo de SMS de código de verificação da Alibaba Cloud, deve incluir {code}' - required: false - type: text diff --git a/apps/ais-ninja/latest/docker-compose.yml b/apps/ais-ninja/latest/docker-compose.yml deleted file mode 100644 index 56d8d3d91..000000000 --- a/apps/ais-ninja/latest/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -services: - ais-ninja: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - environment: - DATABASE_NAME: ${PANEL_DB_NAME} - DATABASE_PORT: ${AIS_DB_PORT} - DATABASE_HOST: ${PANEL_DB_HOST} - DATABASE_USER: ${PANEL_DB_USER} - DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DATABASE_SYNC: 'true' - REDIS_URL: redis://:${REDIS_PASS}@${REDIS_HOST}:${REDIS_PORT}/0 - EMAIL_HOST: ${SMTP_HOST} - EMAIL_PORT: ${SMTP_PORT} - EMAIL_FROM: ${EMAIL_SENDER} - EMAIL_AUTH_USER: ${SMTP_USER} - EMAIL_AUTH_PASS: ${SMTP_PASSWORD} - SOCIAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID} - ALI_ACCESS_KEY_ID: ${ALI_ACCESS_ID} - ALI_ACCESS_KEY_SECRET: ${ALI_ACCESS_SECRET} - ALI_SMS_ENABLE: ${ALI_SMS_PERMIT} - ALI_SMS_SIGN_NAME: ${ALI_SMS_SIGN} - ALI_SMS_TEMPLATE_CODE: ${ALI_SMS_TEMPLATE} - image: jarvis2f/ais-ninja:latest - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/ais-ninja/logo.png b/apps/ais-ninja/logo.png deleted file mode 100644 index 9cec3e62d1817bf3fe702d0d21ccdd15beb049a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4768 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

!}0k@$uIak@e=yjlY=N3BnWaKW~gk*dW)%cD3KH zwneSf(5a7)G8=QG9&G%o^pIm^L|i@bbY{D?PdIy50b`l(y!p* u)zeQLhv-{v{-Yu3Xm({aFaH6 -- 文档: -- 源码: diff --git a/apps/nezha-agent/data.yml b/apps/nezha-agent/data.yml deleted file mode 100644 index c617f172f..000000000 --- a/apps/nezha-agent/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: 哪吒监控 - Agent -tags: - - 实用工具 -title: 哪吒监控 - Agent -description: 哪吒监控 - Agent -additionalProperties: - key: nezha-agent - name: 哪吒监控 - Agent - description: - en: Nezha Monitoring - Agent - zh: 哪吒监控 - Agent - zh-Hant: 哪吒監控 - Agent - ja: 哪吒監控 - エージェント - ko: 哪吒 모니터링 - 에이전트 - ru: Nezha Monitoring — агент - ms: Pemantauan Nezha - Agen - pt-br: Nezha Monitoring - Agente - tags: - - Tool - shortDescZh: 哪吒监控 - Agent - shortDescEn: Nezha Monitoring - Agent - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://nezha.wiki - github: https://github.com/naiba/nezha - document: https://nezha.wiki/guide/agent.html - architectures: - - amd64 diff --git a/apps/nezha-agent/latest/.env.sample b/apps/nezha-agent/latest/.env.sample deleted file mode 100644 index 83cbde051..000000000 --- a/apps/nezha-agent/latest/.env.sample +++ /dev/null @@ -1,3 +0,0 @@ -CONTAINER_NAME="nezha-agent" -NZ_CLENT_SECRET="xxxxx" -NZ_GRPC_URL="http://1.2.3.4:5555" diff --git a/apps/nezha-agent/latest/data.yml b/apps/nezha-agent/latest/data.yml deleted file mode 100644 index b6ebb5db4..000000000 --- a/apps/nezha-agent/latest/data.yml +++ /dev/null @@ -1,34 +0,0 @@ -additionalProperties: - formFields: - - default: "" - edit: true - envKey: NZ_GRPC_URL - labelEn: "Nezha gRPC URL" - labelZh: 哪吒 gRPC 地址 - label: - en: 'Nezha gRPC URL' - zh: '哪吒 gRPC 地址' - zh-Hant: '哪吒 gRPC 位址' - ja: 'Nezha gRPC URL(接続先)' - ko: 'Nezha gRPC URL(연결 주소)' - ru: 'URL gRPC Nezha' - ms: 'URL gRPC Nezha' - pt-br: 'URL gRPC do Nezha' - required: true - type: text - - default: "" - edit: true - envKey: NZ_CLENT_SECRET - labelEn: "Nezha client secret" - labelZh: 哪吒客户端密钥 - label: - en: 'Nezha client secret' - zh: '哪吒客户端密钥' - zh-Hant: '哪吒用戶端密鑰' - ja: 'Nezha クライアントシークレット' - ko: 'Nezha 클라이언트 시크릿' - ru: 'Секрет клиента Nezha' - ms: 'Rahsia klien Nezha' - pt-br: 'Segredo do cliente Nezha' - required: true - type: password diff --git a/apps/nezha-agent/latest/docker-compose.yml b/apps/nezha-agent/latest/docker-compose.yml deleted file mode 100644 index 3c98ff0f8..000000000 --- a/apps/nezha-agent/latest/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -services: - nezha-agent: - image: "whoer/nezha-agent:latest" - container_name: ${CONTAINER_NAME} - restart: always - command: --tls -s ${NZ_GRPC_URL} -p ${NZ_CLENT_SECRET} -d - volumes: - - /etc:/etc:ro - network_mode: host - labels: - createdBy: "Apps" \ No newline at end of file diff --git a/apps/nezha-agent/logo.png b/apps/nezha-agent/logo.png deleted file mode 100644 index b632c7bf7aec01a857c3c27acfc808e63fb81ee4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2455 zcmYLK2{=^iA2#QpF=NCi5iNEJ(H)Jkg=Uz^8s#DtLp6y(D6LmqWr?wk+aOt5Bq_2y z*4wHnRKu9DPG})pW(JYc|C_qc^FPmbe&_dn=RNQH{=VON&Pn!gbHbq3qokyyFcdP; z6I^Q~ClUq`rMv(lbkM_PF9{?to`=d2!4{H;$`OJD!uLTIy%0zU{UE}4K1AS2rly0x zkrIr#WDz_Ia@d0ZJAnv2s9ZqB2QY}hM`q7Sp2G9wa>M{E2UGx_&?8~P_sHeWp|V9V zfrreQhm40&Od(_<_|FWUk79}-3qG(R2QZSP2T;iYd-z^3pdA7Ur^FkuEd~Q%p)%*BnM<%uH>el3 z>;WYJ3E2LPM98WeCiF@q04!T9@dl=#mR~*rIb=A3%$bu0S_Y#?U>Mgcmj$X5BJliG z84G|7nG0g~FIurQjsx3v0bNis;DqhEVKW{oZ5GCLLDoD7*S9KX0k-Is6lMDw*p{tb zfQX+Fwj9KU35511#IBDB;y7&8gUS#hwta*Oze{tL&{u@0G$Fi`gUS^`R$MTJtOn#$ zh0+dhK-XY>fwbKl2y6?X8`d92*zloUW5~J%d9XjYUYXRd^8bh+;)G1flFaKRFh!_O zBGji4ibDBpk(9GYA>|9gdG^27gB@mqKK6iZk-ROSo0eSIx*HglvUw7`)Pgc zUq{^S|Jbay7ON!lgWc_S;49uj=$fR~F4#nBpX zt|2R$emB7H?C5x2RdKsG;q0lXsPGV)@1LGTdjj4-XWioT=s*{z{S~{hsBohIWpXN=$e+y#LVyG$-4NSFXeWJ(SLX9^-a0C zjWxu7{cz>GmHx9xjTe$paGYCSnKQ+^=Y6=)Cbnjub)Hk|Fvr?Yn(>LF6^mo2JT5(5 zgWT9zN}3(_9@1+Fj9w^yRi4%|WYoxu%DDe!SWS6oYvaDbepP%bUDZ-B#EYIT;53EoMNIRbT@Ghut2fvf7$)=&C@#OupEhp^ zu!+eixSZe;{%phDveN7eNRFAt&`v|9YQEwf*+D4~1!|Hon zuQAt@x+*2WUgz)4N1Ak^!{Te@9al57jziyt&e*8ZV+ZI&LtpVX!wamS0OQ8i0IYA! zxfHc9oS@>ow0wGs=3T7u;`GL#LniZRPj-0+`TG$;ZkzX9g=aP0OLc{2`+u?kK+B6c`gsA!!SS(#16NNdMb5YNs~ ziYr4=Z{qEgJJ~_5L(!Q|Z|j?8?>kVn`@hDqC;gwB*1UiG?5C(2{p{e_w~3K+(U0pb zeY4dsZPQmuj+5s^N0$}!{78&^osvanE4ywHe>`qtpsUp160yV2H1ceM#`F2sJ!U$i z(XFI5T7PVj{iRPyhS=`ocV$ix(Y%?Z32s;A@|hrPvS0D4;PhK)h6zFWyl`9wYp#bB zkTV)>qx(8aC1cXQPWM<* z1g<4@T=ZgNvra;&mArw9acp4BF5dY~*Bt6@zN35U=6NprB)2YP=^%T1LcMqRd9dCJ zJJQSb5rCr>SbA{A znno?mUWQ%@VRZi_%Y&3fdyh~lN#?y#ckim0l=Cjpo&30}KGm)3(NKx=41QPgI9_Md z_4A!aNG01CoJ<#ps*WI)1PU2?zB-qsP^8H~1;ef^v7Yp?PMCHwC)v0EgYTT-ZhB_oA3e(3+7njeQq$BU|Ct2c3Xq)g#&>2v2! zFG!!T^P}4Cr7mHcxa4#pMFU}ejwSYRO7AxDv|VXr|A*baO@Ms_@$GT$?8g;MbypJFWZljkp3Zc8AjR%JjsgwI_$r0ru%C@ z2tTOc9}xFbS-TxcQcI%T;guZdN~3O<$B{r zWbteLvscN1toNfMIS*)_7mLH2n{?~9=V^2-_+6t+Q1EFdHa85CC%Q=M`dNeb|K{GF zT#I`7BnwW)d_KIAp~Y^`XMXU$xVCtGZ^rwNVLElH%ZU@3)M5W{*sM$|dUK -- 文档: diff --git a/apps/pandora/data.yml b/apps/pandora/data.yml deleted file mode 100644 index 703ca9004..000000000 --- a/apps/pandora/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Pandora -tags: - - AI -title: 潘多拉,一个让你呼吸顺畅的 ChatGPT -description: 潘多拉,一个让你呼吸顺畅的 ChatGPT -additionalProperties: - key: pandora - name: Pandora - tags: - - AI - shortDescZh: 潘多拉,一个让你呼吸顺畅的 ChatGPT - shortDescEn: Pandora, a ChatGPT that helps you breathe smoothly - description: - en: Pandora, a ChatGPT that helps you breathe smoothly - zh: 潘多拉,一个让你呼吸顺畅的 ChatGPT - zh-Hant: 潘多拉,一個讓你呼吸順暢的 ChatGPT - ja: パンドラ、呼吸が楽になるChatGPT - ko: 판도라, 숨 쉬기 편하게 해주는 ChatGPT - ru: Pandora — ChatGPT, с которым дышится легко - ms: Pandora, ChatGPT yang membuat anda bernafas lebih lega - pt-br: Pandora, um ChatGPT que deixa você respirar com mais facilidade - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/zhile-io/pandora - github: https://github.com/zhile-io/pandora - document: https://github.com/zhile-io/pandora/blob/master/doc/wiki.md - architectures: - - amd64 diff --git a/apps/pandora/latest/.env.sample b/apps/pandora/latest/.env.sample deleted file mode 100644 index 550efd3aa..000000000 --- a/apps/pandora/latest/.env.sample +++ /dev/null @@ -1,6 +0,0 @@ -CONTAINER_NAME="pandora" -PANEL_APP_PORT_HTTP="40040" -DATA_PATH="./data" -PROXY="" -API_BASE_URL="https://ai.fakeopen.com" -REVERSE_PROXY="https://ai.fakeopen.com" diff --git a/apps/pandora/latest/data.yml b/apps/pandora/latest/data.yml deleted file mode 100644 index 6791d4a1a..000000000 --- a/apps/pandora/latest/data.yml +++ /dev/null @@ -1,83 +0,0 @@ -additionalProperties: - formFields: - - default: 40040 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: 'Port' - zh: '端口' - zh-Hant: '埠' - ja: 'ポート' - ko: '포트' - ru: 'Порт' - ms: 'Port' - pt-br: 'Porta' - required: true - rule: paramPort - type: number - - default: ./data - edit: true - envKey: DATA_PATH - labelEn: Data folder path - labelZh: 数据文件夹路径 - label: - en: 'Data folder path' - zh: '数据文件夹路径' - zh-Hant: '資料夾路徑' - ja: 'データフォルダパス' - ko: '데이터 폴더 경로' - ru: 'Путь к папке данных' - ms: 'Laluan folder data' - pt-br: 'Caminho da pasta de dados' - required: true - type: text - - default: "" - edit: true - envKey: PROXY - labelEn: Specify the proxy in the format:protocol://user:pass@ip:port. - labelZh: 指定代理,格式:protocol://user:pass@ip:port。 - label: - en: 'Specify the proxy in the format: protocol://user:pass@ip:port.' - zh: '按格式指定代理:protocol://user:pass@ip:port。' - zh-Hant: '依格式指定代理:protocol://user:pass@ip:port。' - ja: '形式でプロキシを指定:protocol://user:pass@ip:port。' - ko: '형식대로 프록시 지정: protocol://user:pass@ip:port.' - ru: 'Укажите прокси в формате: protocol://user:pass@ip:port.' - ms: 'Nyatakan proksi dalam format: protocol://user:pass@ip:port.' - pt-br: 'Especifique o proxy no formato: protocol://user:pass@ip:port.' - required: false - type: text - - default: https://ai.fakeopen.com - edit: true - envKey: API_BASE_URL - labelEn: OpenAI API interface address - labelZh: OpenAI API接口地址 - label: - en: 'OpenAI API interface address' - zh: 'OpenAI API接口地址' - zh-Hant: 'OpenAI API 介面位址' - ja: 'OpenAI API インターフェースアドレス' - ko: 'OpenAI API 인터페이스 주소' - ru: 'Адрес интерфейса OpenAI API' - ms: 'Alamat antara muka OpenAI API' - pt-br: 'Endereço da interface da OpenAI API' - required: true - type: text - - default: https://ai.fakeopen.com - edit: true - envKey: REVERSE_PROXY - labelEn: ChatGPT API reverse proxy - labelZh: ChatGPT API反向代理 - label: - en: 'ChatGPT API reverse proxy' - zh: 'ChatGPT API 反向代理' - zh-Hant: 'ChatGPT API 反向代理' - ja: 'ChatGPT API リバースプロキシ' - ko: 'ChatGPT API 리버스 프록시' - ru: 'Обратный прокси для ChatGPT API' - ms: 'Proksi songsang ChatGPT API' - pt-br: 'Proxy reverso do ChatGPT API' - required: true - type: text diff --git a/apps/pandora/latest/docker-compose.yml b/apps/pandora/latest/docker-compose.yml deleted file mode 100644 index 6c0fd5c83..000000000 --- a/apps/pandora/latest/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -services: - pandora: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:40040" - volumes: - - "${DATA_PATH}:/data" - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - environment: - # 指定Access Token字符串。 - #- PANDORA_ACCESS_TOKEN=${ACCESS_TOKEN} - # 指定一个存放多Access Token的文件路径。 - #- PANDORA_TOKENS_FILE=${DATA_PATH}/TOKEN.txt - # 指定代理,格式:protocol://user:pass@ip:port。 - - PANDORA_PROXY=${PROXY} - # 以http服务方式启动,格式:ip:port - - PANDORA_SERVER=0.0.0.0:40040 - # 使用gpt-3.5-turboAPI请求,你可能需要向OpenAI支付费用。 - #- PANDORA_API=${API_KEY} - # 启用sentry框架来发送错误报告供作者查错,敏感信息不会被发送。 - #- PANDORA_SENTRY - # 显示调试信息,且出错时打印异常堆栈信息,供查错使用。 - - PANDORA_VERBOSE - # 指定服务启动的线程数,默认为 8,Cloud模式为 4。 - - PANDORA_THREADS=4 - - PANDORA_CLOUD=CLOUD - - OPENAI_API_PREFIX=${API_BASE_URL} - - CHATGPT_API_PREFIX=${REVERSE_PROXY} - #- OPENAI_EMAIL=${OPENAI_ACCOUNT} - #- OPENAI_PASSWORD=${OPENAI_PASSWORD} - #- OPENAI_MFA_CODE=${OPENAI_MFA} - tty: true - image: pengzhile/pandora:latest - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/pandora/logo.png b/apps/pandora/logo.png deleted file mode 100644 index fa49080468ca3834b30a232d939c3a352922f331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2305 zcmV+c3I6tpP)Px#9#BkFMRKf~bgP|otDSVLo&W#;WTlkr@$b*y+OW&S zle@48Ry3>t000AYQchC=tV#9;q&NTo2y#h8K~!kowOh+l+e#1><_E~-2a?JUBpJqm zbyTvwo|0{?EsV3qj>#GfVQmcY-(K08clSILq^Vn}Tf{zTdQPA2neIsvd-XnjAWhfT zum62aLaWytm#+^2@K59&>pvgzIeFLm>NLFfPGk@EyOAqw9QiY8VSQ_T2fcgQBQ33u zT{zm|?i145I%SXGWW5pSBDAr3-ohlAMs1*IBzEj)r@Ww7x!eP` zmFjCjC1#p9i{s{PNKH?lKbl zn}^nX6L*2Y&u*E6*yn*wv^WfqE9^~U=ssdJA}MJ)a6kw6F*1y%ViPk1dxpBi6X(a+ z+qlGPKA$UH*)@Ycx;oSCp_hu!&m<>TPXc_z8bSBLccua^i0OUMqUS@i`0geKT(=bi+yf;1O#M)#y2mQYUnW} zbme@V-h~xjIP{gU@IijM4`_FEzLvMBEea?!$N8Px&_imgiRSqiY#%LXTJn%PZp~0Z zYlIdtpD8AeF&RlPPFFb8v|58v6jCgoViZZROwbBFn zS`wOzhoa$-2BGU+B)HWwiAl-R6J`)v2`PjYv_nJwHt3L25#NqRxodiU%q0cOK*(H4 zRznTZ4gZf5}pzHc&Ib`m*w$RTXBab{yG}X2By7qGkDyTwf$}9xEL9OON{T(J? zrB}XGFxCqu)7KnOmVWn$e)|$wUn>g{s}F9F$!i18)+7W?T)wV1PjEt~;A_|+02<5a zf)iRE&L7YcJHjCsrj>#ddRYPAJ*ZDa}*P`)2JbdEyz)s> zA?S^VAuq_ifqt?Or|8BSV)oMVj6utD>NF5WrGFsOA&f$jo~K;hh`mPGA@CG=q|lne73)D#f5nc!`KXi+c;R zOQ$pifu00T1tQRe%Zz&iO$ni|gJ&5~1L^k$T5f<=*ZcA#;*xm-?+vt&pMs3eKeq8h zn}SZQ0$t@w9h#qZ{a1*bpCh|@xd8X#8no!!&tfk0HGUqyha`n-2|apC@#Y<9LzGr6 zTh&hkb}DY74@=an;@y*2VLO3TCBO- z_fBvnuGx*1t5>Mq3q5$}&X6wY7#VIto4d6U&S^QUZ4AmX?S@@%?$)A^GZGCgN=oIy z{1R>MPO$r5ztvMY9(1%QXKy7I&Bzr<5Lz{J@AlQNEoTtTX$4oe*x&sx^a+y^OJV^@ zsG-k^w@I%rGvwT1>x0JTguqNe5t{9DOb}VUKbwq-N885GaQe`mR+y#%e-PIom_4Uv z=WEWQYtkIL%D1Iw^pJ0KMtsnxuD?;^L6CaFUnAy&c8>~D_IEumv-!=PAYX0={)YS; zbOlib`nLL0MCW2#{Up!HlbL*7&@m(9GErsgKl{IOM$2zBiJQKDL8H^_=>zn61a?s( z$XQ^dG;SQ7P7vr@7J@z{G1#xoM{Hx~^Vy>{9vGg(j(%0Z9-B^h$3Nhx=g!Lbx%39l z3i3-H`B~gFeUrx!H0N&sC?j#u4c_52db!ZSYZ)E-q&w(dchFrtJrU3+-9dM=k)1r& z(xH3ZL3gr|-Mox5pijDk?tmmockj%S?q0`r_gs)9-C?);kl6{{GIlpljxp#q4aeTm bw}k#bick7jHl#0100000NkvXXu0mjf>0@QZ diff --git a/apps/reader/2.7.4/.env.sample b/apps/reader/2.7.4/.env.sample deleted file mode 100644 index 602d07a20..000000000 --- a/apps/reader/2.7.4/.env.sample +++ /dev/null @@ -1,7 +0,0 @@ -CONTAINER_NAME="reader" -PANEL_APP_PORT_HTTP="40053" -DATA_PATH="./data" -INVITE_CODE="icode" -PASSWORD="reader_pwd" -USER_LIMIT="50" -BOOK_LIMIT="200" diff --git a/apps/reader/2.7.4/data.yml b/apps/reader/2.7.4/data.yml deleted file mode 100644 index b8093b38a..000000000 --- a/apps/reader/2.7.4/data.yml +++ /dev/null @@ -1,105 +0,0 @@ -additionalProperties: - formFields: - - default: 40053 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: 'Port' - zh: '端口' - zh-Hant: '埠' - ja: 'ポート' - ko: '포트' - ru: 'Порт' - ms: 'Port' - pt-br: 'Porta' - required: true - rule: paramPort - type: number - - default: ./data - edit: true - envKey: DATA_PATH - labelEn: Data folder path - labelZh: 数据文件夹路径 - label: - en: 'Data folder path' - zh: '数据文件夹路径' - zh-Hant: '資料夾路徑' - ja: 'データフォルダパス' - ko: '데이터 폴더 경로' - ru: 'Путь к папке данных' - ms: 'Laluan folder data' - pt-br: 'Caminho da pasta de dados' - required: true - type: text - - default: 50 - edit: true - envKey: USER_LIMIT - labelEn: User limit - labelZh: 用户数量限制 - label: - en: 'User limit' - zh: '用户数量限制' - zh-Hant: '使用者數量限制' - ja: 'ユーザー数上限' - ko: '사용자 수 제한' - ru: 'Лимит пользователей' - ms: 'Had pengguna' - pt-br: 'Limite de usuários' - required: true - rule: paramCommon - type: number - - default: 200 - edit: true - envKey: BOOK_LIMIT - labelEn: Book limit - labelZh: 书本数量限制 - label: - en: 'Book limit' - zh: '书本数量限制' - zh-Hant: '書籍數量限制' - ja: '書籍数上限' - ko: '도서 수 제한' - ru: 'Лимит книг' - ms: 'Had buku' - pt-br: 'Limite de livros' - required: true - rule: paramCommon - type: number - - default: "reader" - edit: true - envKey: PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - label: - en: 'Admin Password' - zh: '管理员密码' - zh-Hant: '管理員密碼' - ja: '管理者パスワード' - ko: '관리자 비밀번호' - ru: 'Пароль администратора' - ms: 'Kata laluan pentadbir' - pt-br: 'Senha de administrador' - random: true - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: INVITE_CODE - labelEn: Invitation code - labelZh: 邀请码 - label: - en: 'Invitation code' - zh: '邀请码' - zh-Hant: '邀請碼' - ja: '招待コード' - ko: '초대 코드' - ru: 'Код приглашения' - ms: 'Kod jemputan' - pt-br: 'Código de convite' - random: true - required: true - rule: paramCommon - type: text diff --git a/apps/reader/2.7.4/docker-compose.yml b/apps/reader/2.7.4/docker-compose.yml deleted file mode 100644 index 91956d0e5..000000000 --- a/apps/reader/2.7.4/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - reader: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - volumes: - - "${DATA_PATH}/log:/log" - - "${DATA_PATH}/storage:/storage" - environment: - - SPRING_PROFILES_ACTIVE=prod - - READER_APP_USERLIMIT=${USER_LIMIT} - - READER_APP_USERBOOKLIMIT=${BOOK_LIMIT} - - READER_APP_CACHECHAPTERCONTENT=true - # 如果启用远程webview,需要取消注释下面的 remote-webview 服务 - # - READER_APP_REMOTEWEBVIEWAPI=http://remote-webview:8050 #开启远程webview - - READER_APP_SECURE=true - - READER_APP_SECUREKEY=${PASSWORD} - - READER_APP_INVITECODE=${INVITE_CODE} - image: hectorqin/reader:2.7.4 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/reader/3.2.14/.env.sample b/apps/reader/3.2.14/.env.sample deleted file mode 100644 index 602d07a20..000000000 --- a/apps/reader/3.2.14/.env.sample +++ /dev/null @@ -1,7 +0,0 @@ -CONTAINER_NAME="reader" -PANEL_APP_PORT_HTTP="40053" -DATA_PATH="./data" -INVITE_CODE="icode" -PASSWORD="reader_pwd" -USER_LIMIT="50" -BOOK_LIMIT="200" diff --git a/apps/reader/3.2.14/data.yml b/apps/reader/3.2.14/data.yml deleted file mode 100644 index b8093b38a..000000000 --- a/apps/reader/3.2.14/data.yml +++ /dev/null @@ -1,105 +0,0 @@ -additionalProperties: - formFields: - - default: 40053 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: 'Port' - zh: '端口' - zh-Hant: '埠' - ja: 'ポート' - ko: '포트' - ru: 'Порт' - ms: 'Port' - pt-br: 'Porta' - required: true - rule: paramPort - type: number - - default: ./data - edit: true - envKey: DATA_PATH - labelEn: Data folder path - labelZh: 数据文件夹路径 - label: - en: 'Data folder path' - zh: '数据文件夹路径' - zh-Hant: '資料夾路徑' - ja: 'データフォルダパス' - ko: '데이터 폴더 경로' - ru: 'Путь к папке данных' - ms: 'Laluan folder data' - pt-br: 'Caminho da pasta de dados' - required: true - type: text - - default: 50 - edit: true - envKey: USER_LIMIT - labelEn: User limit - labelZh: 用户数量限制 - label: - en: 'User limit' - zh: '用户数量限制' - zh-Hant: '使用者數量限制' - ja: 'ユーザー数上限' - ko: '사용자 수 제한' - ru: 'Лимит пользователей' - ms: 'Had pengguna' - pt-br: 'Limite de usuários' - required: true - rule: paramCommon - type: number - - default: 200 - edit: true - envKey: BOOK_LIMIT - labelEn: Book limit - labelZh: 书本数量限制 - label: - en: 'Book limit' - zh: '书本数量限制' - zh-Hant: '書籍數量限制' - ja: '書籍数上限' - ko: '도서 수 제한' - ru: 'Лимит книг' - ms: 'Had buku' - pt-br: 'Limite de livros' - required: true - rule: paramCommon - type: number - - default: "reader" - edit: true - envKey: PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - label: - en: 'Admin Password' - zh: '管理员密码' - zh-Hant: '管理員密碼' - ja: '管理者パスワード' - ko: '관리자 비밀번호' - ru: 'Пароль администратора' - ms: 'Kata laluan pentadbir' - pt-br: 'Senha de administrador' - random: true - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: INVITE_CODE - labelEn: Invitation code - labelZh: 邀请码 - label: - en: 'Invitation code' - zh: '邀请码' - zh-Hant: '邀請碼' - ja: '招待コード' - ko: '초대 코드' - ru: 'Код приглашения' - ms: 'Kod jemputan' - pt-br: 'Código de convite' - random: true - required: true - rule: paramCommon - type: text diff --git a/apps/reader/3.2.14/docker-compose.yml b/apps/reader/3.2.14/docker-compose.yml deleted file mode 100644 index 4a86aded8..000000000 --- a/apps/reader/3.2.14/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - reader: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - volumes: - - "${DATA_PATH}/log:/log" - - "${DATA_PATH}/storage:/storage" - environment: - - SPRING_PROFILES_ACTIVE=prod - - READER_APP_USERLIMIT=${USER_LIMIT} - - READER_APP_USERBOOKLIMIT=${BOOK_LIMIT} - - READER_APP_CACHECHAPTERCONTENT=true - # 如果启用远程webview,需要取消注释下面的 remote-webview 服务 - # - READER_APP_REMOTEWEBVIEWAPI=http://remote-webview:8050 #开启远程webview - - READER_APP_SECURE=true - - READER_APP_SECUREKEY=${PASSWORD} - - READER_APP_INVITECODE=${INVITE_CODE} - image: hectorqin/reader:3.2.14 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/reader/README.md b/apps/reader/README.md deleted file mode 100644 index 1a3b39e0a..000000000 --- a/apps/reader/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 阅读3服务器版 - -## 应用简介 -阅读3服务器版,不需要手机。 - -英文说明:Legado 3.0 Book Reader Server Version. - -## 部署说明 -- 本应用使用 Docker Compose 在 1Panel 中部署。 -- 应用分类:工具。 -- 支持架构:amd64。 -- 可选版本:`latest`、`2.7.4`、`3.2.14`。 -- 安装后按应用表单中的端口访问 Web UI、SSH 或对应服务。 - -## 端口 -| 变量 | 说明 | 默认值 | 必填 | -| --- | --- | --- | --- | -| PANEL_APP_PORT_HTTP | 端口 | 40053 | 是 | - -## 数据持久化 -| 变量 | 说明 | 默认值 | 必填 | -| --- | --- | --- | --- | -| DATA_PATH | 数据文件夹路径 | ./data | 是 | - -升级或迁移前,请在 1Panel 中备份上述数据目录。 - -## 配置项 -| 变量 | 说明 | 默认值 | 必填 | -| --- | --- | --- | --- | -| USER_LIMIT | 用户数量限制 | 50 | 是 | -| BOOK_LIMIT | 书本数量限制 | 200 | 是 | -| PASSWORD | 管理员密码 | reader | 是 | -| INVITE_CODE | 邀请码 | - | 是 | - -## 使用说明 -- 安装完成后,在 1Panel 应用页面查看运行状态、端口和日志。 -- 首次启用前,请按安装表单填写域名、账号、密码、Token、数据目录等参数。 -- 如需对外开放访问,请同步检查防火墙、安全组和反向代理配置。 - -## 参考资料 -- 官网: diff --git a/apps/reader/data.yml b/apps/reader/data.yml deleted file mode 100644 index ce19b80aa..000000000 --- a/apps/reader/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: 阅读3服务器版 -tags: - - 工具 -title: 阅读3服务器版,不需要手机 -description: 阅读3服务器版,不需要手机 -additionalProperties: - key: reader - name: 阅读3服务器版 - tags: - - Tool - shortDescZh: 阅读3服务器版,不需要手机 - shortDescEn: Legado 3.0 Book Reader Server Version - description: - en: Legado 3 server version, no phone required - zh: 阅读3服务器版,不需要手机 - zh-Hant: 閱讀3伺服器版,不需要手機 - ja: Legado 3 サーバー版、スマホ不要 - ko: Legado 3 서버 버전, 휴대폰 필요 없음 - ru: Серверная версия Legado 3, телефон не требуется - ms: Versi pelayan Legado 3, tidak memerlukan telefon - pt-br: Versão servidor do Legado 3, não precisa de celular - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/hectorqin/reader - github: https://github.com/hectorqin/reader - document: https://github.com/hectorqin/reader - architectures: - - amd64 diff --git a/apps/reader/latest/.env.sample b/apps/reader/latest/.env.sample deleted file mode 100644 index 602d07a20..000000000 --- a/apps/reader/latest/.env.sample +++ /dev/null @@ -1,7 +0,0 @@ -CONTAINER_NAME="reader" -PANEL_APP_PORT_HTTP="40053" -DATA_PATH="./data" -INVITE_CODE="icode" -PASSWORD="reader_pwd" -USER_LIMIT="50" -BOOK_LIMIT="200" diff --git a/apps/reader/latest/data.yml b/apps/reader/latest/data.yml deleted file mode 100644 index b8093b38a..000000000 --- a/apps/reader/latest/data.yml +++ /dev/null @@ -1,105 +0,0 @@ -additionalProperties: - formFields: - - default: 40053 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - label: - en: 'Port' - zh: '端口' - zh-Hant: '埠' - ja: 'ポート' - ko: '포트' - ru: 'Порт' - ms: 'Port' - pt-br: 'Porta' - required: true - rule: paramPort - type: number - - default: ./data - edit: true - envKey: DATA_PATH - labelEn: Data folder path - labelZh: 数据文件夹路径 - label: - en: 'Data folder path' - zh: '数据文件夹路径' - zh-Hant: '資料夾路徑' - ja: 'データフォルダパス' - ko: '데이터 폴더 경로' - ru: 'Путь к папке данных' - ms: 'Laluan folder data' - pt-br: 'Caminho da pasta de dados' - required: true - type: text - - default: 50 - edit: true - envKey: USER_LIMIT - labelEn: User limit - labelZh: 用户数量限制 - label: - en: 'User limit' - zh: '用户数量限制' - zh-Hant: '使用者數量限制' - ja: 'ユーザー数上限' - ko: '사용자 수 제한' - ru: 'Лимит пользователей' - ms: 'Had pengguna' - pt-br: 'Limite de usuários' - required: true - rule: paramCommon - type: number - - default: 200 - edit: true - envKey: BOOK_LIMIT - labelEn: Book limit - labelZh: 书本数量限制 - label: - en: 'Book limit' - zh: '书本数量限制' - zh-Hant: '書籍數量限制' - ja: '書籍数上限' - ko: '도서 수 제한' - ru: 'Лимит книг' - ms: 'Had buku' - pt-br: 'Limite de livros' - required: true - rule: paramCommon - type: number - - default: "reader" - edit: true - envKey: PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - label: - en: 'Admin Password' - zh: '管理员密码' - zh-Hant: '管理員密碼' - ja: '管理者パスワード' - ko: '관리자 비밀번호' - ru: 'Пароль администратора' - ms: 'Kata laluan pentadbir' - pt-br: 'Senha de administrador' - random: true - required: true - rule: paramCommon - type: text - - default: "" - edit: true - envKey: INVITE_CODE - labelEn: Invitation code - labelZh: 邀请码 - label: - en: 'Invitation code' - zh: '邀请码' - zh-Hant: '邀請碼' - ja: '招待コード' - ko: '초대 코드' - ru: 'Код приглашения' - ms: 'Kod jemputan' - pt-br: 'Código de convite' - random: true - required: true - rule: paramCommon - type: text diff --git a/apps/reader/latest/docker-compose.yml b/apps/reader/latest/docker-compose.yml deleted file mode 100644 index d2053e218..000000000 --- a/apps/reader/latest/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - reader: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - volumes: - - "${DATA_PATH}/log:/log" - - "${DATA_PATH}/storage:/storage" - environment: - - SPRING_PROFILES_ACTIVE=prod - - READER_APP_USERLIMIT=${USER_LIMIT} - - READER_APP_USERBOOKLIMIT=${BOOK_LIMIT} - - READER_APP_CACHECHAPTERCONTENT=true - # 如果启用远程webview,需要取消注释下面的 remote-webview 服务 - # - READER_APP_REMOTEWEBVIEWAPI=http://remote-webview:8050 #开启远程webview - - READER_APP_SECURE=true - - READER_APP_SECUREKEY=${PASSWORD} - - READER_APP_INVITECODE=${INVITE_CODE} - image: hectorqin/reader:latest - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/reader/logo.png b/apps/reader/logo.png deleted file mode 100644 index 4b828e59093a3a84b1a681fe08e22f1414a9af20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5112 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