1部署架构

众享链 ShareChain 采用 Docker 容器化部署,容器内包含 Nginx(前端 + API 代理)和 Spring Boot 后端两个服务。

端口说明:

容器端口宿主机端口(默认)用途
803000Web 前端 + API 代理(nginx),主要访问入口
80803001后端 API 直连(可选,供浏览器插件使用)

2前置条件

2.1 群晖环境要求

  • DSM 版本:DSM 7.0 及以上
  • Container Manager:已安装(套件中心搜索"Container Manager"或"Docker"安装)
  • 内存:建议 2GB 以上可用内存
  • 存储空间:至少 500MB 可用空间

2.2 外部依赖

MySQL 数据库

5.7 或 8.0,需可从群晖网络访问(首次部署时通过 Web 向导自动创建数据库和表结构,无需手动建库)

群晖 DSM API

容器需要访问群晖 DSM 的 API 接口(默认端口 5000)用于用户认证

2.3 网络要求

确保以下端口未被占用(端口号可自定义):

  • 3000 - Web 访问端口
  • 3001 - 后端直连端口(可选)

3获取镜像

方式一:从私有仓库拉取(推荐)

注册私有仓库:

  • 打开 Container Manager -> 注册表 -> 新增
  • 在"名称"中输入:273644.cicp.net:5100
  • 勾选"不安全的注册表"(因为是 HTTP 协议)
  • 点击 下一步 -> 输入账号密码:用户名 wenhao,密码(联系管理员获取)
  • 点击 完成

拉取镜像:

  • 在注册表列表中搜索 273644.cicp.net:5100/wenhao/sharechain
  • 选择版本 1.0.3,双击下载
  • 等待下载完成,在 映像 列表中可看到 273644.cicp.net:5100/wenhao/sharechain:1.0.3

方式二:导入 tar 镜像文件

适用于无法连接私有仓库的环境。

下载镜像 tar 文件:

http://wenhaoru.com:81/d/s/19JI5ESrPOqOItQfDQzZs3rxifoXRmde/BnXGBsQh62WnAz3dGAmg0aGE2e87V5Oi-AbjADqGYZQ0
  • 从开发人员处获取 sharechain.tar 文件
  • 打开 File Station,将 sharechain.tar 上传到任意目录(如 docker/ 目录)
  • 打开 Container Manager -> 映像 -> 导入
  • 选择"从文件",浏览并选中上传的 sharechain.tar
  • 点击 下一步 -> 等待导入完成

4创建并配置容器

4.1 创建容器

  • Container Manager -> 容器 -> 新增
  • 选择映像:273644.cicp.net:5100/wenhao/sharechain:1.0.3(方式一)或 sharechain:latest(方式二)
  • 点击 下一步

4.2 常规设置

设置项
容器名称sharechain
资源限制建议 CPU 不限、内存 1024MB
启用自动重启建议勾选

4.3 端口设置

添加以下端口映射:

本地端口容器端口协议说明
300080TCPWeb 访问(必须)
30018080TCP后端 API 直连(可选,浏览器插件使用)
注意:如果 3000 端口已被群晖其他服务占用,请改用其他端口(如 9080 等)。

4.4 存储空间

添加以下存储空间映射(必须,用于持久化配置,升级时无需重新配置):

本地路径容器路径说明
/docker/sharechain/data/data配置文件持久化
重要:首次安装时通过 Web 向导配置的所有信息会保存到此目录。升级镜像时只需保留此挂载,无需重新配置。

4.5 网络

使用默认的 bridge 网络模式即可。

4.6 确认并启动

  • 检查所有配置无误
  • 点击 完成 创建并启动容器

5Web 初始化向导

首次部署无需手动建库建表,也无需设置任何环境变量,通过浏览器向导即可完成全部配置。

5.1 进入初始化向导

容器启动后(约等待 15-30 秒后端启动完成),浏览器打开:

http://群晖IP:3000

系统检测到未初始化时,会自动跳转到初始化向导页面。

5.2 配置数据库连接

  • 在"数据库配置"步骤中填写 MySQL 连接信息:
    • 数据库地址:如 192.168.1.100
    • 端口:如 3306
    • 数据库名:如 syno_link_manager(将自动创建)
    • 用户名:如 root
    • 密码:数据库密码
  • 点击 测试连接,确认连接成功
  • 点击 下一步
向导会自动创建数据库(如不存在)和表结构,无需手动执行 SQL 脚本。如果数据库就部署在群晖本机的 Docker 中,数据库地址请使用群晖的局域网 IP(如 192.168.1.100),不要用 127.0.0.1

5.3 配置群晖 DSM

  • 在"群晖配置"步骤中填写群晖 DSM 信息:
    • 群晖DSM地址:如 http://192.168.1.100:5000
    • 管理员账号:群晖管理员用户名
    • 管理员密码:群晖管理员密码
  • 点击 测试连接,确认登录成功
  • 点击 下一步

5.4 保存配置

  • 确认配置信息无误
  • 点击 保存配置
  • 系统自动完成以下操作:创建数据库和表结构、保存群晖配置和 JWT 密钥、切换数据源、持久化配置到 /data 目录
  • 保存成功后,页面自动跳转到系统首页

6验证部署

6.1 检查容器状态

  • Container Manager -> 容器 -> 确认 sharechain 容器状态为"运行中"
  • 点击容器名 -> 日志,确认看到以下日志:
Started LinkManagerApplication in X.XXX seconds
Tomcat started on port(s): 8080 (http) with context path '/api'

6.2 访问 Web 界面

浏览器打开:

http://群晖IP:3000
  • 首次部署:自动跳转到初始化向导页面
  • 已初始化:显示众享链搜索首页

6.3 登录验证

  • 点击页面右上角"登录"
  • 输入群晖 DSM 账号和密码
  • 登录成功后可管理链接

7浏览器插件配置

7.1 安装插件

  • 在 Chrome 或 Edge 浏览器打开 chrome://extensions
  • 开启右上角 开发者模式
  • 点击 加载已解压的扩展程序,选择 browser-extension 目录
  • 插件安装成功,工具栏出现众享链图标

7.2 配置插件后端地址

  • 点击工具栏的众享链图标
  • 点击底部 "设置后端地址"
  • 输入后端服务地址:
http://群晖IP:3001/api
  • 点击 测试连接,确认提示"连接成功"
  • 点击 保存

7.3 使用插件

  • 点击插件图标 -> 输入群晖账号密码登录
  • 添加链接:弹出窗自动填入当前页面 URL 和标题,填写信息后提交
  • 右键快速添加:在任意页面或链接上右键 -> "添加到众享链"
  • 浏览链接:切换到"我的链接"标签页,搜索、浏览和快速打开已保存的链接

8日常运维

8.1 更新版本

升级镜像时保留 /data 挂载目录,系统自动读取已有配置启动,无需重新初始化。

从私有仓库更新:

  • Container Manager -> 注册表 -> 拉取新版本镜像
  • 停止当前容器
  • 删除当前容器(保留 /data 挂载目录)
  • 用新镜像重新创建容器(端口 80->3000, 8080->3001,存储 /docker/sharechain/data -> /data
  • 启动容器,系统自动读取已有配置启动

从 tar 文件更新:

  • 获取新版 sharechain.tar
  • 导入新映像
  • 停止并删除旧容器
  • 用新映像重新创建容器(保留 /data 挂载)

8.2 查看日志

  • Container Manager -> 容器 -> 点击容器名 -> 日志
  • 或通过 SSH:docker logs -f sharechain

8.3 备份

定期备份 MySQL 数据库:

mysqldump -h 群晖IP -P 3306 -u root -p syno_link_manager > backup_$(date +%Y%m%d).sql

8.4 容器自动重启

建议在容器设置中勾选"启用自动重启",群晖重启后容器会自动恢复运行。

9常见问题

Q1: 容器启动后无法访问 Web 页面
1. 检查容器状态是否为"运行中"
2. 后端启动约需 15-30 秒,请稍候再访问
3. 检查端口映射是否正确(容器 80 -> 本地 3000)
4. 检查群晖防火墙是否放行 3000 端口(控制面板 -> 安全性 -> 防火墙)
5. 查看容器日志是否有启动错误
Q2: 访问页面一直停留在初始化向导
1. 确认后端已完全启动(日志出现 Started LinkManagerApplication
2. 确认 MySQL 数据库可从容器网络访问
3. 在向导中点击"测试连接"验证数据库连通性
4. 测试群晖 DSM 连通性(DSM 地址需使用局域网 IP)
Q3: 登录提示"账号或密码错误"
1. 确认使用的是群晖 DSM 的账号密码
2. 确认初始化向导中填写的群晖 DSM 地址正确
3. 确认群晖 DSM 允许 API 访问(DSM -> 控制面板 -> 终端机和 SNMP -> 启用 SSH)
4. 容器内访问群晖 DSM 时,地址应使用群晖局域网 IP
Q4: 数据库连接失败
1. 在初始化向导中检查数据库地址、端口、账号密码是否正确
2. 确认 MySQL 允许从 Docker 容器 IP 连接(非仅 localhost)
3. 如果 MySQL 也在群晖 Docker 中,数据库地址应使用群晖 IP 而非 127.0.0.1
4. 在群晖 SSH 中测试:mysql -h 数据库地址 -P 端口 -u root -p
Q5: 升级后需要重新配置吗
不需要。升级镜像时保留 /data 挂载目录即可,系统启动时会自动读取已有配置启动。
Q6: 页面刷新后 404
Nginx 已配置 try_files 回退,正常不会出现。如出现:1. 检查容器是否正常运行;2. 尝试重启容器。
Q7: 浏览器插件无法连接
1. 确认插件设置中的后端地址正确(http://群晖IP:3001/api
2. 确认群晖 3001 端口可从浏览器所在电脑访问
3. 点击插件设置页的"测试连接"验证连通性
4. 如果使用 HTTPS 部署,插件地址需改为 https://群晖IP:端口/api
Q8: 链接状态显示"失效"如何恢复
系统每小时自动检查链接有效性。失效链接会被自动复检,URL 恢复正常后状态会自动变回"有效"。也可在管理后台手动修改链接状态。

快速部署检查清单

  • Container Manager 已安装
  • 镜像已拉取或导入(版本 1.0.3)
  • 容器端口映射配置正确(80->3000, 8080->3001)
  • 存储空间已挂载(/docker/sharechain/data -> /data
  • 容器已启动且状态为"运行中"
  • 等待 15-30 秒后端启动完成
  • 首次访问 http://群晖IP:3000 完成 Web 初始化向导
  • Web 页面可正常访问
  • 登录功能正常
  • 浏览器插件已安装并配置后端地址