halo搭建个人博客
安装指南
官方文档
使用 Docker Compose 部署
创建目录
#创建系统文件夹
mkdir ~/halo && cd ~/halo
配置docke+mysql 数据库
创建 docker-compose.yaml
使用外部数据库
root@VM-24-11-debian:~/halo# cat docker-compose.yaml
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.20
restart: on-failure:3
network_mode: "host"
volumes:
- ./halo2:/root/.halo2
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xmx256m -Xms256m
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://*****:3306/halo
- --spring.r2dbc.username=root
- --spring.r2dbc.password=Ning@1314
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://*******:8090/
# 端口号 默认8090
- --server.port=8090
启动容器
#启动 & 日志查看
docker-compose up -d
docker-compose logs -f
#启动 & 日志查看
docker compose up -d
docker compose logs -f
反向代理
安装配置
创建目录:
mkdir -p ~/data/docker_data/nginxproxymanager # 创建一个 npm 的文件夹
cd ~/data/docker_data/nginxproxymanager # 进入该文件夹
vi docker-compose.yml
配置文件
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 不建议修改端口
- '81:81' # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口
- '443:443' # 不建议修改端口
volumes:
- ./data:/data # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建
- ./letsencrypt:/etc/letsencrypt # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建
配置反向代理
访问代理地址 修改默认账号密码
默认登录的用户名:admin@example.com 密码:changeme
添加反向代理
Domain Names
:填我们 Halo 网站的域名,首先记得做好 DNS 解析,把域名绑定到我们的服务器的 IP 上Scheme
:默认http
即可,除非你有自签名证书Forward Hostname/IP
:填入服务器的 IP,或者 Docker 容器内部的 IP(如果 NPM 和 Halo 搭建在同一台服务器上的话)Forward Port
:填入 Halo 映射出的端口,这边默认是8090
Cache Assets
:缓存,可以选择打开Block Common Exploits
:阻止常见的漏洞,可以选择打开Websockets Support
:WS 支持,可以选择打开Access List
:这个是 NPM 自带的一个限制访问功能,这边我们不管,后续可以自行研究。