前段时间才在《无需代码,宝塔面板Docker部署便签工具Memos》部署过Memos,前几天又在阮一峰的周刊上发现了一款与Memos和flomo非常相似的个人微博程序Mblog。
Mblog的项目地址是https://github.com/kingwrcy/mblog-backend,于我看来,Mblog是一款高仿Memos和flomo的程序,目前才开源一个多月,可以说是集Memos和flomo的优点于一身,真正做到了“模仿并超越”了。Mblog的作者非常的勤快,不断收集用户意见改进,做到了“大众化”!大家可以先到官网进行体验,地址是:https://mblog.cooolr.online。
今天就来教大家如何在宝塔面板Docker下部署个人微博程序Mblog。
1.新建数据库。
官方上数据库是也是部署在Docker里的,既然宝塔面板下有MYsql数据库,我们就可以直接新建就不需要再多费一道事再去部署了。
注意:这里数据库访问权限一定要选择成“所有人(不安全)”,否则的话后期服务端没权限写库。以后你要是怕不安全,等服务端创建好之后,可以改成指定IP,填上服务端的内网IP就可以了!
注意避坑:因为作者在开发的时候是使用的Mysql8.0,如果是低于这个版本的,一定要修改下Mysql的配置文件。
在宝塔面板的软件商店里找到你安装好的MYsql,在配置修改里找到“[mysqld]”,在下面添加如下代码:
explicit_defaults_for_timestamp = true
一定要添加,否则安装安装服务端的时候就会报错。
2.安装服务端。
Mblog是前后端分离的,而且前后端可以安装在不同地方,比如可以把服务器安装在家里的NAS上,而前端可以安装在免费的CDN上。
2.1拉取服务端镜像。在官方库里,直接输入kingwrcy/mblog-backend:latest 进行拉取。
2.2添加服务端容器。
容器名称:mblog-backend,后面的镜像不要选择错了。
把容器的端口和服务器的端口都映射下,都填38321,容器的端口必须填写38321,服务器的端口你可以自己随便设,只要不冲突就不行。
把容器的目录挂载出来,都填/opt/mblog/upload,这里一般都是以后上传的一些图片。后期可以在计划任务里设置对该目录自动备份,防止数据丢失。
在环境变量里填入以下代码:
MYSQL_USER=你的数据库用户名 MYSQL_PASS=你的数据库密码 MYSQL_URL=172.17.0.1:3306,这个IP是宿主机的内网IP。 MYSQL_DB=你的数据库名 MBLOG_FRONT_DOMAIN=http://你的公网IP:8181,注意:如果后期你想反代用域名访问的,这里需要填写你反代好的地址,比如https://mblog.laozhang.org ENABLE_SWAGGER=true
避坑指南:内存一定要设置大于512M,否则服务器启动不了!切记!
2.3开放服务端内网IP访问3306端口。
在Docker的容器列表里查看下服务端的IP,一般是172.17.0.X,然后在安全设置对,放行该IP对3306的访问权。
老张在第一次搞的时候,老是不成功无法写入数据库,没办法请作者帮忙,从晚上八点多远程折腾到接近十二点,花了四个多小时也没有折腾好。后来准备第二天接着折腾,结果作者查到了是“防火墙”原因。便有了上面的解决。不知道为什么宝塔面板连自己的内网IP也都拦截!切记一定要放行!一定要放行!
3.安装前端
3.1在宝塔的Docker下直接拉取kingwrcy/mblog-front:latest镜像。
3.2添加前段容器
容器名:mblog-front;容器端口一定要填80,服务器端口可以随便设,这冲突就行,我这里设置的是8181
在环境变量里填入以下代码:
MBLOG_SERVER_URL=mblog服务端地址,带http(s),有端口带端口,docker启动的这里是宿主机的IP,必填 \
注意了,如果你是想使用IP+端口来访问你的Mblog,那这里可以就直接填写http://公网IP+38321,如果你想反代,用域名访问,那这里就可以填写你反代的服务端的域名,比如我的是https://mblog2.laozhang.org
对了,不要忘了把38321和8181端口放行哟!到目前为止,可以正常使用。
这个时候你可能发现发布的内容时间不对,我们可以把下面这行代码同样也添加上Mysql的配置文件的[mysqld]下面,刷新下就可以正常了!
default-time_zone = '+8:00'
想使用反代用域名访问的,可以参考《宝塔面板反向代理,用域名访问Trilium》,但是这里一定要切记,前端需要反代,服务器也必须要反代!切记切记!