Halo+docker

(玩转Lighthouse)个人Halo博客搭建指南

docker启动命令:sudo docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo -v ~/.halo/backup:/tmp/halo-backup-markdown --restart=unless-stopped -e JVM_OPTS="-Xmx128m -Xms128m" halohub/halo:1.6.0

官方使用文档

官方文档

备份方式

因为这个系统他的用户数据和程序本身是完全分开的 (数据库 db,上传的附件 upload,配置文件 application.yaml),当然,所有主题也是在这个目录的,但是因为主题是可以另外下载的,而且主题的配置数据也在数据库,所以我没有备份。

添加定时任务备份整个站到github,脚本如下:

#!/bin/sh
message=`date +"%Y_%m_%d_%H_%M"`
cd /root/.halo
rm -rf .git
git init
git remote add origin git@github.com:xxxxxxxxx/halo-backup.git #仓库地址
git add application.yaml upload/ db/ backup/ static/ backup.sh  #可自由选择
git commit -m $message
git push -f origin master
  1. 将其写入到一个 sh 文件里面。
  2. 赋予执行权限 chmod +x {NAME}.sh。
  3. 初始化 ~/.halo 仓库,cd ~/.halo & git init。
  4. 去 Github 配置 ssh key。这一步不详细讲,自行百度。目的是在 push 的时候不需要输入用户名和密码。
  5. 执行 crontab -e 添加 00 03 * * * /bin/sh {NAME}.sh 的绝对路径。(00 03 * * * 表示每天三点执行)。
  6. 执行 service cron restart 使配置的定时任务生效

github配置ssh key参考