迁移Hexo到halo

写在前面

Halo [ˈheɪloʊ],意为光环。当然,你也可以当成拼音读(哈喽)。

轻快,简洁,功能强大,使用 Java 开发的博客系统。

此前,我使用hexo,犹豫hexo是静态的,有所不便。无意之中发现这款博客框架。此博客使用java所以,内存需求比较高。优点是美观,支持批量导入md。

准备工作

建立交换空间

1
2
3
4
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
mkswap /var/swapfile
swapon /var/swapfile
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab

安装Docker

1
2
3
4
5
6
7
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt install docker-ce
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v

添加国内镜像源

添加或修改 /etc/docker/daemon.json 这个文件,加入下面的配置。

1
2
3
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

重启 Docker 使配置生效

1
service docker restart

开始部署halo

下载 Docker Compose 文件

首先我们需要下载好 docker-compose.yaml 文件,这个文件在项目目录里面有,我们可以直接使用 wget 命令从 github 上下载下来,如下操作:

1
wget -O docker-compose.yaml https://git.io/fpS8N

修改 Docker Compose 文件

假设你现在已经下载好了 docker-compose.yaml 文件,那么在部署之前需要做的就是简单修改以下这个文件。因为我们需要绑定域名以申请SSL证书,所以你需要在 docker-compose.yaml 文件中修改以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
halo:
restart: always
image: ruibaby/halo
container_name: halo
ports:
- 8090:8090
environment:
- VIRTUAL_PORT=8090
- VIRTUAL_HOST=localhost # 监听的地址(务必修改)
- LETSENCRYPT_HOST=localhost # 证书的域名 (务必修改)
- LETSENCRYPT_EMAIL=i@example.com # 证书所有者的邮箱,快过期时会提醒(务必修改)
- DB_USER=admin # h2数据库用户名,自定义(务必修改)
- DB_PASSWORD=123456 # h2数据库密码,自定义(务必修改)
volumes:
- ~/halo:/root/halo

如上配置,我们需要修改 VIRTUAL_HOST , LETSENCRYPT_HOST 为自己的域名,注意注意注意!在部署之前,把域名解析商的api用export加入环境变量,只有这样才能证明域名所有权,才能完成签名。另外,LETSENCRYPT_EMAIL 这个节点是证书申请者的邮箱,当证书要过期的时候,会提醒你续签,DB_USERDB_PASSWORD 分别为 H2Database 的用户名和密码,请务必要修改,这个是自定义的,不要使用默认的,修改完成之后保存文件备用。

配置nginx反代

1
2
mkdir /etc/nginx
curl https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > /etc/nginx/nginx.tmpl

运行docker

1
2
docker-compose up -d
docker pull ruibaby/halo

停止与重构

1
2
3
4
#停止容器运行:
docker-compose stop
#重新构建 Halo 容器:
docker-compose up -d --build

参考以及原文档

Docker Compose 部署Halo教程

以上适用于Ubuntu18.10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cd
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
mkswap /var/swapfile
swapon /var/swapfile
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt install docker-ce -y
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
echo "{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

" >> /etc/docker/daemon.json
service docker restart
wget -O docker-compose.yaml https://git.io/fpS8N
nano docker-compose.yaml
mkdir /etc/nginx
curl https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > /etc/nginx/nginx.tmpl
docker-compose up -d
docker pull ruibaby/halo

后续配置

踩坑

修改nginx的配置,因直接修改模板文件/etc/nginx/nginx.tmpl

本文标题:迁移Hexo到halo

文章作者:yiny

发布时间:2019年02月27日 - 17:02

最后更新:2019年03月03日 - 14:03

原始链接:https://blog.yiny.ml/2019/02/27/halo/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%