Blossom丨支持私有部署的云端存储双链笔记软件

blossom

Blossom 是一个支持私有部署云端双链笔记软件,你可以将你的笔记,图片,个人计划安排保存在自己的服务器中,并在任意设备之间实时同步。同时还是一个动态博客。

👏 Blossom 的特点

完善的文件关系

Blossom 不依赖任何三方存储和图床,其本身就是一个图床,并且提供了完善的图片管理,防勿删,以及图片和文章的双向关系绑定。

基于 Markdown 编写,没有破坏性的语法拓展,在这里编写的内容在任何 Markdown 软件中都能正常显示。

快速迁移

所有图片和文章都支持一键备份和导出,可以在几分钟内轻松迁出。导出的文件可以无缝使用 VS Code 或 Obsidian 等本地软件正常打开。

丰富的附加功能

🐳 容器化部署方案

新建数据持久化目录

mkdir -p /mnt/data/blossom/data

cd /mnt/data/blossom/data

创建 compose 文件

vim docker-compose.yml

version: "3.8"

networks:
  blossomnet:
    driver:
      bridge

services:
  blossom:
    image: jasminexzzz/blossom:latest
    container_name: blossom-backend
    volumes:
      # 【需修改】挂载图片保存路径,如果是windows环境,可以使用/c/home/bl/img/来指定磁盘
      - ./data/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
      # 【需修改】配置数据库密码
      SPRING_DATASOURCE_PASSWORD: jasmine888
      # 【需修改】配置图片上传后对应生成的访问 URL,需要以/pic/结尾。注意,该访问域名(IP:端口)需要与访问后台的域名(IP:端口)相同
      PROJECT_IAAS_BLOS_DOMAIN: http://localhost:9999/pic/
      # 配置图片保存的磁盘路径,并在 volumes 中将该路径挂载为本地路径,如上方 volumes 中的示例
      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:
      - ./data/blossom/Docker/mysql/data:/var/lib/mysql
      - ./data/blossom/Docker/mysql/log:/var/log/mysql
      - ./data/blossom/Docker/mysql/mysql-files/log:/var/lib/mysql-files
    environment:
      MYSQL_DATABASE: blossom
      # 【需修改】多数情况下与 services.blossom.environment.SPRING_DATASOURCE_PASSWORD 相同
      MYSQL_ROOT_PASSWORD: jasmine888
      LANG: C.UTF-8
      TZ: Asia/Shanghai
    ports:
      - "3306:3306"
    networks:
      - blossomnet
    healthcheck:
      test: ["CMD", "mysqladmin", "-uroot", "-pjasmine888", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 3s
      retries: 12

一条命令启动

docker-compose up -d

查看启动状态

15:41:38.089 INFO [nd-preinit] [  .  ] o.h.v.internal.util.Version    21 : HV000001: Hibernate Validator 6.2.5.Final
15:41:38.530 WARN [main      ] [4B.FA] .b.b.c.PropertiesCheckListener 88 : 数据库链接检查完毕
[CHECK] ==========================================================================================================================
██████╗  ██╗       ██████╗  ███████╗ ███████╗  ██████╗  ███╗   ███╗
██╔══██╗ ██║      ██╔═══██╗ ██╔════╝ ██╔════╝ ██╔═══██╗ ████╗ ████║
██████╔╝ ██║      ██║   ██║ ███████╗ ███████╗ ██║   ██║ ██╔████╔██║
██╔══██╗ ██║      ██║   ██║ ╚════██║ ╚════██║ ██║   ██║ ██║╚██╔╝██║
██████╔╝ ███████╗ ╚██████╔╝ ███████║ ███████║ ╚██████╔╝ ██║ ╚═╝ ██║
╚═════╝  ╚══════╝  ╚═════╝  ╚══════╝ ╚══════╝  ╚═════╝  ╚═╝     ╚═╝
15:41:38.744 INFO [main      ] [4B.FA] com.blossom.backend.APP        55 : Starting APP v1.16.0-SNAPSHOT using Java 1.8.0_402 on 173e4a779129 with PID 7 (/application/BOOT-INF/classes started by root in /application)
15:41:38.745 INFO [main      ] [4B.FA] com.blossom.backend.APP        638: The following 1 profile is active: "prod"
15:41:40.658 INFO [main      ] [4B.FA] o.a.c.core.StandardService     173: Starting service [Tomcat]
15:41:40.659 INFO [main      ] [4B.FA] o.a.c.core.StandardEngine      173: Starting Servlet engine: [Apache Tomcat/9.0.83]
15:41:40.733 INFO [main      ] [4B.FA] o.a.c.c.C.[.[localhost].[/]    173: Initializing Spring embedded WebApplicationContext
15:41:40.734 INFO [main      ] [4B.FA] letWebServerApplicationContext 292: Root WebApplicationContext: initialization completed in 1882 ms
15:41:41.115 INFO [main      ] [4B.FA] c.b.b.base.auth.AuthProperties 134: [AUTHORIZ] 授权类型:caffeine, Client:客户端, Duration(h):授权时长(小时), Refresh:请求刷新授权, MultiPlace:允许多处登录
15:41:41.116 INFO [main      ] [4B.FA] c.b.b.base.auth.AuthProperties 135: [AUTHORIZ] ┌──────────┬──────────┬─────────┬────────────┐
15:41:41.118 INFO [main      ] [4B.FA] c.b.b.base.auth.AuthProperties 136: [AUTHORIZ] | ClientId | Duration | Refresh | MultiPlace |
15:41:41.118 INFO [main      ] [4B.FA] c.b.b.base.auth.AuthProperties 137: [AUTHORIZ] ├──────────┼──────────┼─────────┼────────────┤
15:41:41.119 INFO [main      ] [4B.FA] c.b.b.base.auth.AuthProperties 156: [AUTHORIZ] | blossom  | 6 Hour   | true    | true       | [password]
15:41:41.121 INFO [main      ] [4B.FA] c.b.b.base.auth.AuthProperties 166: [AUTHORIZ] └──────────┴──────────┴─────────┴────────────┘
15:41:41.316 INFO [main      ] [4B.FA] c.b.c.d.i.SlowSQLInterceptor   51 : [    BASE] 慢查询时长为 : 200ms
15:41:43.614 INFO [main      ] [4B.FA] c.b.c.c.c.CaffeineCacheConfig  34 : [   CACHE] 缓存注解使用 : Caffeine
15:41:44.746 INFO [main      ] [4B.FA] com.blossom.backend.APP        61 : Started APP in 7.233 seconds (JVM running for 7.607)
15:41:44.769 INFO [main      ] [4B.FA] c.b.b.base.param.ParamService  44 : [   PARAM] 初始化系统参数缓存
15:41:45.052 INFO [main      ] [4B.FA] c.b.b.b.p.UserParamService     47 : [ U_PARAM] 初始化用户参数缓存
15:41:45.173 INFO [main      ] [4B.FA] c.b.b.b.search.IndexObserver   42 : [  SEARCH] 重建全部用户索引开始
15:41:45.187 INFO [main      ] [4B.FA] c.b.b.b.search.IndexObserver   45 : [  SEARCH] 重建全部用户索引完成, 用时: 13 ms
15:41:45.252 INFO [main      ] [4B.FA] c.b.common.base.BaseConstants  24 : 启动完成
=========================================================================
启动成功 [2025-02-20 15:41:45], 可使用客户端登录, 默认用户名/密码: blos/blos
下载地址: https://github.com/blossom-editor/blossom/releases
文档地址: https://www.wangyunf.com/blossom-doc/index
博客端访问地址: http://IP:端口(域名)/blog/#/home
客户端访问地址: http://IP:端口(域名)/editor/#/settingindex
=========================================================================

💻 客户端配置

填入正确的后端地址即可,默认用户/密码:blos/blos

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注