blossom介绍
今天在果壳上看到了blossom的文章,感觉挺符合我胃口,功能看起来不错。现在作者也处于爆肝期,打算部署一个试试。这里就简单写个部署记录吧。
更新 ps: 作者迫于生活暂时不更新了,但是软件还是能正常用的
附上今天看到的文章: 恐怖如斯....你给我说这是一个人开发出来的??
然后blossom的官网: www.wangyunf.com/blossom-doc…
开始部署吧
官方教程
官网上有记录三种方式docker run、docker compose、jar包直接运行。
这里说说三种方式的区别吧。个人简单理解,可能有误,大概意思懂就好。
- docker run:是直接执行
docker run xxxx命令来一键部署,优点是简单快捷,但是后期容易忘记当时用的什么run命令,修改起来要费一番功夫。 - docker compose:通过建立
docker-compose.yml文件,使用docker-compose up -d命令来构建容器,优点是没有那么一大串命令了,yml 编辑好后修改也很简单直观。可以同时一件部署多个容器,管理方便。 - jar:这个相比上面难度较高,需要懂一点java相关知识。灵活性最高,能装java的地方都可以运行。
绿联docker部署
官方文档中的docker命令我试过一下可以用,但是在绿联中直接用run命令好像有问题。对不太了解docker命令的人也不友好。下面就记录一下使用绿联docker的UI来部署。
数据库 Mysql8.0
blossom使用的是mysql8.0的数据库。所以我们需要一个MySQL镜像,如果之前已经有了,那么可以跳过这一步。因为网上教程很多,所以我这里就贴一个网上的教程。就不再重复写了
绿联DX4600 NAS光速部署MySQL:拥有自己的免费数据库
上面部署完成后,我们来创建数据库
通过docker ps -a 查看容器
下面的mysql容器ID: 可以用
CONTAINER ID=【6e51144f3beb】或者 NAMES=【mysql8】,大家根据自己的情况填写
# 连接数据库
docker exec -it <mysql容器ID> mysql -uroot -p你的密码
# 执行命令创建数据库
CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
显示如下则创建成功,可通过命令exit退出容器
数据库备份或迁移方法(可跳过)
docker中的MySQL数据备份方式:一个是直接导出sql文件;或者开启binlog,备份binlog文件。定时备份需要配合脚本进行。嫌麻烦可以忽略这一步,一般情况下数据不会丢失,注意MySQL的数据要挂载出来。
-
导出sql文件备份
- 使用docker ps命令查看Docker容器ID:
docker ps - 使用docker exec命令进入容器:
docker exec -it <容器ID> bash - 使用mysqldump命令备份MySQL数据库: mysqldump -u <用户名> -p <数据库名> > <备份文件名>.sql
- 使用docker cp命令将备份文件从容器内拷贝到宿主机:
docker cp <容器ID>:/<备份文件名>.sql <宿主机路径>
- 使用docker ps命令查看Docker容器ID:
-
开启binlog备份
这个有点复杂,有需要的可以自行搜索研究:Docker容器MySQL数据库的备份与还原,以及每天定时自动备份
blossom部署
首先,在镜像仓库下载jasminexzzz/blossom:latest镜像
然后我们创建镜像
然后再命令这里面配置自定义内容
- 官方说明
#【需修改】配置图片上传后对应生成的访问URL,需要以/pic/结尾。注意,该访问URL需要与访问后台的域名和端口相同
--project.iaas.blos.domain="http://127.0.0.1:9999/pic/" \
# 配置图片保存的磁盘路径,请使用 -v 将该路径挂载为本地路径,如上方示例
--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
- 我的配置例子,填入的时候注意按我下面的格式来,直接在官方例子上改的话,会启动不了容器。。。主要修改点就是ip和端口,还有数据库账号和密码,其他不用动。
--project.iaas.blos.domain=http://192.168.3.204:9998/pic/
--project.iaas.blos.default-path=/home/bl/img/
--spring.datasource.url=jdbc:mysql://192.168.3.204:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2B8
--spring.datasource.username=root
--spring.datasource.password=123456
存储空间挂载/home/bl文件夹
端口我这里设置的9998
剩下的都默认即可
接着访问配置好的地址,我这里是这样的
http://192.168.3.204:9998/editor/#/settingIndex
使用默认的管理员账号登陆账号密码都是 blos。
桌面客户端的话注意填写登陆服务器地址,比如http://192.168.3.204:9998,网站好像不用,如果登陆不了也可以填一下。默认他是官方demo的地址,不改的话登陆进去的blos账号是试用账号,啥也干不了=_=,别问我怎么知道的🙂。
需要天气的话,接着配置和风api。跟着页面上【文档】里面的步骤一步步做即可
个人信息和修改登陆密码就不说了,也可以在下面添加多个账号来使用。不同账号数据是隔离的
这是我使用过程中的截图
如何修改博客页地址以及关联用户
默认关联的用户是id为1的也就是默认的账户,那在我们新建账户之后如何修改为新账户呢。
官方给了修改方法:
我们现在设置里修改服务端的地址
http://192.168.3.204:9998/blog/#/articles?articleId=
然后需要将容器内部的config.js拷贝出来
-
先建立好文件夹
-
然后ssh进入绿联
ssh -p 922 root@192.168.3.204大家要先找到自己的目录,可以先cd到
/mnt目录,使用ls查看有哪些目录然后进入每个dm开头的文件夹,使用
cd dm-0/.ugreen_nas/命令直接进入隐藏文件夹更换目录的话更换dm后面的数字就行,现在我们在
/mnt/dm-0/.ugreen_nas目录后面可以直接通过cd /mnt/dm-1/.ugreen_nas、cd /mnt/dm-2/.ugreen_nas来切换多个硬盘。可以看的我的目录下有248447和248954两个文件夹,这是绿联每个用户对应的数据所在,每个人的nas都不一样,你们看你们自己的编号是多少。我们先进入248447,发现里面正好是我的文件,剩下的路径你应该就知道了
-
使用docker cp命令复制容器内部文件
blossom是我的容器名称,如果你的容器名称不是这个,那么就替换你自己的名称
docker cp blossom:/application/BOOT-INF/classes/static/blog/config.js /mnt/dm-0/.ugreen_nas/248447/Docker/blossom/config/然后我们打开文件,修改这里,将PRD修改为你自己的ip和端口,USER_ID修改为blossom个人信息页面中显示的ID,我这里是10002
-
关闭容器修改挂载地址
我这里挂载文件夹是
SSD空间/Docker/blossom/config/config.js就是上面docker cp出来的路径地址,装载路径为:/application/BOOT-INF/classes/static/blog/config.js
然后下一步,完成重启容器即可
访问http://192.168.3.204:9998/blog/#/articles?articleId=地址就能看到你公开的文章了
登陆博客方法:
访问http://192.168.3.204:9998/blog/#/articles?articleId=
在左上角 logo 上连续点击 7 次以上,即会跳转至博客的登录页面
批量替换图片域名
可以通过数据库工具连接数据库然后执行以下sql,注意替换自己的新域名和旧域名。
注意改之前备份笔记数据库,若造成数据丢失本人概不负责。
SQL所写时的blossom版本 v1.13.0。一般不会失效,若新版本改动了表结构或者有新表的情况可能会失效,请自行判断
方式一,直接通过终端
步骤如下:
# 连接数据库
docker exec -it <mysql容器名称或ID> mysql -uroot -p你的密码
# 显示已创建的数据库
show databses;
# 选择并进入 blossom 数据库
use blossom;
然后输入下面的sql,注意全部复制,因为有换行,所以粘贴后会自动执行,最后一条命令可能需要按回车执行。
- old_domain:是当前地址,旧的,需要被换掉的。
- new_domain:是你打算要换成的地址,新的,是被替换为的。
注意后面的/pic不要忽略了,否则可能会造成不可控的替换,pic后缀是确定的文章图片地址。
set @old_domain = 'https://blossom.xxxxold.xxx/pic';
set @new_domain = 'https://blossom.xxxxnew.xxx/pic';
update blossom_article set markdown=REPLACE(markdown, @old_domain, @new_domain),
html=REPLACE(html, @old_domain, @new_domain)
where markdown LIKE concat('%',@old_domain,'%');
update blossom_article_open set markdown=REPLACE(markdown, @old_domain, @new_domain),
html=REPLACE(html, @old_domain, @new_domain)
where markdown LIKE concat('%',@old_domain,'%');
update blossom_article_reference set target_url=REPLACE(target_url, @old_domain, @new_domain)
where target_url LIKE concat('%',@old_domain,'%');
update blossom_picture set url=REPLACE(url, @old_domain, @new_domain)
where url LIKE concat('%',@old_domain,'%');
如图,有些终端不会显示这个弹框,会直接粘贴执行
如下图,最后一条指令可能需要回车直到每条sql下都出现Rows matched: xx Changed: xx Warnings: xx这种提示才表示执行完成
方式二,通过数据库工具
以 DBeaver 为例(mac,linux,windows三平台支持),其他工具同理。Windows可以直接在微软商店下,其他平台可自行百度下载。
可能提示需要下载驱动,点击下载即可,其余问题可以百度解决,或者留言评论,我看到了会回复。
- 选择要连接的数据库,用的是mysql这里就选择mysql
- 填写数据库连接信息,还有账号密码,测试通过之后,点击完成。
- 然后右键数据库,打开sql控制台
- 复制粘贴sql脚本,注意替换你的域名,然后全选sql(部分工具需要全选,部分不要,这里统一全选没问题),然后点击 执行sql脚本 就可以了
- 执行完成结果
最后别忘了修改设置中的地址,也要换成新的,这样新插入的图片也是新的地址。