当前位置: 首页 > news >正文

一款优秀的双链笔记Blossom 安装教程 私有部署的云端双链笔记软件Blossom

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

支持 Windows,Mac,网页客户端,网页移动端。


 

👏 Blossom 的特点:

完善的文件关系

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

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

快速迁移

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

应用部署文档

本文说明了所有部署该应用的方式。

docker├─ build                    镜像构建|  └─ Dockerfile            应用镜像构建脚本└─ compose                  docker compose 配置└─ blossom-mysql8.yaml   包含后台应用 Blossom-backend 与 MySql8

应用所需环境与版本

  1. JDK8
  2. MySQL8+

一、使用应用的公共镜像

1. 拉取MySQL镜像并启动

如果已安装数据库,可以跳过该步骤。

docker pull mysql:8.0.31

启动镜像示例

docker run \
-d \
--name mysql \
-e MYSQL_ROOT_PASSWORD=jasmine888 \
-p 3306:3306 \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql-files/log:/var/lib/mysql-files \
-v /usr/local/docker/mysql/log:/var/log/mysql \
mysql:8.0.31

2. 创建数据库

你需要在 MySQL 中先创建一个数据库,数据库名称与启动容器时的--spring.datasource.url配置的数据库名称相同,如果不需要自定义数据库名称,你可以直接使用如下语句创建数据库:

CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

3. 拉取镜像

docker pull jasminexzzz/blossom:latest

4. 启动容器

启动示例

docker run -d \# 容器名称--name blossom-backend \# 指定端口映射-p 9999:9999 \# 挂载图片保存路径,如果是windows环境,可以使用/c/home/bl/来指定磁盘-v /home/bl/:/home/bl/ \# 启动的镜像名称jasminexzzz/blossom:latest \# 配置数据库访问地址--spring.datasource.url="jdbc:mysql://192.168.31.99:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" \# 配置数据库用户名--spring.datasource.username=root \# 配置数据库密码--spring.datasource.password=jasmine888

windows 控制台如下

docker run -d --name blossom-backend -p 9999:9999 -v /home/bl/:/home/bl/ jasminexzzz/blossom:latest --spring.profiles.active=prod --project.iaas.blos.domain="http://127.0.0.1:9999/pic/" --project.iaas.blos.default-path="/home/bl/img/" --spring.datasource.url="jdbc:mysql://192.168.31.99:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" --spring.datasource.username=root --spring.datasource.password=jasmine888

二、使用 docker compose 拉取镜像

可以使用 docker compose 单独拉取应用镜像,或者连同 MySQL 一起拉取构建。下列示例均可在项目/docker/compose目录下查看

1. 拉取应用镜像与 MySQL 镜像示例

该 docker compose 包含 MySQL,MySQL 容器在初始化时会自动创建数据库 Blossom,但你需要挂载 MySQL 文件到宿主机,防止数据丢失。

version: "3.8"networks:blossomnet:driver:bridgeservices:blossom:image: jasminexzzz/blossom:latestcontainer_name: blossom-backendvolumes:# 【需修改】挂载图片保存路径,如果是windows环境,可以使用/c/home/bl/img/来指定磁盘- /d/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: jasmine888ports:- "9999:9999"networks:- blossomnethealthcheck:test: ["CMD", "curl", "-f", "http://localhost:9999/sys/alive"]interval: 30stimeout: 10sretries: 3start_period: 5srestart: alwaysdepends_on:blmysql:condition: service_healthyblmysql:image: mysql:8.0.31container_name: blossom-mysqlrestart: on-failure:3# 【需修改】注意挂载路径volumes:- /d/blossom/Docker/mysql/data:/var/lib/mysql- /d/blossom/Docker/mysql/log:/var/log/mysql- /d/blossom/Docker/mysql/mysql-files/log:/var/lib/mysql-filesenvironment:MYSQL_DATABASE: blossom# 【需修改】多数情况下与 services.blossom.environment.SPRING_DATASOURCE_PASSWORD 相同MYSQL_ROOT_PASSWORD: jasmine888LANG: C.UTF-8TZ: Asia/Shanghaiports:- "3306:3306"networks:- blossomnethealthcheck:test: ["CMD", "mysqladmin", "-uroot", "-pjasmine888", "ping", "-h", "localhost"]interval: 10stimeout: 3sretries: 12

启动 Docker Compose

docker compose -f docker/compose/blossom-mysql8.yaml up -d

源码地址: https://github.com/blossom-editor/blossom

相关文章:

  • UI设计中插画赏析和产品色彩分析
  • 昇思MindSpore技术公开课——第三课:GPT
  • GO基础进阶篇 (十四)、Http编程
  • 现阶段Python和Java哪个更吃香?
  • 代码随想录算法训练营第二十三天| 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • 网络安全(黑客)—2024秩序
  • 实验二 体系结构
  • 红队打靶练习:HOLYNIX: V1
  • 爬虫案例—抓取豆瓣电影的电影名称、评分、简介、评价人数
  • C语言之三子棋游戏(棋盘)
  • 华为路由设备DHCPV6配置
  • test-02-test case generate 测试用例生成 EvoSuite 介绍
  • go语言的部分的
  • python贪吃蛇游戏
  • Pygame和Cocos2d
  • 分享的文章《人生如棋》
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【个人向】《HTTP图解》阅后小结
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Angular2开发踩坑系列-生产环境编译
  • bootstrap创建登录注册页面
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript-Array类型
  • JS专题之继承
  • LeetCode18.四数之和 JavaScript
  • October CMS - 快速入门 9 Images And Galleries
  • Sublime text 3 3103 注册码
  • TypeScript实现数据结构(一)栈,队列,链表
  • 从零开始的无人驾驶 1
  • - 概述 - 《设计模式(极简c++版)》
  • 算法-图和图算法
  • 小试R空间处理新库sf
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • #pragma once
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (论文阅读40-45)图像描述1
  • (十一)c52学习之旅-动态数码管
  • (学习日记)2024.02.29:UCOSIII第二节
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)程序员疫苗:代码注入
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • @EnableWebMvc介绍和使用详细demo
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [4.9福建四校联考]
  • [BSGS算法]纯水斐波那契数列
  • [bzoj1912]异象石(set)
  • [C/C++]数据结构 堆的详解