使用 1Panel 和 Docker 部署 Blossom 私有云笔记

使用 1Panel 和 Docker 部署 Blossom 私有云笔记

Blossom 是什么

Blossom 是一款可以私有部署的笔记软件。服务端可以放在云服务器,也可以部署在自己的设备上。下面采用 1Panel 配合 Docker Compose 的方案,让笔记数据和图片保存在自己的磁盘中,不依赖额外的图床或对象存储。

客户端界面:

Blossom 桌面客户端界面

网页与移动端界面:

Blossom 网页和移动端界面

安装 1Panel 和 Docker

先从 1Panel 官网获取适合系统的安装方式。Ubuntu 可按当前官方在线安装文档执行:

bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

按安装提示检查 Docker 和 Compose 是否已经准备好,已有 Docker 的机器不需要重复安装。下面的截图展示的是较早版本的 1Panel 和 Blossom,菜单位置可能随版本调整。

按需要配置镜像加速

如果拉取镜像慢,可在「容器 → 配置 → 镜像加速」中填写服务商当前提供的可用地址,也可以使用其他可信服务。

1Panel 镜像加速配置入口

以下是旧配置中出现过的地址,保留作查询参考。是否仍提供服务、是否要求认证,应以各服务商当前说明为准,不要一次性全部照填:

https://hub-mirror.c.163.com
https://docker.m.daocloud.io
https://mirror.baidubce.com
https://docker.nju.edu.cn

ghcr.io 是 GitHub Container Registry,不是通用的 Docker Hub 镜像加速地址,不应填入这份加速列表。

创建 Compose 配置

进入终端,创建工作目录和配置文件:

sudo su root # 切换到 root
mkdir -p /opt/blossom # 创建工作目录
cd /opt/blossom # 进入目录
nano docker-compose.yaml # 编辑 Compose 文件
使用 nano 创建 docker-compose.yaml

把下面的完整配置写入文件。先完成这几项调整:

  • 将三处 CHANGE_ME_STRONG_PASSWORD 换成同一组自行设置的强密码,不要使用公开示例密码。
  • 冒号左侧是宿主机目录,可以自行更改;冒号右侧是容器内目录,保持不变。示例统一使用 /opt/blossom。Windows 环境需要使用 Docker 实际支持的盘符挂载路径,例如 /c/home/bl/img/。
  • PROJECT_IAAS_BLOS_DOMAIN 表示图片访问地址,应与实际访问后端的域名或 IP、端口一致,并以 /pic/ 结尾。本机访问可保留 localhost,远程访问时只修改这类对外访问地址。两处健康检查里的 localhost 表示容器自身,不要一起替换。
  • Blossom v1.12.0 起调整了图片域名和博客地址的配置方式。下方保留官方 Compose 示例中的环境变量;部署时应结合所选版本的设置界面完成图片域名、博客地址配置。需要可重复部署时,按官方发行版本固定镜像标签,并使用匹配的客户端。
version: "3.8"

networks:
  blossomnet:
    driver: bridge

services:
  blossom:
    image: jasminexzzz/blossom:latest
    container_name: blossom-backend
    volumes:
      # 【需修改】
      # 将冒号(:)前的部分改成你运行 docker 的设备的某个路径,不要修改冒号后面的内容。
      # 如果是windows环境,可以使用/c/home/bl/img/来指定磁盘
      - /opt/blossom/bl/:/home/bl/
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://blmysql:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2B8
      SPRING_DATASOURCE_USERNAME: root
      # 【必须修改】配置数据库密码,应用密码、MYSQL_ROOT_PASSWORD、健康检查密码必须保持一致
      SPRING_DATASOURCE_PASSWORD: CHANGE_ME_STRONG_PASSWORD
      # 【需修改】配置图片上传后对应生成的访问 URL,需要以/pic/结尾。
      # 该访问域名(IP:端口)需要与访问后台的域名(IP:端口)相同
      PROJECT_IAAS_BLOS_DOMAIN: http://localhost:9999/pic/
      PROJECT_IAAS_BLOS_DEFAULT-PATH: /home/bl/img/
    ports:
      - "9999:9999"
    networks:
      - blossomnet
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9999/sys/alive"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 5s
    restart: always
    depends_on:
      blmysql:
        condition: service_healthy
  blmysql:
    image: mysql:8.0.31
    container_name: blossom-mysql
    restart: on-failure:3
    volumes:
      # 【需修改】将冒号(:)前的部分改成你运行 docker 的设备的某个路径,不要修改冒号后面的内容。
      - /opt/blossom/Docker/mysql/data:/var/lib/mysql
      - /opt/blossom/Docker/mysql/log:/var/log/mysql
      - /opt/blossom/Docker/mysql/mysql-files/log:/var/lib/mysql-files
    environment:
      MYSQL_DATABASE: blossom
      # 【必须修改】需要与 services.blossom.environment.SPRING_DATASOURCE_PASSWORD 相同
      MYSQL_ROOT_PASSWORD: CHANGE_ME_STRONG_PASSWORD
      LANG: C.UTF-8
      TZ: Asia/Shanghai
    ports:
      - "127.0.0.1:3306:3306"
    networks:
      - blossomnet
    healthcheck:
      # 【必须修改】如果修改了上方的数据库密码「MYSQL_ROOT_PASSWORD」修改,下方的 -p 后的密码也要修改
      test: ["CMD", "mysqladmin", "-uroot", "-pCHANGE_ME_STRONG_PASSWORD", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 3s
      retries: 12

此示例保留 root 数据库账号的简易连接方式。如果要改成专用账号,需要同时配置 MySQL 的 MYSQL_USER、MYSQL_PASSWORD,再修改应用的连接账号和密码,不能只全文替换 root。

应用通过容器网络里的 blmysql:3306 连接数据库。宿主机的 3306 仅绑定 127.0.0.1,不需要对外开放。已经初始化过的数据目录,不会因为修改环境变量就自动修改数据库密码。

在编辑器中查看 Compose 配置示例

图中的旧示例只用于识别配置位置,实际密码、地址和端口按上面的正文配置填写。可用 Visual Studio Code 搜索替换密码占位符,但不要批量替换所有 localhost。

保存并启动

在 nano 中按 Ctrl+O 保存,按回车确认文件名,再按 Ctrl+X 退出。

在 nano 中编辑并保存 Compose 配置

回到配置所在目录后,启动容器:

docker compose up -d # 后台运行

打开「1Panel → 容器」,应看到 blossom-backend 和 blossom-mysql。Compose 会先等待数据库健康检查,再启动应用;首次初始化可能需要一些时间。

1Panel 中的 Blossom 与 MySQL 容器

如果 blossom-backend 没有启动,先看两个容器的日志,检查数据库初始化、账号密码、挂载目录和端口情况。排除原因后可以在面板中手动启动。mysqladmin ping 主要检查数据库是否存活,不能只凭健康状态认定账号密码一定正确。

Blossom 服务启动日志

连接客户端

服务启动后,在客户端填写自己的服务地址,并按该版本启动日志中的初始账号信息登录。图中旧版本日志显示的是默认账号;首次登录后先修改默认密码,再保存正式笔记。

本机部署可使用 http://localhost:9999,远程访问填写自己的服务地址。首次初始化应在受控网络内完成;对外使用时配置 HTTPS 访问入口,并在对应版本客户端中检查图片上传和博客地址是否正常。

Blossom 客户端填写服务地址并登录

完成后,笔记数据库、图片与日志会按配置保存在宿主机挂载目录中。后续迁移或更新前,先备份这些目录和 Compose 配置。

参考链接

开源许可

Blossom 及其配置示例采用 MIT License,相关声明保留如下:

MIT License

Copyright (c) 2023 小贼贼子

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容