From cd26953e89eca9d3a1b1ef041dc3cf59cb630d69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=81=AF=E7=81=AB=E9=98=91=E7=8F=8A?=
<47273274+clover1420@users.noreply.github.com>
Date: Mon, 8 Jan 2024 10:38:27 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Twikoo=20(#732)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
apps/twikoo/1.6.27/.env.sample | 3 +
apps/twikoo/1.6.27/data.yml | 17 +++
apps/twikoo/1.6.27/docker-compose.yml | 21 ++++
apps/twikoo/README.md | 137 +++++++++++++++++++++++++
apps/twikoo/arm32v7/.env.sample | 3 +
apps/twikoo/arm32v7/data.yml | 17 +++
apps/twikoo/arm32v7/docker-compose.yml | 21 ++++
apps/twikoo/data.yml | 20 ++++
apps/twikoo/logo.png | Bin 0 -> 3268 bytes
9 files changed, 239 insertions(+)
create mode 100644 apps/twikoo/1.6.27/.env.sample
create mode 100644 apps/twikoo/1.6.27/data.yml
create mode 100644 apps/twikoo/1.6.27/docker-compose.yml
create mode 100644 apps/twikoo/README.md
create mode 100644 apps/twikoo/arm32v7/.env.sample
create mode 100644 apps/twikoo/arm32v7/data.yml
create mode 100644 apps/twikoo/arm32v7/docker-compose.yml
create mode 100644 apps/twikoo/data.yml
create mode 100644 apps/twikoo/logo.png
diff --git a/apps/twikoo/1.6.27/.env.sample b/apps/twikoo/1.6.27/.env.sample
new file mode 100644
index 000000000..983eeae17
--- /dev/null
+++ b/apps/twikoo/1.6.27/.env.sample
@@ -0,0 +1,3 @@
+CONTAINER_NAME="twikoo"
+PANEL_APP_PORT_HTTP="40063"
+DATA_PATH="./data"
diff --git a/apps/twikoo/1.6.27/data.yml b/apps/twikoo/1.6.27/data.yml
new file mode 100644
index 000000000..40a84f1c8
--- /dev/null
+++ b/apps/twikoo/1.6.27/data.yml
@@ -0,0 +1,17 @@
+additionalProperties:
+ formFields:
+ - default: 40063
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data folder path
+ labelZh: 数据文件夹路径
+ required: true
+ type: text
diff --git a/apps/twikoo/1.6.27/docker-compose.yml b/apps/twikoo/1.6.27/docker-compose.yml
new file mode 100644
index 000000000..85e92486b
--- /dev/null
+++ b/apps/twikoo/1.6.27/docker-compose.yml
@@ -0,0 +1,21 @@
+version: '3'
+services:
+ twikoo:
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8080"
+ volumes:
+ - "${DATA_PATH}:/app/data"
+ environment:
+ - "TWIKOO_THROTTLE=1000"
+ - "TWIKOO_PORT=8080"
+ image: imaegoo/twikoo:1.6.27
+ labels:
+ createdBy: "Apps"
+
+networks:
+ 1panel-network:
+ external: true
diff --git a/apps/twikoo/README.md b/apps/twikoo/README.md
new file mode 100644
index 000000000..edb4f2e6f
--- /dev/null
+++ b/apps/twikoo/README.md
@@ -0,0 +1,137 @@
+
+
+----
+
+[](https://www.npmjs.com/package/twikoo)
+[](https://bundlephobia.com/result?p=twikoo)
+[](https://www.npmjs.com/package/twikoo)
+[](https://www.jsdelivr.com/package/npm/twikoo)
+[](./LICENSE)
+
+一个**简洁**、**安全**、**免费**的静态网站评论系统。
+A **simple**, **safe**, **free** comment system.
+**简体中文**
+
+## 特色 | Features
+
+
+点击展开
+
+### 简单
+
+* 免费搭建(使用云开发 / Vercel / 私有部署评论后台)
+* 简单部署(支持云开发 / Vercel 一键部署)
+
+### 易用
+
+* 支持回复、点赞
+* 无需额外适配,支持搭配浅色主题与深色主题使用
+* 支持 API 调用,批量获取文章评论数、最新评论
+* 访客在昵称栏输入 QQ 号,会自动补全 QQ 昵称和 QQ 邮箱
+* 访客填写数字 QQ 邮箱,会使用 QQ 头像作为评论头像
+* 支持评论框粘贴图片(可禁用)
+* 支持插入图片(可禁用)
+* 支持去不图床、云开发图床
+* 支持插入表情(可禁用)
+* 支持 Ctrl + Enter 快捷回复
+* 评论框内容实时保存草稿,刷新不会丢失
+* [支持 Katex 公式](https://twikoo.js.org/faq.html#%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8-katex-%E6%94%AF%E6%8C%81)
+* 支持按语言的代码高亮
+
+### 安全
+
+* 隐私信息安全(通过云函数控制敏感字段(邮箱、IP、环境配置等)不会泄露)
+* 支持 Akismet 垃圾评论检测(需自行注册 [akismet.com](https://akismet.com/))
+* 支持腾讯云内容安全垃圾评论检测(需自行注册 [腾讯云内容安全](https://console.cloud.tencent.com/cms/text/overview))
+* 支持人工审核模式
+* 防 XSS 注入
+* 支持限制每个 IP 每 10 分钟最多发表多少条评论
+
+### 即时
+
+* 支持邮件提醒(访客和博主)
+* 支持微信提醒(仅针对博主,基于 [Server酱](https://sc.ftqq.com/3.version),需自行注册)
+* 支持 QQ 提醒(仅针对博主,基于 [Qmsg酱](https://qmsg.zendee.cn/),需自行注册)
+
+### 个性
+
+* 支持自定义评论框背景图片
+* 支持自定义“博主”标识文字
+* 支持自定义通知邮件模板
+* 支持自定义评论框提示信息(placeholder)
+* 支持自定义表情列表(兼容 [OwO 的数据格式](https://cdn.jsdelivr.net/npm/owo@1.0.2/demo/OwO.json))
+* 支持自定义【昵称】【邮箱】【网址】必填 / 选填
+* 支持自定义代码高亮主题
+
+### 便捷管理
+
+* 内嵌式管理面板,通过密码登录,可方便地查看评论、隐藏评论、删除评论、修改配置
+* 支持隐藏管理入口,通过输入暗号显示
+* 支持从 Valine、Artalk、Disqus 导入评论
+
+### 缺点
+
+* 不支持 IE
+
+
+
+## 预览 | Preview
+
+
+点击展开
+
+### 评论
+
+
+
+### 评论管理
+
+
+
+### 推送通知
+
+
+
+
+
+## 快速上手 | Quick Start
+
+有关详细教程,请查看[快速上手](https://twikoo.js.org/quick-start.html)
+
+
+如果你想获取更新动态、建言献策、参与测试,欢迎加入讨论群:1080829142
+
+
+
+
+
+## 特别感谢 | Special Thanks
+
+图标设计:[Maemo Lee](https://www.maemo.cc)
+
+
+
+## 开发 | Development
+
+如果您想在本地二次开发,可以参考以下命令:
+
+``` sh
+yarn dev # 开发 (http://localhost:9820/demo.html)
+yarn lint # 代码检查
+yarn build # 编译 (dist/twikoo.all.min.js)
+```
+
+如果您的改动能够帮助到更多人,欢迎提交 Pull Request!
+
+## 国际化 | I18N
+
+支持简体中文、繁体中文、English。欢迎[提交翻译 PR](https://github.com/imaegoo/twikoo/edit/main/src/client/utils/i18n/i18n.js)。
+
+## 许可 | License
+
+
+MIT License
+
+[](https://app.fossa.com/projects/git%2Bgithub.com%2Fimaegoo%2Ftwikoo?ref=badge_large)
+
+
\ No newline at end of file
diff --git a/apps/twikoo/arm32v7/.env.sample b/apps/twikoo/arm32v7/.env.sample
new file mode 100644
index 000000000..983eeae17
--- /dev/null
+++ b/apps/twikoo/arm32v7/.env.sample
@@ -0,0 +1,3 @@
+CONTAINER_NAME="twikoo"
+PANEL_APP_PORT_HTTP="40063"
+DATA_PATH="./data"
diff --git a/apps/twikoo/arm32v7/data.yml b/apps/twikoo/arm32v7/data.yml
new file mode 100644
index 000000000..40a84f1c8
--- /dev/null
+++ b/apps/twikoo/arm32v7/data.yml
@@ -0,0 +1,17 @@
+additionalProperties:
+ formFields:
+ - default: 40063
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data folder path
+ labelZh: 数据文件夹路径
+ required: true
+ type: text
diff --git a/apps/twikoo/arm32v7/docker-compose.yml b/apps/twikoo/arm32v7/docker-compose.yml
new file mode 100644
index 000000000..79b76f702
--- /dev/null
+++ b/apps/twikoo/arm32v7/docker-compose.yml
@@ -0,0 +1,21 @@
+version: '3'
+services:
+ twikoo:
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8080"
+ volumes:
+ - "${DATA_PATH}:/app/data"
+ environment:
+ - "TWIKOO_THROTTLE=1000"
+ - "TWIKOO_PORT=8080"
+ image: imaegoo/twikoo:arm32v7
+ labels:
+ createdBy: "Apps"
+
+networks:
+ 1panel-network:
+ external: true
diff --git a/apps/twikoo/data.yml b/apps/twikoo/data.yml
new file mode 100644
index 000000000..6bad8e85a
--- /dev/null
+++ b/apps/twikoo/data.yml
@@ -0,0 +1,20 @@
+name: Twikoo
+tags:
+ - 工具
+title: 一个简洁、安全、免费的静态网站评论系统
+type: 工具
+description: 一个简洁、安全、免费的静态网站评论系统
+additionalProperties:
+ key: twikoo
+ name: Twikoo
+ tags:
+ - Tool
+ shortDescZh: 一个简洁、安全、免费的静态网站评论系统
+ shortDescEn: A simple, safe, free comment system
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://twikoo.js.org
+ github: https://github.com/imaegoo/twikoo
+ document: https://twikoo.js.org
diff --git a/apps/twikoo/logo.png b/apps/twikoo/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..66bb11849557ceff4b309c30179b8500a3779f13
GIT binary patch
literal 3268
zcmds4_d6Sm6HnDHqG(HvyscSYGe$^A6>U*fqV{XHcxxsxYL_nB8XYK&nyso4sS=6A
zDy2q@R*99U*&3lj1mUYcfB%E`hr9dXp6Bkldp`HMyVPq}F9{2t76bqQ!j_lK?GNq8
zKf=#@sEzx0bqWn1CIm%gd#1?O&xAyRwe?2-27!b*BLXA$YpoO
z?@DBVTdmT+&&q|2gn50;Rvbe@GXVkupDljya0vu|bZ-~MX6kdNq@799RZwbg;P1An
zu_;-4$;*X9%9ak4zUcWFGHDOB{^5q%p6;qad*>vb30a;gLZ~nOP7XFyX)P`*%A{+Ow(3Dj!)7Mqv_yJUcr(
zqxet|&iM(O&Ax`ORcV@n)+CX{C55ypN1_}$n-pj3#VaMk)&1y1Up}fnNAjyI6q#^l
zcK(f$NSyE@zxI|KeWYqKKVlQ!#={BU+_=)ULIGsm#8y3K@8B|UU^Ixzd`CrgI`9hf`@QiuhU6ohtQ@r4`gN&}t6dgl3Ax&lDfzj(C(z;n!elv*n%;(j
zpqPeLD;IUy`dFO$BlcgMTu+sGCHn!*w-%ScB7ef?G6N>FJ~+CfNY2@nxq4vy1HVP|
zj#+xF%Y+5YgcOjAOi|N;BYM?~rFJl(04M#^5})9%zgI+ItwW>F^foBHnq8&X%0~OV
zb5;XoZuO_6KP^ZL2cS=&vJ{&8h0k*iLYj84?a?6;WoZ2-1x7{&?
zZXll8oH888r~xM5l#5G$^caCek^N`UeI?$z<~E
z277Y~D{Km8-d9|}G@h2!%(7xKnOeHK=H(7U%kFQacG~RTbu44#b9!)rBO3alQA&b2iycAQ7;hM3*H%ARf*q`hJ6#o#g=5}TxX1jP3`
z@OQnzd)VWGnwD5wn4Gd)2BN(3=a)Q|I0iM)1x*?s`JLt{T3~e}w=Jy2?T+9C%o9M;!+KM@hgmDir)UnU9pHZ0r|oS>ENfNqRbO>v_P*M5LP4if
z?RsXL{;*W!UAt@<%~Y-W+@Tf_zt00YEDi3Y*(~`ahS5Le$uLeePfkr0cw1Ixsr0;J
zay2`1#+4llY+R|?B~E9c!o}K2OpXq3Mb5*7Sr0ldndQ$2HOluxp`M8=U(LK)7BLo(
zpC%J-(0T>-p?6ch#n&AM-b`WbYyY)EE-NXyyS~0&M;V$A`c?={f)8%zKe;GS-0bZ4
zYwULkILit--z%l0q@-&-LQOF(yVIGJlsWV8{fuVz49#q6x0B2&zoGNxur>q&k@u!T
z-)f-llxD=yL~r)Z&!~(1-@nzN!}?i1D%KZCti;P@UuAQzJb12bJ4B_HyX2*bGsTDd
zGmxtR7adBtdnEYfB)+G`Fb-Z^QG(iHAVqcI*IyLc)&+ocxWUVIUJb3I7jJ2jiDEBB
zqF=qkRxa8!q^;k0$4XGhvf?07C{%b*&=d2s$LC%$6V1{ChZ)A*^`BM)OO+i(xI$g0
zWB5oi+p24q@2y;@;T73eljwh5SqYTjztWn=W9`SUx2(
z>(U)*CtR8Zi3K!VFd3xLY|lPT$+Gg6>jaQ|t7we^ZMr8c!6O4S#oNP7gw2FsUmv%&
z*&4j1NG}A-PkKQANxP=nFkWA0JGnE^s|L~AeKw3K*FhK;M2oc;M%~eCG8!|CQYh#L
zjn)Ud`Q5(l>_0U~5>Hv>nHnz*R*yKQiFw+5WzA<8>VzZfv=aWZo6?`&atK-lBaY?o
zsqE$r_?J7lV`ldxWapMQ+9&ixl-90Y4)Uw6dMLSJ5W@iRZdo)-%OELaoVy12aQs!X
zTzjHr{dDCQ8DEJnfn1(0^F%CQrR9`-5VpQIMQr2L$&^WAiE&THhmmJrqV5~1I3tln
zYg?WC2}4$M6W+Zu8JO)OQf~vl`T|f6^#THO)tN4&vb>2TP*4%n+GFK0DKPg%cJ5n?vPJPkR%I
zL|v#;)lFee@OOjxJm~uwCmo=BpQ=waeRS~kTo>~?=1T<6fpTTxNpy8Q6u3&rp|0k9
z?i%cqX*E*?9<0Wz^+)_;5wpsq-c_U!IJzDP_#&pUXe+O+$_@YFkmmgS{ZF8WZ{6KL
zvex9cdO82@y$r&<2K{-DyVKc;Ji@;4jV8c^;J|b@tT}Ujq2F_It?W7y8Dn)&B+8iU
z%3@tx923J7dt!ycTX0pNLf?d2gNL*$?XsV_AWtC}n1u=cOK|rK3(E{QvLTQ>7)u}4
zE0q=*T#Q>==?;?@v}US5pNgK2W%P-+@8yW%8Py3*!rKzuo%wjYzo8CC@O95-B?Ri^
zjU=ww#c4KR0
zTuMgf+cL@g3A(vU>kxM0sGx8D^bkKb9Pr7NxHo!iPrZFbrnUA3oYw@=s5LkL62q8Y
z`xZSyG2X!#IJ!8`M-ealcnUe-bSRWz}a85XKlAQnzaWL{T?VU)8!`lMS#QMTLQ4OxN2T~!7KTHp(|d3
literal 0
HcmV?d00001