From e9203be6c695cede33af7a5e80f5009fe97c4b94 Mon Sep 17 00:00:00 2001 From: Jane Haring <52415314+wwxiaoqi@users.noreply.github.com> Date: Wed, 10 Apr 2024 16:22:47 +0800 Subject: [PATCH] Add Siyuan (#1219) --- apps/siyuan/README.md | 53 ++++++++++++++++++++++++++ apps/siyuan/data.yml | 18 +++++++++ apps/siyuan/latest/data.yml | 30 +++++++++++++++ apps/siyuan/latest/docker-compose.yml | 23 +++++++++++ apps/siyuan/latest/scripts/init.sh | 35 +++++++++++++++++ apps/siyuan/logo.png | Bin 0 -> 3128 bytes 6 files changed, 159 insertions(+) create mode 100644 apps/siyuan/README.md create mode 100644 apps/siyuan/data.yml create mode 100644 apps/siyuan/latest/data.yml create mode 100644 apps/siyuan/latest/docker-compose.yml create mode 100644 apps/siyuan/latest/scripts/init.sh create mode 100644 apps/siyuan/logo.png diff --git a/apps/siyuan/README.md b/apps/siyuan/README.md new file mode 100644 index 00000000..358cb2ac --- /dev/null +++ b/apps/siyuan/README.md @@ -0,0 +1,53 @@ +# 使用说明 + +### 安装方法 + +请根据安装时的表单填写以下内容: +| 表单填写项 | 内容解释 | +| --------------------------------------------- | ------------------------------------------------------------ | +| 工作空间文件夹路径(WORKSPACE_PATH) | 主机上的工作空间文件夹路径 | +| 容器中的文件夹路径(WORKSPACE_DIR_CONTAINER) | 工作空间文件夹在容器中的路径,与指定的参数 --workspace 相同 | +| 访问授权码(ACCESS_AUTH_CODE) | 访问授权码,请务必填写,且需要足够复杂。否则任何人都可以读写您的数据 | +| 端口(SIYUAN_PORT) | 指定思源端口号,默认为:6806 | + +勾选【端口外部访问】选项。安装完毕后,您可以通过【IP/域名:端口】这种形式服务。例:http://127.0.0.1:6806。 + + +### 安装好后,我的笔记数据在哪? + +在您设置的工作空间文件夹(WORKSPACE_PATH)下。为了防止您更新/删除思源笔记导致的数据丢失问题,默认笔记数据将放置在主机的文件夹 /opt/siyuan/ 下,以确保在卸载时不会将其删除。 + + +### 我该如何修改访问授权码? + +请您在【应用商店】内【已安装】选项卡中找到思源笔记,然后点击参数,选择编辑且修改访问授权码,保存即可。 + + +### 网页版和客户端有什么区别? + +网页版和客户端相比,局限性在于: +1. 不支持桌面和移动应用程序连接,仅支持在浏览器上使用 +2. 不支持导出为 PDF、HTML 和 Word 格式 +3. 不支持导入 Markdown 文件 + +以上内容来自[Docker Siyuan](https://hub.docker.com/r/b3log/siyuan),如果你需要以上部分或全部内容,请使用客户端。 + + +### 如何隐藏端口 + +首先先关闭思源笔记的【端口外部访问】功能,然后在左侧【网站】选项卡内找到【创建网站】,选择【反向代理】功能,最后填写上主域名和代理地址(HTTP)保存即可。 + +其中主域名是您可以正常访问的域名,如:siyuan.mydomain.com。 +代理地址中的端口是您在前面配置的思源端口号,如:127.0.0.1:6806。 + +如果您使用 NGINX 进行反向代理,您可能还需要手动配置下 WebSocket 反代 /ws 域名。你可以参考以下配置: + +```conf +location /ws { + proxy_pass http://127.0.0.1:6806; + proxy_read_timeout 60s; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'Upgrade'; +} +``` diff --git a/apps/siyuan/data.yml b/apps/siyuan/data.yml new file mode 100644 index 00000000..ecf51e8c --- /dev/null +++ b/apps/siyuan/data.yml @@ -0,0 +1,18 @@ +name: 思源笔记 +tags: + - 实用工具 +title: 隐私优先的个人知识管理系统 +description: 隐私优先的个人知识管理系统 +additionalProperties: + key: siyuan + name: 思源笔记 + tags: + - WebSite + shortDescZh: 隐私优先的个人知识管理系统 + shortDescEn: Privacy-Prioritized Personal Knowledge Management System + type: website + crossVersionUpdate: true + limit: 1 + website: https://b3log.org/siyuan/ + github: https://github.com/siyuan-note/siyuan + document: https://b3log.org/siyuan/community.html diff --git a/apps/siyuan/latest/data.yml b/apps/siyuan/latest/data.yml new file mode 100644 index 00000000..38c885ea --- /dev/null +++ b/apps/siyuan/latest/data.yml @@ -0,0 +1,30 @@ +additionalProperties: + formFields: + - default: "/opt/siyuan/" + envKey: WORKSPACE_PATH + labelEn: Workspace Folder PATH + labelZh: 工作空间文件夹路径 + required: true + type: text + - default: "/siyuan/workspace/" + envKey: WORKSPACE_DIR_CONTAINER + labelEn: Workspace Folder PATH + labelZh: 容器中的文件夹路径 + required: true + type: text + - default: "" + envKey: ACCESS_AUTH_CODE + labelEn: Access Authorization Code + labelZh: 访问授权码 + required: true + edit: true + rule: paramComplexity + type: password + - default: 6806 + edit: true + envKey: SIYUAN_PORT + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/siyuan/latest/docker-compose.yml b/apps/siyuan/latest/docker-compose.yml new file mode 100644 index 00000000..fcb8dec9 --- /dev/null +++ b/apps/siyuan/latest/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.9' +services: + siyuan: + image: b3log/siyuan:latest + container_name: ${CONTAINER_NAME} + restart: unless-stopped + networks: + - 1panel-network + command: [ + '--workspace=${WORKSPACE_DIR_CONTAINER}', + '--accessAuthCode=${ACCESS_AUTH_CODE}' + ] + user: '1000:1000' + environment: + - TZ=${TimeZone} + volumes: + - ${WORKSPACE_PATH}:${WORKSPACE_DIR_CONTAINER} + ports: + - "${SIYUAN_PORT}:6806" + +networks: + 1panel-network: + external: true diff --git a/apps/siyuan/latest/scripts/init.sh b/apps/siyuan/latest/scripts/init.sh new file mode 100644 index 00000000..4d280218 --- /dev/null +++ b/apps/siyuan/latest/scripts/init.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# 检查并加载环境变量 +if [ -f .env ]; then + source .env +else + echo ".env file not found. Please create one with the WORKSPACE_PATH variable defined." + exit 1 +fi + +# 判断 WORKSPACE_PATH 变量是否被设置 +if [ -z "${WORKSPACE_PATH}" ]; then + echo "WORKSPACE_PATH is not set." + exit 1 +fi + +# 检查 WORKSPACE_PATH 指定的文件夹是否存在,不存在则创建 +if [ ! -d "${WORKSPACE_PATH}" ]; then + echo "Creating workspace directory at ${WORKSPACE_PATH}" + mkdir -p "${WORKSPACE_PATH}" +fi + +# 修改 WORKSPACE_PATH 文件夹及其内容的所有者为用户ID 1000 和组ID 1000 +echo "Setting ownership of ${WORKSPACE_PATH} to user 1000 and group 1000" +chown -R 1000:1000 "${WORKSPACE_PATH}" 2>/dev/null + +# 检查是否成功设置了所有权 +if [ $? -eq 0 ]; then + echo "Ownership set successfully." +else + echo "Failed to set ownership." + exit 1 +fi + +exit 0 diff --git a/apps/siyuan/logo.png b/apps/siyuan/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd66c0e2bdd2143eb042a9180830a78f0abdb0d GIT binary patch literal 3128 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