From 32212e9e9b195b110e7e1f65833c0638dd5a43c8 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Thu, 9 Jan 2025 13:15:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=20NodeBB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- apps/nodebb/3.12.2/data.yml | 91 ++++++++++++++++++++++++ apps/nodebb/3.12.2/docker-compose.yml | 26 +++++++ apps/nodebb/3.12.2/envs/default.env | 2 + apps/nodebb/3.12.2/envs/global.env | 2 + apps/nodebb/3.12.2/scripts/init.sh | 17 +++++ apps/nodebb/3.12.2/scripts/uninstall.sh | 10 +++ apps/nodebb/3.12.2/scripts/upgrade.sh | 17 +++++ apps/nodebb/README.md | 16 +++++ apps/nodebb/data.yml | 14 ++++ apps/nodebb/logo.png | Bin 0 -> 16391 bytes apps/weblate/data.yml | 2 +- 11 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 apps/nodebb/3.12.2/data.yml create mode 100644 apps/nodebb/3.12.2/docker-compose.yml create mode 100644 apps/nodebb/3.12.2/envs/default.env create mode 100644 apps/nodebb/3.12.2/envs/global.env create mode 100644 apps/nodebb/3.12.2/scripts/init.sh create mode 100644 apps/nodebb/3.12.2/scripts/uninstall.sh create mode 100644 apps/nodebb/3.12.2/scripts/upgrade.sh create mode 100644 apps/nodebb/README.md create mode 100644 apps/nodebb/data.yml create mode 100644 apps/nodebb/logo.png diff --git a/apps/nodebb/3.12.2/data.yml b/apps/nodebb/3.12.2/data.yml new file mode 100644 index 000000000..a99e74545 --- /dev/null +++ b/apps/nodebb/3.12.2/data.yml @@ -0,0 +1,91 @@ +additionalProperties: + formFields: + - default: "/home/nodebb" + edit: true + envKey: NODEBB_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 4567 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: NODEBB_ADMIN_EMAIL + labelZh: 管理员邮箱 + labelEn: Admin email + required: true + type: text + - default: "" + edit: true + envKey: NODEBB_ADMIN_USERNAME + labelZh: 管理员用户名 + labelEn: Admin username + required: true + type: text + - default: "" + edit: true + envKey: NODEBB_ADMIN_PASSWORD + labelZh: 管理员密码 + labelEn: Admin password + required: true + type: text + - default: "postgres" + edit: true + envKey: NODEBB_DB + labelZh: 数据库类型 + labelEn: Database type + required: true + type: select + values: + - label: PostgreSQL + value: "postgres" + - label: Redis + value: "redis" + - label: MongoDB + value: "mongo" + - default: "127.0.0.1" + edit: true + envKey: NODEBB_DB_HOST + labelZh: 数据库 主机地址 + labelEn: Database Host + required: true + type: text + - default: 5432 + edit: true + envKey: NODEBB_DB_PORT + labelZh: 数据库 端口 + labelEn: Database Port + required: true + rule: paramPort + type: number + - default: "nodebb" + edit: true + envKey: NODEBB_DB_NAME + labelZh: 数据库 名称 + labelEn: Database Name + required: true + rule: paramCommon + type: text + - default: "nodebb" + edit: true + envKey: NODEBB_DB_USER + labelZh: 数据库 用户名 + labelEn: Database Username + required: true + type: text + - default: "" + edit: true + envKey: NODEBB_DB_PASSWORD + labelZh: 数据库 密码 + labelEn: Database Password + random: true + required: true + rule: paramComplexity + type: password diff --git a/apps/nodebb/3.12.2/docker-compose.yml b/apps/nodebb/3.12.2/docker-compose.yml new file mode 100644 index 000000000..74d9e6b8b --- /dev/null +++ b/apps/nodebb/3.12.2/docker-compose.yml @@ -0,0 +1,26 @@ +networks: + 1panel-network: + external: true + +services: + nodebb: + image: ghcr.io/nodebb/nodebb:3.12.2 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:4567 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${NODEBB_ROOT_PATH}/build:/usr/src/app/build + - ${NODEBB_ROOT_PATH}/uploads:/usr/src/app/public/uploads + - ${NODEBB_ROOT_PATH}/config:/opt/config + environment: + - TZ=Asia/Shanghai + - NODEBB_PORT=4567 + - NODEBB_URL=http://127.0.0.1:4567 diff --git a/apps/nodebb/3.12.2/envs/default.env b/apps/nodebb/3.12.2/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/nodebb/3.12.2/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/nodebb/3.12.2/envs/global.env b/apps/nodebb/3.12.2/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/nodebb/3.12.2/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/nodebb/3.12.2/scripts/init.sh b/apps/nodebb/3.12.2/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/nodebb/3.12.2/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/nodebb/3.12.2/scripts/uninstall.sh b/apps/nodebb/3.12.2/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/nodebb/3.12.2/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/nodebb/3.12.2/scripts/upgrade.sh b/apps/nodebb/3.12.2/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/nodebb/3.12.2/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/nodebb/README.md b/apps/nodebb/README.md new file mode 100644 index 000000000..3004ecb25 --- /dev/null +++ b/apps/nodebb/README.md @@ -0,0 +1,16 @@ +# NodeBB + +一个更适合现代网络的社会平台 + +![NodeBB](https://file.lifebus.top/imgs/nodebb_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) + +## 简介 + +《NodeBB》是一个下一代讨论平台,它利用 WebSockets 实现即时交互和实时通知。 +NodeBB 论坛自带许多现代功能,如社交网络集成和流式讨论,以及完整的 REST API 和插件框架,以实现第三方完全扩展。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/nodebb/data.yml b/apps/nodebb/data.yml new file mode 100644 index 000000000..3e9bbeb58 --- /dev/null +++ b/apps/nodebb/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: nodebb + name: NodeBB + tags: + - WebSite + - Local + shortDescZh: 一个更适合现代网络的社会平台 + shortDescEn: A modern forum platform better suited for the modern web + type: website + crossVersionUpdate: true + limit: 0 + website: https://nodebb.org/ + github: https://github.com/NodeBB/NodeBB/ + document: https://docs.nodebb.org/ diff --git a/apps/nodebb/logo.png b/apps/nodebb/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6858ef5833f4ee5cc6ba0032b94021bf2013c271 GIT binary patch literal 16391 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 literal 0 HcmV?d00001 diff --git a/apps/weblate/data.yml b/apps/weblate/data.yml index aa6caa89c..19097b48d 100644 --- a/apps/weblate/data.yml +++ b/apps/weblate/data.yml @@ -10,5 +10,5 @@ additionalProperties: crossVersionUpdate: true limit: 0 website: https://weblate.org/ - github: https://weblate.org/ + github: https://github.com/WeblateOrg/weblate/ document: https://docs.weblate.org/