From 57e6a21cc7b24c9637df30f1bb01bc3488c13e94 Mon Sep 17 00:00:00 2001 From: 2319665062 <2319665062@qq.com> Date: Thu, 29 Feb 2024 00:44:14 +0000 Subject: [PATCH 1/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0MIxSpace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mixspace/5.0.0/data.yml | 25 ++++++++++++ apps/mixspace/5.0.0/docker-compose.yml | 53 +++++++++++++++++++++++++ apps/mixspace/README.md | 20 ++++++++++ apps/mixspace/data.yml | 19 +++++++++ apps/mixspace/logo.png | Bin 0 -> 8410 bytes 5 files changed, 117 insertions(+) create mode 100644 apps/mixspace/5.0.0/data.yml create mode 100644 apps/mixspace/5.0.0/docker-compose.yml create mode 100644 apps/mixspace/README.md create mode 100644 apps/mixspace/data.yml create mode 100644 apps/mixspace/logo.png diff --git a/apps/mixspace/5.0.0/data.yml b/apps/mixspace/5.0.0/data.yml new file mode 100644 index 00000000..7a0d3bf0 --- /dev/null +++ b/apps/mixspace/5.0.0/data.yml @@ -0,0 +1,25 @@ +additionalProperties: + formFields: + - default: 2333 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 应用端口 + required: true + rule: paramPort + type: number + - default: mixspace + envKey: ALLOWED_ORIGINS + labelEn: Allowed_Origins + labelZh: 允许域名(填写要绑定的域名) + required: true + rule: paramExtUrl + type: text + - default: mixspace + envKey: JWT_SECRET + labelEn: Password + labelZh: JWT密钥 + random: true + required: true + rule: paramCommon + type: password \ No newline at end of file diff --git a/apps/mixspace/5.0.0/docker-compose.yml b/apps/mixspace/5.0.0/docker-compose.yml new file mode 100644 index 00000000..75f0a967 --- /dev/null +++ b/apps/mixspace/5.0.0/docker-compose.yml @@ -0,0 +1,53 @@ +version: '3.8' + +services: + app: + container_name: ${CONTAINER_NAME} + image: innei/mx-server:5 + command: bash ./docker-run.sh + environment: + - TZ=Asia/Shanghai + - NODE_ENV=production + - ALLOWED_ORIGINS=${ALLOWED_ORIGINS} + - JWT_SECRET=${JWT_SECRET} + volumes: + - ./data/mx-space:/root/.mx-space + ports: + - '${PANEL_APP_PORT_HTTP}:2333' + depends_on: + - mongo + - redis + links: + - mongo + - redis + networks: + - 1panel-network + restart: always + healthcheck: + test: ['CMD', 'curl', '-f', 'http://127.0.0.1:2333/api/v2/ping'] + interval: 1m30s + timeout: 30s + retries: 5 + start_period: 30s + labels: + createdBy: "Apps" + + mongo: + container_name: mongo + image: mongo + volumes: + - ./data/db:/data/db + networks: + - 1panel-network + restart: always + + redis: + image: redis + container_name: redis + networks: + - 1panel-network + restart: always + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/mixspace/README.md b/apps/mixspace/README.md new file mode 100644 index 00000000..d3bcf2a8 --- /dev/null +++ b/apps/mixspace/README.md @@ -0,0 +1,20 @@ +# MixSpace + +Mix Space 是一个一款简洁而不简单的个人博客系统,它够快,够现代。你可以利用它构建一个属于自己的个人空间,记录生活,分享知识。 + +## 注意事项 + +在此处你安装的是Mix-Space的后端,你还需要参照官方文档中的[前端主题](https://mx-space.js.org/themes +)部分完成前端部署 + +## 主要功能: + +- 支持文本宏,Markdown与GFM语法 +- 集成个人日记与内置反垃圾评论系统 +- xLog集成,可把文章同步到去中心化平台并使用其AI摘要 +- 内建文件管理与多种通知方式 +- 支持自助申请友链并可一键检查其可用性 +- 通过计划任务实现包括备份与推送百度在内多种目的 +- 支持从 Markdown 导入文章,也支持导出文章为 Markdown +- 动态化配置前端,你可以在后台设置前端的配置 +- 项目展示功能,你可以向访客展示你的项目,展现你的技术能力 \ No newline at end of file diff --git a/apps/mixspace/data.yml b/apps/mixspace/data.yml new file mode 100644 index 00000000..9518fb4f --- /dev/null +++ b/apps/mixspace/data.yml @@ -0,0 +1,19 @@ +name: MixSpace +tags: + - 建站 +title: 开源自部署的个人前后端分离博客系统 +type: 建站 +description: 开源自部署的个人前后端分离博客系统 +additionalProperties: + key: mixspace + name: MixSpace + tags: + - WebSite + shortDescZh: 开源自部署的个人前后端分离博客系统 + shortDescEn: Open source self-deployed personal front-end and back-end separation blogging system + type: website + crossVersionUpdate: true + limit: 0 + website: https://mx-space.js.org + github: https://github.com/mx-space/core + document: https://mx-space.js.org/docs \ No newline at end of file diff --git a/apps/mixspace/logo.png b/apps/mixspace/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..78f0fe3f334c0271a9502474e83d66bcb07d0388 GIT binary patch literal 8410 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 O2tmlI$P`PNy#F6gS1%#} literal 0 HcmV?d00001 From db46ae2fb95589738bdadee59348337685bfe413 Mon Sep 17 00:00:00 2001 From: 2319665062 <2319665062@qq.com> Date: Thu, 29 Feb 2024 16:05:51 +0000 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mixspace/5.0.0/data.yml | 25 ------------ apps/mixspace/v5/data.yml | 38 +++++++++++++++++++ .../mixspace/{5.0.0 => v5}/docker-compose.yml | 2 + 3 files changed, 40 insertions(+), 25 deletions(-) delete mode 100644 apps/mixspace/5.0.0/data.yml create mode 100644 apps/mixspace/v5/data.yml rename apps/mixspace/{5.0.0 => v5}/docker-compose.yml (93%) diff --git a/apps/mixspace/5.0.0/data.yml b/apps/mixspace/5.0.0/data.yml deleted file mode 100644 index 7a0d3bf0..00000000 --- a/apps/mixspace/5.0.0/data.yml +++ /dev/null @@ -1,25 +0,0 @@ -additionalProperties: - formFields: - - default: 2333 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 应用端口 - required: true - rule: paramPort - type: number - - default: mixspace - envKey: ALLOWED_ORIGINS - labelEn: Allowed_Origins - labelZh: 允许域名(填写要绑定的域名) - required: true - rule: paramExtUrl - type: text - - default: mixspace - envKey: JWT_SECRET - labelEn: Password - labelZh: JWT密钥 - random: true - required: true - rule: paramCommon - type: password \ No newline at end of file diff --git a/apps/mixspace/v5/data.yml b/apps/mixspace/v5/data.yml new file mode 100644 index 00000000..9cab784e --- /dev/null +++ b/apps/mixspace/v5/data.yml @@ -0,0 +1,38 @@ +additionalProperties: + formFields: + - default: 2333 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 应用端口 + required: true + rule: paramPort + type: number + - default: example.com + envKey: ALLOWED_ORIGINS + labelEn: Allowed_Origins + labelZh: 允许域名(前端绑定域名,不需要https://,多个使用英文逗号分割) + required: true + rule: paramExtUrl + type: text + - default: Np2qgqtiUayA857GpuVI0Wtg + envKey: JWT_SECRET + labelEn: Password + labelZh: JWT密钥(16到32位字符,请一定修改至要求!) + random: true + required: true + rule: paramComplexity + type: password + - default: + envKey: ENCRYPT_KEY + labelEn: ENCRYPT_KEY + labelZh: 加密密钥(非特殊需求不建议填写) + required: false + rule: paramCommon + type: password + - default: + envKey: ENCRYPT_ENABLE + labelEn: ENCRYPT_ENABLE + labelZh: 是否开启加密(true或false,需要填写加密密钥) + required: false + type: text \ No newline at end of file diff --git a/apps/mixspace/5.0.0/docker-compose.yml b/apps/mixspace/v5/docker-compose.yml similarity index 93% rename from apps/mixspace/5.0.0/docker-compose.yml rename to apps/mixspace/v5/docker-compose.yml index 75f0a967..f7991b97 100644 --- a/apps/mixspace/5.0.0/docker-compose.yml +++ b/apps/mixspace/v5/docker-compose.yml @@ -10,6 +10,8 @@ services: - NODE_ENV=production - ALLOWED_ORIGINS=${ALLOWED_ORIGINS} - JWT_SECRET=${JWT_SECRET} + - ENCRYPT_KEY=${ENCRYPT_KEY} + - ENCRYPT_ENABLE=${ENCRYPT_ENABLE} volumes: - ./data/mx-space:/root/.mx-space ports: From d1ce42aca18c1ce1cf9495ec985527a8ddeaca5c Mon Sep 17 00:00:00 2001 From: 2319665062 <2319665062@qq.com> Date: Thu, 29 Feb 2024 16:08:26 +0000 Subject: [PATCH 3/6] =?UTF-8?q?JWT=E5=90=88=E8=A7=84=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mixspace/v5/data.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/mixspace/v5/data.yml b/apps/mixspace/v5/data.yml index 9cab784e..b264ff45 100644 --- a/apps/mixspace/v5/data.yml +++ b/apps/mixspace/v5/data.yml @@ -15,7 +15,7 @@ additionalProperties: required: true rule: paramExtUrl type: text - - default: Np2qgqtiUayA857GpuVI0Wtg + - default: Np2qgqtiUayA857 envKey: JWT_SECRET labelEn: Password labelZh: JWT密钥(16到32位字符,请一定修改至要求!) From fa68ec70e0e1482affe6d8320d12bf0d249682e4 Mon Sep 17 00:00:00 2001 From: 2319665062 <2319665062@qq.com> Date: Thu, 29 Feb 2024 16:09:56 +0000 Subject: [PATCH 4/6] =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E8=A7=84=E8=8C=83=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mixspace/{v5 => 5}/data.yml | 0 apps/mixspace/{v5 => 5}/docker-compose.yml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename apps/mixspace/{v5 => 5}/data.yml (100%) rename apps/mixspace/{v5 => 5}/docker-compose.yml (100%) diff --git a/apps/mixspace/v5/data.yml b/apps/mixspace/5/data.yml similarity index 100% rename from apps/mixspace/v5/data.yml rename to apps/mixspace/5/data.yml diff --git a/apps/mixspace/v5/docker-compose.yml b/apps/mixspace/5/docker-compose.yml similarity index 100% rename from apps/mixspace/v5/docker-compose.yml rename to apps/mixspace/5/docker-compose.yml From 26446f386a1d046925ade15dc7a4465b8d2c1911 Mon Sep 17 00:00:00 2001 From: 2319665062 <2319665062@qq.com> Date: Fri, 1 Mar 2024 00:59:04 +0000 Subject: [PATCH 5/6] =?UTF-8?q?=E7=A7=BB=E9=99=A4Url=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E4=BF=9D=E8=AF=81=E5=A4=9A=E5=89=8D=E7=AB=AF=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E5=A1=AB=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mixspace/5/data.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/mixspace/5/data.yml b/apps/mixspace/5/data.yml index b264ff45..b8e919fa 100644 --- a/apps/mixspace/5/data.yml +++ b/apps/mixspace/5/data.yml @@ -13,7 +13,6 @@ additionalProperties: labelEn: Allowed_Origins labelZh: 允许域名(前端绑定域名,不需要https://,多个使用英文逗号分割) required: true - rule: paramExtUrl type: text - default: Np2qgqtiUayA857 envKey: JWT_SECRET From cf2ee00de9ef88cc3564c5f2d4d17a5d338cac5b Mon Sep 17 00:00:00 2001 From: 2319665062 <2319665062@qq.com> Date: Fri, 1 Mar 2024 01:19:54 +0000 Subject: [PATCH 6/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0NodeBB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mixspace/data.yml | 6 +++--- apps/nodebb/README.md | 19 +++++++++++++++++++ apps/nodebb/data.yml | 19 +++++++++++++++++++ apps/nodebb/latest/data.yml | 17 +++++++++++++++++ apps/nodebb/latest/docker-compose.yml | 22 ++++++++++++++++++++++ apps/nodebb/logo.png | Bin 0 -> 13884 bytes 6 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 apps/nodebb/README.md create mode 100644 apps/nodebb/data.yml create mode 100644 apps/nodebb/latest/data.yml create mode 100644 apps/nodebb/latest/docker-compose.yml create mode 100644 apps/nodebb/logo.png diff --git a/apps/mixspace/data.yml b/apps/mixspace/data.yml index 9518fb4f..13acdb47 100644 --- a/apps/mixspace/data.yml +++ b/apps/mixspace/data.yml @@ -1,15 +1,15 @@ name: MixSpace tags: - 建站 -title: 开源自部署的个人前后端分离博客系统 +title: 开源自部署个人前后端分离博客系统 type: 建站 -description: 开源自部署的个人前后端分离博客系统 +description: 开源自部署个人前后端分离博客系统 additionalProperties: key: mixspace name: MixSpace tags: - WebSite - shortDescZh: 开源自部署的个人前后端分离博客系统 + shortDescZh: 开源自部署个人前后端分离博客系统 shortDescEn: Open source self-deployed personal front-end and back-end separation blogging system type: website crossVersionUpdate: true diff --git a/apps/nodebb/README.md b/apps/nodebb/README.md new file mode 100644 index 00000000..452d3e61 --- /dev/null +++ b/apps/nodebb/README.md @@ -0,0 +1,19 @@ +# 介绍 + +NodeBB 是一款由Node.js开发的、开源的、现代化的论坛程序 + + +## 所使用docker镜像相关: + +> 项目链接 +>> - https://hub.docker.com/r/elestio/nodebb +>> - https://github.com/elestio-examples/nodebb + +## 数据库连接问题 + +需要新建数据库再进行安装 + +本机`PostgreSQL`数据库连接信息,具体查看面板数据库页面来获取,例如 +``` +PostgreSQL:5432 +``` diff --git a/apps/nodebb/data.yml b/apps/nodebb/data.yml new file mode 100644 index 00000000..fc500132 --- /dev/null +++ b/apps/nodebb/data.yml @@ -0,0 +1,19 @@ +name: NodeBB +tags: + - 建站 +title: 基于Node.js的现代化论坛程序 +type: 建站 +description: 基于Node.js的现代化论坛程序 +additionalProperties: + key: nodebb + name: nodebb + tags: + - WebSite + shortDescZh: 基于Node.js的现代化论坛程序 + shortDescEn: Open source Forum Powered by Node.js + type: website + crossVersionUpdate: true + limit: 0 + website: https://nodebb.org/ + github: https://github.com/NodeBB/NodeBB + document: https://docs.nodebb.org/ \ No newline at end of file diff --git a/apps/nodebb/latest/data.yml b/apps/nodebb/latest/data.yml new file mode 100644 index 00000000..8def98b5 --- /dev/null +++ b/apps/nodebb/latest/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 4567 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 应用端口 + required: true + rule: paramPort + type: number + - default: example.com + envKey: DOMAIN + labelEn: Allowed_Origins + labelZh: 绑定域名 + required: true + rule: paramExtUrl + type: text diff --git a/apps/nodebb/latest/docker-compose.yml b/apps/nodebb/latest/docker-compose.yml new file mode 100644 index 00000000..790af483 --- /dev/null +++ b/apps/nodebb/latest/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.3" +services: + nodebb: + container_name: ${CONTAINER_NAME} + ports: + - "${PANEL_APP_PORT_HTTP}:4567" + user: 0:0 + image: elestio/nodebb:latest + restart: always + networks: + - 1panel-network + environment: + URL: "https://${DOMAIN}" + volumes: + - ./nodebb-files:/usr/src/app/public/uploads + # - ./nodebb-config/config.json:/usr/src/app/config.json + - ./entrypoint.sh:/usr/src/app/entrypoint.sh + + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/nodebb/logo.png b/apps/nodebb/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d7782158b5a5c535aaff145b6dc1928a0cb28a GIT binary patch literal 13884 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 KMNUMnLSTX-ZdmI8 literal 0 HcmV?d00001