官方文档:https://docs.halo.run/install/docker
Halo ,一个优秀的开源博客发布应用。
Halo官方文档给出了2种安装方法,个人更推荐Docker部署 对于小白来说宝塔是一个很好的服务器面板,它可以帮助你省下很多麻烦
前言
Halo 是我折腾过的众多博客系统里面,最好、最容易上手的动态博客系统之一( solo 也是),轻快,简洁,功能强大。
我们前面还是需要先在宝塔面板环境中安装Docker,一般默认时候是没有安装的。
1.Docker 部署Halo
我们可以看到直接等待安装成功
后面在部署程序的时候有需要用到这里界面。
2.创建容器。
电脑终端 ssh 连接服务器,输入
代码语言:javascript复制docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.2
-it: 开启输入功能并连接伪终端
-d: 后台运行容器
--name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
--restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。
打开 http://ip:端口号 即可看到安装引导界面,随便输入一点信息直接安装。
进阶配置
上面我们已经完成了 Halo 的整个配置和安装过程,接下来我们对其进行更完善的配置,比如:需要开机自启?,更简单的启动方式?
代码语言:javascript复制# 下载 Halo 官方的 halo.service 模板
sudo curl -o /etc/systemd/system/halo.service --create-dirs http://halo.ryanc.cc/config/halo.service
实现以上功能我们只需要新增一个配置文件即可,也就是使用 Systemd 来完成这些工作。
反向代理
你可以在下面的反向代理软件中任选一项,我们假设你已经安装好了其中一项,并对其的基本操作有一定了解。如果你对 Nginx 不熟悉,我们推荐使用 OneinStack 来管理 Nginx。
Nginx
代码语言:javascript复制upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name www.yourdomain.com;
client_max_body_size 1024m;
location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Caddy 1.x
代码语言:javascript复制https://www.yourdomain.com {
gzip
tls your@email.com
proxy / localhost:8090 {
transparent
}
}
Caddy 2.x
代码语言:javascript复制www.yourdomain.com
encode gzip
reverse_proxy 127.0.0.1:8090
以上配置都可以在 https://github.com/halo-dev/halo-common 找到。
备份与恢复
在系统——小工具里有博客备份,
整站备份是把你的配置文件夹压缩直接下载下来,包含主题、评论之类的
而数据导出是备份一个json文件,可以在安装时导入,不包含主题,(评论我还没测试)
大家按需选择,不过我整站备份下载不了,不知道是不是个例?
在你重新安装时就可以把json文件导入了