From 4166ce508958c546920d735813aaea8d1d9b5ed6 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Fri, 18 Jul 2025 12:25:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=20Readeck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- .github/README.md | 1 + README.md | 1 + apps/readeck-pg/0.19.1/data.yml | 164 ++++++++++++++++++++ apps/readeck-pg/0.19.1/docker-compose.yml | 31 ++++ apps/readeck-pg/0.19.1/envs/default.env | 2 + apps/readeck-pg/0.19.1/envs/global.env | 2 + apps/readeck-pg/0.19.1/scripts/init.sh | 17 ++ apps/readeck-pg/0.19.1/scripts/uninstall.sh | 10 ++ apps/readeck-pg/0.19.1/scripts/upgrade.sh | 17 ++ apps/readeck-pg/README.md | 66 ++++++++ apps/readeck-pg/data.yml | 14 ++ apps/readeck-pg/logo.png | Bin 0 -> 16970 bytes apps/readeck-pg/logo.svg | 16 ++ 13 files changed, 341 insertions(+) create mode 100644 apps/readeck-pg/0.19.1/data.yml create mode 100644 apps/readeck-pg/0.19.1/docker-compose.yml create mode 100644 apps/readeck-pg/0.19.1/envs/default.env create mode 100644 apps/readeck-pg/0.19.1/envs/global.env create mode 100644 apps/readeck-pg/0.19.1/scripts/init.sh create mode 100644 apps/readeck-pg/0.19.1/scripts/uninstall.sh create mode 100644 apps/readeck-pg/0.19.1/scripts/upgrade.sh create mode 100644 apps/readeck-pg/README.md create mode 100644 apps/readeck-pg/data.yml create mode 100644 apps/readeck-pg/logo.png create mode 100644 apps/readeck-pg/logo.svg diff --git a/.github/README.md b/.github/README.md index 5e2226eb9..2e960ad44 100644 --- a/.github/README.md +++ b/.github/README.md @@ -144,6 +144,7 @@ | 🟢 | | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | | | 🟢 | | 青龙 | https://qinglong.online/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | | | 🟢 | | radarr | https://radarr.video/ | 电影组织者/管理员,适用于 Usenet 和 torrent 用户 | | +| 🟢 | | Readeck | https://readeck.org/ | 网页内容存档工具 | | | 🟢 | | 阅读3 | https://github.com/hectorqin/reader/ | 【阅读3】阅读3服务器版,不需要手机 | | | 🟢 | | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | | | 🟢 | | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | | diff --git a/README.md b/README.md index df0a1f250..3d03a0843 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,7 @@ | 🟢 | | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | | | 🟢 | | 青龙 | https://qinglong.online/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | | | 🟢 | | radarr | https://radarr.video/ | 电影组织者/管理员,适用于 Usenet 和 torrent 用户 | | +| 🟢 | | Readeck | https://readeck.org/ | 网页内容存档工具 | | | 🟢 | | 阅读3 | https://github.com/hectorqin/reader/ | 【阅读3】阅读3服务器版,不需要手机 | | | 🟢 | | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | | | 🟢 | | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | | diff --git a/apps/readeck-pg/0.19.1/data.yml b/apps/readeck-pg/0.19.1/data.yml new file mode 100644 index 000000000..e3f45e634 --- /dev/null +++ b/apps/readeck-pg/0.19.1/data.yml @@ -0,0 +1,164 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_POSTGRES_SERVICE + required: true + type: service + default: postgresql + envKey: PANEL_POSTGRES_TYPE + labelZh: Postgres 服务 (前置检查) + labelEn: Postgres Service (Pre-check) + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - default: "/home/readeck" + edit: true + envKey: READECK_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "127.0.0.1" + edit: true + envKey: POSTGRES_HOST + labelZh: 数据库 主机地址 + labelEn: Database Host + required: true + type: text + - default: 5432 + edit: true + envKey: POSTGRES_PORT + labelZh: 数据库 端口 + labelEn: Database Port + required: true + rule: paramPort + type: number + - default: "readeck" + edit: true + envKey: POSTGRES_NAME + labelZh: 数据库 名称 + labelEn: Database Name + required: true + rule: paramCommon + type: text + - default: "readeck" + edit: true + envKey: POSTGRES_USER + labelZh: 数据库 用户名 + labelEn: Database Username + required: true + type: text + - default: "" + edit: true + envKey: POSTGRES_PASSWORD + labelZh: 数据库 密码 + labelEn: Database Password + random: true + required: true + rule: paramComplexity + type: password + - default: "/" + edit: true + envKey: READECK_SERVER_PREFIX + labelZh: 前缀路径 + labelEn: Prefix path + required: false + type: text + - default: "" + edit: true + envKey: READECK_ALLOWED_HOSTS + labelZh: HTTP 请求中允许的主机名列表 + labelEn: HTTP request allowed host name list + required: false + type: text + - default: "" + edit: true + envKey: READECK_SERVER_BASE_URL + labelZh: 绑定域名 + labelEn: Binding domain + required: false + type: text + - default: 24 + edit: true + envKey: READECK_PUBLIC_SHARE_TTL + labelZh: 分享有效期 + labelEn: Share validity period + required: true + type: number + - default: "smtp.qq.com" + edit: true + envKey: READECK_MAIL_HOST + labelZh: 邮件服务器 + labelEn: Mail Server + required: false + type: text + - default: 465 + edit: true + envKey: READECK_MAIL_PORT + labelZh: 邮件服务器 端口 + labelEn: Mail Server Port + required: false + type: number + - default: "" + edit: true + envKey: READECK_MAIL_USERNAME + labelZh: 邮件鉴权 用户名 + labelEn: Mail Username + required: false + type: text + - default: "" + edit: true + envKey: READECK_MAIL_PASSWORD + labelZh: 邮件鉴权 密码 + labelEn: Mail Password + required: false + type: password + - default: "" + edit: true + envKey: READECK_MAIL_FROM + labelZh: 邮件发送者 + labelEn: Mail Sender + required: false + type: text + - default: "" + edit: true + envKey: READECK_MAIL_FROMNOREPLY + labelZh: 邮件发送者 (无回复) + labelEn: Mail Sender (No Reply) + required: false + type: text + - default: "false" + edit: true + envKey: READECK_MAIL_INSECURE + labelZh: 服务器证书验证 + labelEn: Server certificate verification + required: false + type: select + values: + - label: 不验证 + value: "true" + - label: 验证 + value: "false" + - default: "" + edit: true + envKey: READECK_MAIL_ENCRYPTION + labelZh: SMTP 主机 加密方式 + labelEn: SMTP Host Encryption Method + required: false + type: select + values: + - label: StartTLS + value: "starttls" + - label: SSL/TLS + value: "ssltls" diff --git a/apps/readeck-pg/0.19.1/docker-compose.yml b/apps/readeck-pg/0.19.1/docker-compose.yml new file mode 100644 index 000000000..02be8573f --- /dev/null +++ b/apps/readeck-pg/0.19.1/docker-compose.yml @@ -0,0 +1,31 @@ +networks: + 1panel-network: + external: true + +services: + readeck: + image: codeberg.org/readeck/readeck:0.19.1 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + healthcheck: + test: [ "CMD", "/bin/readeck", "healthcheck", "-config", "config.toml" ] + interval: 30s + timeout: 2s + retries: 3 + volumes: + - ${READECK_ROOT_PATH}/data:/data + environment: + - TZ=Asia/Shanghai + - READECK_LOG_LEVEL=info + - READECK_SERVER_HOST=0.0.0.0 + - READECK_SERVER_PORT=${PANEL_APP_PORT_HTTP} + - READECK_DATABASE_SOURCE=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_NAME} diff --git a/apps/readeck-pg/0.19.1/envs/default.env b/apps/readeck-pg/0.19.1/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/readeck-pg/0.19.1/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/readeck-pg/0.19.1/envs/global.env b/apps/readeck-pg/0.19.1/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/readeck-pg/0.19.1/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/readeck-pg/0.19.1/scripts/init.sh b/apps/readeck-pg/0.19.1/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/readeck-pg/0.19.1/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/readeck-pg/0.19.1/scripts/uninstall.sh b/apps/readeck-pg/0.19.1/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/readeck-pg/0.19.1/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/readeck-pg/0.19.1/scripts/upgrade.sh b/apps/readeck-pg/0.19.1/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/readeck-pg/0.19.1/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/readeck-pg/README.md b/apps/readeck-pg/README.md new file mode 100644 index 000000000..c73d8c4c8 --- /dev/null +++ b/apps/readeck-pg/README.md @@ -0,0 +1,66 @@ +# Readeck + +Readeck 是一个简单的网络应用程序,可让您保存您喜欢并希望永久保留的网页的宝贵可读内容。 +将其视为书签管理器和稍后阅读工具。 + +![Readeck](https://file.lifebus.top/imgs/readeck_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 简介 + +Readeck 是一个开源的网页内容存档工具,它不仅能像普通书签管理器一样保存链接,还能将网页内容(包括文字、图片甚至视频)完整打包成离线文件。 +就算原网站倒闭跑路,你保存的内容依然妥妥存在自己的服务器里! + +## 特性 + +### 🔖 书签 + +喜欢你正在阅读的页面?把链接粘贴到 Readeck 就完成了! + +### 📸 文章、图片和视频 + +Readeck 会保存网页的可读内容,方便您稍后阅读。它还能检测页面内容是图片还是视频,并相应地调整处理方式。 + +### ⭐ 标签、收藏、存档 + +将书签移动到档案或收藏夹并添加任意数量的标签。 + +### 🖍️ 亮点 + +突出显示书签的重要内容,以便以后轻松找到。 + +### 🗃️ 收藏集 + +如果您需要一个专门的部分来存储过去两周内标有“cat”的所有书签,Readeck 可让您将此搜索查询保存到一个集合中,以便您以后访问它。 + +### 📖 电子书导出 + +还有什么比在电子阅读器上阅读你收藏的文章更棒的呢?你可以将任何文章导出为电子书文件 (EPUB)。你甚至可以将整个收藏集导出为一本书! + +除此之外,如果您的电子阅读器支持 OPDS,您可以直接从电子阅读器访问 Readeck 的目录和收藏。 + +### 🔎 全文搜索 + +无论您需要从文章中查找模糊的文字,还是查找具有特定标签或来自特定网站的所有文章,我们都能满足您的需求! + +### 🚀 快! + +Readeck 是对那些看似枯燥乏味却久经考验的技术产品的现代诠释。它保证了极快的响应时间和流畅的用户体验。 + +### 🔒 专为保护您的隐私和长期存档而打造 + +你喜欢的这篇文章明年还会上线吗?十年后呢?也许不会;也许它连文字和图片都消失了。出于这个原因,也为了保护你的隐私,当你保存链接时,所有文字和图片都会存储在你的 +Readeck 实例中。 +除视频外,您的浏览器不会向外部网站发出任何请求。 + +### 🧩 浏览器扩展 + +想在浏览时保存一些内容以供日后使用?无需复制粘贴链接。安装浏览器扩展程序,一键保存书签! + ++ [Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/readeck/) ++ [Google Chrome](https://chromewebstore.google.com/detail/readeck/jnmcpmfimecibicbojhopfkcbmkafhee) + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/readeck-pg/data.yml b/apps/readeck-pg/data.yml new file mode 100644 index 000000000..2b7419f53 --- /dev/null +++ b/apps/readeck-pg/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: readeck-pg + name: Readeck (PostgreSQL版) + tags: + - WebSite + - Local + shortDescZh: 网页内容存档工具 + shortDescEn: web content archiving tool + type: website + crossVersionUpdate: true + limit: 0 + website: https://readeck.org/ + github: https://codeberg.org/readeck/readeck/ + document: https://readeck.org/ diff --git a/apps/readeck-pg/logo.png b/apps/readeck-pg/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a32d613d7ce6b5e9e5d39b1e0db242dac1afb3a4 GIT binary patch literal 16970 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 literal 0 KcmV+b0RR6000031 diff --git a/apps/readeck-pg/logo.svg b/apps/readeck-pg/logo.svg new file mode 100644 index 000000000..7335416e8 --- /dev/null +++ b/apps/readeck-pg/logo.svg @@ -0,0 +1,16 @@ + + + + + + + + +